Leaderboard
Popular Content
Showing content with the highest reputation on 06/06/17 in all areas
-
3 points
-
بسم الله الرحمن الرحيم سلام عليكم ورحمة الله وبركاته كيفكم شباب ان شاء الله تكونو بأتم الصحة والعافية , اليوم شباب بشرح كيف تسوي وظيفة خاصة فيك وتنشره او تصنع وظيفة مفيدة , سواءً لنفسك او للموضوع وظايف العرب المفيدة بسم الله نبدأ , : الخطوات المهمة عشان تسوي الوظيفة : 1- اسم الوظيفة يكون سهل وواضح 2- كود الوظيفة مايكون طويل جداً الا ان تطلب ذلك 3- انه الوظيفة ماتكون مكررة , 4- يكون للوظيفة فايدة معينة 5- وش الارقمنتات المطلوبة الي راح اطلبها من الشخص =[ نقطة مهمة ]= حاول ماتخلي كل شيء يعتمد على الارقمنتات 6- وش راح يرجعلي ؟ فأنت لما تسوي وظيفة ممكن تخليها ترجع boolean -- قيمة منطقية او true or false == string -- سلسلة نصية او "سلسلتك النصية" == table -- جدول 7- نتحقق انه مافي أي خطأ في الأرقمنتات عشان مايكتبله خطأ في الفنكشن طيب الحين فهمنا الخطوات بنطبقها الحين انا عندي وظيفة بسميها بأسم getPlayersOnMarker طبعاً من اسم الوظيفة يعني جلب اللاعبون الموجودون داخل الماركر طيب بنسوي الكود function getPlayersOnMarker( marker ) حطينا الارقمنت الأول والي هو الماركر احنا بنخليها الماركر المراد به جلب اللاعبون داخله طبعاً القيمة بتكون اكثر من قيمة واحدة فبنستعمل جدول طيب نكمل الوظيفة بنسوي تحقق انه الماركر موجود , وانه نوعه ماركر function getPlayersOnMarker( marker ) PlayersOnMarker = { } -- سوينا جدول if isElement( marker ) and getElementType( marker ) == 'marker' then -- سوينا التحقق -- بنكمل الكود else -- اذا ماكتمل التحقق return false -- بيرجعله فولس end -- اند للتحقق end -- اند للوظيفة تمام تحققنا طيب الحين نبي يكتبله الخطأ وش نوعه وأي ارقمنت ؟ نستعمل وظيفة error -- وظيفة موجودة بلوا تلقائياً اذا استخدمت الوظيفة هذي راح يطبع لك في الديبق + راح يرجع القيمة فولس function getPlayersOnMarker( marker ) PlayersOnMarker = { } -- سوينا جدول if isElement( marker ) and getElementType( marker ) == 'marker' then -- سوينا التحقق -- بنكمل الكود else -- اذا ماكتمل التحقق error("getPlayersOnMarker Bad Argument 1@ [ Execpted 'marker' got "..getElementType( marker ).." ]") end -- اند للتحقق end -- اند للوظيفة تمام الحين بنسوي لوب للاعبين ونسوي تحقق انه اللاعب داخل الماركر بـ isElementWithinMarker ثم نضيفه لجدول function getPlayersOnMarker( marker ) PlayersOnMarker = { } -- سوينا جدول if isElement( marker ) and getElementType( marker ) == 'marker' then -- سوينا التحقق for PlayerIndex,PlayerValue in ipairs ( getElementsByType ( 'player' ) ) do -- نسوي لوب لجميع اللاعبين , وطبعاً ذي الوظيفة ترجع القيمة لاعب if isElementWithinMarker( PlayerValue, marker ) then -- سوينا تحقق انه اللاعب في الماركر table.insert(PlayersOnMarker, PlayerValue ) -- نضيف اللاعب في الجدول end -- آند للتحقق end -- آند للوب else -- اذا ماكتمل التحقق error("getPlayersOnMarker Bad Argument 1@ [ Execpted 'marker' got "..getElementType( marker ).." ]") end -- اند للتحقق end -- اند للوظيفة تمام قربنا نخلص الحين وش بيرجع للاعب ؟ أو مستخدم الوظيفة ؟ جدول الي سويناه PlayersOnMarker نسوي بعد اللوب استرجاع للجدول ويصير بهذا الشكل function getPlayersOnMarker( marker ) PlayersOnMarker = { } -- سوينا جدول if isElement( marker ) and getElementType( marker ) == 'marker' then -- سوينا التحقق for PlayerIndex,PlayerValue in ipairs ( getElementsByType ( 'player' ) ) do -- نسوي لوب لجميع اللاعبين , وطبعاً ذي الوظيفة ترجع القيمة لاعب if isElementWithinMarker( PlayerValue, marker ) then -- سوينا تحقق انه اللاعب في الماركر table.insert(PlayersOnMarker, PlayerValue ) -- نضيف اللاعب في الجدول end -- آند للتحقق end -- آند للوب return PlayersOnMarker -- راح يرجع الجدول الي فيه اللاعبين else -- اذا ماكتمل التحقق error("getPlayersOnMarker Bad Argument 1@ [ Execpted 'marker' got "..getElementType( marker ).." ]") end -- اند للتحقق end -- اند للوظيفة كذا سوينا وظيفة خاصة فينا , اتمنى انه يكون الشرح مفهوم وواضح , أي خطأ موجود في الشرح نبهوني عليه وانا اعدله , <3 وسلام خير الختام3 points
-
3 points
-
السلام عليكم اليوم جبت لكم مود كشف المتنكرين وش هو ؟ مثلا اذا واحد نشر وطلع وغير اسمه ودخل مرة ثانية يطلع في الشات اسمه يقول هذا الاعب كان اسمه الخ الخ الخ طبعا هو مفيد للي يبي يكشف الناس المتنكرين ---------------------------------- ملاحظات : 1- * تعديل الكلام واللغة من Settings.lua 2- * تعديل اللغة من meta.xml اذا تبي اللغة عربية هذا الكود : <setting name="*Languge" value="Arabic" /> و اذا انجلينزية هذا الكود : <setting name="*Languge" value="English" /> ---------------------------------- نجي للتحميل : Download V1.0.0 ---------------------------------- # Version 1.0.1 Update 1- * اصلاح بق 2- * عدم وجود تشفير Download V1.0.12 points
-
2 points
-
وعليكم السلام ورحمة الله وبركاته نبدأ باول خطوة , نسوي تايمر وهذا التايمر يفيدنا انه المهمة تبدأ كل شوي , ونستخدم فنكشن , ولازم تحط نوع التايمر 1 setTimer بعد ما تسوي التايمر نسوي ماركر , عشان يدخلنا المهمة createMarker والان نسوي جدول ; والجدول يفيدنا ب جلب االاعبين اللي بالمهمة واذا حاب تسوي عدد محدد للي يدخلوا المهمة بالجداول lcoal table = { } نسوي قيمة عادية ونحطها اللي نريده , هذي القيمة تساعدنا بانه المهمة مفتوحة او مغلقة ; عشان ما يقدر يفوت المهمة وهي شغالة local aJoin = 'false' ونسوي الان حدث لما يفوت اللاعب الماركر , 'onMarkerHit' وتسوي تحقق من انه المهمة مفتوحة ولا لا اذا كانت القيمة فولس زي ما حطينا فوق , نسوي ريتورن وما يدخله if ( aJoin == 'false' ) then return end وتسوي ادخال اللاعب للجدول عند لمس الماركر table.insert ونحطه بموقع معين , ونسويله فريز عشان ما يقدر يتحرك الا لما تبدي المهمة setElementPosition setElementFrozen ونسوي تايمر , داخل حدث لمس الماركر , هذا التايمر يفيدنا بدء المهمة رسميا ويكون نوعه 1 أي غير متكرر setTimer والان نسوي لوب للاعبين اللي بالسيرفر getElementsByType ونتحقق من انه اللاعب بالجدول عن طريق وظيفة تابل واللي تحصلها بالقسم getPlayerTable والآن نسوي الغاء للفريز ونص بالشات انه المهمة بدات setElementFrozen outputChatBox وتسوي تحقق اذا ما كان في لاعبين بالجدول يلغي المهمة الان نسوي ماركر اللي لما نلمسه يفوزنا createMarker حدث عند لمس الماركر 'onMarkerHit' نعطي الاعب اللي لمس الماركر فلوس givePlayerMoney نسوي للوب للجميع اللاعبين بالسيرفر getElementsByType نتحقق انه اللاعبين بالجدول getPlayerTable نحذفهم + نقتلهم عشان نطلعهم خارج مكان المهمة table.remove killPed2 points
-
@idarrr Its not necessary use this hasEnoughMoney function. You can use simply: if getPlayerMoney( player ) >= 30000 then takePlayerMoney( player, 30000 ) end2 points
-
السلام عليكم ورحمة الله وبركاته كيف تجرب اكواد HTML ?? جبت لكم موقع مفيد ورح يساعد في تجربة الاكواد بشكل سريع وسهل وبسيط اضغط هنا للذهاب للموقع ........................................................................................................................... مثال مع الصور انا مثلاً سويت كود يكتب رسالة في نص الشاشة <center>killer Project's text</center> لكن ابي اجربه الحين بعد ما جربته بيطلع لي كذا طيب خلني اجرب كود اصعب مثال <h1><h4><a style='font-size:25px; font-weight:normal;color:#000000;' href="mtasa://46.105.250.201:10010" class="button">click here to enter the mta BL server</a></h4></h1> بعد التجربة بيطلع لي كذا بس هذا اللي عندي اتمنى يفيدكم الموقع وبالتوفيق1 point
-
1 point
-
1 point
-
@Default يب يب يعطيك العافية fetchRemote("http://a.top4top.net/p_52221hhc1.jpg", function ( response ) if response ~= "ERROR" then triggerClientEvent("onClientGotImage", root, response ) end end )1 point
-
1 point
-
local value = "1000"; iprint ( convertNumber(value) ); لاتنسى السورس كود1 point
-
1 point
-
استبدل السيرفر بهذا fetchRemote("http://a.top4top.net/p_52221hhc1.jpg", function ( response ) if response ~= "ERROR" then triggerClientEvent("onClientGotImage", root, responseData ) end end )1 point
-
1 point
-
bindKey ( player thePlayer, string key, string keyState, string commandName, [ string arguments ] ) server side1 point
-
addEvent ( "weapon", true ) addEventHandler ( "weapon", root, function ( price ) priceof = price * 25 if getPlayerMoney(source) >= priceof then giveWeapon ( source, 31, price, true ) end end ) يعني المفروض يصير كدة1 point
-
ضيف الكود علي محل الاسلحة او ايا كان المود حقك داخل الفنكشن اللي يشتري فيه :3 انت مفكر لو حطيت الكود بيسويلك كل شئ1 point
-
1 point
-
If you could test if elementdata does get send to the clients 100% successfully, even if it changes rapidly, then you might consider sending small updates using elementdata. So for example the player joins the server. Global: Every time you update something of your table, you update a counter which indicates which id this data contains. You wait for the resource to be load clientside. Then you send a triggerEvent from clientside to serverside. (saying: "I want cookies") The server sends with triggerEvent the whole table. (Included a ref id from the last update) From that moment you will be fetching elementdata from serverside and update the table. (the elementdata contains only the parts that are updated) This id you give to your elementdata can indicates if you are missing information. For example packets: 80, 81, 83 <-- Ey, I am missing update 82. I would say this is a very experimental thing to do, since I do not know what happens when elementdata stacks up. But I can tell you that using a trigger for an large amount of updates isn't a solution.(unless you update the table only ones in a while)1 point
-
1 point
-
1 point
-
If you're looking for a work-around or a trick, that let's you communicate between client/server without triggers.. unfortunately you just won't find such thing. You only have couple of options in MTA When the client logs in, send them all the data that will be used frequently, eg.: positions of interiors and whenever you create something new on the run, trigger to client the new data Use triggerServer / triggerClient event whenever you need something from the server Use setElementData and store all the data that will be used frequently on specific elements. eg.: Vehicles: id, owner, fuel; Players: id, character name, admin level (these are just examples) and whenever you need something that isn't often used eg.: getting some info about a player that will not be rendered in HUD etc Use something like you did there, but with an export to client as well, so you can access those data on the client side I understand you are trying to build your server as efficient performance wise as possible, I have been there... but you are limited and at the end of the day, it's a server, you are supposed to run it on a decent machine when expecting lots of players and it's supposed to be able to get stuff done. In my opinion, I would rather fill up the server's RAM, even if it used 3-4-5GB, rather than overloading the client, most of the players still have outdated PC's.. I think you should try out the performance tester resource and try to overload the server with a bunch of calls, just to see yourself how much it can handle.1 point
-
وافتحها بالمتصفح وكئا تقدر تجربها اوف لاينhtml كلك يمين على ملفات1 point
-
استعمل الشادر واستعمل dxCreateShader dxCreateTexture dxSetShaderValue engineApplyShaderToWorldTexture1 point
-
1 point
-
لو تدور شوي في المواضيع القديمة كان بتحصل موضوع نفس طلبك addCommandHandler('out', function ( thePlayer ) local vehicle = getPedOccupiedVehicle ( thePlayer ) if vehicle then for i = 0,getVehicleMaxPassengers ( vehicle ) do local getPlayer = getVehicleOccupant( vehicle, i ) if thePlayer and getPlayer and getPlayer ~= thePlayer then removePedFromVehicle( getPlayer ) end end end end ) (هذا الكود انا مو مسويه ماخذه من موضوع قديم)1 point
-
اولاً : عدل على الوظيفة ريموف بلاير الى removePedFromVehicle ثانياً : سوي حدث عند ركوب اي سيارة يضيف عليه داتا بأسم "Driver" ولما ينزل منها تنمسح الداتا وعدل على التحقق في سطر 7 وضيف عليه انه ماعنده الداتا درايفر1 point
-
@Mark Gamer F8 -> debugscript 3 -> restart the script -> test the script and do not forget [ client side event ]1 point
-
1 point
-
^ انكر هذا الكلام في ناس غير تتعلم وتطبق مو نسخ ولصق < الفرق نفسه آليم بس في أنواع مختلفة من الناس , ما أنكر في ناس كانت بداياتهم النسخ واللصق ( عشان ماحد يزعل مني انا كنت كذلك ) بس في مبرمجين اعرفهم وما كانو يسوون كذا وتطورو بسرعة من الممكن انك بتستغرب كيف تطور بسرعة : عنده خبرة في الأنقليزي كثير او عنده خلفية بالبرمجة بشكل واسع واتمنى اني وضحت لك رأيي بهذا الموضوع1 point
-
Happens sometimes, try restarting your browser or wait a couple of minutes. EDIT: Just noticed the date of his post...1 point
-
1 point
-
1 point
-
Anything is possible in regular SA; just requires lots of work. Here's a good example of what's possible these days in MTA.1 point