النصوص البرمجية هي ملفات نصية بسيطة تتيح لك إضافة سلوكيات مخصصة وديناميكية إلى ألعابك. يمكنك استخدام النصوص البرمجية لتفعيل الأحداث داخل اللعبة، والاستجابة لإدخال اللاعبين، وحفظ بيانات اللاعبين، وإنشاء لوحات المتصدرين، واست spawn الأعداء، والتحكم في سلوك NPC، والكثير، والكثير من ذلك.
Luau
تستخدم نصوص Roblox لغة البرمجة Luau، المشتقة من Lua 5.1.
- مقارنةً بـ Lua 5.1، تضيف Luau تحسينات في الأداء والعديد من الميزات المفيدة، بما في ذلك نظام كتابة اختياري، وتداخل السلاسل، وتكرار عام للجداول.
- جميع التعليمات البرمجية الصالحة لـ Lua 5.1 هي تعليمات برمجية صالحة لـ Luau، لكن العكس ليس صحيحًا.
لا تزال معظم الكتب والموارد عبر الإنترنت الخاصة بلغة Lua تنطبق بشكل عام على Luau. للحصول على ملخص مفصل للاختلافات، انظر التوافق في وثائق Luau. بالنسبة لأسلوب اللغة، انظر مرجع Luau.
أساسيات Luau
تعتبر Luau ذات نوع تدريجي، لذا لا تحتاج إلى تحديد نوع عندما تنشئ متغيرًا. يمكنك استخدام type() للتحقق من نوع الكائن:
logMessage = "لدى المستخدم أكثر من 10 عناصر!"print(logMessage) --> لدى المستخدم أكثر من 10 عناصر!print(type(logMessage)) --> string
تحتوي Luau على نطاقات عالمية ومحلية، لكن من الأفضل تقريبًا دائمًا إعلان المتغيرات والوظائف محليًا باستخدام الكلمة الرئيسية local:
local logMessage = "لدى المستخدم أكثر من 10 عناصر!"
local function printMessage()
print(logMessage)
end
printMessage() --> لدى المستخدم أكثر من 10 عناصر!
تستخدم Luau nil لتمثيل عدم الوجود أو العدم، والذي يتم تقييمه كـ false في التعليمات الشرطية:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- البيان يتم تقييمه إلى falseend
كما قد تكون قد لاحظت، فإن -- يبدأ تعليقًا على سطر واحد. بينما ينشئ --[[]] تعليقًا كتليًا:
--[[
يوقف شعاع القمر الكوني على الفور.
يجب استدعاؤه فقط في غضون 15 دقيقة من منتصف الليل بتوقيت الجبل القياسي
لتجنب إلحاق الأذى بالشعاع الكوني للقمر.
]]
local function stopCosmicMoonRay()
-- أضف هذا لاحقًا، قد يكون مهمًا
end
الجداول هي المصطلح العام للمصفوفات والقواميس. المصفوفات تعتمد على الرقم 1 بدلاً من الرقم 0، لذا فإن العنصر الأول هو [1]. تقوم بإعلان المصفوفات والقواميس باستخدام مجموعة واحدة من الأقواس المعقوفة:
local myArray = {"رقائق", "مياه فوارة", "صلصة"}local myDictionary = {وجبة خفيفة = "رقائق",شراب = "مياه فوارة",صلصة = "صلصة"}print(myArray[1]) --> رقائقprint(myDictionary.صلصة) --> صلصة
يمكنك التكرار على الجداول باستخدام حلقات for مع الدالة ipairs() للمصفوفات والدالة pairs() للقواميس، لكن Luau يتيح لك أيضًا حذف هذه الوظائف للحصول على صياغة أنظف:
for index, value in ipairs(myArray) do -- Lua قياسيprint(index, value)endfor key, value in pairs(myDictionary) do -- Lua قياسيprint(key, value)endfor key, value in myDictionary do -- تكرار عام في Luauprint(key, value)end
البرنامج النصي الأول لك
في Roblox Studio، مرر فوق ServerScriptService في نافذة Explorer وانقر على +.
اختر Script لإضافة نص برمجي جديد.
انقر بزر الماوس الأيمن على النص البرمجي وأعد تسميته إلى HelloScript.
انقر نقرًا مزدوجًا على النص البرمجي لفتحه في محرر النصوص.
أضف الكود التالي إلى الملف:
local helloArray = {"h", "e", "l", "l", "o"}local worldArray = {"w", "o", "r", "l", "d"}for index, value in helloArray doprint(value)endprint(table.concat(worldArray))تأكد من فتح نافذة Output.
قم بتشغيل لعبتك ودوّن المخرجات:
hel (x2)oworld
كن مرتاحًا
جزء كبير من التكيف مع بيئة تطوير جديدة هو تكوينها لتلبية احتياجاتك وفهم الأدوات المتاحة لك:
- قسم محرر النصوص في إعدادات الاستوديو يتيح لك ضبط ميزات الجودة مثل الخطوط، والألوان، والمسافات، والإكمال التلقائي، والأقواس، ونصائح الأدوات. قد ترغب أيضًا في تمكين وضع الظلام في قسم استوديو.
- Holding Ctrl or Command والنقر على وظيفة أو متغير يأخذك إلى إعلانها في قاعدة شفرتك (أو الوثائق عبر الإنترنت). يمكن أن تساعدك البحث والبحث عن الكل في التنقل عبر المشاريع الأكبر.
- نافذة Output هي الأداة الأساسية لفهم سلوك نصوصك البرمجية. استخدم قائمة ⋯ لتمكين إظهار السياق وإظهار المصدر.
- نافذة تحليل النصوص تظهر ملخصًا للأخطاء والتحذيرات، لكن قد تجد فائدتها محدودة؛ حيث يسلط محرر النصوص الضوء بالفعل على هذه المشكلات أثناء الكتابة.
للمزيد من المعلومات حول تكوين الاستوديو للبرمجة النصية، راجع محرر النصوص.
نصك البرمجي الثاني
في Roblox Studio، أضف نصًا برمجيًا إلى ReplicatedStorage في نافذة Explorer وأعد تسميته إلى OhNo.
أضف الكود التالي إلى الملف:
print("مرحبًا بنصوص وأنواع المواقع!")لاحظ كيف أن المخرجات لا تختلف عن عندما كنت قد قمت بتشغيل نصك البرمجي الأول.
لفهم سبب عدم تشغيل النص البرمجي، انظر أنواع النصوص ومواقعها.