لغة برمجة mIRC

محرر نصوص mIRC (مدمج)

لغة البرمجة النصية mIRC (والتي غالبًا ما يتم اختصارها بشكل غير رسمي إلى " mSL " [ 3 ] [ 4 ] ) هي لغة البرمجة النصية المضمنة في mIRC و Adiirc ، عملاء IRC لنظام التشغيل Windows ، وأيضًا من خلال طبقة التوافق WINE لنظام التشغيل Linux .

الاستخدامات الأساسية

  • قناة ضوئية وحماية شخصية ضد أنواع عديدة من الهجمات (الفيضانات، البريد العشوائي، عمليات الاستيلاء، إلخ).
  • يمكن إنشاء نوافذ حوار في mIRC لتحسين توافق المستخدم؛ بدلاً من وضع كل شيء في قوائم منبثقة.
    • تتضمن إضافات حوار mIRC الشائعة MDX ( إضافة حوار mIRC ) وDCX ( إضافة التحكم في الحوار ) . كما توجد بعض الإصدارات المعدلة من ملفي mdx.dll وdcx.dll من قِبل مخترقي IRC .
  • برامج روبوت توفر إدارة آلية لقنوات IRC، وألعاب معلومات عامة أو غيرها من الألعاب، ووظائف أخرى مرغوبة للمستخدمين.
  • الأوامر التي توفر الكتابة أو تبسط الحياة على IRC (مثل التعرف التلقائي على مالك اسم مستعار).
  • خوادم Proxy CONNECT (www.mslscript.com) وخوادم Bounce ( ZNC ) لاستبدال بعض نصوص mSL البرمجية برمز أسرع وميزات ملائمة.

تخزين البرامج النصية

تُخزَّن البرامج النصية إما كملفات نصية عادية، عادةً بامتداد .mrc ، أو كملفات INI . مع ذلك، يمكن تخزينها بأي امتداد. يمكن تحميل عدة ملفات برامج نصية في وقت واحد، ولكن في بعض الحالات، قد يتعارض برنامج نصي مع آخر، مما يؤدي إلى توقف أحدهما أو كليهما عن العمل بشكل صحيح. قد يؤثر ترتيب تحميل ملفات البرامج النصية على عملها. يجب استخدام برنامج تحميل/إلغاء تحميل البرامج النصية الكبيرة نسبيًا لكي تعمل كما هو مُخطط لها.

خصائص اللغة

تستخدم لغة برمجة mIRC مصطلحاتها الخاصة للإشارة إلى بنيات اللغة. (مع ذلك، ورغم أن هذا قد يكون مربكًا بعض الشيء للمبتدئين، إلا أنه لا يؤثر على وظائف mSL).

  • تُسمى الوظائف المدمجة بالأوامر ، أو إذا كانت تُرجع قيمة، تُسمى بالمعرفات .
  • تُسمى الدوال البرمجية المخصصة بالأسماء المستعارة . وتُعرف الأسماء المستعارة التي تُرجع قيمة بالمعرفات المخصصة . ويتم استدعاء كليهما من سطر الأوامر أو أجزاء أخرى من البرنامج النصي بنفس طرق استدعاء الأوامر والمعرفات المدمجة (بل ويمكنهما حتى أن يحلّا محلها).
  • النوافذ المنبثقة هي عناصر قائمة سياقية مُبرمجة . يتم استدعاء النوافذ المنبثقة عند تحديدها من قِبل المستخدم. كان المصطلح في الأصل يُشير إلى القوائم التي تظهر عند النقر بزر الفأرة الأيمن. ولا يزال يُستخدم بهذا المعنى في الدليل.
  • البرامج النصية البعيدة هي برامج نصية لمعالجة الأحداث . يتم استدعاء البرامج النصية البعيدة عند وقوع الحدث الذي تعالجه.
  • جميع المتغيرات ذات أنواع ديناميكية .
  • تتوفر جداول التجزئة لتخزين البيانات الكبيرة؛ أما المصفوفات فلا تتوفر لذلك.
  • تستخدم نصوص mIRC رموزًا . تُسبق المعرفات (سواء كانت مخصصة أو مدمجة) بـ $، وتُسبق المتغيرات الثنائية بـ &، وتُسبق المتغيرات الأخرى (سواء كانت محلية أو عامة) بـ %. لا تُسبق الأوامر والأسماء المستعارة بأي حرف معين (مع ذلك، عند إدخالها من سطر أوامر النافذة، يجب أن تُسبق ببادئة الأمر، وعادةً ما تكون /).

معالجة الملفات

  • يمكن للبرامج النصية القراءة من الملفات والكتابة إليها [ $read(file,[args])| /write]

ما سبق مخصص للوصول الفردي إلى الملف. ففي كل مرة تُصدر فيها أمر الوصول $read، /writeيتم فتح الملف وإغلاقه للوصول إليه. أما الوصول المتعدد، أثناء حلقة تكرارية مثلاً، فيُفضل التعامل معه باستخدام `require` /fopenو` /fwriterequire` /fclose. لأن هذا يفتح الملف مرة واحدة فقط. في بعض الحالات /filter، /savebufيُعد استخدام `require` و`require` طريقة أكثر كفاءة (بدون استخدام حلقة تكرارية برمجية).

  • يمكن للبرامج النصية أيضًا نسخ الملفات وحذفها. [ /copy| /remove]

المتغيرات الثنائية

  • يحتوي على بيانات خام غير محدودة (8192 بايت قبل mIRC 6.1)
  • يمكن الوصول إليه عالمياً عبر الأوامر والمعرفات
  • يتم إلغاء التعيين تلقائيًا عندما يعيد البرنامج النصي التحكم إلى mIRC (وليس إلى جزء آخر من البرنامج النصي)
  • مسبوقة بـ &(مثلاً &Variable)
  • لا يمكن الوصول إلى هذه المتغيرات إلا من خلال /bread`and` /bwrite، لذا لا يمكن تمريرها إلى أجزاء أخرى من البرنامج النصي.

جداول التجزئة

  • قد يحتوي على بيانات ثنائية غير محدودة أو ما يصل إلى 4150 بايت (950 بايت قبل إصدار mIRC 6.32) من النص العادي. هذا الحد مفروض من قِبل مُحلل النصوص البرمجية في mIRC الذي يفرض قيودًا على طول السطر (إلا في حالة تعيين متغير ثنائي).
  • يمكن الوصول إليه عالمياً عبر الأوامر والمعرفات
  • يتم إلغاء تعيينها تلقائيًا عند الخروج من mIRC لأنها مخزنة في الذاكرة فقط.
  • يمكن حفظها لاستخدامها لاحقاً
  • بدون بادئة
  • أسرع من الوصول من ملف، حيث يتم تخزين جداول التجزئة في الذاكرة بدلاً من القرص الصلب
  • الحجم محدود فقط بحدود ذاكرة الكمبيوتر.
  • يسمح باستخدام أي حجم دلو

المتغيرات العالمية

  • قد يحتوي على ما يصل إلى 4150 بايت (950 بايت قبل mIRC 6.32) من البيانات بما في ذلك اسمه (ومع ذلك، نظرًا لقيود طول السطر في محلل البرامج النصية لـ mIRC، يمكن تعيين 4146 بايت كحد أقصى بشكل صريح باستخدام /set أو /var  - ويتناقص هذا العدد كلما زاد طول اسم المتغير).
  • لا يمكن تخزين NUL (ASCII 0) أو المسافات اللاحقة
  • متاح عالميًا
  • لا تقم بإلغاء التعيين تلقائيًا إلا إذا تم استخدام مفتاح تبديل (يتم تخزينه تلقائيًا في ملف تهيئة mIRC)
  • مسبوقة بـ %(مثلاً %Variable)
  • تم إنشاؤه باستخدام setالأمر أو var -gالترميز%Variable = value

المتغيرات المحلية

  • قد يحتوي على ما يصل إلى 4150 بايت (950 بايت قبل mIRC 6.32) من البيانات بما في ذلك اسم المتغير (ومع ذلك، نظرًا لقيود طول السطر في محلل البرمجة النصية لـ mIRC، يمكن تعيين 4146 بايت كحد أقصى بشكل صريح باستخدام أوامر /set أو /var  - ويتناقص هذا العدد كلما زاد طول اسم المتغير).
  • يمكن تخزين NUL (ASCII 0) أو المسافات اللاحقة
  • يتم تدميرها عند انتهاء الاسم المستعار أو الحدث الذي تم تشغيله
  • مسبوقة بـ %(مثلاً %Variable)
  • تم إنشاؤه باستخدام varالأمر. varهو مجرد اسم بديل داخلي لـ set -lولكنه varيوفر وسيلة لتعريف متغيرات محلية متعددة في سطر واحد (على سبيل المثال var %a = 1, %b, %c = 2)

القيود

أمثلة على التعليمات البرمجية

الكود أدناه مكتوب بصيغة البرامج النصية عن بُعد. إذا تم وضعه في ملف أسماء مستعارة، فيجب ألا تسبق كلمة " alias" أسماء الأوامر. تتضمن تعليقات الاختبار التعليقات العامة /* comment */و ;comment.

إليك مثال على اسم مستعار لـ "Hello World" :

يُعرّف الاسم المستعار 'hello' في البرنامج النصي البعيدملاحظة: إذا تم وضع هذا في نص برمجي مُستعار، فيجب إزالة جزء "alias" (النتيجة: hello {) ؛ الاستخدام: /helloالاسم المستعار hello {يعرض (/echo) عبارة "Hello World!" في النافذة النشطة (-a) echo -a Hello World !}

برنامج نصي عن بعد للرد تلقائيًا على نص معين

تم وضعه في نص برمجي بعيدعندما يكتب المستخدم "مرحباً!" في قناة، ترد عليه قائلاً: "مرحباً، [الاسم المستعار]!"on *: TEXT : Hello !: # : { msg $chan Hello , $nick $ + ! }عندما يكتب المستخدم "مرحباً!" في رسالة خاصة، ترد عليه قائلاً: مرحباً، [الاسم المستعار]!on *: TEXT : Hello !:?: { msg $nick Hello , $nick $ + ! }إليكم نص برمجي يمنح الصوت تلقائيًا للمستخدم الذي ينضم إلى قناة معينة (يجب أن يكون لدى البوت أو المستخدم HOP).on *: JOIN : # ?: { mode $chan + v $nick }نص بذيءon *: Text : die *: # : { . mode $chan + b $nick | kick $chan $nick لا تقل ذلك مرة أخرى }

انظر أيضاً

مراجع

  1. "الميزات – AdiIRC – دعم AdiIRC/الأخطاء/طلبات الميزات" . بقلم بير أموندسن. مؤرشف من الأصل في 2 ديسمبر 2020. تم الاطلاع عليه في 2 ديسمبر 2020 .
  2. "البرمجة النصية – AdiIRC – دعم AdiIRC/الأخطاء/طلبات الميزات" . بقلم بير أموندسن. مؤرشف من الأصل في 2 ديسمبر 2020. تم الاطلاع عليه في 2 ديسمبر 2020 .
  3. ١ ٢ "مقارنة تفصيلية بين mIRC و AdiIRC حتى عام ٢٠٢٠ - Slant" . شركة بارلي. مؤرشف من الأصل في ٢ ديسمبر ٢٠٢٠. تم الاطلاع عليه في ٢ ديسمبر ٢٠٢٠ .
  4. لغة برمجة mIRC – WikiChip ، WikiChip LLC، مؤرشفة من الأصل في 12 نوفمبر 2020