Jump to content

مسابقة :- الاكواد المعقدة !


Recommended Posts

افضل واحد لحد الان 

@#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

ههه استخدام شو ؟؟؟؟

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

  • Like 1
Link to comment
1 hour ago, #Skrillex said:

ههه استخدام شو ؟؟؟؟

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

خل غيرك يستفيد ^^

Link to comment

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
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 كان بينجح لو ام تي اي تدعم

  • Like 1
Link to comment

افضل شي لحد الان 

@</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
18 minutes ago, #BrosS said:

كل الأكواد لحد الأن تتعلق بالجداول

يعني الجداول اصعب شي ؟ 

كودي يقوم بمزامنة الوظائف بين الكلنت والسيرفر اي وظيفة توضع داخل الجدول يتم مزامنتها مع تحققات كثير

الجداول في لوا مفيدة جداً عكس اللغات الاخرى يمديك تسوي فيها اي شي

  • Like 1
Link to comment
8 minutes ago, #_iMr,[E]coo said:

يعني الاكاونت داتا اقدر اجيبها ب الكلاينت ؟

 

تقدر اذا سويت مزامنة

بحيث انك اذا الاعب سجل دخوله تحطه في جدول واذا خرج تشيله من الجدول وبعدين تزامن الجدول مع الكلنت بحيث كل مايسجل لاعب دخوله او يخرج يرسل للكلنت ويسوي نفس الخطوة

onAccountDataChangeبعدين نستخدم حدث

وتخزن الاكوانت داتا في مكان الاعب بالجدول :) 

وتسوي مزامنة :)

بتقلي كذا بيستهلك البيانات لا مايستهلك ولا شي كلها بيانات بسيطة ماهي بيانات ضخمة :D

Link to comment

طيب لما اسوي المزامنة 

بشتفيدني بالكلاينت؟

يعني مثلا سويت انه الكلام الي يكتبه بالديت ينحفظ بالاكاونت داتا 

ويوم يضغط زر او شي اخر يرجع الاكلام !

هذا يسهل علي بدلا ً  اني اسوي ترايقرات ؟

Link to comment
1 hour ago, #_iMr,[E]coo said:

طيب لما اسوي المزامنة 

بشتفيدني بالكلاينت؟

يعني مثلا سويت انه الكلام الي يكتبه بالديت ينحفظ بالاكاونت داتا 

ويوم يضغط زر او شي اخر يرجع الاكلام !

هذا يسهل علي بدلا ً  اني اسوي ترايقرات ؟

يب تقدر تسويها بكلنت

مثلا

PLAYER_SYNC_TABLE["DATA_NAME"] = "DATA VALUE"

 

الداتا على طول تتحدث

وتقدر تجيبها كذا

PLAYER_SYNC_TABLE["DATA_NAME"]

اذا كان لديك خبرة بالجدوال تسويها ياحبيبي بالراحة

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...