AR/String
بسم الله الرحمن الرحيم
KrSoFa ملاحظة: هذه المكتبه من ترجمتي الخاصه انا
اذا أردت أضافة حدث للمكتبه او تعديل خطأ بالترجمه او التنسيق او إضافة مثآل فيمكنك القيام بما تريد ماعدا( حذف اي حرف بلا حق)ا.
نبدأ على بركة الله باأول حدث بالمكتبه
string.upper وهو حدث
string.upper هذا الحدث
يستخدم للتحويل حالةالاحرف من الاحرف الصغيره الى الاحرف الكبيره .
test1 = string.upper("Hello, Lua user!") HELLO, LUA USER!
___________________________________________________________________
string.sub
تستخدم لتحديد بداية ونهاية السلسله ، حيث ان الرقم الاول يحدد بداية السلسه والرقم الثاني يحدد نهاية السلسه وعند وضع الرقم بالسالب سوف تقوم بتحديد السلسه بالعكس
test1 = string.sub("Hello Lua user", 7) Lua user test2 = string.sub("Hello Lua user", 7, 9) Lua test3 = string.sub("Hello Lua user", -8) Lua test4 = string.sub("Hello Lua user", -8,9) Lua test5 = string.sub("Hello Lua user", -8,-6) Lua
___________________________________________________________________
string.reverse
تستخدم لعكس السلسه .
test1 = string.reverse("krsofa") afosrk
___________________________________________________________________
string.rep
تستخدم لنسخ السلسه على حسب الرقم .
test1 = string.rep("Lua ",5) Lua Lua Lua Lua Lua test2 = string.rep("KrSoFa\n",3) KrSoFa KrSoFa KrSoFa
___________________________________________________________________
string.lower
تستخدم للتحويل حالةالاحرف من الاحرف الكبيره الى الاحرف الصغيره .
test1 = string.lower("Hello, KrSoFa user!") hello, krsofa user!
___________________________________________________________________
string.len
تستخدم لمعرفة طول السلسله .
test1 = string.lower("Hello, KrSoFa user!") hello, krsofa user! test1 = string.len("Lua") 3 test2 = string.len("") 0 test3 = string.len("Lua\000user") -- Lua strings are 8 bit pure so \000 does not terminate 8
___________________________________________________________________
string.gsub
هذه هي وظيفة قوية جدا، ويمكن استخدامها بطرق متعددة يمكن أن تستخدم للتبديل والاستبدال .
-- المثال الاول يقوم بتنقيح لـ كلمة -- banana test1 = string.gsub("Hello banana", "banana", "Lua user") Hello Lua user 1 -- المثال الثاني يقوم بااستبدال الاحرف الاولى الصغيره -- a -- الى احرف كبيره A -- ويقوم بالاستبدال مرتين فقط test2 = string.gsub("banana", "a", "A", 2) -- limit substitutions made to 2 bAnAna 2
ويمكن أيضا إستخدامها مع الوظايف function
-- المثال الاول يقوم بطباعة السلسله test1 = string.gsub("Hello Lua user", "(%w+)", print) -- print any words found Hello Lua user 3 -- المثال الثاني يقوم بتحديد طول السلسله test2 = string.gsub("Hello Lua user", "(%w+)", function(w) return string.len(w) end) -- replace with lengths 5 3 4 3 -- المثال الثالث بااستبدال الحرف الى حروف كبيره test3 = string.gsub("banana", "(a)", string.upper) -- make all "a"s found uppercase bAnAnA 3 -- المثال الثالث الوظيفه تقوم بتبديل بين الحرفين test4 = string.gsub("banana", "(a)(n)", function(a,b) return b..a end) -- reverse any "an"s bnanaa 2
___________________________________________________________________
string.format
هذه لتنسيق يمكن أن تستخدم لتنسيق السلسله والمتغيرات .
function getPlayerStats(thePlayer) local account = getPlayerAccount(thePlayer) if account then local kills = getAccountData(account,"kills") or 0 local deaths = getAccountData(account,"deaths") or 0 local ratio = string.format("%.2f", kills / deaths) outputChatBox("s Stats: Kills: ".. tostring(kills) .." ), ".. tostring(deaths) .." Deaths, Ratio: ".. tostring(ratio).."", getRootElement(), 50, 255, 0) end end addCommandHandler("stats",getPlayerStats) -- مثال لتحويل اللوان الى هيكس function chatbox(text, msgtype) local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local tag = getElementData(source, "ID") or 0 local r, g, b = getPlayerNametagColor(source) local hex = RGBToHex(r, g, b) if (msgtype == 0) then if isObjectInACLGroup("user." .. account, aclGetGroup("HeadAdmin")) then cancelEvent(true) outputChatBox(" #cccccc[".. tag .."] #8B1A1A[HEADADMIN] ".. hex .."".. name ..": #FFFFFF".. text, root, 255, 255, 255, true) outputServerLog("CHAT: [HEADADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FF0000[ADMIN] ".. hex .."" .. name ..": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: [ADMIN] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #00FF00[MODERATOR] ".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: [MODERATOR] " .. name .. ": " .. text) elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then cancelEvent(true) outputChatBox("#cccccc[".. tag .."] #FFFFFF".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true) outputServerLog("CHAT: " .. name .. ": " .. text) end end end addEventHandler("onPlayerChat", root, chatbox) function RGBToHex(red, green, blue, alpha) if((red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255))) then return nil end if(alpha) then return string.format("#%.2X%.2X%.2X%.2X", red,green,blue,alpha) else return string.format("#%.2X%.2X%.2X", red,green,blue) end end -- لتحويل السلسله النصيه الى سلسله نصيه مقتبسه بعلامتي التنصيص test9 = string.format("%s %q", "Hello", "Lua user!") -- string and quoted string Hello "Lua user!"