' A F . Posted August 11, 2017 Share Posted August 11, 2017 (edited) سلآم عليكم .. جبت لكم وظائف جديدة وتفيد نوعاً ما . setGroupData - getGroupData - removeGroupData - getGroupDatas كلها بجأنب سيرفر . Server side . بأختصار الوظيفة تحط لك قيمة على قروب معين من الاسل . نفس نظام المنت داتا و اكاونت داتا getGroupDatas = بإختصار ترجع لك جدول فيه الداتا الي مخزنها على القروب Useful functions : local GroupsData = { } ; function setGroupData ( group , data , value ) if ( group and data and aclGetGroup ( group ) ) then if not GroupsData[group] then GroupsData[group] = {} end GroupsData[group][data] = value end end function getGroupData ( group , data ) if ( group and data and aclGetGroup ( group ) and GroupsData[group] and GroupsData[group][data]) then return GroupsData[group][data] end return "false" end function getGroupDatas ( group ) if ( group and aclGetGroup ( group ) and GroupsData [ group ] ) then local datas = { } for k,v in pairs ( GroupsData [ group ] ) do table["insert"] ( datas , k ) ; end return datas end return { } end function removeGroupData ( group , data ) if ( group and data and aclGetGroup ( group ) and GroupsData[group] and GroupsData[group][data] ) then GroupsData[group][data] = nil end return "false" end أمثله . addCommandHandler("act",function(player) -- act = Add Console Tag ; setGroupData ( "Console" , "Tag","* [ #00cc00Console #ffffff]" ) ; outputChatBox ( "* Done ",player,0,255,0,true ) ; end ) ; addCommandHandler ( "gct" , function ( player ) -- gct = Get Console Tag local tag = getGroupData ( "Console" , "Tag" ) ; if ( tag ~= "false" ) then outputChatBox(tag,player,255,255,255,true); end end ) ; addCommandHandler("rct" , function ( player ) -- rct = Remove Console Tag removeGroupData ( "Console" , "Tag" ) ; outputChatBox("* Done",player,0,255,0,true) end ) ; وبالتوفيق للجميع Edited August 12, 2017 by !#NssoR_) As requested. 3 Link to comment
Master_MTA Posted August 11, 2017 Share Posted August 11, 2017 (edited) 49 minutes ago, Default said: سلآم عليكم .. جبت لكم وظائف جديدة وتفيد نوعاً ما . setGroupData - getGroupData - removeGroupData كلها بجأنب سيرفر . Server side . بأختصار الوظيفة تحط لك قيمة على قروب معين من الاسل . نفس نظام المنت داتا و اكاونت داتا Useful functions : local GroupsData = { } ; function setGroupData ( group , data , value ) if ( group and data and aclGetGroup ( group ) ) then if not GroupsData[group] then GroupsData[group] = {} end GroupsData[group][data] = value end end function getGroupData ( group , data ) if ( group and data and aclGetGroup ( group ) and GroupsData[group] and GroupsData[group][data]) then return GroupsData[group][data] end return "false" end function removeGroupData ( group , data ) if ( group and data and aclGetGroup ( group ) and GroupsData[group] and GroupsData[group][data] ) then GroupsData[group][data] = nil end return "false" end أمثله . addCommandHandler("act",function(player) -- act = Add Console Tag ; setGroupData ( "Console" , "Tag","* [ #00cc00Console #ffffff]" ) ; outputChatBox ( "* Done ",player,0,255,0,true ) ; end ) ; addCommandHandler ( "gct" , function ( player ) -- gct = Get Console Tag local tag = getGroupData ( "Console" , "Tag" ) ; if ( tag ~= "false" ) then outputChatBox(tag,player,255,255,255,true); end end ) ; addCommandHandler("rct" , function ( player ) -- rct = Remove Console Tag removeGroupData ( "Console" , "Tag" ) ; outputChatBox("* Done",player,0,255,0,true) end ) ; وبالتوفيق للجميع وظيفه جيده لكنها فيها عيب انها ما تحفظ مثل الالمنت داتا Edited August 11, 2017 by Master_MTA Link to comment
' A F . Posted August 11, 2017 Share Posted August 11, 2017 مافهمت عليك كيف ماتحفظ اللامنت داتا بس تطلع وتدخل تروح . #Edit: تم إضافة وظيفة جديدة : getGroupDatas بإختصار ترجع لك جدول فيه الداتا الي مخزنها على القروب function getGroupDatas ( group ) if ( group and aclGetGroup ( group ) and GroupsData [ group ] ) then local datas = { } for k,v in pairs ( GroupsData [ group ] ) do table["insert"] ( datas , k ) ; end return datas end return { } end @!#NssoR_) عدل الرد لآهنت . 2 Link to comment
Master_MTA Posted August 12, 2017 Share Posted August 12, 2017 23 hours ago, Default said: مافهمت عليك كيف ماتحفظ اللامنت داتا بس تطلع وتدخل تروح . #Edit: تم إضافة وظيفة جديدة : getGroupDatas بإختصار ترجع لك جدول فيه الداتا الي مخزنها على القروب function getGroupDatas ( group ) if ( group and aclGetGroup ( group ) and GroupsData [ group ] ) then local datas = { } for k,v in pairs ( GroupsData [ group ] ) do table["insert"] ( datas , k ) ; end return datas end return { } end @!#NssoR_) عدل الرد لآهنت . القصد انك معتمد على التيبل كان من الافضل تعتمد على registry.db sql باختصار يعني بحيث تحفظ الداتا اللي على الجروبات مهما صار فهمت علي Link to comment
AHMED MOSTAFA Posted August 18, 2017 Share Posted August 18, 2017 السلام عليكم ورحمة الله وبركاته حاولت اسوي شي واللي هو يوزفل فنكشن مع اني ما اعرف اذا كان هذا يعتبر يوزفل فنكشن او لا او حتى اذا كان يعتبر يوزفل فنكشن ما اعرف اذا احد سواه او لا لأني ما ادور ذذ المهم الكود عبارة عن انك تجيب عدد العناصر الموجوده في عالم وهمي معين طيب بوش بيفيد انت مثلاً مسوي مسابقة وتبي تعرف كم عدد السيارات او كم عدد اللاعبين في عالم وهمي الخ او حتى ما ادري اذا لها فائدة ام لا ذذ ف. بس هذا اللي عندي و هي عباره عن محاولة بسفي البدايه السورس كود -- Code function getElementsCountWithinDimension ( elementType, id ) if tostring ( elementType ) and elementType ~= nil and tonumber ( id ) and id ~= nil then local elements, Count = getElementsByType ( elementType ), 0 for _, theElement in ipairs ( elements ) do if getElementDimension ( theElement ) == id then Count = Count + 1 end end return Count elseif id == nil and elementType ~= nil then return "DimensionId Error" elseif elementType == nil and id ~= nil then return "elementType Error" elseif id == nil and elementType == nil then return "elementType, DimensionId Error" end end طيب تركيبة الكود getElementsCountWithinDimension ( string theType , int id ) theType: نوع الالمنت اللي تبيه id: رقم العالم الوهمي مثال outputChatBox ( getElementsCountWithinDimension ( "player" , 11111 ) ) --[[ رح يطلع رسالة في الشات بعدد اللاعبين الموجودين في البعد 11111 player كمان تقدر تبدل مثلاًً ped vehicle blip الخ --]] فـ بس هذا اللي كان عندي اتمنى استفدتم وياريت اذا كان احد مسوي الكود تقولو لي مع اني اعتقد ان فيه اشخاص سوته بما ان اليوزفل فنكشك مره كثيره المهم ابي رأيكم و انطباعاتكم حول الكود وشكراً والسلام عليكم ورحمة الله وبركانه ملاحظة .. ما ادري حتى اذا كان القسم غلط او لا عموماً المشرف يشوف وينقله ذذ 1 Link to comment
AHMED MOSTAFA Posted August 18, 2017 Share Posted August 18, 2017 Just now, MR.StoRm said: جميل , وآصل شكراً لك على ردك الايجابي 1 Link to comment
iMr.WiFi..! Posted August 18, 2017 Share Posted August 18, 2017 شوف انا ماني متأكد من انه فنكشن حقك قد احد سواه مسبقاً لكن في فنكشن احد سواه ويختصر كل الي انت كتبته https://wiki.multitheftauto.com/wiki/GetElementsInDimension فقط بأستعمال # وتجيب العدد #getElementsInDimension ( "player", 5 ) .. ما احاول احطم لكن في شخص اختصر وسوى من قبل , وحاول تدور فكرة زينة وحلوة وبتوفيق 1 Link to comment
AHMED MOSTAFA Posted August 18, 2017 Share Posted August 18, 2017 Just now, iMr.WiFi..! said: شوف انا ماني متأكد من انه فنكشن حقك قد احد سواه مسبقاً لكن في فنكشن احد سواه ويختصر كل الي انت كتبته https://wiki.multitheftauto.com/wiki/GetElementsInDimension فقط بأستعمال # وتجيب العدد #getElementsInDimension ( "player", 5 ) .. ما احاول احطم لكن في شخص اختصر وسوى من قبل , وحاول تدور فكرة زينة وحلوة وبتوفيق لا عادي ترا كلها تجارب بس ما في هدف معين في الوقت الحالي كنت بسوي ذا اللي هو مسويه لكن قلت في نفسي بسويه بعد ذا بحيث يكون فيه اكثر من يوزفل فنكشن لكن عادي ان شاء الله بسوي واحد ما في شخص سواه لكن المشكل ان الفكره صعبه جداً لأن اليوزفل فنكشن كثيره مره على العموم نورت الموضوع واي فاي :] Link to comment
Master_MTA Posted August 24, 2017 Share Posted August 24, 2017 بسم الله وظيفة التحقق من الرققم فردي نشوف السورس كود function isNumberIndividual(num) assert(type(num)=='number','isnumberindividual expected number at argment #1 got '..type(num)) local result=(num/2) local sp=split(tostring(result),'.') if #sp>1 then return true end return false end الساينتاكس isNumberIndividual(int num) الارقمنتات المطلوبه num:الرقم اللي تبي تتحقق منه امثله outputChatBox(tostring(isNumberIndividual(10)))--->false outputChatBox(tostring(isNumberIndividual(13)))--->true في الختام اسال الله التوفيق لي ولكم 1 Link to comment
Master_MTA Posted August 24, 2017 Share Posted August 24, 2017 السلام عليكم ورحمة الله وبركاته اليوم باذن الله جايبلكم وظيفه خرافيه يب اكيد خرافيه لاني تعبت بطريقه اسويها جالس الليل كله افكر صراحه وقلت افيدكم واوفر عليكم الوظيفه اسمها copyResourceIntoResource بالظبط نفس ما في الاسم الوظيفه تسمحلك انك تنسخ مود داخل مود مب زي copyResource ابد ما تسمحلك انك تنسخ المود داخل مود اخر الزبده ما اطول عليكم واخش في السورس كود function copyResourceIntoResource(res,tores) local ta={} local conf=xmlLoadFile( ':'..res..'/meta.xml' ) local cildren=xmlNodeGetChildren(conf) local function isreg(value,msr) if #msr==0 then return false end for l,c in pairs(msr) do if c==value or (#split(c,',')>1 and split(c,',')[1]==value) then return l end end return false end for k=1,#cildren do local name=xmlNodeGetName(cildren[k]) local jj=isreg(name,ta) if jj~=false then ta[jj]=ta[jj]..','..name else table.insert(ta,name) end end fileCopy(':'..res..'/'..'meta.xml', tores..'/'..res.."/meta.xml") for k,v in pairs(ta)do local spl=#split(v,',') for m=0,spl-1 do local chil=xmlFindChild (conf,split(v,',')[1],m) local at=xmlNodeGetAttribute(chil,'src') if at then fileCopy(':'..res..'/'..at, tores..'/'..res.."/"..at) if #ta==k then xmlUnloadFile(conf) return true end end end end return false end صراحه حاولت ارتب وزي ما تشوفون انا ما اعرف ارتب الاكواد بس ارصهم ورا بعض المهم معلينا نخش بالساينتكس copyResourceIntoResource(string res,string tores) طبعا الاثنين ارقمنت الزاميين الاول اسم السكربت اللي تبي تنسخه والثاني اي مكان باي سكربت تبيه لو مثلا تبي سكربت اسمه ماستر داخل ملف 1 :master/1 كذا يصير معك نخش على الامثلة طبعا قبل ما نخش للامثله الوظيفه تنسخ المود حتى الميتا حقته واللي بيجي يقولي بتصير مشاكل 2 سكربت بنفس الاسم اقوله جرب الاول بعدين تكلم مافي اي مشاكل بتصير المهم ننتقل للامثله function backupResource (player,command,resourcetobackup) if (resourcetobackup) and (getResourceFromName(resourcetobackup)) then copyResourceIntoResource(resourcetobackup,':chatbubbles') outputChatBox ("Resource " .. resourcetobackup .. " succesfully backed up!",player,255,0,0,false) else outputChatBox ("Resource can't be backed up! (don't forget the parameters!)",player,255,0,0,false) end end addCommandHandler ("backupresource",backupResource) ملاحظه الكود سيرفر سايد ما جربته صراحه كلنت سايد وما اتوقع بيزبط اصلا بالختام عجبك لا تنسى لايك +_+ والسلام عليكم ورحمة الله وبركاته 1 Link to comment
iMr.WiFi..! Posted August 28, 2017 Share Posted August 28, 2017 On 8/24/2017 at 07:42, Master_MTA said: السلام عليكم ورحمة الله وبركاته اليوم باذن الله جايبلكم وظيفه خرافيه يب اكيد خرافيه لاني تعبت بطريقه اسويها جالس الليل كله افكر صراحه وقلت افيدكم واوفر عليكم الوظيفه اسمها copyResourceIntoResource بالظبط نفس ما في الاسم الوظيفه تسمحلك انك تنسخ مود داخل مود مب زي copyResource ابد ما تسمحلك انك تنسخ المود داخل مود اخر الزبده ما اطول عليكم واخش في السورس كود function copyResourceIntoResource(res,tores) local ta={} local conf=xmlLoadFile( ':'..res..'/meta.xml' ) local cildren=xmlNodeGetChildren(conf) local function isreg(value,msr) if #msr==0 then return false end for l,c in pairs(msr) do if c==value or (#split(c,',')>1 and split(c,',')[1]==value) then return l end end return false end for k=1,#cildren do local name=xmlNodeGetName(cildren[k]) local jj=isreg(name,ta) if jj~=false then ta[jj]=ta[jj]..','..name else table.insert(ta,name) end end fileCopy(':'..res..'/'..'meta.xml', tores..'/'..res.."/meta.xml") for k,v in pairs(ta)do local spl=#split(v,',') for m=0,spl-1 do local chil=xmlFindChild (conf,split(v,',')[1],m) local at=xmlNodeGetAttribute(chil,'src') if at then fileCopy(':'..res..'/'..at, tores..'/'..res.."/"..at) if #ta==k then xmlUnloadFile(conf) return true end end end end return false end صراحه حاولت ارتب وزي ما تشوفون انا ما اعرف ارتب الاكواد بس ارصهم ورا بعض المهم معلينا نخش بالساينتكس copyResourceIntoResource(string res,string tores) طبعا الاثنين ارقمنت الزاميين الاول اسم السكربت اللي تبي تنسخه والثاني اي مكان باي سكربت تبيه لو مثلا تبي سكربت اسمه ماستر داخل ملف 1 :master/1 كذا يصير معك نخش على الامثلة طبعا قبل ما نخش للامثله الوظيفه تنسخ المود حتى الميتا حقته واللي بيجي يقولي بتصير مشاكل 2 سكربت بنفس الاسم اقوله جرب الاول بعدين تكلم مافي اي مشاكل بتصير المهم ننتقل للامثله function backupResource (player,command,resourcetobackup) if (resourcetobackup) and (getResourceFromName(resourcetobackup)) then copyResourceIntoResource(resourcetobackup,':chatbubbles') outputChatBox ("Resource " .. resourcetobackup .. " succesfully backed up!",player,255,0,0,false) else outputChatBox ("Resource can't be backed up! (don't forget the parameters!)",player,255,0,0,false) end end addCommandHandler ("backupresource",backupResource) ملاحظه الكود سيرفر سايد ما جربته صراحه كلنت سايد وما اتوقع بيزبط اصلا بالختام عجبك لا تنسى لايك +_+ والسلام عليكم ورحمة الله وبركاته جميل جداً ! وبتوفيق ي ماستر 1 Link to comment
Master_MTA Posted August 29, 2017 Share Posted August 29, 2017 11 hours ago, iMr.WiFi..! said: جميل جداً ! وبتوفيق ي ماستر حبيب قلبي تسلملي امين يا رب وياك 13 hours ago, #_iMr.[E]coo said: ممتازة اخ ماستر .. تسلملي يا غالي مشكور على المرور 1 Link to comment
#Soking Posted August 29, 2017 Share Posted August 29, 2017 6 minutes ago, Master_MTA said: حبيب قلبي تسلملي امين يا رب وياك تسلملي يا غالي مشكور على المرور ما فهمتها بس كفو 1 Link to comment
Master_MTA Posted August 29, 2017 Share Posted August 29, 2017 Just now, #Soking said: ما فهمتها بس كفو ههههههههه احلى حاجه انك بتعزز وخلاص كفوك مشكور يا عسل على المرور 1 Link to comment
Master_MTA Posted August 29, 2017 Share Posted August 29, 2017 السلام عليكم ورحمة الله وبركاته كما عودتكم اشياء حصريه 100% اليوم جايبلكم يوزفل فنكشن mta sa منعته لاسباب امنيه الزبده الفنكشن يجيبلك النص المنسوخ لما اللاعب يضغط ctrl+v الفنكشن كلن سايد فقطط ((وش بيفيدك هذا الفنكشن مخصص لي(رعاة الدي اكس (المحترفين المهم السورس كود function getClipboard() if (getKeyState('rctrl')==true or getKeyState('lctrl')==true) and getKeyState('v')==true then local edit= guiCreateEdit ( 0,0,0,0, '',false,nil ) guiSetAlpha(edit,0) guiEditSetCaretIndex ( edit, 0 ) local text=guiGetText(edit) destroyElement(edit) return text end return false end نجي للساينتكس getClipboard() مافي اي ارقمنتات نخش على الامثلة GUIEditor = { edit = {}, window = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow(542, 304, 403, 102, "", false) guiWindowSetSizable(GUIEditor.window[1], false) GUIEditor.edit[1] = guiCreateEdit(62, 39, 279, 24, "", false, GUIEditor.window[1]) end ) addEventHandler('onClientKey',root,function(btn,st) if st then guiSetText(GUIEditor.edit[1],getClipboard() or '') end) اتمنى يكون عجبكم لا تنسون اللايك ها +_+ 1 Link to comment
iMr.WiFi..! Posted August 30, 2017 Share Posted August 30, 2017 17 hours ago, Master_MTA said: السلام عليكم ورحمة الله وبركاته كما عودتكم اشياء حصريه 100% اليوم جايبلكم يوزفل فنكشن mta sa منعته لاسباب امنيه الزبده الفنكشن يجيبلك النص المنسوخ لما اللاعب يضغط ctrl+v الفنكشن كلن سايد فقطط ((وش بيفيدك هذا الفنكشن مخصص لي(رعاة الدي اكس (المحترفين المهم السورس كود function getClipboard() if (getKeyState('rctrl')==true or getKeyState('lctrl')==true) and getKeyState('v')==true then local edit= guiCreateEdit ( 0,0,0,0, '',false,nil ) guiSetAlpha(edit,0) guiEditSetCaretIndex ( edit, 0 ) local text=guiGetText(edit) destroyElement(edit) return text end return false end نجي للساينتكس getClipboard() مافي اي ارقمنتات نخش على الامثلة GUIEditor = { edit = {}, window = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow(542, 304, 403, 102, "", false) guiWindowSetSizable(GUIEditor.window[1], false) GUIEditor.edit[1] = guiCreateEdit(62, 39, 279, 24, "", false, GUIEditor.window[1]) end ) addEventHandler('onClientKey',root,function(btn,st) if st then guiSetText(GUIEditor.edit[1],getClipboard() or '') end) اتمنى يكون عجبكم لا تنسون اللايك ها +_+ وش فايدة الوظيفة بضبط مافهمت حضرتك .؟ Link to comment
Master_MTA Posted August 30, 2017 Share Posted August 30, 2017 1 hour ago, iMr.WiFi..! said: وش فايدة الوظيفة بضبط مافهمت حضرتك .؟ بقولك وشو الفايده انت مسوي ايديت بوكس دي اكس انت الحين صحيح؟ طيب افرض اللاعب يبي يضغط ctrl+v يلصق النص بالايديت بوكس الدي اكس يلزمك ذي الوظيفه لا استغناء عنها Link to comment
Rockyz Posted September 24, 2017 Share Posted September 24, 2017 (edited) بسم الله الرحمن الرحيم table.toString وضيفة تحويل الجدول الى سترنق Syntax : table.toString ( table theTable, string separatingChar ) source Code : function table.toString ( theTable, char ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2, 'expected charcter at argument 2 got ' .. char ) local m, t = '', { }; for _, v in pairs ( theTable ) do table [ 'insert' ] ( t, v ) end for k, v in pairs ( t ) do if ( k == #t ) then m = m .. v else m = m .. v .. char end end return m; end Example : function table.toString ( theTable, char ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2 and char:len ( ) >= 1, 'expected charcter at argument 3 got ' .. char ) local m = ''; for k, v in pairs ( theTable ) do if ( k == #theTable ) then m = m .. v else m = m .. v .. char end end return m; end local example1 = { 'a', 'b', 'c' }; print ( table.toString ( example1, ', ' ) ) -- a, b, c Edited September 26, 2017 by !#NssoR_) As requested. 2 Link to comment
MR.StoRm Posted September 24, 2017 Share Posted September 24, 2017 2 minutes ago, #,+( _xiRoc[K]; > said: بسم الله الرحمن الرحيم table.toString وضيفة تحويل الجدول الى سترنق Syntax : table.toString ( table theTable, string separatingChar ) source Code : function table.toString ( theTable, char ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2 and char:len ( ) >= 1, 'expected charcter at argument 3 got ' .. char ) local m = ''; for k, v in pairs ( theTable ) do if ( k == #theTable ) then m = m .. v else m = m .. v .. char end end return m; end Example : function table.toString ( theTable, char ) assert ( type ( theTable ) == 'table', 'expected table at argument 1 got ' .. type ( theTable ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2 and char:len ( ) >= 1, 'expected charcter at argument 3 got ' .. char ) local m = ''; for k, v in pairs ( theTable ) do if ( k == #theTable ) then m = m .. v else m = m .. v .. char end end return m; end local example1 = { 'a', 'b', 'c' }; print ( table.toString ( example1, ', ' ) ) -- a, b, c وظيفة جميلة أخ روك .. واصل 1 Link to comment
Rockyz Posted September 25, 2017 Share Posted September 25, 2017 (edited) بسم الله الرحمن الرحيم string.toTable or itemsToTable الوضيفة واضحة من الأسم تحويل السترنق الى تيبل الفنكشن عكس الفنكشن الي فوق _________________________________ string.toTable Syntax : string.toTable ( string textString, string separatingChar ) _________________________________ itemsToTable Syntax : itemsToTable ( mixed arguments... ) _________________________________ string.toTable Source Code : function string.toTable ( str, char ) assert ( type ( str ) == 'string', 'expected table at argument 1 got ' .. type ( str ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2, 'expected charcter at argument 2 got ' .. char ) local s = { }; local charSplit = split ( str, char ) for k, v in pairs ( charSplit ) do table [ 'insert' ] ( s, v ) end return s; end _________________________________ itemsToTable Source Code : function itemstoTable ( ... ) if ( ... ) then local s = { }; for k, v in pairs ( { ... } ) do table [ 'insert' ] ( s, v ) end return s; end return false end _________________________________ Example ( string.toTable Source Code ) : function string.toTable ( str, char ) assert ( type ( str ) == 'string', 'expected table at argument 1 got ' .. type ( str ) ) assert ( type ( char ) == 'string', 'expected string at argument 2 got ' .. type ( char ) ) assert ( char:len ( ) <= 2, 'expected charcter at argument 2 got ' .. char ) local s = { }; local charSplit = split ( str, char ) for k, v in ipairs ( charSplit ) do table [ 'insert' ] ( s, v ) end return s; end local tablee = string.toTable ( 'FIRST, a, b, c, LAST', ', ' ) -- { 'FIRST', 'a', 'b', 'c', 'LAST' } for _,v in ipairs(tablee)do if(_==1)then print(v..':') elseif(_~=#tablee and _~=1)then print(v..', ') elseif(_==#tablee)then print(v..'.') end end--[[ FIRST: a, b, c, LAST. ]] _________________________________ Example ( itemsToTable Source Code ) : function itemsToTable ( ... ) if ( ... ) then local s = { }; for k, v in pairs ( { ... } ) do table [ 'insert' ] ( s, v ) end return s; end return false end local tablee1 = itemsToTable ( 'a', 'b', 'c' ) -- { 'a', 'b', 'c' } for k, v in ipairs ( tablee1 ) do print ( v ) --[[ a b c ]] end _________________________________ طريقة الأستخدام بسيطة مثلا عندي هذا السترنق ( السورس كود الأول )ء '1;2;3' ابيه يكون على شكل تيبل كذا : table1 = { '1', '2', '3' } نسوي كذا table1 = string.toTable ( '1;2;3', ';' ) -- { '1', '2', '3' } _________________________________ او تقدر تسوي كذا بالسورس كود الثاني : table1 = itemsToTable ( '1', '2', '3' ) -- { '1', '2', '3' } Edited September 25, 2017 by #,+( _xiRoc[K]; > 1 Link to comment
Abdul KariM Posted September 25, 2017 Share Posted September 25, 2017 @#,+( _xiRoc[K]; > يعطيك العافية على المجهود لكن وظيفة تحويل التيبل لسترنق اقدر اختصرها عن طريق table.concat مثال local myTable = { 1 , 2 , 3 , 4 } print ( table.concat ( myTable , "," ) ) -- result : 1 , 2 , 3 , 4 1 1 Link to comment
Rockyz Posted September 25, 2017 Share Posted September 25, 2017 @Abdul KariM صحيح كلامك لكن ماتوقع انك تقدر تستخدمها ع التيبلات الي كذا : { [2] = 1 ,[21] =2 , [23] =3 ,[12] = 4 } Link to comment
Abdul KariM Posted September 25, 2017 Share Posted September 25, 2017 يب صحيح كلامك لكن الوظيفة بتعوض عن الاثنين local concat = table.concat function table.concat ( table , char ) if type ( table ) ~= "table" or type ( char ) ~= "string" then return {} end local cTable , n = {}, 1 for _, v in pairs ( table ) do cTable [ n ] = v n = n + 1 end return concat ( cTable , char ) end 2 Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now