Jump to content

تحت التطوير :كود - Useful Arab functions


Booo

Recommended Posts

سلآم عليكم .. 

جبت لكم وظائف جديدة وتفيد نوعاً ما . 

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 by !#NssoR_)
As requested.
  • Like 3
Link to comment
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 by Master_MTA
Link to comment

مافهمت عليك كيف ماتحفظ اللامنت داتا بس تطلع وتدخل تروح .

#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_) عدل الرد لآهنت . 

  • Like 2
Link to comment
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

السلام عليكم ورحمة الله وبركاته
حاولت اسوي شي واللي هو يوزفل فنكشن
مع اني ما اعرف اذا كان هذا يعتبر يوزفل فنكشن او لا
او حتى اذا كان يعتبر يوزفل فنكشن ما اعرف اذا احد سواه او لا لأني ما ادور ذذ
المهم الكود عبارة عن انك تجيب عدد العناصر الموجوده في عالم وهمي معين
طيب بوش بيفيد
انت مثلاً مسوي مسابقة وتبي تعرف كم عدد السيارات او كم عدد اللاعبين في عالم وهمي الخ او حتى ما ادري اذا لها فائدة ام لا ذذ
ف. بس هذا اللي عندي و هي عباره عن محاولة بس





في البدايه السورس كود

-- 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
الخ

--]]


فـ بس هذا اللي كان عندي اتمنى استفدتم
وياريت اذا كان احد مسوي الكود تقولو لي
مع اني اعتقد ان فيه اشخاص سوته بما ان اليوزفل فنكشك مره كثيره
المهم ابي رأيكم و انطباعاتكم حول الكود وشكراً
والسلام عليكم ورحمة الله وبركانه

ملاحظة .. ما ادري حتى اذا كان القسم غلط او لا عموماً المشرف يشوف وينقله ذذ

  • Like 1
Link to comment

شوف انا ماني متأكد من انه فنكشن حقك قد احد سواه مسبقاً لكن في فنكشن احد سواه ويختصر كل الي انت كتبته

https://wiki.multitheftauto.com/wiki/GetElementsInDimension
فقط بأستعمال #

وتجيب العدد

#getElementsInDimension ( "player", 5 )

..

ما احاول احطم لكن في شخص اختصر وسوى من قبل , وحاول تدور فكرة زينة وحلوة وبتوفيق 

  • Thanks 1
Link to comment
Just now, iMr.WiFi..! said:

شوف انا ماني متأكد من انه فنكشن حقك قد احد سواه مسبقاً لكن في فنكشن احد سواه ويختصر كل الي انت كتبته

https://wiki.multitheftauto.com/wiki/GetElementsInDimension
فقط بأستعمال #

وتجيب العدد


#getElementsInDimension ( "player", 5 )

..

ما احاول احطم لكن في شخص اختصر وسوى من قبل , وحاول تدور فكرة زينة وحلوة وبتوفيق 

لا عادي ترا كلها تجارب بس ما في هدف معين في الوقت الحالي

كنت بسوي ذا اللي هو مسويه لكن قلت في نفسي بسويه بعد ذا

بحيث يكون فيه اكثر من يوزفل فنكشن

لكن عادي ان شاء الله بسوي واحد ما في شخص سواه لكن المشكل ان الفكره صعبه جداً

لأن اليوزفل فنكشن كثيره مره

على العموم نورت الموضوع واي فاي :]

Link to comment

بسم الله 

وظيفة التحقق من الرققم فردي 

نشوف السورس كود

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

في الختام اسال الله التوفيق لي ولكم

  • Like 1
Link to comment

السلام عليكم ورحمة الله وبركاته

اليوم باذن الله جايبلكم وظيفه خرافيه

يب اكيد خرافيه لاني تعبت بطريقه اسويها

جالس الليل كله افكر صراحه وقلت افيدكم واوفر عليكم

الوظيفه اسمها

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)

ملاحظه الكود سيرفر سايد ما جربته صراحه كلنت سايد وما اتوقع بيزبط اصلا

بالختام عجبك لا تنسى لايك +_+

والسلام عليكم ورحمة الله وبركاته

 

  • Thanks 1
Link to comment
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)

ملاحظه الكود سيرفر سايد ما جربته صراحه كلنت سايد وما اتوقع بيزبط اصلا

بالختام عجبك لا تنسى لايك +_+

والسلام عليكم ورحمة الله وبركاته

 

جميل جداً ! وبتوفيق ي ماستر

  • Thanks 1
Link to comment

السلام عليكم ورحمة الله وبركاته

كما عودتكم اشياء حصريه 

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)

اتمنى يكون عجبكم لا تنسون اللايك ها +_+

  • Thanks 1
Link to comment
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
1 hour ago, iMr.WiFi..! said:

وش فايدة الوظيفة بضبط مافهمت حضرتك .؟ 

بقولك وشو الفايده انت مسوي ايديت بوكس دي اكس انت الحين صحيح؟

طيب افرض اللاعب يبي يضغط

ctrl+v

يلصق النص بالايديت بوكس الدي اكس

يلزمك ذي الوظيفه لا استغناء عنها

Link to comment
  • 4 weeks later...

بسم الله الرحمن الرحيم

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 by !#NssoR_)
As requested.
  • Like 2
Link to comment
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

 

وظيفة جميلة أخ روك .. 
واصل 

  • Like 1
Link to comment

بسم الله الرحمن الرحيم

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 by #,+( _xiRoc[K]; >
  • Like 1
Link to comment

يب صحيح كلامك لكن الوظيفة بتعوض عن الاثنين

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

 

  • Thanks 2
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...