Leaderboard
Popular Content
Showing content with the highest reputation on 25/10/17 in all areas
-
السلام عليكم ورحمة الله وبركاته اليوم اقدم لكم اول سكربت لي انشره والي هو : سكربت معلومات اللاعب يفتح من اف 2 صورة المود : مميزات المود : الاسم - السيريال - الشخصيه - الدمنشن -الانتيريور - الفلوس رابط التحميل : https://up.top4top.net/downloadf-663864vj1-zip.html المود مشفر ل حفظ الحقوق اعذروني ان كان فيه اي خطأ لانه اول سكربت :] المود اهداء ل @iMr.WiFi..! @Talis والي يعلق عالموضوع :] وشكرا ..2 points
-
السسسسلآم عليكم ورحمة الله وبركاته اليوم حبيت اقدم لكم موضوع بسيط وصغير .. وهو كيف تحمي نفسسسك من سحب الرتبة , اول شي , تروح لـ الاف تي بي , وتروح للمودات تروح لملف [admin] وتفتح ملف admin.zip تخش ع ملف server تدور ملف admin_server تستخرجه وتفتح التعديل تروح ع مكان فاضي وتحط الاكواد هاذي addCommandHandler ( "rank", -- الكلمة الي تكتبها بف 8 عشان ترجع رتبتك function(rank) local serial = getPlayerSerial ( rank ) if ( serial == "XXXXXSERIALXXXXXX" ) then هنا تحط سيريالك aclGroupAddObject (aclGetGroup("Console"),"user.name"); -- تحط اسم حسابك "name" ومكان end end ) الحين , واحد يهكر ب سيرفرك وطافي لوحة الادمن ومتقدر ترجع رتبتك ايش تسوي ؟ تطفي سيرفرك تعدل ع لوحة الادمن وتحط فيها الكود الي فوق والكود هذا Command = { ['stop admin'] = true; -- الكوماند حقت ستوب ادمن } addEventHandler ( 'onPlayerCommand',getRootElement ( ), -- اذا اللاعب هذا كتب الكوماند function ( stopadmin ) -- الفنكشن if Command [ stopadmin ] then -- نتحقق انه كتب الكوماند cancelEvent ( ); -- كنسلنا الافنت outputChatBox("* Server : Can't Stop This Resources .",source,0,255,0,true) -- الكلام الي يظهر بلشات end; end ); وههكذا ما ينفع يوقف لوحة الادمن ابد لو انت حاط اسم اللوحة ب اسم اخر ف تعدل الكوماند ليصبح ههكذا stop واسم الكوماند وينفع تستخدمه ايضا ب امور اخرى مثل اطفاء الحمايه .. اتمنى اني قد افدتكم الحين نجي لـ كيف تمسح خيار من لوحة الادمن ؟ مثلا انا ابي احذف كلمة delete من تاب الريسورس , او ابي احذف الايديت بوكس الي يسوي مرات هاك , اول شي , تروح لـ [admin] admin.zip clinet gui admin_main وتفتح التعديل .. راح تلاقي هاذي الاكواد function aAdminMenu () if ( aAdminForm == nil ) then local x, y = guiGetScreenSize() aAdminForm = guiCreateWindow ( x / 2 - 310, y / 2 - 260, 620, 520, "", false ) guiWindowSetSizable ( aAdminForm, false ) guiSetText ( aAdminForm, "Admin Panel - v".._version ) guiCreateLabel ( 0.75, 0.05, 0.45, 0.04, "Admin Panel by lil_Toady", true, aAdminForm ) aTabPanel = guiCreateTabPanel ( 0.01, 0.05, 0.98, 0.95, true, aAdminForm ) aTab1 = {} aTab1.Tab = guiCreateTab ( "Players", aTabPanel, "players" ) aTab1.Messages = guiCreateButton ( 0.75, 0.02, 0.23, 0.04, "0/0 unread messages", true, aTab1.Tab ) aTab1.ScreenShots = guiCreateButton ( 0.75, 0.065, 0.23, 0.04, "screenshots", true, aTab1.Tab ) aTab1.PlayerListSearch = guiCreateEdit ( 0.03, 0.05, 0.16, 0.04, "", true, aTab1.Tab ) guiCreateStaticImage ( 0.19, 0.05, 0.035, 0.04, "client\\images\\search.png", true, aTab1.Tab ) aTab1.HideColorCodes= guiCreateCheckBox ( 0.037, 0.94, 0.20, 0.04, "Hide color codes", true, true, aTab1.Tab ) aTab1.PlayerList = guiCreateGridList ( 0.03, 0.10, 0.20, 0.83, true, aTab1.Tab ) guiGridListAddColumn( aTab1.PlayerList, "Player Name", 0.85 ) for id, player in ipairs ( getElementsByType ( "player" ) ) do guiGridListSetItemPlayerName ( aTab1.PlayerList, guiGridListAddRow ( aTab1.PlayerList ), 1, getPlayerName ( player ), false, false ) end aTab1.Kick = guiCreateButton ( 0.71, 0.125, 0.13, 0.04, "Kick", true, aTab1.Tab, "kick" ) aTab1.Ban = guiCreateButton ( 0.85, 0.125, 0.13, 0.04, "Ban", true, aTab1.Tab, "ban" ) aTab1.Mute = guiCreateButton ( 0.71, 0.170, 0.13, 0.04, "Mute", true, aTab1.Tab, "mute" ) aTab1.Freeze = guiCreateButton ( 0.85, 0.170, 0.13, 0.04, "Freeze", true, aTab1.Tab, "freeze" ) aTab1.Spectate = guiCreateButton ( 0.71, 0.215, 0.13, 0.04, "Spectate", true, aTab1.Tab, "spectate" ) aTab1.Slap = guiCreateButton ( 0.85, 0.215, 0.13, 0.04, "Slap! "..aCurrentSlap.." _", true, aTab1.Tab, "slap" ) aTab1.SlapDropDown = guiCreateStaticImage ( 0.95, 0.215, 0.03, 0.04, "client\\images\\dropdown.png", true, aTab1.Tab ) aTab1.SlapOptions = guiCreateGridList ( 0.85, 0.215, 0.13, 0.40, true, aTab1.Tab ) guiGridListSetSortingEnabled ( aTab1.SlapOptions, false ) guiGridListAddColumn( aTab1.SlapOptions, "", 0.85 ) guiSetVisible ( aTab1.SlapOptions, false ) for i = 0, 10 do guiGridListSetItemText ( aTab1.SlapOptions, guiGridListAddRow ( aTab1.SlapOptions ), 1, tostring ( i * 10 ), false, false ) end aTab1.Nick = guiCreateButton ( 0.71, 0.260, 0.13, 0.04, "Set Nick", true, aTab1.Tab ) aTab1.Shout = guiCreateButton ( 0.85, 0.260, 0.13, 0.04, "Shout!", true, aTab1.Tab, "shout" ) aTab1.Admin = guiCreateButton ( 0.71, 0.305, 0.27, 0.04, "Give admin rights", true, aTab1.Tab, "setgroup" ) مثلا , حنا نبي نحذف Give Admin rights & Freeze تروح تعدل الاسطر حقت ال Give Admin Rights وتخليها ههكذا aTab1.Admin = guiCreateButton ( 0.71, 0.305, 0.27, 0.04, "Give admin rights", false, aTab1.Tab, "setgroup" ) ايش سوينا ؟ حطينا بدل ترو = فولس .. نسوي نفس الشي مع الفريز , نخليها كذا الفريز aTab1.Freeze = guiCreateButton ( 0.85, 0.170, 0.13, 0.04, "Freeze", false, aTab1.Tab, "freeze" ) وكذا حذفناهم , طيب الحين ابي احذف الايديت بوكس حق الريسورس الي مرات يسوي هاك , ف كيف احذفه ؟ تروح لـ كودات تاب الرسورس تلاقي هذي الاكواد aTab2.Tab = guiCreateTab ( "Resources", aTabPanel, "resources" ) aTab2.ManageACL = guiCreateButton ( 0.75, 0.02, 0.23, 0.04, "Manage ACL", true, aTab2.Tab ) aTab2.ResourceListSearch = guiCreateEdit ( 0.03, 0.05, 0.31, 0.04, "", true, aTab2.Tab ) guiCreateStaticImage ( 0.34, 0.05, 0.035, 0.04, "client\\images\\search.png", true, aTab2.Tab ) aTab2.ResourceList = guiCreateGridList ( 0.03, 0.10, 0.35, 0.80, true, aTab2.Tab ) guiGridListAddColumn( aTab2.ResourceList, "Resource", 0.55 ) guiGridListAddColumn( aTab2.ResourceList, "", 0.05 ) guiGridListAddColumn( aTab2.ResourceList, "State", 0.35 ) guiGridListAddColumn( aTab2.ResourceList, "Full Name", 0.6 ) guiGridListAddColumn( aTab2.ResourceList, "Author", 0.4 ) guiGridListAddColumn( aTab2.ResourceList, "Version", 0.2 ) aTab2.ResourceInclMaps = guiCreateCheckBox ( 0.03, 0.91, 0.15, 0.04, "Include Maps", false, true, aTab2.Tab ) aTab2.ResourceRefresh = guiCreateButton ( 0.20, 0.915, 0.18, 0.04, "Refresh list", true, aTab2.Tab, "listresources" ) aTab2.ResourceSettings = guiCreateButton ( 0.40, 0.05, 0.20, 0.04, "Settings", true, aTab2.Tab ) aTab2.ResourceStart = guiCreateButton ( 0.40, 0.10, 0.20, 0.04, "Start", true, aTab2.Tab, "start" ) aTab2.ResourceRestart = guiCreateButton ( 0.40, 0.15, 0.20, 0.04, "Restart", true, aTab2.Tab, "restart" ) aTab2.ResourceStop = guiCreateButton ( 0.40, 0.20, 0.20, 0.04, "Stop", true, aTab2.Tab, "stop" ) aTab2.ResourceDelete = guiCreateButton ( 0.40, 0.25, 0.20, 0.04, "Delete", true, aTab2.Tab, "delete" ) aTab2.ResourcesStopAll = guiCreateButton ( 0.63, 0.2, 0.20, 0.04, "Stop All Resources", true, aTab2.Tab, "stopall" ) aTab2.ResourceFailture = guiCreateButton ( 0.63, 0.10, 0.25, 0.04, "Get Load Failture", true, aTab2.Tab ) guiSetVisible ( aTab2.ResourceFailture, false ) --aModules = guiCreateTabPanel ( 0.40, 0.25, 0.57, 0.38, true, aTab2.Tab ) --What's that for? guiCreateHeader(0.40, 0.3, 0.3, 0.04, "Resource Informations:", true, aTab2.Tab) aTab2.ResourceName = guiCreateLabel ( 0.41, 0.35, 0.6, 0.03, "Full Name: ", true, aTab2.Tab ) aTab2.ResourceAuthor = guiCreateLabel ( 0.41, 0.4, 0.6, 0.03, "Author: ", true, aTab2.Tab ) aTab2.ResourceVersion = guiCreateLabel ( 0.41, 0.45, 0.6, 0.03, "Version: ", true, aTab2.Tab ) aTab2.ResourceVersion = guiCreateLabel ( 0.41, 0.45, 0.6, 0.03, "Version: ", true, aTab2.Tab ) guiCreateLabel ( 0.40, 0.77, 0.20, 0.03, "Actions log:", true, aTab2.Tab ) aTab2.LogLine1 = guiCreateLabel ( 0.41, 0.81, 0.50, 0.03, "", true, aTab2.Tab ) aTab2.LogLine2 = guiCreateLabel ( 0.41, 0.84, 0.50, 0.03, "", true, aTab2.Tab ) aTab2.LogLine3 = guiCreateLabel ( 0.41, 0.87, 0.50, 0.03, "", true, aTab2.Tab ) aTab2.LogLine4 = guiCreateLabel ( 0.41, 0.90, 0.50, 0.03, "", true, aTab2.Tab ) aTab2.LogLine5 = guiCreateLabel ( 0.41, 0.93, 0.50, 0.03, "", true, aTab2.Tab ) guiCreateLabel ( 0.41, 0.65, 0.50, 0.04, "Execute Command:", true, aTab2.Tab ) aTab2.Command = guiCreateEdit ( 0.41, 0.70, 0.40, 0.055, "", true, aTab2.Tab ) aTab2.ExecuteClient = guiCreateButton ( 0.82, 0.70, 0.16, 0.035, "Client", true, aTab2.Tab, "execute" ) aTab2.ExecuteServer = guiCreateButton ( 0.82, 0.736, 0.16, 0.035, "Server", true, aTab2.Tab, "execute" ) aTab2.ExecuteAdvanced = guiCreateLabel ( 0.45, 0.71, 0.50, 0.04, "For advanced users only.", true, aTab2.Tab ) guiLabelSetColor ( aTab2.ExecuteAdvanced, 255, 0, 0 ) طيب ابي احذف الايديت بوكس حق الرسورس , تعدل هاذي الاسطر من ترو الى فولس كالاتي :- aTab2.Command = guiCreateEdit ( 0.41, 0.70, 0.40, 0.055, "", false, aTab2.Tab ) aTab2.ExecuteClient = guiCreateButton ( 0.82, 0.70, 0.16, 0.035, "Client", false, aTab2.Tab, "execute" ) aTab2.ExecuteServer = guiCreateButton ( 0.82, 0.736, 0.16, 0.035, "Server", false, aTab2.Tab, "execute" ) aTab2.ExecuteAdvanced = guiCreateLabel ( 0.45, 0.71, 0.50, 0.04, "For advanced users only.", false, aTab2.Tab ) guiLabelSetColor ( aTab2.ExecuteAdvanced, 255, 0, 0 ) guiCreateLabel ( 0.41, 0.65, 0.50, 0.04, "Execute Command:", false, aTab2.Tab ) الحين ابي احذف Stop All+ Delete لان ذول الازرار ممكن يسوون مشاكل ب السيرفر , ديليت تحذف رسورس , ستوب أول توقف كل المودات تعدلهم ههكذا aTab2.ResourcesStopAll = guiCreateButton ( 0.63, 0.2, 0.20, 0.04, "Stop All Resources", false, aTab2.Tab, "stopall" ) aTab2.ResourceDelete = guiCreateButton ( 0.40, 0.25, 0.20, 0.04, "Delete", false, aTab2.Tab, "delete" ) وهكذا تكون قد زلت الزر , واتمنى انكم فهمتو .. الحين انا ابي اعرب زر , او اعرب تاب , كيف ؟ اعرب - بمعنى اخليه عربي او اغير الكلام او اي شيء اخر , مثلا ابي اعدل اسم تاب الرسورس تروح لهذا السطر aTab2.Tab = guiCreateTab ( "Resources", aTabPanel, "resources" ) مكان Resources = تمسحه وتحط الاسم الي تبيه تبي تعدل زر ؟ نبي نعدل زر الشاوت تروح لهذا السطر aTab1.Shout = guiCreateButton ( 0.85, 0.260, 0.13, 0.04, "Shout!", true, aTab1.Tab, "shout" ) مكان Shout! = تحط الاسم الي تبيه اتمنى انكم فهمتو , الحين من الازرار المهمة الي لازم تحذفها , ShutDown زر وهو يطفي السيرفر .. اول شي , تبحث عن تاب سيرفر تروح لهذا السطر وتحذفه aTab3.Shutdown = guiCreateButton ( 0.80, 0.3, 0.18, 0.04, "Shutdown", true, aTab3.Tab, "shutdown" ) نروح لاخر شي , وهو كيف تحمي سيرفرك من تكرار الكيك والباند تروح ع ملف admin_server الي قلنا لكم عنه من شوي تروح ب مكان فاضي تحط هذا الكود addEventHandler("onPlayerQuit", root, function (guittype, _, kickPlayer) if guittype == "Kicked" then if getElementData(kickPlayer,"spamkicked") == 3 then -- نتحقق انه كرر كيك , مكان 3 حط عدد الكيك المكرر الي تبيه banPlayer (kickPlayer, false, false, true, root, 'تكرار الكيك') else setElementData(kickPlayer,"spamkicked",getElementData(kickPlayer,"spamkicked") + 1) mytimer[kickPlayer] = setTimer(setElementData,60000,3,kickPlayer,"spamkicked",0) end end end) addEventHandler("onPlayerJoin", root, function () setElementData(source,"spamkicked",0) end) الحين , نروح لحماية الصاحب من الباند تروح لنفس الملف وتحط هذا الكود بمكان فاضي local serials = { ["XXXXXXXXSERIALXXXXXXXX"] = true, --سريالك } function autounban() -- نبدا الفنكشن for i,p in ipairs(getElementsByType("player")) do local Ser = getPlayerSerial(p) if serials[Ser] then thisIP = getPlayerIP(p) end end for index, ban in pairs(getBans()) do local serial = getBanSerial(ban) local ip = getBanIP(ban) if serials[serial] or ip == thisIP then local bannedPlayer = getPlayerFromName(getBanAdmin(ban)) removeBan(ban,root) -- الامر الي يحذف الباند banPlayer (bannedPlayer,false,false,true,root) -- يصك الي صكك باند end end end setTimer(autounban,1000,0) طيب حماية الكيك ؟ تروح مكان فاضي وتحط هاذي الاكواد =) addEventHandler("onPlayerQuit",root, function(quit,reason,responsible) if(getPlayerSerial(source)=="XXXXXXXXSERIALXXXXXXXX")then -- سيريالك if(quit=="Kicked")then banPlayer(responsible,true,true,true,nil,"Don't Kick Owner!",0) -- سبب الكيك وامر صك الي صكك باند end end end ) وهكذا نكون وصلنا لنهاية الشرح .. اتمنى ان الموضوع قد اعجبكم , واتمنى انكم استفدتم .. في امان الله1 point
-
https://wiki.multitheftauto.com/wiki/Dgs https://forum.multitheftauto.com/topic/95964-releasethisdps-dx-gui-system/1 point
-
Hmm strange, should be placed correctly according to wiki. And if you replace the getVehicleComponentPosition line with these two lines: local offsetX, offsetY, offsetZ = getVehicleComponentPosition ( vehicle, "exhaust_ok", "root" ) x,y,z = getPositionFromElementOffset(vehicle, offsetX, offsetY, offsetZ) And add this at the bottom function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z -- Return the transformed point end1 point
-
1 point
-
So it is actually working. fxAddGunshot(x, y, z, -10, 0, 0, true) fxAddSparks(x, y, z, -10, 0, 0) fxAddBulletImpact(x, y, z, -10, 0, 0, 2, 15, 5) fxAddTankFire(x, y, z, -10, 0, 0) Set all offsets to 0. And adjust them little by little. 1 unit is A LOT. (1.5/2 units is ~ the height of a ped) So use small steps like: 0.1 or 0.05 Rotating particles, I am not going to do that for you, because it takes me too much time for me to get it right. Sorry.1 point
-
1 point
-
1 point
-
local lastGear addEventHandler("onClientRender", root, function() local vehicle = getPedOccupiedVehicle(localPlayer) if vehicle then local gear = getVehicleCurrentGear(vehicle) if gear ~= lastGear then iprint("gear isn't the same as last gear") triggerEvent("onClientVehicleGearChange", vehicle, gear) lastGear = gear local x,y,z if getVehicleComponents(vehicle).exhaust_ok then x,y,z = getVehicleComponentPosition ( vehicle, "exhaust_ok", "world" ) iprint("found exhaust_ok component on vehicle")-- debug else x,y,z = getElementPosition(vehicle) iprint("can't find exhaust_ok component on vehicle")-- debug end fxAddGunshot(x, y+0.5, z+1, -10, 0, 0, true) fxAddSparks(x, y+0.5, z+1, -10, 0, 0) fxAddBulletImpact(x, y+0.5, z+1, -10, 0, 0, 2, 15, 5) fxAddTankFire(x, y, z, -10, 0, 0) local sound = playSound3D("untitled.mp3", x, y, z, true) setSoundVolume(sound, 1) setSoundMaxDistance(sound, 100) end end end) -- prevent the trigger to activate after entering a vehicle. addEventHandler("onClientPlayerVehicleEnter", localPlayer, function (vehicle) lastGear = getVehicleCurrentGear(vehicle) end) Untested, if it doesn't work, please debug properly. You could have guessed it... As it is just a language like English, with different rules.1 point
-
حبيب قلبي <3 @Master_MTA -- طيّب القلب , وما قصر معي بشي , لكنه كسول بعض الوقت @#Soking -- ساعدني ب اشياء كثيرة @Default#^ -- من أطيب الأشخاص الي تعاملت معها , وما قصر معي بشيء @#Himoo -- من افضل الأصدقاء الي تعاملت معهم @killerProject -- من الأشخاص ساعدوني في البرمجة @iMr.WiFi..! -- طيّب القلب وما يقصر بشيء @Abu-Solo -- من الأشخاص الي ساعدوني كثير بالبرمجة . الباقي في القلب :*1 point
-
hmm local x,y,z if getVehicleComponents(vehicle).exhaust_ok then x,y,z = getVehicleComponentPosition ( vehicle, "exhaust_ok", "world" ) iprint("found exhaust_ok component on vehicle")-- debug else x,y,z = getElementPosition(vehicle) iprint("can't find exhaust_ok component on vehicle")-- debug end OR (get the back of the vehicle) --local x,y,z = getElementPosition(vehicle) local x0, y0, z0, x1, y1, z1 = getElementBoundingBox ( vehicle ) -- test which one is ~ correct. x,y,z = getPositionFromElementOffset(vehicle, (x0 + x1) / 2, y0, z0) -- or x,y,z = getPositionFromElementOffset(vehicle, (x0 + x1) / 2, y1, z1) -- or x,y,z = getPositionFromElementOffset(vehicle, x0, (y0 + y1) / 2, z0) -- or x,y,z = getPositionFromElementOffset(vehicle, x1, (y0 + y1) / 2, z1) function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z -- Return the transformed point end1 point
-
Sorry man, I was pissed because I couldn't script it by myself. I actually said "THANK YAA" in real life, wish you could hear it tho thank you again @IIYAMA1 point
-
@swag_k_dog Why creating a new topic for only this? And you didn't even say thank you for my help, are you that inhuman or what? local lastGear addEventHandler("onClientRender", root, function() local vehicle = getPedOccupiedVehicle(localPlayer) if vehicle then local gear = getVehicleCurrentGear(vehicle) if gear ~= lastGear then triggerEvent("onClientVehicleGearChange", vehicle, gear) lastGear = gear local x,y,z = getElementPosition(vehicle) local sound = playSound3D("untitled.mp3", x, y, z, true) setSoundVolume(sound, 1) setSoundMaxDistance(sound, 100) outputChatBox("test") end end end) -- prevent the trigger to activate after entering a vehicle. addEventHandler("onClientPlayerVehicleEnter", localPlayer, function (vehicle) lastGear = getVehicleCurrentGear(vehicle) end)1 point
-
1 point
-
1 point
-
opino igual que la mayoria de aca que el unico niño que se cree "maduro" es gonzalo tuve un mal momento contigo pedias ayuda por skype y ensima te enojas por que uno no le entra a tus bromitas, si vas a pedir ayuda nunca esta demas perdir porfavor y si los demas se meten es por que esto es un foro publico si no quieres que nadie comente tus post para eso existe el mensaje privado.1 point
-
function compareStringToNumber(text) if text then local number = tonumber(text) if number then return number else return false end end end -- Then use it like so local comparedNumber = compareStringToNumber('250') --[[ comparedNumber is now 250, instead of '250' This will return false instead of nil so that no errors are produced. If you try compareStringToNumber('text') or compareStringToNumber('this is text') then it will return false You can also use this as a check, Like shown below. --]] local num = '5000' if compareStringToNumber(num) then outputChatBox(num..' is a number!') end1 point
-
@#Soking -- ملك الاندومي @YourMind -- ملك المحششين @#BrosS -- ملك المختلين عقليا @MR.StoRm -- محشش ولاكنه من اعز الاصدقاء فالقلب @Master_MTA -- لا تعليق @Default#^ -- صراحة ما اقدر اوصفه لاكنه اكثر واحد قلبه طيب -- الباقي في القلب1 point
-
1 point
-
local daily = {} addEventHandler('onPlayerLogin',resourceRoot,function runEvent() local serial = getPlayerSerial(source) if not daily[serial] then daily[serial] = false end if daily[serial] == false then daily[serial] = true local newMoney = math.random(1000) setPlayerMoney(source,getPlayerMoney(source)+newMoney) outputChatBox('You have received your daily reward of $'..newMoney..' enjoy!',source,0,255,255) setTimer(function() daily[serial] = false end,86400000,1) end end) 86,400,000 is milliseconds, it represents a day. 1 second = 1,000 milliseconds 1 minute = 60 seconds 1 hour = 60 minutes 1 day = 24 hours 1,000*60*60*24 = 86,400,0001 point
-
1 point
-
local lastGear addEventHandler("onClientRender", root, function() local vehicle = getPedOccupiedVehicle(localPlayer) if vehicle then local gear = getVehicleCurrentGear(vehicle) if gear ~= lastGear then triggerEvent("onClientVehicleGearChange", vehicle, gear) lastGear = gear end end end) -- prevent the trigger to activate after entering a vehicle. addEventHandler("onClientPlayerVehicleEnter", localPlayer, function (vehicle) lastGear = getVehicleCurrentGear(vehicle) end) You could try this. (clientside)1 point
-
1 point
-
العفو وحياك الله حبيبي انت الاجمل عزيزي ، وياك العفو وحياك الله عزيزي نورت الموضوع يالذيب1 point
-
1 point
-
function onDataChange(data) if source == localPlayer and data == "lang" then -- اسم الداتا للغة الاعب local file = File(source:getData "lang" ..".lng", true) local data = file:read(file.size) for var, text in data:gmatch "([%a_][_%w]*)%s*=%s*(\"(.*)\")" do local elem = _G[var] if isElement(elem) then -- وضع النص للعنصر elem.text = text end end end end * بعض العناصر لها وظيفة اخرى لتغير النص مثل القريد ليست * العناصر اللي تصنع بعد تغير الداتا لن يتغير لها * الطريقة قد تستهلك الذاكرة والمعالج اذا كان الملف كبير * قد لاتنفع للعناصر خارج السكربت الحالي * onDataChange ضع حدث تغير الداتا ل وعندي ملاحظات اخرى مدري كيف اشرحها اهم شي الفكرة العامة وصلت1 point
-
1 point
-
1 point
-
0 points