Jump to content

x[ مساعدة ]x Notifcation system


Recommended Posts

سلام عليكم ورحمة الله تعالى وبركاته

اليوم يا عيال كنت اسوي مود بسيط اليل هو مود الـ Notification

لكن ما عرفت كيف اسوي مود notification فيه حركة

اللي هي  

إشعار 1

إشعار 2

إشعار 3

يعني يجي واحد ورا الآخر

مو إشعار 1 يجي فيه الكلام ويوم اسوي واحد ثاني يطلع فيه ما يضيف تحت

ما عندي اي فكرة كيف اسويها 

ممكن احد يساعدني ؟

Link to comment
9 hours ago, coNolel said:

سلام عليكم ورحمة الله تعالى وبركاته

اليوم يا عيال كنت اسوي مود بسيط اليل هو مود الـ Notification

لكن ما عرفت كيف اسوي مود notification فيه حركة

اللي هي  

إشعار 1

إشعار 2

إشعار 3

يعني يجي واحد ورا الآخر

مو إشعار 1 يجي فيه الكلام ويوم اسوي واحد ثاني يطلع فيه ما يضيف تحت

ما عندي اي فكرة كيف اسويها 

ممكن احد يساعدني ؟


استعمل اللوب + الجداول

ملاحظة تقدر تحمل مود الجيو مسج وتتعلم من ملف كلينت اللي موجود فيه

Link to comment
Just now, Killer Project said:


استعمل اللوب + الجداول

ملاحظة تقدر تحمل مود الجيو مسج وتتعلم من ملف كلينت اللي موجود فيه

مشكور بس ، ممكن تقولي كيف رح استعملهم ؟

Link to comment

كذا ؟ 

local dxNotification = {}

function CreateNotification(Message, Color)

for i,v in ipairs(Message) do
table.insert(dxNotification,Message[1])
dxDrawText(Message[v], x, y, w ,h)


end
end

On 26/04/2017 at 17:39, Master_Ali said:

table.insert

table.sort--------مش مهمه لذيك الدرجه لكن للضمان لاغير

setTimer

table.remove

 

Link to comment

شوف عندي طريقة سهلة وحلوة 

تسوي دي اكس ، المه

تسوي اول شي local nof = 0

بس ودك يجي تنبيه تضهره للكل ، تحط عليه nof = 1

وبعدين اذا اجا تنبيه اخر تحط تسوي 

if not == 1 then 

nof = 2 

وتزيد الدي اكس 1 بحيث انه يجي بعده

طبعا تكون مسوي تايمر , بس يخلث التايمر 

التنبيه 2 تنقص منه  1  بحيث يرجع مكان التنبيه الاول وتخليه nof  = 1 

التنبيه الاول تخليه nof = 0

وتتحقق اذا كان في تنبيه 3

if nof == 3 then 

nof = 2 

وتنقص 1 بحيث يرجع مكان التنبيه 2 

- واخر شي تسوي اذا ودك يكون بس في 3 تنبيهات

if nof == 5 then 

تمسح التنبيه الاول لو وقته م خلص وترجعهن التنبيهات الباقية وتزيد 

طبعا سويه بالداتا او الجداول ممكن يزبط معك 

 

Link to comment
2 hours ago, coNolel said:

كذا ؟ 

local dxNotification = {}

function CreateNotification(Message, Color)

for i,v in ipairs(Message) do
table.insert(dxNotification,Message[1])
dxDrawText(Message[v], x, y, w ,h)


end
end

 

خطا حبيبي

الصحيح باول ملف الكلنت حط

local dxNotification = {}

وبكود الرساله حط


function CreateNotification(Message, Color)

if #dxNotification~=0 and #dxNotification==1 then

table.insert(dxNotification,{plr=localPlayer,Message=Message,Color=Color})

thetimer= setTimer(finction()  triggerEvent('theve',dxNotification.plr,dxNotification.Message,dxNotification.Color)  end,1000*7,1)

return

else

if #dxNotification>1 then

for k=1,#dxNotification do

table.remove(dxNotification,k) return

end

end

if not isTimer(thetimer) then

if #dxNotification~=0 then

table.remove(dxNotification,1)

end

dxDrawText(Message, x, y, w ,h)end

end

end
 

addEventHandler('theve',root,CreateNotification)

addEvent('theve',true)

جرب معليش ما اقدر استخدم التاج لان نتي ضعيف ردلي خبر

Edited by Master_Ali
Link to comment
15 minutes ago, #BrosS said:

@Master_Ali غلط

وش رايك تورينا شغلك يالمنتقد؟

بالمناسبه يا صاحب الموضوع جرب وردلي خبر +

نسيت اعدل

على السطر

ذا

thetimer= setTimer(finction()  triggerEvent('theve',dxNotification[1].plr,dxNotification[1].Message,dxNotification[1].Color)  end,1000*7,1)

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

بس كحد اقصى 2 رساله انت عدل عطيتك الفكره فقط

Link to comment
15 hours ago, #BrosS said:

@Master_Ali كيف تفترض تسوي شعار تحت شعار تحت شعار مثل مايقول صاحب الموضوع

كيف تسويه وأنت مو ضايف إحداثيات ولا شي

 

 

15 hours ago, Master_Ali said:

وش رايك تورينا شغلك يالمنتقد؟

بالمناسبه يا صاحب الموضوع جرب وردلي خبر +

نسيت اعدل

على السطر

ذا

thetimer= setTimer(finction()  triggerEvent('theve',dxNotification[1].plr,dxNotification[1].Message,dxNotification[1].Color)  end,1000*7,1)

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

بس كحد اقصى 2 رساله انت عدل عطيتك الفكره فقط

مشكورين الأثنين ، بس الاخ بروس عنده حق

بيضيف الكلام دي إكس ، بس وين الإحداثيات اللي بينضياف عليها ؟

لآزم أفهم كيف أزبط الإحداثيات ، وبعدها الأشياء الأخرى فهمتها :]

وانا اصلا ابغاه يسوي أكثر من رسالة  ، لانو كذا بيسوي رسالة كل 7 ثواني يعني ما رح تجي وحدة تحت الثانية أو فوقها ..

Edited by coNolel
Link to comment
On ٢٨‏/٤‏/٢٠١٧ at 00:12, #BrosS said:

@Master_Ali كيف تفترض تسوي شعار تحت شعار تحت شعار مثل مايقول صاحب الموضوع

كيف تسويه وأنت مو ضايف إحداثيات ولا شي

حبيب قلبي انا فهمته غلط  انا حسبته يبي يسوي اشعار ثم لو اللاعب جاه اشعار ثاني وهو ما راح من عنده الاشعار اللي راح ينتظر 7 ثواني ثم يطلعله الاشعار اللي بعده عدم مقدرتك فهم الاكواد الخطا عندك مب عندي

11 hours ago, coNolel said:

 

 

مشكورين الأثنين ، بس الاخ بروس عنده حق

بيضيف الكلام دي إكس ، بس وين الإحداثيات اللي بينضياف عليها ؟

لآزم أفهم كيف أزبط الإحداثيات ، وبعدها الأشياء الأخرى فهمتها :]

وانا اصلا ابغاه يسوي أكثر من رسالة  ، لانو كذا بيسوي رسالة كل 7 ثواني يعني ما رح تجي وحدة تحت الثانية أو فوقها ..

ان كنت تبي وحده تحت الثانيه يقلبي

يحتاجلك  تحدل الارتفاع حقه يعني تسوي متغير وكل ما جات رساله تغير الارتفاع بالمتغير وتغير بعد بوزايشن التكست

Link to comment
2 hours ago, Master_Ali said:

حبيب قلبي انا فهمته غلط  انا حسبته يبي يسوي اشعار ثم لو اللاعب جاه اشعار ثاني وهو ما راح من عنده الاشعار اللي راح ينتظر 7 ثواني ثم يطلعله الاشعار اللي بعده عدم مقدرتك فهم الاكواد الخطا عندك مب عندي

ان كنت تبي وحده تحت الثانيه يقلبي

يحتاجلك  تحدل الارتفاع حقه يعني تسوي متغير وكل ما جات رساله تغير الارتفاع بالمتغير وتغير بعد بوزايشن التكست

مشكور ي  حبيبي ، سويتها كما تشوف تحت ، بس بالله انا سويت تأثير تتطلع الـ Alpha

من 0 إلى 255

يوم اجرب اشغل المود مرة وحدة يشتغل كويس ، لكن يوم اسوي مثلا  وحدة تحت الثانية ، التأثير ينعاد،

يعني الأولى تعيد الـ Alpha 

حقها مع اللي تحتها

كيف أقدر أخلي بس اللي تحت تسوي التأثير من جديد بدون ما تعيد للي فوق

الكود هذا هو

ادري ملخبط ض

local dxNotification = {Rendered = false}
local font = dxCreateFont("font.ttf", 12)

local sX, sY = guiGetScreenSize( )
function DrawNotification()

for i,v in ipairs(dxNotification) do

	if dxNotification[i] then
	local dxNotifWidth = dxGetTextWidth(string.gsub ( v[1], '#%x%x%x%x%x%x', '' ), 1 , font)
	local dxNotifHeight = 35
	local dxNotifHeight = dxNotifHeight * i


	
        local now = getTickCount()
		local endTime = start + 4000
        local elapsedTime = now - start
        local duration = endTime - start
        local progress = elapsedTime / duration

		if now > v[6] + 4000 then
		table.remove(dxNotification, i)

			if #dxNotification == 0 then

				removeEventHandler("onClientRender", root, DrawNotification)
				dxNotification.Rendered = false
			end

		else	
						Alpha = interpolateBetween(0, 0 , 0, 170 , 0, 0, progress, "Linear" )

	dxDrawRRectangle(v[1],tocolor(255,255,255,Alpha),1,aFont,(sX/2)-(dxNotifWidth/2), 60 + dxNotifHeight, dxNotifWidth, 30,tocolor(0,0,0,Alpha),15,"img/music.png",20,20,false)


		end
	end
end

end


function createNotification(Text)
	if not  dxNotification.Rendered then
	addEventHandler("onClientRender", root,DrawNotification)
	dxNotification.Rendered = true

	end

	if #dxNotification >= 5 then
	
	table.remove(dxNotification, 1)
	end
	
	for i , v in ipairs(dxNotification ) do
	v[5] = v[5] + 600
	
	end
	local dxNotifWidth = dxGetTextWidth(string.gsub ( Text, '#%x%x%x%x%x%x', '' ), 1, font)
	if Alpha == 255 then
	outputChatBox("alpha is 255")
	end
	table.insert(dxNotification, {Text,sX+400, 550, sX-dxNotifWidth,560,getTickCount()})
		start = getTickCount()

outputChatBox("whats done?")
end

 

Link to comment
10 hours ago, coNolel said:

مشكور ي  حبيبي ، سويتها كما تشوف تحت ، بس بالله انا سويت تأثير تتطلع الـ Alpha

من 0 إلى 255

يوم اجرب اشغل المود مرة وحدة يشتغل كويس ، لكن يوم اسوي مثلا  وحدة تحت الثانية ، التأثير ينعاد،

يعني الأولى تعيد الـ Alpha 

حقها مع اللي تحتها

كيف أقدر أخلي بس اللي تحت تسوي التأثير من جديد بدون ما تعيد للي فوق

الكود هذا هو

ادري ملخبط ض


local dxNotification = {Rendered = false}
local font = dxCreateFont("font.ttf", 12)

local sX, sY = guiGetScreenSize( )
function DrawNotification()

for i,v in ipairs(dxNotification) do

	if dxNotification[i] then
	local dxNotifWidth = dxGetTextWidth(string.gsub ( v[1], '#%x%x%x%x%x%x', '' ), 1 , font)
	local dxNotifHeight = 35
	local dxNotifHeight = dxNotifHeight * i


	
        local now = getTickCount()
		local endTime = start + 4000
        local elapsedTime = now - start
        local duration = endTime - start
        local progress = elapsedTime / duration

		if now > v[6] + 4000 then
		table.remove(dxNotification, i)

			if #dxNotification == 0 then

				removeEventHandler("onClientRender", root, DrawNotification)
				dxNotification.Rendered = false
			end

		else	
						Alpha = interpolateBetween(0, 0 , 0, 170 , 0, 0, progress, "Linear" )

	dxDrawRRectangle(v[1],tocolor(255,255,255,Alpha),1,aFont,(sX/2)-(dxNotifWidth/2), 60 + dxNotifHeight, dxNotifWidth, 30,tocolor(0,0,0,Alpha),15,"img/music.png",20,20,false)


		end
	end
end

end


function createNotification(Text)
	if not  dxNotification.Rendered then
	addEventHandler("onClientRender", root,DrawNotification)
	dxNotification.Rendered = true

	end

	if #dxNotification >= 5 then
	
	table.remove(dxNotification, 1)
	end
	
	for i , v in ipairs(dxNotification ) do
	v[5] = v[5] + 600
	
	end
	local dxNotifWidth = dxGetTextWidth(string.gsub ( Text, '#%x%x%x%x%x%x', '' ), 1, font)
	if Alpha == 255 then
	outputChatBox("alpha is 255")
	end
	table.insert(dxNotification, {Text,sX+400, 550, sX-dxNotifWidth,560,getTickCount()})
		start = getTickCount()

outputChatBox("whats done?")
end

 

اذا كنت تبي كل الفا منفصل اجل يبيلك كل ريتانجل منفصل

على حسب ظني

Link to comment
20 hours ago, #_iMr.[E]coo said:

شوف عندي طريقة سهلة وحلوة 

تسوي دي اكس ، المه

تسوي اول شي local nof = 0

بس ودك يجي تنبيه تضهره للكل ، تحط عليه nof = 1

وبعدين اذا اجا تنبيه اخر تحط تسوي 

if not == 1 then 

nof = 2 

وتزيد الدي اكس 1 بحيث انه يجي بعده

طبعا تكون مسوي تايمر , بس يخلث التايمر 

التنبيه 2 تنقص منه  1  بحيث يرجع مكان التنبيه الاول وتخليه nof  = 1 

التنبيه الاول تخليه nof = 0

وتتحقق اذا كان في تنبيه 3

if nof == 3 then 

nof = 2 

وتنقص 1 بحيث يرجع مكان التنبيه 2 

- واخر شي تسوي اذا ودك يكون بس في 3 تنبيهات

if nof == 5 then 

تمسح التنبيه الاول لو وقته م خلص وترجعهن التنبيهات الباقية وتزيد 

طبعا سويه بالداتا او الجداول ممكن يزبط معك 

 

 

Link to comment
10 minutes ago, coNolel said:

انا احب اسويه ب لوب عشان يجي اوتوماتيكي

اظن طريقتك محدودة ، ولا انا غلطان ؟

نعم محدودة , اذا كنت تقصد "محدودة" بانه التنبيهات يجن محدودات ف نعم , لكن تقدر تزودهن حسب كيفك وتزيد التحققات وغيره !

Link to comment
22 minutes ago, Abdul KariM said:

وادخل الاحداثيات بالتيبل مع المسج وبعدين لوب وفرغ البيانات  y كل مسج تسويه زود على قيمة 

انا الحين مشكلتي هي اني :

3 hours ago, coNolel said:

مشكور ي  حبيبي ، سويتها كما تشوف تحت ، بس بالله انا سويت تأثير تتطلع الـ Alpha

من 0 إلى 255

يوم اجرب اشغل المود مرة وحدة يشتغل كويس ، لكن يوم اسوي مثلا  وحدة تحت الثانية ، التأثير ينعاد،

يعني الأولى تعيد الـ Alpha 

حقها مع اللي تحتها

كيف أقدر أخلي بس اللي تحت تسوي التأثير من جديد بدون ما تعيد للي فوق

الكود هذا هو

ادري ملخبط ض


local dxNotification = {Rendered = false}
local font = dxCreateFont("font.ttf", 12)

local sX, sY = guiGetScreenSize( )
function DrawNotification()

for i,v in ipairs(dxNotification) do

	if dxNotification[i] then
	local dxNotifWidth = dxGetTextWidth(string.gsub ( v[1], '#%x%x%x%x%x%x', '' ), 1 , font)
	local dxNotifHeight = 35
	local dxNotifHeight = dxNotifHeight * i


	
        local now = getTickCount()
		local endTime = start + 4000
        local elapsedTime = now - start
        local duration = endTime - start
        local progress = elapsedTime / duration

		if now > v[6] + 4000 then
		table.remove(dxNotification, i)

			if #dxNotification == 0 then

				removeEventHandler("onClientRender", root, DrawNotification)
				dxNotification.Rendered = false
			end

		else	
						Alpha = interpolateBetween(0, 0 , 0, 170 , 0, 0, progress, "Linear" )

	dxDrawRRectangle(v[1],tocolor(255,255,255,Alpha),1,aFont,(sX/2)-(dxNotifWidth/2), 60 + dxNotifHeight, dxNotifWidth, 30,tocolor(0,0,0,Alpha),15,"img/music.png",20,20,false)


		end
	end
end

end


function createNotification(Text)
	if not  dxNotification.Rendered then
	addEventHandler("onClientRender", root,DrawNotification)
	dxNotification.Rendered = true

	end

	if #dxNotification >= 5 then
	
	table.remove(dxNotification, 1)
	end
	
	for i , v in ipairs(dxNotification ) do
	v[5] = v[5] + 600
	
	end
	local dxNotifWidth = dxGetTextWidth(string.gsub ( Text, '#%x%x%x%x%x%x', '' ), 1, font)
	if Alpha == 255 then
	outputChatBox("alpha is 255")
	end
	table.insert(dxNotification, {Text,sX+400, 550, sX-dxNotifWidth,560,getTickCount()})
		start = getTickCount()

outputChatBox("whats done?")
end

 

 

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