اهلا وسهلا حيآك الله,
بسوي شرح مفصل لك ولكل واحد يبي يتعلم البرمجه,
اول تدخل الويكي, ويفضل العربي لو كنت مبتدأ مع العلم ان العربي لم تكتمل ترجمته
* Main Page : العربي
* Main Page : الانجليزي
* هذا ملف اساسي يعني بدونه ما يشتغل المود , ولو كان فيه اي خطأ ما يشتغل المود ابدآ meta.xml اول شيء تدخل على المقدمه, اهم شيء تعرف كيف تسوي الـ
* اذا غيرته ما راح يشتغل meta.xml ملاحظة : لازم يكون اسم الملف
واظن في شرح في قسم شروحات البرمجه meta.xml واذا تبي شرح مفصل بالانجليزي ادخل هنآ
* كيف تكون الكود؟ طبعا انت تدخل على الاكواد الي تبيها , طبعا انت مثلا مو حافظ فنكشن (وظيفه ) كيف راح تجيبها؟
* : لو تدخل الويكي تلاحظ على اليسار
Client Functions
Client Events
Server Functions
Server Events
Useful Functions
MTA Classes
MTA Elements
Element Tree
* ملاحظة مهمه جدآ : فيه وظائف واحداث تكون للسيرفر يعني ما تشتغل الا يوم يكون الملف سيرفر وفيه احداث ووظائف لازم يكون كلينت . وراح تفهمmeta.xml وفيه وظائف تكون سيرفر وكلينت , طبعا تقولي كيف تحط الملف كلينت او سيرفر , راجع شرح كيف تسوي
* Client Functions مثلا ندخل على
: طبعا تطلع لك الاقسام
عشان تسهل عليك البحث عن الوظائف او الاحداث,
* Audio functions مثلا ندخل اول واحده
مثلا ناخذ اول واحده,
playSoundFrontEnd
اذا ضغطت عليها تدخلك صفحه , طبعا هذي هي الي نحتاجها,
يعني ان الوظيفه تجي كلينت وسيرفر Client and Server function اول شيء تشوف على اليسار شوي
بعدين تشوف وش تسوي الوظيفه بالضبط,
This function plays a frontend sound for the specified player. Note: These sounds can be disabled with setWorldSoundEnabled so if these sounds stop working you should check if you're disabling the sounds.
* طبعا اهم شيء الانجليزي يكون كويس لأن اكثر المترجمات تجي غريبه او غير مفهومه,
setWorldSoundEnabled طبعا بإختصار الوظيفه تشغل لك صوت من اللعبه يعني ما يحتاج تسوي صوت من عندك , وتقدر تلغي الاصوات بوظيفه
* طيب تبي تعرف كيف تسوي الوظيفه؟
* Syntax تنزل تحت واهم شيء بالصفحه كامله وهو
* بعض الوظائف يختلف فيها , يعني مره يكون في شيء مو لازم تكتبه وراح نشرحه اكثر تحت إن شاء الله Syntax ملاحظه قبل نبدأ : الـ
bool playSoundFrontEnd ( player thePlayer, int sound )
^ لو انت فهمته اعتبر نفسك سويت الكود كامل Syntax هذا هو الـ
وهذي مفردات تسهل لك فهم الاشياء وتقدر تضغط على كل واحده وتشوف وش وظيفتها وفيه موضوع في قسم شروحات البرمجه bool , player , int طبعا تشوف
* يعني ارقومنتات اجباريه , وهذا يدل انه فيه اختياريه بمعنى انه لو كتبتها او ما كتبتها ما يأثر Required Arguments الحين نبي نعرف الارقومنت او ما يسمى بـ
Required Arguments :
! الي في الوظيفه فوق thePlayer انت تبي تعرف وش هو الـ
طبعا الارقومنتات هي بإختصار الي بين القوسين حق الوظيفه
thePlayer: The player you want the sound to play for.
يعني انه اللاعب الي تبي تحط له الصوت وطبعا لو تلاحظ انه هذه الوظيفه سيرفر وكلينت , ولكن هذا خاص بالسيرفر ,
* كيف تعرف الكلينت والسيرفر ؟
اللون البرتقالي يثبت ان الوظيفه او الحدث سيرفر فقط
اللون الاحمر يثبت ان الوظيفه او الحدث كلنت فقط
اللون الازرق يثبت ان الوظيفه كلنت وسيرفر
الويكي يقول sound تلاحظ ان الارقومنت الثاني وهو
sound: A whole int specifying the sound id to play. Valid values are:
اي دي الصوت الي تبيه يشتغل طبعا هناك اصوات محدده وهي من اللعبه , في وظائف مخصصه ان تركب اصوات من عندك من جهازك,
: والاصوات حق اللعبه
0 - 20 Selection sounds
27 - 30 Bullet sounds
32 - 33 Selection sounds
34 Radio static
35 Stop Radio static
37 - 38 Tick
40 Selection sounds
41 - 42 Tick (no ammo)
43 - 45 Race countdown
46 Repair
47 White noise static
48 Stop White noise static
49 Static short
101 Countdown/selection
هو اللاعب الي تبي تشغل له الصوت thePlayer طبعا الحين فهمنا ان
ولكن وش تكتب بالضبط ؟ هو على حسب الايفنت تقريبا , الايفنت وهو الحدث,
,يعني اذا اللاعب سوى سباون يعني نزل في البدايهonPlayerSpawn فـ مثلا حدث
طبعا فيه احداث فيها وفيه مافيها , وهذا الحدث فيه Parameters طبعا لو تدخل عليه بتحصل شيء يساعدك وهو
طبعا هو كيف ؟
هو ينكتب في الوظيفه ,
function ( هنآ )
يعني اذا لمس العنصر الماركر وطبعا فيه حدث للكلينت وهو يكون للاعب يعني اذا لمس اللاعب الماركر onMarkerHit وهو يفيدك يسهل عليه الاكواد, فـ مثلا حدث
يكون للعنصر ! طيب كيف اعرف العنصار ؟ onMarkerHit كيف يعني ؟ يعني الحدث
لو ترجع للكلام الي فوق
Client Functions
Client Events
Server Functions
Server Events
Useful Functions
MTA Classes
MTA Elements
Element Tree
MTA Elements الحين احنا نحتاج نعرف وش هي العناصر , تلاحظ ان فيه
لو فتحتها راح تلاحظ العناصر وهي مثلا اللاعب , او البيد , او السياره , او الابجكت او ...الخ,
لو تفتح صفحته تلاحظ onMarkerHit نكمل على
Parameters
element hitElement, bool matchingDimension
hitElement: The element that hit the marker
matchingDimension: True if the element is in the same dimension as the marker he hit
مو شرط تكتب نفس الشيء الي بالويكي اهم شيء الترتيب Parameters طبعا الـ
يعني العنصر الي لمس الماركر وقلنا العنصر ممكن يكون لاعب او ...الخ , وطبعا الحدث الي في الكلنت يكون للاعب نفسه element طبعا تلاحظ انه كاتب لك
matchingDimension طبعا يقولك صحيح اذا كان في نفس عالم الماركر
مثآل,
function Hit(element,dim)
طيب متى احط اسم للوظيفه ومتى ما احط؟ Hit هو اسم الوظيفه ,
تحط اسم للوظيفه اذا كانت الوظيفه بدون حدث ,مثال,
function newFunction()
end
طبعا الوظيفه الي بدون حدث مهما حطيت فيها من اكواد ما راح تشتغل ابدأ , طيب ليه ؟ لأن مافيه شيء يشغلها مثل التايمر , التايمر هو وقت لتشغيل الشيء وتقدر تدخل صفحته
setTimer
وتحط اسم للوظيفه اذا كان الحدث تحت, مثآل,
function newCommand(player,cmd,arg)
end
addCommandHandler('New',newCommand)
يسوي لك امر من اف8 , مثلا تكتب فلوس , ويعطيك فلوس , طبعا على حسب الي تسويه انت addCommandHandler هذا الحدث
مثلا سويت امر اذا كتبت خروج , يطردك من السيرفر ...الخ
وتكتب الوظيفه بدون اسم اذا كان الحدث فوق مثل,
addCommandHandler('New',
function(player,cmd,arg)
end
)
(player,cmd,arg) طبعا انت اكيد ملاحظ
ومثل ما قلنا لكل حدث شيء مخصص فيه Parametersوهذي هي الـ
الحين لازم تعرف الشروط والاشياء الاساسيه,
if
وهذا شرط اذا كان الشيء فإنه...
مثال ,
LUA اذا كان عندك فلوس إنك تشتري من البقاله, كذا العباره الشرطيه, مثل في اللغه
if isElementInWater(localPlayer) then
givePlayerMoney(100)
يعني انه اذا كان العنصر في البحر فإننا نعطيه فلوس , اتمنى فهمت,
طبعا تلاحظ ان
givePlayerMoney(100)
طبعا راح يعطيه فلوس وهميه , بمعنى لو اشترى شيء ما بيكون معه شيء , لأن الكود كلينت , وطبعا تختلف الي بيكون وهمي راح تشوف عليه تنبيه بالويكي,
ومعناه اللاعب المحلي يعني الشخص الي سوى شيء مثلا الي ضغط على الزر او ...الخ localPlayer طبعا تلاحظ
* localPlayer كلينت فقط
getLocalPlayer() وهي اختصار لـ
نفسها mta بس الفرق ان هناك اختصار معرف من
نفسها , مثل mta وطبعا هناك اختصارات غير معرفه من
Name = getPlayerFromName('LUA')
وفيه اساسيات مثل,
repeat , until , for , do , while , else , elseif
طبعا كيف تقفل الوظيفه اذا انتهيت؟
end بإستخدام
وبعضها ما تحتاج end وهناك اساسيات تحتاج
if تحتاج end
do = تحتاج end
... الخ
if طبعا في اختصار لـ
end طبعا اختصار عشان ما تحط اكثر من
مثآل,
if cmd == '1' then
-- الوظيفه #
elseif cmd == '2' then
-- الوظيفه #
end
واحده end تلاحظ حطيت
مثلا انت شخص ما تبي تختصر ,
if cmd == '1' then
-- الوظيفه #
end
if cmd == '2' then
-- الوظيفه #
end
end 2 تلاحظ
لأني قفلت الشرط الاول وفتحت الشرط الثاني
else وطبعا فيه
وهذي تكون عكس الشرط بمعنى ,
الشرط ,
اذا كان معك فلوس تشتري من البقاله,
عكسه ,
اذا لم يكن معك فلوس لن تشتري من البقاله
LUA مثال في اللغه
if isElementInWater(localPlayer) then
givePlayerMoney(100)
else
outputChatBox('You are not in water')
end
يصير الشرط,
اذا لم يكن في البحر نطلع له نص في الشات ,
function وطبعا اهم الشيء وهو
هذي اساس الطبخه
end واكيد هي لازم
ومعليش ع الرد الطويل , اتمنى فهمت , بالتوفيق
edit #
فيه شيء مهم جدا وهو علامات الضرب والقسمه و...الخ,
== تستخدم الشرط مثآل,
if getPlayerMoney() == 100 then
= وتستخدم للمتغيرات مثآل,
clicked = false
~= وتعني لا يساوي مثآل,
if getPlayerMoney() ~= 100 then
< وتعني اصغر من مثآل,
if getPlayerMoney() < 100 then
<= وتعني اصغر من او يساوي مثآل,
if getPlayerMoney() <= 100 then
> وتعني اكبر من , مثآل,
if getPlayerMoney() > 100 then
>= وتعني اكبر من او يساوي
if getPlayerMoney() >= 100 then
* وتعني ضرب مثآل,
givePlayerMoney(100*20)
^ وتعني اس
givePlayerMoney(100^20)
# وهي تجيب القيم من الجدول
مثآل,
math.random(#getAllTables)
/ وتعني قسمه مثآل,
50 / 2
+ , - معروفه ذي ذذ