Sign in to follow this  
Mr.Mostafa

مشكلة تآيمر يكرر آلرسآلة .

Recommended Posts

سلام عليكم

عندي مشكلة بتآيمر

آلحين آبي آسوي تآيمر في سيرفر سآيد 

وآنقله علي آلشآشة في كلنت سآيد ..

ولمآ آلتآيمر يخلص يرسل رسآلة بآلشآت

-- # Server -- يسوي تآيمر ويرسله للكنت

function convertMilliseconds ( timeMs )
	local minutes	= math.floor( timeMs / 60000 )
	local timeMs	= timeMs - minutes * 60000;
	local seconds	= math.floor( timeMs / 1000 )
	return string.format( '%02d:%02d', minutes, seconds );
end

timer = setTimer( function () end, 10000, 1 )

setTimer( function()
	local timerMission = convertMilliseconds( getTimerDetails(timer) )
	if isTimer(timer) then
		triggerClientEvent( root, "timeStart2", root, timerMission )
	end
end, 1000, 0 )

-- # Client -- يحط آلتآيمر بدي آكس تكست
addEvent("timeStart2", true)
addEventHandler("timeStart2", root,
	function( timerMission )
		theTimer = "".. timerMission ..""
	end
)

-- # Server -- آتحقق آنه خلص .. بعدين يرسل ترآيقر 

setTimer( function()
	if isTimer(timer) then return end
	triggerClientEvent( root, "timeEnd2", root )
	timer = setTimer( function () end, 10000, 1 )
end, 1000, 0 )

-- # Client -- تحقق من كلنت آنه يجيب آلكلمة آلي بآلدي آكس آلتآني ويرسل ترآيقر ,, عشآن يرسل آلرسآلة

addEvent("timeEnd2", true)
addEventHandler("timeEnd2", root,
	function(  )
		local Mission = theMission
		triggerServerEvent("outputText",localPlayer,Mission)
	end
)

-- # Server

addEvent ( "outputText", true )
addEventHandler ( "outputText", root,
	function (Mission)
		if Mission == "Dderby" then outputChatBox("derby mission",root,255,0,0) end
		if Mission == "Derby" then outputChatBox("derby mission",root,255,0,0) end
	end
)

 

آلمشكلة آنه , يكرر رسآلة

derby mission

مدري ليه

 

Share this post


Link to post
10 minutes ago, Abdul KariM said:

انت مسوي خبصه ومكثر تايمرات

طيب وين آلآخطآء عشآن آعرف آصلحهآ

+ هو تآيمر وآحد بس

Share this post


Link to post

1 - تقدر تنقص عدد التايمرات بشكل كبير, كذا يعتبر هدر للمال العام, والطريقه كالآتي :

 

سطر 10 وسطر 32 نفس التايمر بالضبط, تقدر تسوي وظيفه وتخلي التايمر بداخلها وتستدعي الوظيفه فقط. -

- سطر 12 وسطر 29 تقدر تختصرها بشوية متغيرات بدل كل هالتايمرات.

بخصوص مشكلتك هي بسبب أنه التايمرات أنت مخليها لانهائيه من خلال وضع قيمتها صفر

عندك خيارين :

1- تحط عدد مرات تكرار محدده .

2- تستخدم وظيفتين التحقق من التايمر + قتل التايمر ( isTimer, killTimer ) .

3- عندك تايمرات بنفس المسمى وهذا يمكن يسبب لك مشاكل .

  • Like 1

Share this post


Link to post
2 hours ago, Sha67 said:

1 - تقدر تنقص عدد التايمرات بشكل كبير, كذا يعتبر هدر للمال العام, والطريقه كالآتي :

 

سطر 10 وسطر 32 نفس التايمر بالضبط, تقدر تسوي وظيفه وتخلي التايمر بداخلها وتستدعي الوظيفه فقط. -

- سطر 12 وسطر 29 تقدر تختصرها بشوية متغيرات بدل كل هالتايمرات.

بخصوص مشكلتك هي بسبب أنه التايمرات أنت مخليها لانهائيه من خلال وضع قيمتها صفر

عندك خيارين :

1- تحط عدد مرات تكرار محدده .

2- تستخدم وظيفتين التحقق من التايمر + قتل التايمر ( isTimer, killTimer ) .

3- عندك تايمرات بنفس المسمى وهذا يمكن يسبب لك مشاكل .

كفو مآ فهمت شي :lol:

2 hours ago, Sha67 said:

3- عندك تايمرات بنفس المسمى وهذا يمكن يسبب لك مشاكل .

وين هآدي آلتآيمرآت , حدد

2 hours ago, Sha67 said:

1- تحط عدد مرات تكرار محدده .

 

لو حطيت عدد مررآت تكرآر محدده , مآ بيشتغل لمآ يخلص .

Share this post


Link to post
-- Client 

addEventHandler("onClientRender", root,
    function()
        dxDrawText(tostring(getElementData(resourceRoot,'Timer')), 153, 304, 308, 371, tocolor(255, 255, 255, 255), 2.00, "default", "left", "top", false, false, false, false, false)
    end
)
-- Server

timer = setTimer( function () end, 10000, 1 )

setTimer( function()
	if isTimer(timer) then
		local timerMission = math.floor(getTimerDetails(timer) / 1000)
		setElementData(resourceRoot,'Timer',timerMission) 
	else
		setElementData(resourceRoot,'Timer','Timer End')
	end
end, 50, 0 )

 

  • Confused 1

Share this post


Link to post
33 minutes ago, KillerX said:

-- Client 

addEventHandler("onClientRender", root,
    function()
        dxDrawText(tostring(getElementData(resourceRoot,'Timer')), 153, 304, 308, 371, tocolor(255, 255, 255, 255), 2.00, "default", "left", "top", false, false, false, false, false)
    end
)

-- Server

timer = setTimer( function () end, 10000, 1 )

setTimer( function()
	if isTimer(timer) then
		local timerMission = math.floor(getTimerDetails(timer) / 1000)
		setElementData(resourceRoot,'Timer',timerMission) 
	else
		setElementData(resourceRoot,'Timer','Timer End')
	end
end, 50, 0 )

 

دقيقة بجرب ^,^

طيب ولو آبي آسوي آن لمآ آلتآيمر يخلص يبدآ تآني بيكون كدآ ؟

timer = setTimer( function () end, 10000, 1 )

setTimer( function()
	if isTimer(timer) then
		local timerMission = math.floor(getTimerDetails(timer) / 1000)
		setElementData(resourceRoot,'Timer',timerMission) 
	else
		setElementData(resourceRoot,'Timer','Timer End')
		timer = setTimer( function () end, 10000, 1 )
	end
end, 50, 0 )

 

Share this post


Link to post

بيكون كذا تفضل 

timer = setTimer( function () end, 10000, 0)

setTimer( function()
	if isTimer(timer) then
		local timerMission = math.floor(getTimerDetails(timer) / 1000)
		setElementData(resourceRoot,'Timer',timerMission) 
	else
		setElementData(resourceRoot,'Timer','Timer End')
	end
end, 50, 0 )

 

Share this post


Link to post
3 hours ago, KillerX said:

بيكون كذا تفضل 


timer = setTimer( function () end, 10000, 0)

setTimer( function()
	if isTimer(timer) then
		local timerMission = math.floor(getTimerDetails(timer) / 1000)
		setElementData(resourceRoot,'Timer',timerMission) 
	else
		setElementData(resourceRoot,'Timer','Timer End')
	end
end, 50, 0 )

 

كدآ مآ بينفع

لآنه مآ بيلحق يسوي آلآشيآء آلي آلمفروض يسويهآ لو آلتآيمر خلص

, وش آلخطآ بطريقتي ؟

4 hours ago, Mr.Mostafa said:

 

Share this post


Link to post

لو تبيه تايمر واحد وللجميع ولمهمة الديربي
إستخدم المتغيرات
مثلاً إستخدم متغير وكل ثانية نقصه 1 وسوي ترايقر لجميع اللاعبين تحديث التايمر ..
أو بدون ترايقر , تقدر تسوي تايمر بالسيرفر سايد يبدا المهمة ومن اول م يبدا يسوي ترايقر لجميع اللاعبين ويسوي لهم متغير بكلنت لكل لاعب ويحدث التايمر هناك افضل من لوب كل ثانية ..
أتمنى اكون افدتك.

Share this post


Link to post
function convertMilliseconds ( timeMs )
	local minutes	= math.floor( timeMs / 60000 )
	local timeMs	= timeMs - minutes * 60000;
	local seconds	= math.floor( timeMs / 1000 )
	return string.format( '%02d:%02d', minutes, seconds );
end

timer = setTimer( function () end, 10000, 1 )

iamtimer=setTimer( function()
	if isTimer(timer) then
	local timerMission = convertMilliseconds( getTimerDetails(timer) )
    setElementData(resourceRoot,'time',timerMission)
     else
      removeElementData(resourceRoot,'time')
      outputChatBox('timer done!',root)
      killTimer(iamtimer)
	end
end, 1000, 0 )
--------------client side
addEventHandler('onClientRender',root,function()

    	if getElementData(resourceRoot,'time') then
      		dxDrawText(tostring(getElementData(resourceRoot,'time') ),255,100)
      	end
end)

اتوقع وصلتك الفكره بالتوفيق

Share this post


Link to post
1 hour ago, Master_MTA said:

اتوقع وصلتك الفكره بالتوفيق

مسوي كدآ , لكن آلمشكلة لمآ آلتآيمر يخلص آبيه يشتغل مرة تآنية 

Share this post


Link to post

التايمر أنت مخليه لا نهائي أساساً كيف بيخلص -_-؟

resetTimer المهم استخدم

 

  • Like 1

Share this post


Link to post
2 hours ago, Sha67 said:

التايمر أنت مخليه لا نهائي أساساً كيف بيخلص -_-؟

 

وين آلي مخليه لآ نهآئي ؟ /:

Share this post


Link to post

كل الإثنين لا نهائية لأنك حاط القيمة صفر, إذا استخدمت الكود حق اللي أعطاك فوق ^^

Edited by Sha67

Share this post


Link to post
2 minutes ago, Sha67 said:

كل الإثنين لا نهائية لأنك حاط القيمة صفر, إذا استخدمت الكود حق اللي أعطاك فوق ^^

آلكود حقي لآ نهآئي , مسويه 1

On 31/08/2018 at 04:35, Mr.Mostafa said:

10000, 1 )

ــ

وعلي آلعموم آلمشكلة آنحلت آلحمدآلله , تسلم :)

Share this post


Link to post

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.