Jump to content

فاّرس

Members
  • Posts

    4,805
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by فاّرس

  1. mta sa تحصلها في ملفات السيرفر، من سكربتات
  2. resource root : هذي تستخدم للمود بشكل عام ماينفع تستخدمها هنا. لازم تسوي داتا للاعب نفسه! ذا مثال، سيرفر : addCommandHandler ( 'ss', function ( p ) if not getElementData ( p, 'Shot_' ) then setElementData ( p, 'Shot_', false ) end end ) طبعاً الداتا تروح لو سويت ريستارت أو طلعت من السيرفر ودخلت، لازم تحفظ على قواعد بيانات أو على الحساب أو ... وفي كود إظهار الكلام على الشاشه سوي تحقق من الداتا في أول الكود، زي كذا : if getElementData ( source, 'Shot_' ) then return end -- source : the player. طبعاً كذا لو ماغيرت الداتا، اذا بتسوي كود يخلي true قيمتها == false لازم في التحقق تكتب وتعدل كود الأمر.
  3. تأكد أنك مسوي التريقر صح. == true وضيف للتحقق حق اللوحه
  4. أعذرني ياخوي والله مافهمت عليك، الحين هو شغال تمام قبل ماتضيف وظيفة حذف الماركر؟ ويوم ضفتها صار يوم يدخل اللاعب للماركر ويكون آخر لاعب ينحذف؟ اذا كان كذا الخلل من الكود حق الماركر ماهو هنا.
  5. يعني تبي لكل ماركر داتا لحاله؟ واذا سويت ماركر جديد تنحذف الداتا الأولى؟ طيب سوي الداتا على الماركر نفسه، واذا جا يسوي ماركر ثاني صفّر الداتا وبكذا تنحل المشكله. بخصوص أن الماركر ينحذف بدون مايتنفذ اللي داخله، ذا من كودك لازم تخلي حذف الماركر آخر الكود بعد مايخلص تنفيذ الوظائف ينحذف، وبخصوص كودك اللي فوق مافهمت وش تبغى تسوي بالضبط؟
  6. لازم تستخدم المتغيرات أو الداتا اللي يعجبك، بس لازم تحفظها بحيث لو طفى المود ماتروح الداتا، بكذا لازم تحفظ على قواعد البيانات أو أي طريقة حفظ تناسبك... + بخصوص كيف تخلي اللي مسوي الماركر مايتأثر فيه هنا تحتاج متغيرات أو داتا ولازم تحفظها نفس ماقلت لك فوق عشان ماتروح^ بمعنى في حدث دخول الماركر لازم تسوي كذا : local Pnumber = 0; -- هذا تخليه برا الحدث if Pnumber == 10 then destroyElement ( source ) end Pnumber = Pnumber + 1 -- أو if not ( getElementData ( resourceRoot, 'Pnumber' ) ) then setElementData ( resourceRoot, 'Pnumber', 0 ) end setElementData ( resourceRoot, 'Pnumber', ( getElementData ( resourceRoot, 'Pnumber' ) + 1 ) ) سوي تحقق من الشي اللي دخل الماركر لازم يكون لاعب عشان لو دخل واحد بسياره أو شي مايجي . source بـ aMarker خطأ، + بدل
  7. الطريقه تنفع مع الأوبجكت فقط، الماركر ما أتوقع تقدر، فيه عندك طريقه اللي هي انك تسوي ماركر في كل دمنشن ... بإستخدام اللوب، ما أتوقع بيأثر على السيرفر أو بيجيب لاق حسب كلام الويكي.
  8. "onResourceStart" "onPlayerJoin" "onPlayerChangeNick" getElementsByType --مع حدث التشغيل getPlayerName -- مع حدث التشغيل string.find getPlayerSerial kickPlayer
  9. .t تقدر تسوي تحقق من الزر اذا كان ضغط زر
  10. عادي، اذا تقصد ايديت مثلاً وتكتب فيه عدد الأشخاص اللي تبيهم يقدرون يدخلون الماركر، تقدر تستخدم الوظائف ذي : guiGetText -- تجيب الرقم اللي كتبته في الايديت tonumber -- تحول النص إلى رقم لأن الإيديت يعطيك نص وليس رقم getPlayersInMarker -- تتحقق من عدد اللاعبين هل هو يساوي العدد اللي في الإيديت triggerServerEvent, addEvent, addEventHandler -- عشان ترسل النص اللي في الإيديت من الكلينيت للسيرفر يبقى عليك يا انك ماتخلي الوظيفه تتنفذ أو أنك تنقل اللاعب بعد ماتتحقق من عدد اللاعبين داخل الماركر. شفت رد بموضوع ثاني عن هالشي، ما أعرف aPlayer السينتاكس حق ذي بالضبط، لكن عدل . root خلها أهلاً وسهلا (: .
  11. كيف طريقة تجربتك للكود؟ لازم تطلع وتدخل أو "onResourceStart" ضيف حدث
  12. الله يسلمك ويبقيك والنور نورك، يعتمد على كودك، اذا بتسويه بالجداول بينحذف أو يختفي من عند اللي دخله فقط، واذا بدون جداول بيختفي عند الكل. وبخصوص كيف تتحقق من عدد اللاعبين داخل getPlayersInMarker الماركر تقدر تستفيد من وظيفة
  13. وعليكم السلام ورحمة الله وبركاته، وياهلا ومسهلا، أعجبتني صراحه، التصميم من وجهة نظري يعتبر ٩٠٪ من السكربت، الأكواد شي غير ظاهر بعكس التصميم، بالتوفيق❤.
  14. تقصد يختفي أو تحذفه نهائياً؟ ع العموم اذا تبيه يختفي عند اللي دخل الماركر فقط سوي الماركر سيرفر ولازم تستخدم الجداول عشان ماينحذف عند كل اللاعبين*
  15. كيف تبغاه يعطي ميوت والقروب اللي هو فيه مافيه هذي الخاصيه؟ للمعلوميه الأرقومنت الأول تقدر تستخدم إسم player الحساب بدل فيه طريقه اللي هي عن طريق الكوماند، بحيث تتحقق من إسم الحساب وتعطي ميوت للشخص اللي كتب اسمه، وتقدر تستدعي الأمر اذا بغيت، لأنه حسب علمي ماتقدر تضيف خصائص لحساب محدد، لازم تعدل على خصائص .القروب
  16. مايحتاج دام أنها موجوده في السينتاكس أساساً vehicle createVehicle ( int model, float x, float y, float z [, float rx, float ry, float rz, string ... ) صاحب الموضوع، بعد إحداثيات السياره حط إحداثيات الإتجاه زي كذا : Vehicle [ source ] = createVehicle ( 502, x, y, z, rx, ry, rz ) عدلها للإتجاه اللي تبغاه وتقدر تستفيد من وظيفة getElementRotation عشان تجيب الإتجاه حق اللاعب أو السياره عشان تعدل عليه
  17. ^ ليه كل ذا؟ الفكره بسيطه #Client Side : local KEDDX = 'x'; function sendTrigger () if getElementDimension ( localPlayer ) == 30 then triggerServerEvent ( 'openCommand', localPlayer ) end end bindKey ( KEDDX, 'down', sendTrigger ) addEvent ( 'open', true ) addEventHandler ( 'open', root, function () -- هنا أكواد فتح اللوحه فقط --guiSetVisible, guiGetVisible, showCursor end ) #Server Side : addEvent ( 'openCommand', true ) addEventHandler ( 'openCommand', root, function () local pA = getPlayerAccount ( source ); if pA and not isGuestAccount ( pA ) then if isObjectInACLGroup ( 'user.'..getAccountName ( pA ), aclGetGroup ( 'system' ) then triggerClientEvent ( source, 'open', source ) -- outputChatBox .. else -- outputChatBox .. end end end )
  18. ما ادري وش هو مود الديربي هذا، ولكن من خلال فهمي لمشكلتك أنك تبي تعطي نفسك سياره ولكن اذا اعطيت نفسك سياره تنسحب السياره الأصليه وتخسر؟ الكود اللي انت حاطه ماله أي علاقه بالموضوع، الا إذا كان فيه أكواد ثانيه مرتبطه معه. عموماً لازم تعدل على الكود اللي يتحقق ان عندك سياره بحيث تسوي إستثناء انه اذا اعطيت نفسك سياره ثانيه ماتخسر.
  19. الله يبقيك، وش اخباركم من زمان عنكم(: ؟
  20. الحلم صيدله والواقع أشعه): .
  21. طريقه سهله : وداخل التايمر bindKey سوي تايمر داخل الـ حط وظيفة فتح النافذه وخلاص أو سوي متغير وحط قيمته ١٠ وداخل التايمر نقص المتغير وسوي تحقق اذا وصل المتغير لـ٠ افتح النافذه ووقف التايمر. * + تقدر تسوي تحقق من التايمر اذا كان موجود أو لا، عشان مايضغط الزر أكثر من مره وينعاد التايمر تحتاج : bindKey isTimer setTimer guiSetVisible
  22. انت شايف كيف اسلوبه باقي شوي ويضربكم وباقي تساعده!!!
  23. اخوي ماعندك غير كذا او انك تستخدم الدي اكس وبيكون معقد عليك، ذي اسهل طريقة تقريباً، والطريقه راح تكون زي كذا: function guiCreateButton ( ... ) -- كمل الباراميترات نفسها حق الوظيفه -- وبعدين تستخدم وظيفة إنشاء الصورة هنا backG = guiCreateStaticImage ( ... ) -- كمل الارقيومنتات -- بعدين تسوي ليبل عشان الكلام Text = guiCreateLabel ( ... ) return backG end وبكذا اول ماتستدعي وظيفة الزر راح تتغير لصورة وعليها كلام، بس ضبط احداثياتها وكمل الارقيومنتات والباراميترات بين الأقواس، الفكره ماهي صعبه.
×
×
  • Create New...