^iiEcoo'x_) Posted January 8, 2017 Author Share Posted January 8, 2017 افضل واحد لحد الان @#Skrillex الكود هو :- local utf8, tonumber, DxDrawText, dxGetFontHeight, dxGetTextWidth = utf8, tonumber, _G.dxDrawText, dxGetFontHeight, dxGetTextWidth local Match, Sub, GMatch, Len, xSub, Find = utf8.match, utf8.sub, utf8.gmatch, utf8.len, string.sub, utf8.find function dxDrawText( Text, xPosition, yPosition, Width, Height, Color, Alpha, Scale, Font, AlignX, AlignY, Clip, WBreak, PGUI, CCoded, FRotation, FRCX, FRCY ) Color, Alpha, AlignX, AlignY = Color or -1, Alpha or 1, AlignX or "left", AlignY or "top" local Red, Green, Blue, CAlpha = FromColor( Color ) Color = tocolor( Red, Green, Blue, CAlpha * Alpha ) local TIndex, TData, DText = 0 if ( CCoded ) then TData = {} DText = Match( Text, "(.-)#%x%x%x%x%x%x%x%x" ) or Text if ( DText and DText ~= "" ) then TIndex, TData[1] = 1, { DText, Color } Text = Sub( Text, Len( DText ) + 1 ) end for HDemical in GMatch( Text, "#%x%x%x%x%x%x%x%x" ) do DText = Match( Text, HDemical.."(.-)#%x%x%x%x%x%x%x%x" ) or Match( Text, HDemical.."(.+)" ) if ( DText and DText ~= "" ) then TIndex = TIndex + 1 TData[TIndex] = { DText, tocolor( tonumber( "0x"..xSub( HDemical, 4, 5 ) ), tonumber( "0x"..xSub( HDemical, 6, 7 ) ), tonumber( "0x"..xSub( HDemical, 8, 9 ) ), tonumber( "0x"..xSub( HDemical, 2, 3 ) ) * Alpha ) } Text = Sub( Text, Len( DText ) + 10 ) end end else TIndex, TData = 1, { { Text, Color } } end local CLData, CLIndex, CLText, xText = { Text = "" }, 0, "" local LData, LIndex = { CLData }, 1 for Text = 1, TIndex do Text = TData[Text] Text, Color = Text[1], Text[2] repeat DText = Match( Text, "(.-)\n" ) xText = DText or Text if ( xText ~= "" ) then CLIndex = CLIndex + 1 CLText, CLData[CLIndex] = CLText..xText, { xText, Color } CLData.Text = CLText end if ( DText ) then CLData, CLIndex, LIndex, CLText, Text = { Text = "" }, 0, LIndex + 1, "", Sub( Text, Len( DText ) + 2 ) LData[LIndex] = CLData end until not DText end local xAILeft, xAICenter, FHeight = AlignX == "left", AlignX == "center", dxGetFontHeight( Scale, Font ) local CYPosition, CXPosition = AlignY == "top" and yPosition or yPosition + ( Height - FHeight * LIndex ) / ( AlignY == "center" and 2 or 1 ) if ( Clip ) then dxSetRenderTarget( RTarget, true ) dxSetBlendMode( "modulate_add" ) end for Line = 1, LIndex do Line = LData[Line] CXPosition = xAILeft and xPosition or xPosition + ( Width - dxGetTextWidth( Line.Text, Scale, Font ) ) / ( xAICenter and 2 or 1 ) for Text = 1, #Line do Text = Line[Text] Color, Text = Text[2], Text[1] DxDrawText( Text, CXPosition, CYPosition, nil, nil, Color, Scale, Font ) CXPosition = CXPosition + dxGetTextWidth( Text, Scale, Font ) end CYPosition = CYPosition + FHeight end if ( Clip ) then dxSetRenderTarget() dxSetBlendMode( "add" ) dxDrawImageSection( xPosition, yPosition, Width, Height, xPosition, yPosition, Width, Height, RTarget, FRotation or 0, FRCX or 0, FRCY or 0, -1, PGUI ) dxSetBlendMode( "blend" ) end return true end end Link to comment
SycroX Posted January 9, 2017 Share Posted January 9, 2017 ههه استخدام شو ؟؟؟؟ هاد فقط يسوي عنوان اللوحة فقط + عشان اقدر اخفيه براحتي و احركو مع اللوحة ,, الكود الكامل لسا ما خلص عندي اكتر تعقيد من كدا بس لو طرحتو يروح التعب 1 Link to comment
Abu-Solo Posted January 9, 2017 Share Posted January 9, 2017 1 hour ago, #Skrillex said: ههه استخدام شو ؟؟؟؟ هاد فقط يسوي عنوان اللوحة فقط + عشان اقدر اخفيه براحتي و احركو مع اللوحة ,, الكود الكامل لسا ما خلص عندي اكتر تعقيد من كدا بس لو طرحتو يروح التعب خل غيرك يستفيد ^^ Link to comment
#BrosS Posted January 9, 2017 Share Posted January 9, 2017 function MyFunction ( arg1, arg2 ) if ( arg1 and arg2 ) then if ( type ( arg1 ) == "number" and type ( arg2 ) == "number" ) then if ( arg1 > arg2 ) then while ( arg1 > arg2 ) do arg2 = arg2 + 1 end outputChatBox ( tostring ( arg2 ) ) else outputChatBox ( "arg2 is bigger" ) end else outputChatBox ( "One of the two aren't numbers" ) end else outputChatBox ( "Didn't get two arguments" ) end end Link to comment
</Mr.Tn6eL> Posted January 10, 2017 Share Posted January 10, 2017 local _S, server = {}, not (isElement(localPlayer) and getElementType(localPlayer) == "player") local side, pside = server and "Server" or "Client", server and "Client" or "Server" function sync(t, k, v) assert(type(k) == "string" and k:match "([%a_][%w_]*)()", "Invalid variable name") _G["trigger"..side.."Event"]("onSync"..side.."Value", resourceRoot, {k, type(v) == "function" and "function:"..string.dump(v) or v}) end setmetatable(_S, { __index = sync, __newindex = sync, __metatable = "" }) addEvent("onSync"..pside.."Value", true) addEventHandler("onSync"..pside.."Value", resourceRoot, function(t) assert(type(t) == "table", "Invalid data") assert(type(t[1]) == "string" and k:match "([%a_][%w_]*)()", "Invalid variable name") local isfunc = type(t[2]) == "string" and t[2]:sub(1, 9) == "function:" _G[t[1]] = isfunc and pcall(loadstring("return "..t[2]:sub(10)))() or t[2] end) -- how to usage local test = function() print("hello") end _S["my_func_name"] = test string.dump كان بينجح لو ام تي اي تدعم 1 Link to comment
#BrosS Posted January 10, 2017 Share Posted January 10, 2017 كل الأكواد لحد الأن تتعلق بالجداول يعني الجداول اصعب شي ؟ Link to comment
^iiEcoo'x_) Posted January 10, 2017 Author Share Posted January 10, 2017 افضل شي لحد الان @</Mr.Tn6eL> هل من احد اخر ؟ local _S, server = {}, not (isElement(localPlayer) and getElementType(localPlayer) == "player") local side, pside = server and "Server" or "Client", server and "Client" or "Server" function sync(t, k, v) assert(type(k) == "string" and k:match "([%a_][%w_]*)()", "Invalid variable name") _G["trigger"..side.."Event"]("onSync"..side.."Value", resourceRoot, {k, type(v) == "function" and "function:"..string.dump(v) or v}) end setmetatable(_S, { __index = sync, __newindex = sync, __metatable = "" }) addEvent("onSync"..pside.."Value", true) addEventHandler("onSync"..pside.."Value", resourceRoot, function(t) assert(type(t) == "table", "Invalid data") assert(type(t[1]) == "string" and k:match "([%a_][%w_]*)()", "Invalid variable name") local isfunc = type(t[2]) == "string" and t[2]:sub(1, 9) == "function:" _G[t[1]] = isfunc and pcall(loadstring("return "..t[2]:sub(10)))() or t[2] end) -- how to usage local test = function() print("hello") end _S["my_func_name"] = test Link to comment
</Mr.Tn6eL> Posted January 10, 2017 Share Posted January 10, 2017 18 minutes ago, #BrosS said: كل الأكواد لحد الأن تتعلق بالجداول يعني الجداول اصعب شي ؟ كودي يقوم بمزامنة الوظائف بين الكلنت والسيرفر اي وظيفة توضع داخل الجدول يتم مزامنتها مع تحققات كثير الجداول في لوا مفيدة جداً عكس اللغات الاخرى يمديك تسوي فيها اي شي 1 Link to comment
^iiEcoo'x_) Posted January 10, 2017 Author Share Posted January 10, 2017 52 minutes ago, </Mr.Tn6eL> said: الجداول في لوا مفيدة جداً عكس اللغات الاخرى يمديك تسوي فيها اي شي يعني الاكاونت داتا اقدر اجيبها ب الكلاينت ؟ Link to comment
</Mr.Tn6eL> Posted January 10, 2017 Share Posted January 10, 2017 8 minutes ago, #_iMr,[E]coo said: يعني الاكاونت داتا اقدر اجيبها ب الكلاينت ؟ تقدر اذا سويت مزامنة بحيث انك اذا الاعب سجل دخوله تحطه في جدول واذا خرج تشيله من الجدول وبعدين تزامن الجدول مع الكلنت بحيث كل مايسجل لاعب دخوله او يخرج يرسل للكلنت ويسوي نفس الخطوة onAccountDataChangeبعدين نستخدم حدث وتخزن الاكوانت داتا في مكان الاعب بالجدول وتسوي مزامنة بتقلي كذا بيستهلك البيانات لا مايستهلك ولا شي كلها بيانات بسيطة ماهي بيانات ضخمة Link to comment
^iiEcoo'x_) Posted January 10, 2017 Author Share Posted January 10, 2017 طيب لما اسوي المزامنة بشتفيدني بالكلاينت؟ يعني مثلا سويت انه الكلام الي يكتبه بالديت ينحفظ بالاكاونت داتا ويوم يضغط زر او شي اخر يرجع الاكلام ! هذا يسهل علي بدلا ً اني اسوي ترايقرات ؟ Link to comment
</Mr.Tn6eL> Posted January 10, 2017 Share Posted January 10, 2017 1 hour ago, #_iMr,[E]coo said: طيب لما اسوي المزامنة بشتفيدني بالكلاينت؟ يعني مثلا سويت انه الكلام الي يكتبه بالديت ينحفظ بالاكاونت داتا ويوم يضغط زر او شي اخر يرجع الاكلام ! هذا يسهل علي بدلا ً اني اسوي ترايقرات ؟ يب تقدر تسويها بكلنت مثلا PLAYER_SYNC_TABLE["DATA_NAME"] = "DATA VALUE" الداتا على طول تتحدث وتقدر تجيبها كذا PLAYER_SYNC_TABLE["DATA_NAME"] اذا كان لديك خبرة بالجدوال تسويها ياحبيبي بالراحة Link to comment
^iiEcoo'x_) Posted January 10, 2017 Author Share Posted January 10, 2017 طيب تقدر تحط لي الكالمات حق الجداول PLAYER_SYNC_TABLE -- زي كذا Link to comment
</Mr.Tn6eL> Posted January 10, 2017 Share Posted January 10, 2017 1 hour ago, #_iMr,[E]coo said: طيب تقدر تحط لي الكالمات حق الجداول PLAYER_SYNC_TABLE -- زي كذا مافيه لا كلمات ولاشي هذا مجرد مثال لا اكثر metatablesتقدر تسويها بال قوقل عنها Link to comment
^iiEcoo'x_) Posted January 10, 2017 Author Share Posted January 10, 2017 الله يعطيك الف الف عافية جالس اتعلملها الحين من موقعهم http://www.lua.org/manual/5.1/ المهم فقط 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