الدرس 1 من 10

نظام الأحداث

هدف الدرس

الاشتراك في الحدث بـ on وإطلاقه بـ emit

01

الشرح

لا تستدعي سكربتات الألعاب بعضها مباشرة، بل تتواصل عن طريق الأحداث، فدخول لاعب، أو نفاد صحّته، أو التقاط عنصر، كل ذلك حدث يُطلَق، ويستمع إليه من يهمّه أمره. وبهذه الطريقة تعمل AddEventHandler وTriggerEvent في FiveM، و:Connect و:Fire في Roblox.

ويكفي لبناء هذا النظام جدول واحد، مفتاحه اسم الحدث وقيمته قائمة الدوال المستمعة، فتضيف on دالة إلى القائمة، وتمرّ emit على الدوال وتستدعيها بالوسائط.

والنقاط الثلاث ... في Lua تعني «كل الوسائط التي وصلت»، وتمرّرها كما هي هكذا: handler(...).

02

المطلوب

اكتب on(name, handler) وemit(name, ...) بحيث يمكن أن يكون للحدث الواحد عدّة مستمعين يُستدعَون بترتيب إضافتهم، وألّا يرمي الحدث خطأً إن لم يكن له مستمعون.

الفحوص

6 فحوص
  1. الدالتان on وemit معرَّفتان
  2. المستمع يُستدعى بالوسيط
  3. عدّة مستمعين يُستدعَون بالترتيب
  4. كل الوسائط تصل إلى المستمع
  5. حدث بلا مستمعين لا يرمي خطأ
  6. المثال طبع الترحيب
03

تلميحات

0/3
دروس المسارأتممت 0 من 10

تتعلّم هنا الأنماط التي تُبنى بها سكربتات الألعاب وخوادمها، مثل الأحداث والكيانات والمؤقّتات وآلات الحالات.

مستواه متقدّم، وفيه 10 دروس مجموع مدّتها ساعتان ونصف.

main.lua
المخرجاتLua 5.4 (wasmoon)

نحمّل بيئة Lua الآن.

–/6

يبدأ الفحص حين تجهز البيئة.

تجد 6 فحوص في بطاقة «المطلوب».

دروس المسارأتممت 0 من 10

تتعلّم هنا الأنماط التي تُبنى بها سكربتات الألعاب وخوادمها، مثل الأحداث والكيانات والمؤقّتات وآلات الحالات.

مستواه متقدّم، وفيه 10 دروس مجموع مدّتها ساعتان ونصف.