Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/07/19 in all areas

  1. السلام عليكم ورحمة الله تعالى وبركته اليوم رجعت لكم بموضوع جديد اول شيئ : ولان اطرح معكم وافيدكم بشيئ مميز واخذ مني وقت حيث قمت بجمع جميع الوظائف المفيدة التي تم طرحها في المنتدى او غير المنتدى في ملف واحد يجمعهم كلهم المهم مأطول عليكم اول شيء : أعتذر من @Master_MTA @#,xiRocKyz @killerProject @#x1AhMeD-09 @N3xT @KillerX @3NAD @PaiN^ @Tete omar @Booo @|Mr|-Talal07-| @WASSIm. @Default#^ @jafar @</Mr.Tn6eL> @#CroSs @iMr.WiFi..! @Abdul KariM @!#NssoR_) @Blaawee @iPrestege @#DRAGON!FIRE @[email protected]~#@LoOs@TAPL@Me[Z]oO@^iiEcoo'x_)@#[email protected]@#BrosS @ وأيضا كل من قام بدعم المحتوى العربي بالنشر لان نسيت احط حقوقهم المهم الي يبي احط حقوقه في أي وظيفة يكلمني او معه فكشن يبني اضيفه للمكتبة يروح على الرابط في GITHUB = https://github.com/MrPoper/Useful-World-Lua/projects/1 يضيف فكنشن حقه و يتبع و الطريقة الموجودة اسفل هذا الكلام و يغير Builder Name = your name https://pages.github.com/ = احد روابط مواقع التواصل الاجتماعي (المنتدى ’ فيس ’ وتس ’ ديسكور ...) -__**Function Info :**__ * info * -__**Function SYNTAX:**__ > Code HERE < - __**Function SOURCE CODE:**__ > Code HERE < - __**Function EXAMPLE :**__ > Code HERE < - __**Function TYPE :**__ - [ ] HELP - [ ] CONVERT - [ ] ELEMENT This Function BUILD By [Builder Name](https://pages.github.com/). المهم هاذا رابط تحميل كل الوظائف المفيدة: USEFUL FUCTION : 200+ LINES : 6500+ RECORD TIME : [12 November 2012] - [26 JUNE 2019] https://github.com/MrPoper/Useful-World-Lua/projects/1 ?لا تنسى الصلاة على سيدنا محمد صلى الله عليه وسلم
    2 points
  2. تسلم طبعا نسيت اذكر توب التحديات الحصري و المميز
    2 points
  3. If you're having issues with models or are looking for help on how to achieve certain results, feel free to ask in here. Note: Please check the Guide section before asking questions in here. Frequently Asked Questions on GTA modding the FAQ is on 3DS Max, though can be applied for various app's Lighting and Shading #1 Why can't I change the smoothing of my model? Your model contains duplicate vertices - this is a typical issue within GTA importers. They tend to break the vertices/split the edges on import, requiring to be welded. View the spoiler for a potential fix. #2 My map model is overexposed in day and night time. Your model lacks vertex color and illumination respectively. The GTA engine uses vertex color information to define lighting which is baked into the model. View spoiler for a potential fix. #3 Why is my Infernus model so bright? GTA engine calculates brightness of vehicles based on map objects collision brightness (that it's standing on) and the vehicle surface properties. View the spoiler for a potential fix. #4 My striped Bullet has different brightness for primary and secondary colors. GTA engine uses different lighting techniques for vehicles than map objects. Some of which are specular lighting, which in short brings a fake highlight onto the vehicle surface, illuminating it. View spoiler for a potential fix. Modeling #5 Certain polygons are not visible ingame, but looks fine on 3D editor. GTA engine among most other game engines uses backface culling, which kills the faces that are not facing/are blocked by ones facing the camera. This procedure is done to save memory. View the spoiler for a potential fix. #6 Can I make scissor doors for my vehicle without requiring scripts? It is possible to modify how vehicle doors appear in their open phase. It involves changing the rotations of dummies and their children objects, the doors. View the spoiler for a potential method. #7 How does vehicle reflections and chrome work? GTA vehicles uses 2 UV channels; first for diffuse, second for env and chrome mapping. If the secondary UV channel is not unwrapped properly, the env/chrome will either not work or flashes too often. View the spoiler for a potential method. #8 I can see through my vehicle chassis when looking at the police decals, why is that? Materials that are responsible for alpha needs to be last in the multimaterial list. If this is not done, textures like police decals will not render parts of the vehicle behind the alpha. View the spoiler for a potential fix. #9 How do I make a vehicle paintable? GTA SA requires models to have a certain colorcoded material applied to the surface of vehicles that needs to be paintable. It also needs (optionally if using textures) a texture that is not black. As anything that isn't black will be. If parts of the texture is grey, the color ingame will look sort of dirty or old. View the spoiler for a method. Miscellaneous #10 I have imported des_sherrifsgn1.dff into 3ds and extracted the textures into a folder, but they aren't displayed. It is not enough to extract the images, you'll have to tell the program where your textures are stored for it to apply them on the model. View the spoiler for a potential solution. #11 I want to remove Wuzimu's glasses and export it to my game. How do I do this? You're going to need a GTA formats importer. I prefer Kam's vanilla tools for skins due to its decent support for bones and skinned models. View the spoiler for a potential method. #12 What file types are worth to know about? GTA has many, many file types, and a lot of them are not natively available in MTA unless you modify your server's anti-cheat system to allow locally custom data files etcetera. So if we're going with MTA friendly files, there are a few. View the spoiler. #13 Where do I find shared vehicle textures, and what's each their use? You can locate the .txd for shared textures in GTA SA dir\models\generic\vehicle.txd. It stores textures which are used for SA vehicle lights, lighting and many more textures, which are used across hundreds of vehicles. As these textures are found in your local files, none of them are required to be added to custom vehicle .txd files, making for potentially very low file sizes. View the spoiler for a full list. #14 I have downscaled my model, but in-game it remains the same size as before. If your model's scale values says something like 76,144, 76,144, 76,144, it will reset to 100, 100, 100 on export. To correct this, go to Utilities panel, click Reset xForm, Reset selected, then right click the modifier and collapse to. Now your model will have its new scale applied. #15 I have converted a Counterstrike map and turned the main mesh into a collision which is 250kb. I am getting invisible walls, why is that? GTA has a very low polycount limit in regards to collision models. Not to be confused with collision primitive models, which are spheres or boxes, but the CM itself. If it is above or around 5000 (needs additional sources...) polygons, issues will occur, such as invisible walls or as if there's a large box blocking the entire model off. Another culprit for collision issues is the pivot point and position that the collision is exported at. You need to set the collisions to 0, 0, 0 and pivot point needs to resemble that of the main model, otherwise they will not line up properly. #16 My character movement is bugging on custom modeled stairs. GTA III, VC and SA do not have support for advanced staircase collisions, and so they require a different approach, which is a planar ramp or slope if you will. This may not look very good when the character steps on the stairs, however it is the most performance and bug-less method around. **Please feel free to contribute to the FAQ by leaving a comment here or through PM. It will be greatly appreciated.** little note for colors #B8E0B6 #4A4A4A
    1 point
  4. السلام عليكم و رحمه الله و بركاته اليوم حبيت اسوي مود سهل و خفيف بيساعد المبرمجين في البرمجه بشكل كبير طبعا كنت معتزل و لي سنه ما نزلت شي جديد فحبيت اسوي خير شويه المود عباره عن نظام صلاحيات للحسابات وش فايدته .... ؟ مثلا عندك لوحه و تبي تخليها لكم لاعب فقط تقدر تستعمل السكربت عشان تخصص اللوحه لحسابتهم فقط او مثلا عندك لوحه و بها ازرار كتير و مثلا تبي زر يكون خاص للاعب بكل سهوله تقدر تستعمل السكربت السكربت هدفه توفير الوقت + طبعا عدم استخدام طرق التحققات الشائعه بين المبرمجين الي احيانا تسبب مشاكل للسيرفر --------------------------------------------------------------------------------------------------------- Export Functions / الوظائف الي تستطيع استدعائها Server Side : createPremission deletePremission addPremissionToAccount removePremissionFromAccount Client/Server ( Shared ) : getAllPremissions isAccountHasPremission getAccountsWithPremission getPremissionTable isPremissionExist Client Side : getClientAccount ------------------------------------------------------------------------------------- شرح الوظائف : createPremission تستخدم هذه الوظيفه لعمل صلاحيه جديده Usage : createPremission ( premissionName ) premissionName = اسم الصلاحيه الي تباها deletePremission تستخدم هذه الوظيفه في مسح صلاحيه موجوده من قبل Usage : deletePremission ( premissionName ) premissionName = اسم الصلاحيه addPremissionToAccount تستخدم هذه الوظيفه لاعطاء صلاحيه للحسابات .. Usage : addPremissionToAccount ( AccountName , Permission ) AccountName = اسم الحساب Permission = الصلاحيه removePremissionFromAccount تستخدم هذه الوظيفه في مسح صلاحيه من حساب Usage : removePremissionFromAccount ( Account , Permission ) Account = اسم الحساب Permission = الصلاحيه getAllPremissions تجيب لك الصلاحيات الموجوده Usage : getAllPremissions () الوظيفه ترجع لك جدول فيه الصلاحيات الي موجوده isAccountHasPremission تتحقق اذا كان الحساب عنده الخاصيه او لا Usage : isAccountHasPremission ( AccountName , Permission ) ترجع القيمه boolean getAccountsWithPremission تجيب لك الحسابات الي عندها صلاحيه محدده Usage : getAccountsWithPremission ( Permission ) Permission = اسم الصلاحيه ترجع لك جدول فيه اسماء الحسابات الي عندها الصلاحيه ذي getPremissionTable تجيب لك الجدول الكامل للصلاحيات الجدول كالتالي : Permissions = { PermissionName = { Accounts ...... }, etc........... } isPremissionExist تتحقق لك اذا كان في صلاحيه بالأسم الي انت مسويه من قبل او لا Usage : isPremissionExist ( PermissionName ) getClientAccount تجيب لك اسم حساب اللاعب في الكلينت سايد Usage : getClientAccount ( Player ) لو اللاعب مو مسجل بيرجع لك قيمه guest -------------------------------------------------------------------------------------------- طبعا المود يحفظ الصلاحيات لو وقف المود و اشتغل مره تانيه .. *NOTE : لسا ملاحظ اني كتبت كلمه Permission غلط معلش مخدتش بالي رابط التحميل : PERMISSIONS SYSTEM Ver: 1.0.0 المود مو مشفر للي حابب يتعلم كدا كدا المود مخصص للمبرمجين :- UPCOMING SCRIPT / السكربت القادم Resources Manager ( V3 )
    1 point
  5. السلام عليكم , بعد عمل جاد لمده شهر تم الأنتهاء من اصدار 0 . 0 . 3 لسيرفر الأتحاد العربي لحرب العصابات الأصدار به حصريات كتير و لما اقول حصريات اقصد حصريات و افكار جديده لسيرفرات الحرب لمحه عن المودات و الباقي تقدر تستكشفه بنفسك USERPANEL FF F3 / PLAYER VEHICLES تم تركيب خواص جديده لاف 3 تستطيع الان اعطاء سياراتك لأصدقائك او المزايده علي سياره في متجر السيرفر SUPPORTCHAT GROUPS SYSTEM نظام الجروبات تم تطويره باشياء كتير و اضافه افكار حصريه اكتر تغير نظام الأعضاء تغير نظام البنك و استبداله بنظام المخزن مخزن الجروب يكون مكان الجروب يقدر يخزن فيه كل الي يباه من اسلحه فلوس اشياء اخري نظام المقرات الجديد بعد شراءك مقر تستطيع تجديد مقرك و تغير بيته من جوا + اضافه سيارات جديده للمقر + فتح خواص اخري للمقر شراء سيارات للمقر محل الأسلحه يستطيع اصحاب الجروبات ان يدخلو في مزاد اسبوعي لشراء محلات الأسلحه عند شراءك لمحل الأسلحه يجيك نصف المكسب الي يجي للمحل نظام الصناعه نظام تحديات اللاعبين نظام تحديات الجروبات طبعا تقدر تتحدي لاعب او جروب اخر مو فقط حرب تقدر تتحداه في شوتر ديبربي سباق سيتم اضافه انواع تحديات اخري + يوجد نظام لفلات الأسلحه حاليا النظام يعمل علي سلاحين فقط الأم فور و الاي كي 47 وش هو النظام ذا ؟ لما تقتل احمد بالسلاح , عند وصولك لعدد محدد من القتل يترقي السلاح للفل اعلي اللفلات جولد - برونز - الماسي كل لفل شكل سلاحه يتغير + يبان شكل السلاح الجديد عند الكل مو عندك فقط يوجد مهمات جديده ايضا مثل مهمه سباق الموت حروب الهيدرا حرب الأعلام ( حرب بين تيمين ) كل تيم له مقر و انت تحاول تسرق علم المقر الاخر و توصله لمقرك و الوظائف ايضا يوجد فيها تجديد
    1 point
  6. Use a variable. For example: local visible = true if visible then dxDrawText(...) end so you may set "visible" to true or false whenever you want to show/hide the text.
    1 point
  7. отправлять значение урона триггером на клиентскую часть и там в рендере показывать dx с текстом
    1 point
  8. Your problem may resolve with guiSetInputMode function. set bind mode to "allow_binds" when click on your edit box.
    1 point
  9. Não é necessário passar pra server-side pra abrir o painel já que não necessita de permissão, você pode usar apenas onClientMarkerHit. Correção: local sX, sY = guiGetScreenSize () local markerGuardar = createMarker (-2407.54, -598.33, 132.64, "cylinder", 1.5, 255, 255, 255, 50) addEventHandler ("onClientResourceStart", resourceRoot, function () defaultWindow = guiCreateWindow (sX/2 - 185, sY/2 - 220, 370, 440, "Guardar Armas", false) guiWindowSetSizable (defaultWindow, false) guiSetVisible (defaultWindow, false) btnGuardar = guiCreateButton (10, 396, 112, 34, "Guardar", false, defaultWindow) btnFechar = guiCreateButton (247, 396, 112, 34, "Fechar", false, defaultWindow) defaultGrid = guiCreateGridList (9, 26, 350, 360, false, defaultWindow) guiGridListAddColumn (defaultGrid, "Arma", 0.7) guiGridListAddColumn (defaultGrid, "Munição", 0.20) end) addEventHandler ("onClientGUIClick", root, function (btn) if btn ~= "left" then return end if source == btnGuardar then outputChatBox ("Btn: "..btn, 0, 255, 0) elseif source == btnFechar then Abrir () end end) addEventHandler ("onClientMarkerHit", getRootElement(), function (hitPlayer, matchingDimension) if hitPlayer and getElementType (hitPlayer) == "player" and matchingDimension then Abrir () end end) function Abrir () if guiGetVisible (defaultWindow) == true then guiSetVisible (defaultWindow, false) showCursor (false) -- guiGridListClear (defaultGrid) elseif guiGetVisible (defaultWindow) == false then guiSetVisible (defaultWindow,true) showCursor (true) -- guiGridListClear (defaultGrid) end end OBS: Não entendi o motivo de você usar centerWindow sendo que você pode calcular a posição do centro manual. (Fiz isso por você se tiver dúvidas sobre GUI pode dar uma olhada no tópico do @Lord Henry.) Tópico: Aqui
    1 point
  10. Please use https://nightly.multitheftauto.com/?multitheftauto_linux_x64-1.5-latest, The linux page is out of sync due to some technical difficulties
    1 point
  11. فوق الخيال ماشاء الله , استمروا .
    1 point
  12. ابدعت و اكيد تعبك بيفيد ناس كتير بالتوفيق
    1 point
  13. Entendi. Então, aqueles erros é por que seu código é cliente e os exports só vai funcionar no lado server.
    1 point
  14. يا رجل ، هل يمكنك مساعدتي في إصلاح هذا الخطأ؟ https://prntscr.com/oaqfjy
    1 point
  15. وعليكم السلام مود نوب من مواصفاته مع احترامي تقبل مروري اخوك مستر بق
    1 point
  16. You got your answer on my second post. Now give it a try. Configure the column `id` and insert an item.
    1 point
  17. السلام عليكم ورحمة الله وبركاته , كيف الحال ؟ نظام جديد طبعاً إكتشفه بنفسك . يمكن لأي لاعب إنشاء مسابقة و يوجد لوحة تحكم خاصة بنظام المسابقة . الكونسول لا يتطبق عليه أي من الشروط في المود . x( "تحكم_أسرع_كاتب" )x و لفتح لوحة التحكم بالمسابقة ( "F9" ) لفتح اللوحة من نترككم مع الصور : رابط التحميل من هنا والسلام عليكم ورحمة الله وبركاته طرحته في الموضوع السابق AttentionSystem تنبيه : المود مربوط مع
    1 point
  18. What is Aurora? We are a multi-gamemode, community server for MTASA. Aurora is a new clan, but with the help of developers and staff we hope to improve the server and game experience for players in the community. Everyone is welcome, so feel free to share the server with your friends and family; and please enjoy your stay! What are our goals? We hope to not only find bugs, but also implement server improvements to improve the experience for our players. What do we have so far? We have a lobby, login panel, user panel, donation ability, global chat, language chat, scoreboard, garage, and much, much more. Login registration can be done through our forums at auroragaming.net. Where can I find Aurora? Aurora can be found on many social networks such as Forum, Discord, and Gamestate. Forum: http://auroragaming.net Discord: https://discord.gg/ytYmAXK Gamestate: https://www.game-state.com/144.217.240.180:22003/ Server ip: mtasa://144.217.240.180:22003 Thank you for choosing Aurora, Aurora Management, Firestrike.
    1 point
  19. بسم الله الرحمن الرحيم الحمدلله رب العالمين والصلإة والسلام على من لا نبي بعده محمد صلى الله عليه وسلم في موضوعنا هذإإ نتكلم عن الجدآول وطريقة التعإمل معهإإ : التحديثآت : تم 4/3/1435 إلسلام عليكم ورحمة الله وبركاته sql و db الجداول هي مثل قاعدة البيانات تحط اسم متغير للجدول = وقوسين متعرجين مثآل table1 = { } local table2 = { } مثال t = { 1,2,3 } t = { 1, "اثنين" } مثال t = { 1="واحد", 2="اثنين", 3 = "ثلاثه" } t = { id=5 } t = { pi=3.14159, banana="اصفر" } t = { ["name"] = "اسمك", ["number"] = "رقمك" } t = { ["123456"] = "رقمك", [123456] = "رقمك", } مثال t = { {1,"three",4}, {"واحد", "اثنين", "ثلاثه"} } t = { one = {1,"three",4}, tow = {"one","three","four"} } t = { } t[1] = 'one' t['banana'] = 'yellow' t.banana = 'yellow' اضافات خإطئه :: t."banana" = 'yellow' -- > X t.1 = 'one' -- > X بااستخدام type مثآل: a1 = { 'boo'} a2 = 2 type( a1 ) > 'table' type( a2 ) > 'number' بااستخدام # مثال: t = {} t[1]=1 t[2]=1 t[3]=2 t[4]=3 t[5]=5 t[6]=8 t[7]=13 boo = # t outputChatBox(" "..boo) 7 تستخدم طريقه المفتاح والقيمه مثال [1] = "one" [1] المفتاح "one" القيمه ["one"] = 1 ["one"] المفتاح 1 القيمه بالطريقه هذي تقدر تحفظ الجداول في الجدوال مثال يوضح لك الحفظ t = { booo = { [46] ={[31] = 50,[29] = 50 },[45] ={[30] = 50,[28] = 50 }}} نوضحه إكثر ناخذ الجزئيه هذي booo = { [46] ={[31] = 50,[29] = 50 }} ناخذ الجزئيه هذي booo = { } [46] ={[31] = 50,[29] = 50 } نأخذ الجزئيه هذي [31] = 50 تطلع لك المفتاح والقيمه [31] المفتاح 50 القيمه نضيف للمفتاح والقيمه جدول [46] ={[31] = 50} [46] المفتاح {[31] = 50} القيمه نضيف للقيمه + قيمه ثانيه {[31] = 50,[29] = 50 } يطلع عندنا [46] ={[31] = 50,[29] = 50 } نضيفها لجدول booo = { [46] ={[31] = 50,[29] = 50 }} نضيف قيمه ثانيه للجدول tbooo = { [46] ={[31] = 50,[29] = 50 },[45] ={[30] = 50,[28] = 50 } } نضيفها لجدول t = { booo = { [46] ={[31] = 50,[29] = 50 },[45] ={[30] = 50,[28] = 50 }}} ويطلع لك الجدول الي في اول الطريقه بااستخدامك ipairs pairs ipairs > تستخدمها للمفتاح الافتراضي يعني الجدول الي ماعدلت على مفتاحه مثآل t = { 1,"three",4} for k,v in ipairs (t) do outputChatBox(" "..k) end يطلع لك 1 2 3 1 > مفتاح افتراضي للقيمه 2 > مفتاح افتراضي للقيمه 3 > مفتاح افتراضي للقيمه مثآل يوضح لك اكثر عندك الجدول هذا وانت معدل على المفاتيح t = { } t[3] = "three" t[4] = "four" استخدمت معه ipairs for k,v in ipairs (t) do outputChatBox(" "..k) end يطلع لك ? مآيطلع لك شي لانك معدل على المفاتيح ماتشتغل معك ipairsو اذا كنت معدل على المفاتيح الافتراضيه pairs لازم تستخدم pairsمثآل ل t = { } t[3] = "three" t[4] = "four" for k,v in pairs (t) do outputChatBox(" "..k) end يطلع لك 3 4 عآدي تشتغل مدامك حاط المفاتيح على الافتراضي تشتغل معك t = { } t[1] = "three" t[2] = "four" for k,v in ipairs (t) do outputChatBox(" "..k) end يطلع لك 1 2 شف الامثله وتعرف مثآل local tTeams = { tTeamBlue ={ [46] = {[31] = 50,[29] = 50}}, tTeamRed ={ [46] = {[31] = 50,[29] = 50}} } for nIndex, nValue in pairs( tTeams ) do outputChatBox(" "..nIndex) end tTeamBlue tTeamRed مثآل local tTeams = { tTeamBlue ={ [46] = {[31] = 50,[29] = 50}}, tTeamRed ={ [46] = {[31] = 50,[29] = 50}} } for nIndex, nValue in pairs( tTeams["tTeamBlue"] ) do outputChatBox(" "..nIndex) end 31 46 مثآل local tTeams = { tTeamBlue ={ [46] = {[31] = 50,[29] = 50}}, tTeamRed ={ [46] = {[31] = 50,[29] = 50}} } for nIndex, nValue in pairs( tTeams["tTeamBlue"][46] ) do outputChatBox(" "..nIndex) end 31 29 مثآل local tTeams = { tTeamBlue ={ [46] = {[31] = 50,[29] = 50}}, tTeamRed ={ [46] = {[31] = 50,[29] = 50}} } for nIndex, nValue in pairs( tTeams.tTeamBlue[46] ) do outputChatBox(" "..nIndex) end 31 29 اذا كان الجدول الي تجلب منه القيمه مايستخدم المفآتيح زي كذا t = { 1,"three",4} او t = { { 1, "three" } , { 2 ,31} } مثآل t = { { 1, "three" } , { 2 ,31} } outputChatBox(" "..t[2][1]) 2 مثآل t = { { 1, "three" } , { 2 ,31} } outputChatBox(" "..t[1][2]) three مثآل teams = { teamBlue ={ weapons = { { 31, 50 } , { 29 , 50 } }, skin = 46 }, teamRed ={ weapons = { { 28,50 } , { 26, 50 } },skin = 45 } } outputChatBox(" "..tTeams.tTeamBlue.weapons[1][1]) 31 مثآل teams = { teamBlue ={ weapons = { { 31, 50 } , { 29 , 50 } }, skin = 46 }, teamRed ={ weapons = { { 28,50 } , { 26, 50 } },skin = 45 } } outputChatBox(" "..tTeams.tTeamBlue.weapons[1][1]) 31 تجيب لك مفتاح الجدول اذا كان رقم فقط مثال tTeamBlue ={ [13] = {[31] = 50,[29] = 50}, [17] = 46 } outputChatBox(" "..table.maxn(tTeamBlue)) 13 مثال tTeamBlue ={ [13] = {[31] = 50,[29] = 50}, [17] = 46 } outputChatBox(" "..table.maxn(tTeamBlue[13])) 31 تستخدم لإضآفة القيم للجدول الاستخدآم table.insert(القيمه,المفتاح,الجدول) او table.insert(القيمه,الجدول) مثآل لاستخدام table.insert Test = { [1] = 2, [2] = 3, [3] = 4 } نضيف له قيم بستخدم الداله table.insert(t,21) يطلع الجدول Test = { [1] = 2, [2] = 3, [3] = 4, [4] = 21 } مثال #2 Test = { [1] = 2, [2] = 3, [3] = 4, } table.insert(t,2,99) يطلع الجدول Test = { [1] = 2, [2] = 99, [3] = 3, [4] = 4 } لحذف قيمه او جدول لازم المفتاح يصير رقم مثال #1 Test = { [1] = 2, [2] = 3, [3] = 4 } table.insert(t,2,99) يطلع الجدول Test = { [1] = 2, [2] = 99, [3] = 3, [4] = 4 } نسوي حذف للقيمه table.remove(t,2) يطلع الجدول Test = { [1] = 2, [2] = 3, [3] = 4 } true false للي مآيعرف معنى المنطقيه ؟ هي مثل نعم لا ، صح خطا تقدر تستخدمها بالجدول بإضآفتها كـ قيمة بدون إستخدام وسم السلسله النصيه نإخذ مثإل للاستخدام المنطقيه المثال : نبي نسوي جدول نستخدمه للتصاريح بدخول السيرفر يعني اذا كان السريال مثلا 123 يدخل السيرفر اذا كان السيريال مثلإ 111 يأخذ باند اذا ماكان مسجل سرياله بالجدول يأخذ كيك t = { ["123"] = true, ["111"] = false, ["222"] = not false, ["333"] = "true" } function fb() local serial = getPlayerSerial(source) if t[serial] then outputChatBox("مرحبا بك") elseif not t[serial] then banPlayer(source) else kickPlayer(source) end end addEventHandler ("onPlayerConnect", getRootElement(), fb) ---------------------- function fb() local serial = getPlayerSerial(source) if t[serial] == true then outputChatBox("مرحبا بك") elseif t[serial] == false then banPlayer(source) elseif t[serial] == "true" then outputChatBox("لاتستخدم وسم السلسله النصيه بالمنطقيه") else kickPlayer(source) end end addEventHandler ("onPlayerConnect", getRootElement(), fb) مثآل اخرى لحفظ المنطقيه بالجدول :: t = { [true] = "123", [false] = "111" } ------------------------------------------------ tab = { [outputChatBox]= "hhh" } for k ,v in pairs(tab) do k(v) end ------------------------------- a = "اسمك" b = "رقمك" c = outputChatBox t = { [a] = "محمد", [b] = "123123", [c] = "تم الطباعه" } for k ,v in pairs(t) do outputChatBox(" key = "..k.."val ="..v) end > key = "اسمك" val = "محمد" ------------------------------------------------ t = { ["name"] = "محمد", ["online"] = true, [99] = "رقمي" } t["name"] = "احمد" t.online = false t[99] = "88" t.msg = "رسالتك" اذا استخرجت المفاتيح والقيم بتطلع كذا :: > "name" = "احمد" > "online" = false > 99=88 > "msg" = "رسالتك" ------------------------------------------------ لازم تستخدم table.remove Tabserial = { {serl="234jk32sdasdascascsc",name="محمد" } } function onPlayerJoin ( ) local serial = getPlayerSerial(source) for k,v in pairs(Tabserial) do if serial == v.serl and v.serl == "234jk32sdasdascascsc" then outputChatBox(" مرحبا بك محمد") S_P = v.serl N_P = v.name table.remove(Tabserial, k) Tabserial[k] = {serial=S_P,name=N_P,money="9999999"} end end addEventHandler ( "onPlayerJoin", getRootElement(), onPlayerJoin ) ------------------------------------------------ table.remove() t = { ["name"] = "محمد", ["online"] = true, [99] = "رقمك" } table.remove(t) يطلع:: name = "محمد" online = true t = { ["name"] = "محمد", ["online"] = true, [99] = "رقمك" } table.remove(t,2) يطلع:: name = "محمد" 99 = "رقمك" t = { ["name"] = "محمد", ["online"] = true, [99] = "رقمك" } t.online = nil بيطلع الجدول :: > "name" = "محمد" > 99="رقمك" ---------------------------------- table.foreach(table, f) t = { name = "محمد", number = 234, online = true, } table.foreach (t, outputChatBox) > online مثآل ثآني :: t = { name = "محمد", number = 234, online = true, } function f (k, v) outputChatBox ("k = " .. tostring (k) .. ", v = " .. tostring (v)) end table.foreach (t, f) > k = "name" v="محمد" > k = "number" v=234 > k = online v=true مثآل ثإلث :: t = { dwarf = { str = 22, dex = 23, wis = 18 }, human = { str = 20, dex = 20, wis = 20 }, elf = { str = 18, dex = 24, wis = 25 }, } outputChatBox (table.foreach (t, function (k, v) if k == "elf" then v.str = 999999 return k..">"..v.str end end ) ) ---------------------------------------------- t1 = { "the", "quick", food = "eggs" } t2 = t1 t2.food = "fish" function f (k, v) outputChatBox ("key = " .. tostring (k) .. ", value = " .. tostring (v)) end table.foreach (t1, f) outputChatBox("------") table.foreach (t2, f) key = 1, value = the key = 2, value = quick key = food, value = fish ------ key = 1, value = the key = 2, value = quick key = food, value = fish مثل ماتشوف ان السمك تغير بالجدولين رغم اني غيرت فقط الجدول الثاني وبالمثال هذا صح اني نسخت الجدول الثاني من الجدول الاول لكن كلإهما جدول وآحد، و اي تغير يتنفذ على الجدولين ----------------------------------------------------- مثال :: table.foreach function f (k, v) outputChatBox (" " .. tostring (k) .. ", " .. tostring (v)) end t = { "the", skill = 80 } table.foreach (t,f ) يطلع 1, the skill, 80 مثال table.foreachi :: function f (k, v) outputChatBox (" " .. tostring (k) .. ", " .. tostring (v)) end t = { "the", skill = 80 } table.foreachi (t,f ) يطلع 1, the table.foreachi << تطلع المفاتيح وقيمتها اذا كان المفتاح افتراضي table.foreach << تطلع جميع المفاتيح والقيم لاحظ المثآل هذا :: وشف اذا كان المفاتح قآفز رقم يعتبر معدل على افتراضيته function f (k, v) outputChatBox (" " .. tostring (k) .. ", " .. tostring (v)) end t = { "the", [2] = "tow" } t[4] = "four" table.foreachi (t,f ) يطلع 1, "the" 2, "tow" طيب نعدل افتراضية المفاتيح function f (k, v) outputChatBox (" " .. tostring (k) .. ", " .. tostring (v)) end t = { "the", [2] = "tow" } t[3] = "three" t[4] = "four" table.foreachi (t,f ) يطلع 1, "the" 2, "tow" 3, "three" 4, "four" --------------------------------------------------------------- tab = { "a", "c", "b" } table.sort (tab) for k,v in ipairs(tab) do outputChatBox(v) end a b c بتلإلإحظ إن الحروف تم ترتيبها إبجدياً --------------------------------------------------- tab = { "a", "c", "b" aa = 10 bb = 30 cc = 20 } table.sort (tab) for k,v in pairs(tab) do outputChatBox(v) end a b c وباقي القيم التي تتوفر لها مفاتيح راح يتم ترتيبها عشوائي ------------------------------------ عند ترتيب جدول بـ جدول t = { {"a" }, {"b" }, } table.sort (t) رآح تلإلإحظ وجود خطإإ attempt to compare two table values وهو لإيمكن المقآرنه اذا كان جدول بـ جدول وهنـا تأتي مهمة t = { {"b" }, {"c" }, {"a"}, } table.sort (t, function (v1, v2) return v1[1] > v2[1] end ) outputChatBox(t[1][1]) يطلع c ---------------------------------------------------------- t = { {"b" }, {"c" }, {"a"}, } table.sort (t, function (v1, v2) return v1[1] < v2[1] end ) outputChatBox(t[1][1]) a --------------------------------- t = { {b=18 }, {b=11}, } table.sort (t, function (v1, v2) return v1.b < v2.b end ) outputChatBox(t[1].b) 11 ------------------------------------------------- t = { {b=18 }, {b=11}, } table.sort (t, function (v1, v2) return v1.b > v2.b end ) outputChatBox(t[1].b) 18 ------------------------------------------------- هكذا يمكنك ترتيب المفاتيح انظر للمثال t = { b = {old = 1}, a = {old = 1}, c = {old = 1} } t2 = { } table.foreach (t, function (k) table.insert (t2, k) end ) table.sort (t2) for k ,v in pairs(t2) do outputChatBox(k) end a b c --------------------------------------------------- t = { {"b" }, {"c" }, {"a"}, } table.sort (t) outputChatBox(table.concat (t, ",")) a,b,c ----------------------------------------------- function pairsBooo(t,f) local a = { } for n in pairs (t) do table.insert(a,n) end table.sort (a, f) local i = 0 return function () i = i + 1 return a[i], t[a[i]] end end t = { dwarf = { str = 22, dex = 23, wis = 18 }, human = { str = 20, dex = 20, wis = 20 }, elf = { str = 18, dex = 24, wis = 25 }, } for k, v in pairsBooo (t) do outputChatBox (k) end dwarf elf human --------------------- وتقدر تضيف للكود السابق وظيفه للترتيب function pairsBooo(t,f) local a = { } for n in pairs (t) do table.insert(a,n) end table.sort (a, f) local i = 0 return function () i = i + 1 return a[i], t[a[i]] end end function gt (a, b) return a > b end t = { dwarf = { str = 22, dex = 23, wis = 18 }, human = { str = 20, dex = 20, wis = 20 }, elf = { str = 18, dex = 24, wis = 25 }, } for k, v in pairsBooo (t,gt) do outputChatBox (k) end ----------------------------------------------------- من وقت وانا إود إن اكتب عن هذه الخاصيه بما انها كانت مسببه لي عقده هي وظيفه تكميليه ب لوا وليست اساسيه يعني لو تشوف اصدار لوا 5.0 ماكانت الوظيفه موجود فيه ماذا لو كان عندك الجدول هذا ؟ t = { "a", "b", "c", } وإردت ان يطبع القيم من ثاني القيم الموجود بالجدول ؟ next هنا يجي استخدام t = { "a", "b", "c", } for k,v in next,t,1 do outputChatBox(v) end b c ------------------------------------------------ ويمكنك ايضا تستخدمها للتأكد ان الجدول فآرغ اول لإ t = { } if next (t) == nil then outputChatBox("yes") else outputChatBox("no") end yes ====================================================================================== تحديث 4/3/1435 تستخدم لحفظ الجدول مثآل : local table_Booo = { } table_Booo[1] = {["name"] = "Booo", ["email"] = "[email protected]" } addEventHandler ( "onResourceStop", root, function ( ) local jsonMYtable = toJSON (table_Booo) file = fileOpen ( "اسم الملف .lua" ) if file then fileWrite (file,jsonMYtable) fileClose ( file ) end end ) الحين لو توقف تشغيل السكربت بيكتب بالملف الجدول بصيغة نصيه تطلع كذا [ [ { "name": "Booo", "email": "[email protected]" } ] ] اعادة الصيغه النصيه لجدول عكس الي فوق مصآدر http://www.gammon.com.au/forum/?id=6036 http://lua-users.org/wiki/ForTutorial http://www.lua.org
    1 point
  20. وش فله ؟ اقولك بعطيك مود مشفر وخل خويك يفكه ولك الي تبيه
    0 points
×
×
  • Create New...