Jump to content

x[امشكلة]x مشكلة في مود عاجل


Recommended Posts

السلام عليكم اخوتي المبرمجين

كيف حالكم؟!؟؟

في مشكلة صارت في مود العاجل

انا مسوي اذا ضغط الاعب علي زر يقوم بأستدعاء حدث من السيرفر وبدخل هذا الحدث استدعاء لحدث تاني في الكلنت تريجر يعني والحدث الي في الكنت دا الي في امر

guiSetText علشان يعطي نص لليبل

 وعلمت برضوا حدث اذ كتب الاعب كلمة ع1 ومن ثم كتب بعد ع1 الكلام الي يبيه بس المراضي حدث الكتابة في السيرفر يعني يستدعي علي طول من الكلنت

وحتفهم كلامي دا لو بصيت في الأسكربت

-- دا اسكربت بسيط من العاجل تماام
-- كلنت

addEvent ( "setINF", true )
addEventHandler ( "setINF", root,
	function ( m1, m2, m3, mT1, mT2, mT3, Rr, Gg, Bb )
		local R, G, B = ( Rr and Rr or guiGetText ( R ) ), ( Gg and Gg or guiGetText ( G ) ), ( Bb and Bb or guiGetText ( B ) )
		if m1 then
			local text = ( mT1 and mT1 or guiGetText ( Agel1E ) )
			guiSetText ( mess1, text )
			guiLabelSetColor ( mess1, R, G, B )
			guiSetText ( Agel1E, text )
			local Dates = { text, R, G, B }
			setElementData ( resourceRoot, "mess1", Dates )
		end
	end
)

addEventHandler ("onClientGUIClick", root,
	function ()
		if ( source == Aply1 ) then
			local Edit1 = guiGetText ( Agel1E )
			if R ~= "" and G ~= "" and B ~= "" and Edit1 ~= "" then
				triggerServerEvent ( "getINF", localPlayer, true )
			else
				outputChatBox("يجب ملء جميع الخانات الخاصة بالرسالة الذي تكتب فيها",255,0,0,true)  
			end
		end
		if ( source == Close ) then
			guiSetVisible (Message , false)
			showCursor(false)
			removeEventHandler("onClientKey",root,zer)
		end
	end
)

-- سيرفر

Groups = {
"Help.Console",
"Console", 
}

addCommandHandler( "ع1", 
	function ( thePlayer, _, ... )
		local message = table.concat ( { ... }, " " )
		for i, v in ipairs ( Groups ) do
			if isObjectInACLGroup ( "user."..getAccountName ( getPlayerAccount ( thePlayer ) ) , aclGetGroup ( v ) ) then
				triggerClientEvent ( root, "setINF", thePlayer, true, false, false, message, false, false, 255, 255, 255 )
			end
		end
	end
)

addEvent( "getINF", true )
addEventHandler( "getINF", root,
	function ( m1, m2, m3 )
		triggerClientEvent ( root, "setINF", source, m1, m2, m3 )
	end
)

المشكلة الي بتحصل ان لما اضغط علي الزر الرسالة مبتظهرش غير عندي انا بس

ولاكن اذا كتبت في اف 8 ع1 ثم مسافة ثم الرسالة الي انا عايزها تظهر عند الكل فدا عيب في امر التريقر تقريبآ ممكن حد يشوف

Link to comment
8 hours ago, xX|KeMo|Xx said:

triggerClientEvent ( root, "setINF", root, true, false, false, message, false, false, 255, 255, 255 )
triggerClientEvent ( root, "setINF", root, m1, m2, m3 )

 

طييب ممكن افهم ليه روت انا لما دخلت الويكي فهمت ان الأولنية انت عايز ترسلها لمين

فعلشان كدا قلت روت

لاكن التنية انت الي صاحب الحدث

مش المفروض ان صاحب الحدث حيكون سورس

ممكن تفهمني بالتفصيل بدل ما افتح موضوع تاني عل الفاضي

Link to comment
5 minutes ago, Abdul KariM said:

لان الارقمنت الاول الالمنت الي تبي ترسل له الترايقر

يعني تبي ترسل الترايقر لمن

لو تحط سورس راح يرسل للاعب فقط

لو تحط روت راح راح ينرسل لجميع الالمنت

 

صح كلامك انا حاطط روت في الأرقمنت الأول وحطيت سورس في الأرقمنت الثالث

ليه كيمو عدلي علي الكود خلي الأرقمنت الثالث روت برضو

مش المفروض ان الأرقمنت الثالث لصاحب الحدث الي هوا انا علشان انا الي استدعيته

ام ايه ياريت توضح

Link to comment
2 hours ago, Abdul KariM said:

الارقمنت الثالث راح يكون الالمنت الي بيصير المصدر ( السورس ) ء

يعني السورس الي راح يكون بالكلنت

والله اعرف ان الأرقمنت الثالث هوا المصدر

بس لما احط روت

معناها ان كدا الكل مصدر يعني ايه بأ مش فاهم

Edited by Ahmed_Negm
Link to comment
10 hours ago, iMr.WiFi..! said:

عندك في ترايقر سيرفر افنت : مسوي ارقمنت واحد وبينما الاستقبال فيه 3 بارتمرات .؟؟

عادي لأني عامل بالتريقر شروط

قبل مستخدمها

ادي الكود كامل

addEvent ( "setINF", true )
addEventHandler ( "setINF", root,
	function ( m1, m2, m3, mT1, mT2, mT3, Rr, Gg, Bb )
		local R, G, B = ( Rr and Rr or guiGetText ( R ) ), ( Gg and Gg or guiGetText ( G ) ), ( Bb and Bb or guiGetText ( B ) )
		if m1 then
			local text = ( mT1 and mT1 or guiGetText ( Agel1E ) )
			guiSetText ( mess1, text )
			guiLabelSetColor ( mess1, R, G, B )
			guiSetText ( Agel1E, text )
			local Dates = { text, R, G, B }
			setElementData ( resourceRoot, "mess1", Dates )
		elseif m2 then
			local text = ( mT2 and mT2 or guiGetText ( Agel2E ) )
			local name = getPlayerName(source)
			guiSetText ( mess2, "Message | "..name.." | : "..text )
			guiLabelSetColor ( mess2, R, G, B )
			guiSetText ( Agel2E, text )
			local Dates = { name, text, R, G, B }
			setElementData ( resourceRoot, "mess2", Dates )
		elseif m3 then
			local text = ( mT3 and mT3 or guiGetText ( ScreenE ) )
			guiSetVisible ( mess3, true )
			guiSetText ( mess3, text )
			guiLabelSetColor ( mess3, R, G, B )
			guiSetText ( ScreenE, text )
			if not M3Timer then
				M3Timer = setTimer ( function ()
					guiSetVisible ( mess3, false )
					M3Timer = nil
				end, 12000 , 1 )
			end
		end
	end
)

ياريت تحل المشكلة دي علشان انا حتجنن

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

والبرميترات مبظوطة لو انت شفت الكود كويس حتفهمني

لأني كمان بشغل الدي بق عند اختبار اي مود علي 3

في اريت تحلها

Link to comment
11 minutes ago, #MR.NaiF said:

				triggerClientEvent ( root, "setINF", root, true, false, false, message, false, false, 255, 255, 255 )

جرب

بص انا الظاهر المفرود اعمل موضوع تاني بس حضرب مثل مش حجيب المود بتاعي دا

Link to comment

@Ahmed_Negm

جرب زي ما اديتك كدا و رد خبر اشتغل و لا لا

خليك في نفس الموضوع 

عشان المشكلة متحلتش بتاعت مود العاجل

لو عملت موضوع جديد المشرف هيقفله و يقولك كمل هنا

Link to comment

اصل المشكلة ان انا مش عارف اوصلكم المشكلة بالشكل الصح علشان تحلوها

بص حبعتلك الكود الي فيه المشكلة تاني

ومظبوم ميا في الميا ومجرب guiSetText دا الكود الأساسي الي فيه اوامر ال

----------كلنت
addEvent ( "setINF", true )
addEventHandler ( "setINF", root,
	function ( m1, m2, m3, mT1, mT2, mT3, Rr, Gg, Bb )
		local R, G, B = ( Rr and Rr or guiGetText ( R ) ), ( Gg and Gg or guiGetText ( G ) ), ( Bb and Bb or guiGetText ( B ) )
		if m1 then
			local text = ( mT1 and mT1 or guiGetText ( Agel1E ) )
			guiSetText ( mess1, text )
			guiLabelSetColor ( mess1, R, G, B )
			guiSetText ( Agel1E, text )
			local Dates = { text, R, G, B }
			setElementData ( resourceRoot, "mess1", Dates )
		elseif m2 then
			local text = ( mT2 and mT2 or guiGetText ( Agel2E ) )
			local name = getPlayerName(source)
			guiSetText ( mess2, "Message | "..name.." | : "..text )
			guiLabelSetColor ( mess2, R, G, B )
			guiSetText ( Agel2E, text )
			local Dates = { name, text, R, G, B }
			setElementData ( resourceRoot, "mess2", Dates )
		elseif m3 then
			local text = ( mT3 and mT3 or guiGetText ( ScreenE ) )
			guiSetVisible ( mess3, true )
			guiSetText ( mess3, text )
			guiLabelSetColor ( mess3, R, G, B )
			guiSetText ( ScreenE, text )
			if not M3Timer then
				M3Timer = setTimer ( function ()
					guiSetVisible ( mess3, false )
					M3Timer = nil
				end, 12000 , 1 )
			end
		end
	end
)

ودا حدث الضغط بس خلينا في الزر الأول لأن باقي الأزرار فيها مشاكل

aply1

---------- كلنت
addEventHandler ("onClientGUIClick", root,
	function ()
		if ( source == Aply1 ) then
			local Edit1 = guiGetText ( Agel1E )
			if R ~= "" and G ~= "" and B ~= "" and Edit1 ~= "" then
				triggerServerEvent ( "getINF", localPlayer, true )
			else
				outputChatBox("يجب ملء جميع الخانات الخاصة بالرسالة الذي تكتب فيها",255,0,0,true)  
			end
		end
		if ( source == Aply2 ) then
			local Edit2 = guiGetText (Agel2E)
			if R ~= "" and G ~= "" and B ~= "" and Edit2 ~= "" then
				triggerServerEvent ( "getINF", localPlayer, false, true )
			else
				outputChatBox("يجب ملء جميع الخانات الخاصة بالرسالة الذي تكتب فيها",255,0,0,true)  
			end
		end
		if ( source == Aply3 ) then
			local screen = guiGetText (ScreenE)
			if R ~= "" and G ~= "" and B ~= "" and screen ~= "" then
				triggerServerEvent ( "getINF", localPlayer, false, false, true )
			else
				outputChatBox("يجب ملء جميع الخانات الخاصة بالرسالة الذي تكتب فيها",255,0,0,true)  
			end
		end
		if ( source == Close ) then
			guiSetVisible (Message , false)
			showCursor(false)
			removeEventHandler("onClientKey",root,zer)
		end
	

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

addEvent( "getINF", true )
addEventHandler( "getINF", root,
	function ( m1, m2, m3 )
		triggerClientEvent ( root, "setINF", root, m1, m2, m3 )
	end
)

اتفضل

Link to comment
4 minutes ago, #MR.NaiF said:

	function ( m1, m2, m3 )

لازم تروح مع الترايجر الي رايح سيرفر الاول

مثال


triggerServerEvent("EGYPT",localPlayer,m1,m2,m3)

بعدن في ملف سيرفر


function ( m1, m2, m3 )

 

المشكلة قلت لك مش في البرميتر

1 minute ago, Abdul KariM said:

انت ايش تبي تسوي 

مش قلتلكم انتم مش فاهمين المشكلة ايه
ثواني حوضحلهكم

وعايز الأمر دا لما اضغط علي زر معين يتم تطبيق الأمر دا عند كل الناس guiSetText انا عندي امر

ممكن حد يعمل كود بالشكل دا واقرنه بالكود الي عندي

button فرضآ ان الزر الي حضغط عليه علشان يحصل كدا اسمه

الرسالة الي عايزها تظهر هيا دي

guiGetText ( edit1 )

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

Link to comment
2 minutes ago, Abdul KariM said:

اذا انت تبي تسوي عاجل استخدم الدي اكس والمتغيرات افضل من الي تسويه

لا مش حابب الدي اكس افضل الليبل

ولو انا مش عايز اتجاهل المشكلة دي برضوا

واديني قلتل انا ايش ابي فياريت ترد

Link to comment
1 minute ago, Abdul KariM said:

طيب جرب بالكلينت تبدل لوكال بلاير ب روت

localPlayer > root

جربت عمومآ شكرآ
انا حجرب المود كذا مرا مع واحد صحبي في السيرفر لحد
محل المشكلة

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