Leaderboard
Popular Content
Showing content with the highest reputation on 24/03/19 in all areas
-
Hello guys! Since I've seen lots of servers are opening with the same gamemodes and then closing after x time, do you guys think that is it worth it to create an unique server nowadays in MTA:SA beside the fact people tend to play something they are used to? Thanks for your time, Simple0x47.1 point
-
Regeneration (health) This resource lets you regenerate player and vehicle* health. It is not an unique idea, I know... but there weren't good implementations for it at the community resource list. So that's why I share this with YOU. * Vehicle regeneration for the driver only. Version 1.0.0 Not compiled! Smooth health regeneration No UI, just the manager Settings (Admin panel) Settings Regeneration [on/off] (player/vehicle) Regeneration value (player/vehicle) Regeneration delay (player/vehicle) Regeneration [on/off] while the vehicle is burning Download link: https://community.multitheftauto.com/?p=resources&s=details&id=15757 Take a quick look into the source code (v1.0.0) Client Server Meta1 point
-
Substitua o _ do parâmetro de função por button. Ele representa o botão que foi usado. Se button == "left" então o botão usado foi o botão esquerdo. Você saberia disso se estudasse a wiki do onClientClick1 point
-
بسم الله الرحمن الرحيم سلام عليكم ورحمة الله وبركاتة كيف الحال ؟ ان شاء الله طيبين اليوم قررت افتح موضوع بسيط وحلو يفيد المبتدئين والمتوسطين اننا نشارك ببعض المعلومات البرمجية مع أضافة مثال كمثال : مثال آخر : واتمنى انكم تحطون معلومات مهمة مو معلومات عادية مثل وفي أمان الله1 point
-
وظيفة triggerLatentClientEvent الكثير منا يتجاهلها ويستخدم triggerClientEvent والفرق اللي بينهم ان triggerClientEvent اسرع في النقل لانها بتحمل الداتا كلها مرة واحدة ولكن triggerLatentClientEvent تاخد وقت ااكثر بقليل جدا من التريقر العادي للنقل 15% CPU ولكن لما تستخدم التريقر العادي هيسحب من ال CPU ولكن بالتريقر ليتينت ما راح يسحب شئ من ال لذالك انصح باستخدام triggerLatentClientEvent بالتوفيق1 point
-
حتى تجذب المبرمج المناسب لو تذكر المودات الي تبيها من الألف الى الياء, ثم تذكر سعرك وتذكر طريقة التواصل الخاصة بك والمبرمج له حرية التفاوض بالسعر وبالتوفيق1 point
-
client is only predefined when calling a custom event from the client. Change it to source. Also you are destroying the element before detaching it which will cause an error.1 point
-
requestBrowserDomains({"www.convertmp3.io"}) local browser = createBrowser( 1, 1, false ) local currentSound = {} addEvent( 'Play' , true ) addEventHandler( 'Play' , root , function( link ) local vehicle = getPedOccupiedVehicle ( source ) local x, y, z = getElementPosition(vehicle) currentSound[source] = playSound3D( link, x, y, z ) attachElements(currentSound[source],vehicle) setSoundMaxDistance(currentSound[source],30) setSoundVolume(currentSound[source],50) end ) function fetch(_,url) if url and url ~= "" then fetchRemote("http://www.convertmp3.io/fetch/?format=JSON&video="..url, callback) end end addCommandHandler("p",fetch) function callback(data, error) if (error ~= 0) then return outputChatBox(error) end if (data == "ERROR") then return outputChatBox("data error") end local data = fromJSON("["..data.."]") if (data) then outputChatBox("Title: "..data.title) outputChatBox("Length: "..data.length) outputChatBox("Link: "..data.link) loadBrowserURL( browser, data.link ) end end addEventHandler( "onClientBrowserNavigate", browser, function( link ) if not link:find("www.convertmp3.io") then triggerServerEvent( 'play' , localPlayer , link ) -- trigger the event when the script actially gets the playable link! end end )1 point
-
function GiveWeaponeSklad (inf) if inf == "Deagle" then giveWeapon( source, 24 ) setWeaponAmmo( source, 24, 100 ) setPedWeaponSlot ( source, 2 ) elseif inf == "Nightstick" then giveWeapon( source, 3 ) setPedWeaponSlot ( source, 1 ) elseif inf == "Shotgun" then giveWeapon( source, 25 ) setWeaponAmmo( source, 25, 100 ) setPedWeaponSlot ( source, 3 ) elseif inf == "MP5" then giveWeapon( source, 29 ) setWeaponAmmo( source, 29, 300 ) setPedWeaponSlot ( source, 7 ) elseif inf == "M4" then giveWeapon( source, 31 ) setWeaponAmmo( source, 31, 300 ) setPedWeaponSlot ( source, 7 ) elseif inf == "Armor" then setPedArmor( source, 100 ) end end addEvent("GiveWeaponeAndArmor", true) addEventHandler("GiveWeaponeAndArmor", getRootElement(), GiveWeaponeSklad)1 point
-
1 point
-
1 point
-
Example: https://community.multitheftauto.com/index.php?p=resources&s=details&id=112311 point
-
@Jonas^ - Brothers A diferença é que o getPlayerFromPartialName não precisa ser o nick exato do jogador, ele retornará o primeiro jogador que encontrar cujo nick tiver qualquer parte com essa string. Já o getPlayerFromName precisa informar o nick inteiro exato, caso contrário ele não encontra o jogador. Eu optei pelo getPlayerFromName nesse caso apenas pois eu não quis complicar usando função útil. Achei mais fácil pra ele entender usando a função nativa do MTA. Claramente se eu fosse fazer o script pra mim, usaria com o Partial. Se tem um jogador com o nick #00bfffLord, ocorre o seguinte: getPlayerFromName ("Lord") -- Retornará false. Não encontra o jogador. getPlayerFromPartialName ("Lord") -- Retornará o jogador, pois essa string existe dentro do nick dele. Mesmo se existir outro jogador com essa string também, retornará somente o primeiro jogador encontrado. getPlayerFromName ("#00bfffLord") -- Retornará o jogador. Pois o nick dele é igual a este. getPlayerFromPartialName ("#00bfffLord") -- Retornará o jogador. Pois essa string foi encontrada no nick dele (no nick inteiro).1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
من وجهة نظري أرى ان لغة لوا تعتبر باب لتعلم والانفتاح لباقي اللغات المتبقية لأن في جيلنا الواحد مايتعلم الا لشيء يبغاه فذي اللعبة حققت شيئين, انك تستمتع وقت ماتبرمج بعكس باقي اللغات الي تتعلمها من اجل المستقبل وتطوير الذات, فبأختصار برمجة اللعبة تعتبر باب للتعلم البرمجة لأنها تجمع مابين المتعة والتعلم للشخص المبتدئ فنادر تلقى واحد يبدأ من المواقع ولا التطبيقات ويصمل.. بعكس برمجة مابداخل الالعاب (ما اتكلم عن ام تي ايه فقط) يستمتع بأنه يبرمج لعبته المفضلة ويشاركها غيره ويتعلم وتشابه بين اللغات كبير جداً فاذا تعلمت لغة تصنف كأنك تعلمت اللغات اغلبها..1 point
-
بدل التحققين بكذا if (rl ~= 0 or ll == 0) and n1 and n2 then node_conns[n1][n2] = new_id end -- attempt to index field '?' (a nil value) [string "?"] -- هنا الديبق if (ll ~= 0 or rl == 0)and n1 and n2 then node_conns[n2][n1] = new_id end بالتوفيق1 point
-
الله يأخذ من أسس المنتدى .. ويأخذ مشرفين وأعضاء وعضوات المنتدى ....السلام عليكم ورحمة الله وبركاته ::لو أن السلام مو سنة كان ما سلمت ..!! قولوا ...آمــــــــــــييين الله ياخذ من أسس المنتدى ..ويآخذ مشرفين المنتدى...ويأخذ مشرفات المنتدى ...وياخذ أعضاء المنتدى ...ويآخذ عضوات المنتدى ...وياخذ زوار المنتدى ...وياخذ من يقرأ الموضوع ..وياخذني معاهم ..........:::: إلى ::::...........جنـــــــة عرضها السماوات والأرض ..لا هرم فيها ولا مرض لا تعب فيها ولا نصب ..لا هم فيها ولا وصب .. لا خوف فيها ولا هلعلا سأم فيها ولا جزع ......:: .. بعد عمـر طويـــــل مديــــد على الطاعة بإذن الله ..::.......آمــــــــــــــــــــيين ...1 point
-
من احد أهم الوظائف, ولكن للأسف الكثير منا يجهلها الا وهي: addDebugHook تسنح هذه الوظيفة لك بالإمكانية معرفة عند استخدام الوظيفة الفلانية في اي مود كان. وتسمح لك بمعرفة الاحداث التي استخدمت بأي مود كان يمكنك تخطي الأحداث والوظائف باسترجاع قيمة skip مثال على الوظيفة addDebugHook( "preFunction", onPreFunction, {"createVehicle"} ) function onPreFunction( _, _, _, _, _, ... ) local args = { ... } if( args[1] == 411 )then return "skip" end end النتيجة: سيتم الغاء اي محاولة لصنع سيارة بالأيدي 411, والتي هي الأنفرس1 point
-
السلام عليكم ورحمة الله وبركاته طبعا انا خلاص تقريبا باقيلي شهر واجيب جهازي الجديد ف خلاص ليش اقعد ب MTA ويلا خلي اساطير للنوبات يفرحوو فيها ويعدلو براحتهم لاني ما رح ارجع ثاني الي بده باك اب سيرفري مقابل : حساب كلاش اوف كلانس تاون هول عالي 9 او 10 او 11 ويبشر بالباك اب كامل وما بعطيه لاحد غيره ................... يلا استودعكم في الله @!#NssoR_) -- يرجي نقل الموضوع للقسم العام1 point
-
يمكن قليل إلي يعرفوها for بشرح معلومة عن اللوب :شيء مثل كذا ،for أغلبنا يعرف عن كيف تسوي لوب رقمي باللوب for var = startingIndex, endingIndex, increament_discreament do end ipairsو pairs نستخدمه غالبا مع الوظيفة for ثاني للوب syntax لكن في :وإلي هو for result1, result2, r3, ... in iterator, argument1, arg2 do end تنبيه: ما يصير تحط العملية ... في هذي الحالة، حطيتها لأوضح انك تقدر تستقبل بيانات قد ما تبي والإستقبال هو أنك تستلم البيانات المرجعة من الوظيفة وتحفظها، سواء بمتغير أو جدول. في حالتنا نحفظها في متغيرات لو قلت الكلمة تمرير أعرف أني أقصد هو أنك ترسل بيانات للوظيفة، غالبا البيانات بتحطهم بين الأقواس ،المهم for بمعنى حلقة، هي عبارة عن وظيفة يسموها حلقة لما تستعملها باللوب iterator الـ كيف؟ في هذي الحالة for اولًا لازم نعرف طريقة عمل اللوب ولازم تحط على الأقل متغير واحد ،for في متغيرات لنستخدمها داخل نطاق اللوب interator هو تعريف البيانات المستقبلة من الحلقة in إلي على يسار الكلمة أما إلي على يمينها، تكون أول قيمة هي الحلقة إلي تبي تستدعيها وهي إجبارية لأن اللوب معتمد عليها، فلازم تحطها (أما القيم الباقية فهي البيانات إلي بتمررها للحلقة وقت استدعائها، وتقدر تحط 2 كحد أقصى، ولكن ما بيظهر غلط لو حطيت أكثر، لكن بتم استبعادهم (كأنك ما حطيتهم اوك، في شيء لازم نوضحه هنا متى يتم استدعاء الحلقة؟ أو حتى تُستخدَم كل الذاكرة المتوفرة، في ذاك الوقت، اللوب يوقف، أو أن البرنامج يوقف كله إذا استُخدمَت كل الذاكرة المتوفرة nil ببساطة، يتم استدعائها من بداية اللوب ويتكرر الاستدعاء إلى ما لا نهاية حتى توقف الحلقة عن إرجاع أي قيمة أو ترجع :وهي ،for في آلية معينة يتبعها اللوب أول ما يبدأ اللوب، لوا تستدعي الحلقة مع تمرير لها القيم إلي بعدها إذا وجد، ولما تنتهي الحلقة من التنفيذ، القيم إلي رجعتها الحلقة، لوا تعرفهم بالمتغيرات إلي حطيتهم على اليسار، ولازم تعرف أن أي قيمة زايدة سيتم استبعادها، بمعنى مثلا لو حطيت متغيرين والحلقة ترجع 3 قيم، القيمة الثالثة سيتم استبعادها، نفس الآلية تحدث مع استقبال عادي لبيانات وظيفة عادية هذا إلي يصير في الدورة الأولى للوب، أما من الدورة الثانية ورايح يصير تغير، وأحتاجك تركز هنا شوي للتوضيح: المقصود بالدورة الثانية هو أن تقوم لوا باستخراج الكود الخاص باللوب للمرة الثانية ،المهم إلي يصير في هذي المرحلة من اللوب هو أن أول قيمة رجعتها الحلقة من قبل في الدورة السابقة (افترض أن الدورة السابقة هي الأولى والحين احنا داخلين بالثانية) يتم إستخدامها كبرامتر ثاني بالاستدعاء الثاني للحلقة طيب والبرامتر الأول؟ (البرامتر الأول هو القيمة إلي حطيتها بعد الحلقة مباشرة (إلي في البداية for result1, result2, r3, ... in iterator, argument1, arg2 do end argument1 فمثلا، بالنسبة لهذا الكود القيمة هي قيمة المتغير طيب وإذا ما حطيتها؟ nil ببساطة، لوا بتعتبرها (الزبدة، الاستدعاء بالدورة الأولى للحلقة يكون كذا (لو افترضنا iterator(argument1, arg2) من الدورة الثانية ورايح يكون الاستدعاء كذا iterator(argument1, result1) يكون كذا argument1 لو مافي iterator(nil, result1) بنوضح كل هذا الكلام بتطبيقات function enumerateToHundred(_, number) if number == nil then number = 0 end if number < 100 then number = number + 1 return number end end for number in enumerateToHundred do print("Current number is: " .. number) end لو جربت هذا الكود، راح يحسب لك من الواحد للمئة وش إلي يصير بالضبط؟ أولًا، حطيت _ في البرامتر الأول للحلقة، لأن هذا يعبر عن القيمة الثانية (القيمة الأولى هي الحلقة)، وبما أن القيمة الثانية ثابتة ما تتغير من بداية اللوب، فأنا ما ابيها (عادة المبرمجين يحطون _ عشان يتفادون اي قيمة ما يبونها، لأن ماله داعي يحطون اسم معين)، في هذي الحالة، أنا ابي القيمة الثالثة إلي اقدر اغيرها كيف ما ابي، وإلي ترجع لي قيمتها السابقة (مو شرط، لكن ما دام أني ارجعها هي نفسها فترجع لي قيمتها السابقة) عشان اقدر ازود عليها وارجعها من جديد، وهكذا المهم، إلي يصير هو :وبدون تمرير أي قيمة، الاستدعاء (كافتراض) بكون شيء مثل كذا enumerateToHundred اللوب بالدورة الأولى يستدعي الحلقة local number = enumerateToHundred(nil, nil) فبالتالي الشرط بيتحقق وبتصير قيمته صفر، بعدها نتحقق أنه أقل من مئة، وإلي شيء طبيعي بيتحقق، ونزود عليه واحد، فبصير واحد، ونرجعه ،nill هي number لأن قيمة المتغير تمام، هذا في المرة الأولى الرقم يكون واحد nil من اللوب الثاني ورايح يتم اتباع طريقة مختلفة شوي، إلي هي ياخذ أول قيمة مرجعة ويحطها بالبرامتر الثاني، أما البرامتر الأول، فهو القيمة الثانية، وبما أنها غير موجودة، بتكون قيمتها وبكون شيء مثل كذا local number = enumerateToHundred(nil, 1) بنفس الآلية، يستدعي الحلقة، وينفذ الكود، وتقدر تتوقع أن النتيجة بتكون اثنين من الكود ويستمر هذا الشيء، حتى يوصل للدورة رقم 101 قبل ما ينفذها، الرقم السابق أكيد بكون 100 وبكون شيء مثل كذا local number = enumerateToHundred(nil, 100) هنا يتم استدعاء الحلقة، وفقًا للكود، الشرط ما يتحقق، إلي هو أن 100 أقل من 100، وبذلك، الوظيفة ما ترجع شيء، ويوقف اللوب وصلنا لنهاية الشرح تقريبًا، عسى ما طولنا عليكم هذا الكلام يشرح الطريقة هذي بعمل اللوب local t = { 1, 2, 3 } for key, value in next, t do print(key, value) end (next هو نفسه pairs لأن اصلًا الـ) pairs هذي الطريقة نفسها بالضبط بطريقة الـ next للي ما يعرف وش تسوي الوظيفة ببساطة، ترجع لك المفتاح والقيمة إلي بعد مفتاح معين في الجدول Syntax: object key, object value next(table[, object key]) table = الجدول إلي تبي تطبق عليه الوظيفة key = المفتاح إلي تبي تجيب المفتاح إلي بعده وقيمته، لو ما خليته، برجع أول مفتاح بالجدول يعني كائن، والمعنى منه هو أي نوع من البيانات object :ملاحظة ملاحظة: مو دائمًا تقدر تعرف ترتيب المفاتيح، الترتيب بالكود ما بسوي شيء، حطيت ذا اول أو حطيت ذاك أخير، يمكن الأخير يطلع الأول تقدم المفاتيح الرقمية على أنواع أخرى، (بس لكن لو حطيتهم بالترتيب في الجدول من البداية، وبعدها حطيت المفاتيح من الأنواع الثانية)، لو سويت شيء، مثل مفتاح رقمي أول وثالث وفي نصهم من نوع ثاني، بتصير خربطة next في العادة الوظيفة ،المهم الحين بنشرح آلية عمل هذا الكود local t = { 1, 2, 3 } for key, value in next, t do print(key, value) end :ما بطول كثير هنا، إلي يصير ببساطة كذا :المرة الأولى local key, value = next(t, nil) يرجع المفتاح 1 والقيمة 1 :المرة الثانية local key, value = next(t, 1) :المرة الثالثة local key, value = next(t, 2) :المرة الرابعة local key, value = next(t, 3) ويوقف اللوب nil ترجع next المرة الرابعة، بعد المفتاح 3، مافي مفتاح ثاني، فالحلقة next فمثل ما قلت لكم، هي نفسها pairs أما بالنسبة لـ nilوالجدول و next الوظيفة ترجع لك الوظيفة ،pairs لما تستخدم الوظيفة ،فيعني لما تسوي كذا local t = { 1, 2, 3 } for key, value in pairs(t) do print(key, value) end أنت كأنك مسوي كذا local t = { 1, 2, 3 } for key, value in next, t, nil do print(key, value) end ما فرق هنا ما تأثر، سواء حطيتها ولا لا nil ملاحظة: الـ pairs هذي وظيفة سهلة، لكنها تتبع آلية مختلفة عن ipairs وبالنسبة لـ :آلية عملها كالتالي function _pairs(table) return function(table, index) index = index + 1 local value = table[index] if value then return value end end, table, 0 end وأعتقد أن تنطيل طرحها من قبل وخلص الموضوع، لول .إذا ما فهمت ارجع أقرأ مرة ثانية، شيء عادي إذا ما فهمت من اول مرة1 point
-
سلام عليكم ورحمة الله اخواني واحبابي واصحابي ، اقدم لكم اخر كلماتي ، وان شاءالله ما احد يزعل اقولكم الوداع واقدم لكم اعتزالي ولى زعلان مني يتقبل اعتزالي ويترك اخر رده بلأخير موضوع ذا رح يجي اليوم او بكرا وما يدوم شيء بدنيه واشكر كل شخص وقف معي وانا راح ماني شايل هم احد والله ينجحكم ويقويكم الإهدادءات @Master_MTA @!#NssoR_) @#[K]iLLeR<3 @TAPL @KillerX @MR.Mosa @ععيونككء اخخر امممأليء ^ @#SnpêŘ @Tete omar @*AnGeL @iMr.WiFi..! @Abu-Solo @MR_Mahmoud @N3xT @Trefeor @Rakan# @Dr.Marco @,#Savage @KasaNoVa @#_iMr,[E]coo @Mr.Mostafa @MrKAREEM @ccz @Berko ولى ما حطيت اسمه بالله لا يزعل اسمك بالقلب يا صديق تحياتي لكم MR.TOUNSI0 points
-
É basicamente isso. Mas ele tava esperando alguém deixar prontinho pra ele kkk0 points