#Mr.Pop Posted March 24, 2019 Share Posted March 24, 2019 SIMPLE FUNCTION ADD 0 Before Number Used in : time ... 3:5-- 03:05 A.M function addZero (n) if string.len(n) == 1 then return string.rep("0", 1) .. n else return n end end OR : function addZero (i,n) if string.len(n) == 1 then return string.rep("0", i) .. n else return n end end نشرته لان في ناس يمكن تبحث عنه او تحتاجه وشكرا ملقيت اسم للفكشن الي يعرف شو اسمه يخبرني Link to comment
savour Posted March 25, 2019 Share Posted March 25, 2019 مفيدة فعلاً بس عندي تعليقين، ليه استخدمت string.rep وانت بتضيف صفر واحد؟ كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون function addZero (str) local newStr = "" local t = {} for _, digit in ipairs(string.gmatch(str, ":")) do local tmpStr = "" if string.len(digit) == 1 then tempStr = tostring(0..digit) else tempStr = tostring(digit) end table.insert(t, tempStr) end newStr = table.concat(t, ":") return newStr end 2 Link to comment
#Mr.Pop Posted March 26, 2019 Author Share Posted March 26, 2019 On 25/03/2019 at 14:13, savour said: مفيدة فعلاً بس عندي تعليقين، ليه استخدمت string.rep وانت بتضيف صفر واحد؟ كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون function addZero (str) local newStr = "" local t = {} for _, digit in ipairs(string.gmatch(str, ":")) do local tmpStr = "" if string.len(digit) == 1 then tempStr = tostring(0..digit) else tempStr = tostring(digit) end table.insert(t, tempStr) end newStr = table.concat(t, ":") return newStr end شكرا لك انا في طريقتي كنت اقصد بها مثلا : outputChatBox(" #ff5252[ #ff9f1a ".. addZero ( hour ).. "-".. addZero ( minute ) .. "-"..addZero ( second ).. " ".. addZero ( day ).. ":".. addZero ( month ).. ":".. addZero ( year ).. " #ff5252 ]",thePlayer,120,120,0, true) Link to comment
KillerX Posted March 27, 2019 Share Posted March 27, 2019 On 25/03/2019 at 03:13, savour said: مفيدة فعلاً بس عندي تعليقين، ليه استخدمت string.rep وانت بتضيف صفر واحد؟ كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون function addZero (str) local newStr = "" local t = {} for _, digit in ipairs(string.gmatch(str, ":")) do local tmpStr = "" if string.len(digit) == 1 then tempStr = tostring(0..digit) else tempStr = tostring(digit) end table.insert(t, tempStr) end newStr = table.concat(t, ":") return newStr end فكرتك حلوة بس في شوية اخطاء 1 - ما يصير تلزق النقط لازم تسوي فاصل tempStr = tostring(0..digit) 2 - بدل ما تعرف كل دالة لحالها باللوكل تقدر تيجي في اول السكريبت وتسوي كدا اسهل function addZero( str ) local arg1 , arg2 , arg3 , etc 3 - string.gmatch --> علي حد علمي ان هي ترجع فنكشن مب تيبل بالتوفيق function addZero (str,sign) local Table if( ( str and sign ) and ( string.find( tostring( str ) , tostring( sign ) ) ) ) then Table = split( str , sign ); for index = 1 , #Table do Table[ index ] = 0 .. Table[ index ] end return table.concat( Table , sign ) end return false end -- Example -- print( addZero( "2:5" , ":" ) ) -- 02:05 print( addZero( "1,8" , "," ) ) -- 01,08 2 Link to comment
savour Posted March 30, 2019 Share Posted March 30, 2019 On 27/03/2019 at 20:19, KillerX said: فكرتك حلوة بس في شوية اخطاء 1 - ما يصير تلزق النقط لازم تسوي فاصل tempStr = tostring(0..digit) 2 - بدل ما تعرف كل دالة لحالها باللوكل تقدر تيجي في اول السكريبت وتسوي كدا اسهل function addZero( str ) local arg1 , arg2 , arg3 , etc 3 - string.gmatch --> علي حد علمي ان هي ترجع فنكشن مب تيبل بالتوفيق function addZero (str,sign) local Table if( ( str and sign ) and ( string.find( tostring( str ) , tostring( sign ) ) ) ) then Table = split( str , sign ); for index = 1 , #Table do Table[ index ] = 0 .. Table[ index ] end return table.concat( Table , sign ) end return false end -- Example -- print( addZero( "2:5" , ":" ) ) -- 02:05 print( addZero( "1,8" , "," ) ) -- 01,08 صحيح كلامك لكن: النقط والفواصل عادي تكون بدون مسافات، لكن كل واحد على حسب الشكل اللي يحبه ، في ناس لو طول السطر معاها بتنزله لسطر تاني لكن المهم المسافة ماتئثر اذا قفلت الشيء اللي قبلها مثال hello = "Hello " .."MTA " .."Community" print(hello) --> Hello MTA Community + عند الارقام، لازم تكون في مسافة، قوس او انتر بعد الرقم عشان لايحسبها فاصلة عددية (نسيتها كمان بس حبيت اوضح) المتغيرات كتبتها كدا عشان تتفهم اسرع + احب اذا استخدمت متغير داخل اللوب احطه داخل اللوب عشان اقلل نسبة التداخل (عادة)، يعني اللوب كل مرة تشتغل بتشتغل على متغيرات نظيفة بالنسبة ل string.gmatch صحيح بترجعلك فنكشن وانا هنا نسيتها تماما، لكن الفنكشن اللي بترجعها بتكون شبيهة بفنكشكن اللوب pairs، والصراحة اول مرة اعرف ان الام تي ايه في فنكشن split فدايما كنت بابحث عن الباترن واستخدم gmatch ، شكرا على الاضافة، دا الكود السليم: function addZero (str) local newStr = "" local t = {} for digit in string.gmatch(str, "([^:]+)") do local tmpStr = "" if string.len(digit) == 1 then tempStr = "0"..digit else tempStr = tostring(digit) end table.insert(t, tempStr) end newStr = table.concat(t, ":") return newStr end وصاحب الموضوع اعتقد قالها عشان التوقيت يعني 5:6:20 مثلا تصبح 05:06:20، الفنكشن عندك اكثر شمولية لكن الصراحة ماشفت توقيت بينكتب بالفاصلة، شكرا ع التنبيه Link to comment
KillerX Posted March 30, 2019 Share Posted March 30, 2019 عفوا علي حد علمي لو تلزق النقط بارقام في اللوا عادي بس في ام تي ايه بيطلعلك خطا Link to comment
coNolel Posted April 1, 2019 Share Posted April 1, 2019 On 30/03/2019 at 12:51, KillerX said: عفوا علي حد علمي لو تلزق النقط بارقام في اللوا عادي بس في ام تي ايه بيطلعلك خطا 3.4 – Concatenation Lua denotes the string concatenation operator by ".." (two dots). If any of its operands is a number, Lua converts that number to a string. print("Hello " .. "World") --> Hello World print(0 .. 1) --> 01 https://www.lua.org/pil/3.4.html Link to comment
KillerX Posted April 1, 2019 Share Posted April 1, 2019 (edited) 2 hours ago, coNolel said: 3.4 – Concatenation Lua denotes the string concatenation operator by ".." (two dots). If any of its operands is a number, Lua converts that number to a string. print("Hello " .. "World") --> Hello World print(0 .. 1) --> 01 https://www.lua.org/pil/3.4.html داري بكل دا اقول ما يصير تسوي كدا 0.." killerx" في ام تي ايه بيجيك خطا ودا عن تجربة موفقين #Edit : وكمان في اللوا نفس الخطا بيجيك عن تجربة واللي هوا --》 malformed number near 0.. Edited April 1, 2019 by KillerX 1 Link to comment
KillerX Posted April 20, 2019 Share Posted April 20, 2019 On 30/03/2019 at 10:16, savour said: صحيح كلامك لكن: النقط والفواصل عادي تكون بدون مسافات، لكن كل واحد على حسب الشكل اللي يحبه ، في ناس لو طول السطر معاها بتنزله لسطر تاني لكن المهم المسافة ماتئثر اذا قفلت الشيء اللي قبلها مثال hello = "Hello " .."MTA " .."Community" print(hello) --> Hello MTA Community + عند الارقام، لازم تكون في مسافة، قوس او انتر بعد الرقم عشان لايحسبها فاصلة عددية (نسيتها كمان بس حبيت اوضح) المتغيرات كتبتها كدا عشان تتفهم اسرع + احب اذا استخدمت متغير داخل اللوب احطه داخل اللوب عشان اقلل نسبة التداخل (عادة)، يعني اللوب كل مرة تشتغل بتشتغل على متغيرات نظيفة بالنسبة ل string.gmatch صحيح بترجعلك فنكشن وانا هنا نسيتها تماما، لكن الفنكشن اللي بترجعها بتكون شبيهة بفنكشكن اللوب pairs، والصراحة اول مرة اعرف ان الام تي ايه في فنكشن split فدايما كنت بابحث عن الباترن واستخدم gmatch ، شكرا على الاضافة، دا الكود السليم: function addZero (str) local newStr = "" local t = {} for digit in string.gmatch(str, "([^:]+)") do local tmpStr = "" if string.len(digit) == 1 then tempStr = "0"..digit else tempStr = tostring(digit) end table.insert(t, tempStr) end newStr = table.concat(t, ":") return newStr end وصاحب الموضوع اعتقد قالها عشان التوقيت يعني 5:6:20 مثلا تصبح 05:06:20، الفنكشن عندك اكثر شمولية لكن الصراحة ماشفت توقيت بينكتب بالفاصلة، شكرا ع التنبيه دحين انا لسا ملاحظ ردك ١ -انا ما اقولك السترينق ما يصير تلزق النقط فية انا اقولك ان مايصير للارقاماللي انتا كنت مسوية ٢ - اشوف ان كودك مطول فية ع الفاضي ٣ -الفنكشن اسموا اضافة صفر مب اضافة صفر للوقت لذالك سويتوا اكتر شمولية ٤ -ما يحتاج تبرر كل شئ كلنا بنغلط لوول 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