Jump to content

Top 3 level , Dx panel


Mr.Mostafa

Recommended Posts

أستعمل الوظيفة هذي :

--- By iMr.Wifi..!
function getElementsFromData( DataName, ElementType, Value )
	Elements = { }
	assert( type( DataName ) == 'string', " Bad Argument @1 ' Not String ' ")
	assert( ElementType == 'player' or ElementType == 'ped' or ElementType == 'marker' or ElementType == 'vehicle' , " Bad Argument @2 ' Not Element ' ")
	local ElementType = ElementType or { 'player', 'ped', 'marker', 'vehicle' }
	local Value = Value or nil
		if type ( ElementType ) ~= "table" then
			for i,v in ipairs ( getElementsByType ( ElementType ) ) do
				if Value == nil then 
					if getElementData ( v, DataName ) ~= nil then
						table["insert"]( Elements, v )
					end
						else
					if getElementData ( v, DataName ) == Value then
						table["insert"]( Elements, v )
					end					
				end
			end
				else
			for k,z in ipairs ( ElementType ) do
				for i,v in ipairs ( getElementsByType ( z ) ) do
					if Value == nil then 
						if getElementData ( v, DataName ) ~= nil then
							table["insert"]( Elements, v )
						end
							else
						if getElementData ( v, DataName ) == Value then
							table["insert"]( Elements, v )
						end					
					end
				end			
			end
		end
	return Elements;
end

واستخدم السورت وسوي لوب 

Link to comment
2 minutes ago, Master_MTA said:

غيره الى  local

عشان ما تصير مشاكل بالمود اشوفك تعبان على الكود حرام يظيع شغلك عشان غلط تافه تلاقيك ما انتبهت

❤️

 

مشكور يالغالي وقد نشرته مسبقاً في موضوع الاكواد المفيدة :-
 

عالعموم الكود الجديد :-

function getElementsFromData( DataName, ElementType, Value )
	local Elements = { }
	assert( type( DataName ) == 'string', " Bad Argument @1 ' Not String ' ")
	assert( ElementType == 'player' or ElementType == 'ped' or ElementType == 'marker' or ElementType == 'vehicle' , " Bad Argument @2 ' Not Element ' ")
	local ElementType = ElementType or { 'player', 'ped', 'marker', 'vehicle' }
	local Value = Value or nil
		if type ( ElementType ) ~= "table" then
			for i,v in ipairs ( getElementsByType ( ElementType ) ) do
				if Value == nil then 
					if getElementData ( v, DataName ) ~= nil then
						table["insert"]( Elements, v )
					end
						else
					if getElementData ( v, DataName ) == Value then
						table["insert"]( Elements, v )
					end					
				end
			end
				else
			for k,z in ipairs ( ElementType ) do
				for i,v in ipairs ( getElementsByType ( z ) ) do
					if Value == nil then 
						if getElementData ( v, DataName ) ~= nil then
							table["insert"]( Elements, v )
						end
							else
						if getElementData ( v, DataName ) == Value then
							table["insert"]( Elements, v )
						end					
					end
				end			
			end
		end
	return Elements;
end

 

  • Like 1
Link to comment

ابي اجيب افضل 3 لاعبين بالمهمة علي حسب النقاط

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

وسويت هذة الطريقة وشغالة عادي , لكن ابي طريقة اسهل من هادي

عشان لو ابي مثلا اسويها توب 10 ما احتاج اسوي elseif عشر مرآت


local data1 = getElementData(resourceRoot,"topP1") or "N/A"
local data2 = getElementData(resourceRoot,"topP2") or "N/A"
local data3 = getElementData(resourceRoot,"topP3") or "N/A"
local points1 = getElementData(resourceRoot,"topPo1") or "N/A"
local points2 = getElementData(resourceRoot,"topPo2") or "N/A"
local points3 = getElementData(resourceRoot,"topPo3") or "N/A"

addEventHandler("onClientRender", root,
    function()
        dxDrawLine(10 - 1, 255 - 1, 10 - 1, 442, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(258, 255 - 1, 10 - 1, 255 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(10 - 1, 442, 258, 442, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(258, 442, 258, 255 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawRectangle(10, 255, 248, 187, tocolor(130, 124, 124, 150), false)
        dxDrawText("Top 3 Wins On Mission", 69 + 1, 265 + 1, 200 + 1, 282 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Top 3 Wins On Mission", 69, 265, 200, 282, tocolor(0, 254, 245, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10 + 1, 282 + 1, 258 + 1, 300 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10, 282, 258, 300, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Players", 55 + 1, 300 + 1, 99 + 1, 318 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Players", 55, 300, 99, 318, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Points", 173 + 1, 300 + 1, 216 + 1, 318 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Points", 173, 300, 216, 318, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10 + 1, 318 + 1, 258 + 1, 337 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10, 318, 258, 337, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
		dxDrawRectangle(125, 293, 2, 150, tocolor(0, 0, 0, 255), false)
        dxDrawText("1 -", 14 + 1, 338 + 1, 31 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("1 -", 14, 338, 31, 358, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("2 -", 14 + 1, 374 + 1, 31 + 1, 394 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("2 -", 14, 374, 31, 394, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("3 -", 14 + 1, 412 + 1, 31 + 1, 432 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("3 -", 14, 412, 31, 432, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data1.."", 33 + 1, 339 + 1, 123 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data1.."", 33, 339, 123, 358, tocolor(68, 254, 11, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data2.."", 33 + 1, 374 + 1, 123 + 1, 393 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data2.."", 33, 374, 123, 393, tocolor(255, 255, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data3.."", 33 + 1, 413 + 1, 123 + 1, 432 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..data3.."", 33, 413, 123, 432, tocolor(255, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText(""..points1.."", 151 + 1, 339 + 1, 241 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        dxDrawText(""..points1.."", 151, 339, 241, 358, tocolor(68, 254, 11, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        dxDrawText(""..points2.."", 151 + 1, 374 + 1, 241 + 1, 393 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        dxDrawText(""..points2.."", 151, 374, 241, 393, tocolor(240, 255, 11, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        dxDrawText(""..points3.."", 151 + 1, 413 + 1, 241 + 1, 432 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        dxDrawText(""..points3.."", 151, 413, 241, 432, tocolor(255, 0, 0, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
    end
)
-- by rock

addEventHandler ( "onResourceStart" , resourceRoot , function ( ) 
    local players, topPlayers = getElementsByType'player', {};
    for index = 1, #players do
        local data = getAccountData ( getPlayerAccount ( players[index] ) , "missionPoints" ) or 0
		
        if data then
            topPlayers[#topPlayers+1] = {player = players[index], playerData = data};
        end
    end

    table.sort(topPlayers, function(first, second)
        return first.playerData > second.playerData
    end)

    for index = 1, #topPlayers do
	if index == 1 then
		name = string.gsub(getPlayerName(topPlayers[index].player), "#%x%x%x%x%x%x", "")
		setElementData(resourceRoot,"topP1",name)
		setElementData(resourceRoot,"topPo1",getAccountData ( getPlayerAccount ( topPlayers[index].player ) , "missionPoints" ))
	elseif index == 2 then
		name = string.gsub(getPlayerName(topPlayers[index].player), "#%x%x%x%x%x%x", "")
		setElementData(resourceRoot,"topP2",name)
		setElementData(resourceRoot,"topPo2",getAccountData ( getPlayerAccount ( topPlayers[index].player ) , "missionPoints" ))
	elseif index == 3 then
		name = string.gsub(getPlayerName(topPlayers[index].player), "#%x%x%x%x%x%x", "")
		setElementData(resourceRoot,"topP3",name)
		setElementData(resourceRoot,"topPo3",getAccountData ( getPlayerAccount ( topPlayers[index].player ) , "missionPoints" ))
	break
        end
    end
end
)

 

Link to comment

طريقتك ما تعتبر الأفضل والسبب يعود لاستخدامك للداتا, الأفضل لو تخليها جدول وتحط الاسم والنقاط..
عالعموم هذه طريقة اسهل في استخدام اللوب :-

for index = 1, #topPlayers do
	name = string.gsub(getPlayerName(topPlayers[index].player), "#%x%x%x%x%x%x", "")
	setElementData(resourceRoot,"topP".. index,name)
	setElementData(resourceRoot,"topPo".. index,getAccountData ( getPlayerAccount ( topPlayers[index].player ) , "missionPoints" ))
	if index >= 3 then
		break
	end
end

 

Link to comment
2 hours ago, iMr.WiFi..! said:

طريقتك ما تعتبر الأفضل والسبب يعود لاستخدامك للداتا, الأفضل لو تخليها جدول وتحط الاسم والنقاط..
عالعموم هذه طريقة اسهل في استخدام اللوب :-


for index = 1, #topPlayers do
	name = string.gsub(getPlayerName(topPlayers[index].player), "#%x%x%x%x%x%x", "")
	setElementData(resourceRoot,"topP".. index,name)
	setElementData(resourceRoot,"topPo".. index,getAccountData ( getPlayerAccount ( topPlayers[index].player ) , "missionPoints" ))
	if index >= 3 then
		break
	end
end

 

طيب هادي بس بتحطهم في داتا واحدة

كيف بحط جمب الواحد مثلا الاسم 

جمب الاتنين الاسم وكذا ؟

Link to comment
9 minutes ago, Mr.Mostafa said:

طيب هادي بس بتحطهم في داتا واحدة

كيف بحط جمب الواحد مثلا الاسم 

جمب الاتنين الاسم وكذا ؟

سوي داتا اساسية مثلاً
TopPlayers
وحط على الداتا جدول فيه ترتيب لافضل اللاعبين
وسوي اللوب في الدي اكس لأفضل 3 او 5 لاعبين

 

Link to comment
23 minutes ago, iMr.WiFi..! said:

سوي داتا اساسية مثلاً
TopPlayers
وحط على الداتا جدول فيه ترتيب لافضل اللاعبين
وسوي اللوب في الدي اكس لأفضل 3 او 5 لاعبين

 

ما فهمت 

ممكن مثال ان احط جدول في داتا ؟

Edited by Mr.Mostafa
Link to comment

 

4 minutes ago, #[K]iLLeR<3 said:

انا اشوف انك تحط الداتا و تحط عدد كذا مثلاً لو لفل الاعب اكبر او يساوي 50 ينحط 1 ولو اكبر او يساوي 30 يصير 2 و كذا 

اسهل بمعنى اخر 

لآ فكرتك مب حلوة يعني لو وآحد لفله 5000 ؟؟ ووآحد تآني لفله 5001 ؟

Edited by Mr.Mostafa
Link to comment
2 minutes ago, #[K]iLLeR<3 said:

ما قد جربت اني اعملها ولا قد جربت اني افكر فيها حتى لكن ذا اقتراح طوره و بيسهل عليك ولو مو عاجبك ارميه بالبحر عادي :) 

آقترآح حلو بس مآ بيظبط , بس زي مآ قولتلك , 

آكيد في طريقة آفضل

Link to comment
2 hours ago, Mr.Mostafa said:

ما فهمت 

ممكن مثال ان احط جدول في داتا ؟

setElementData( resourceRoot, "TopPlayers", topPlayers ) -- هذا الجدول حقك
-- ^ حط التيبل الي مستخدم فيه السورت

-- في الكلنت سايد

addEventHandler("onClientRender", root,
    function()
	local topPlayers = getElementData( resourceRoot, "TopPlayers" )
        dxDrawLine(10 - 1, 255 - 1, 10 - 1, 442, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(258, 255 - 1, 10 - 1, 255 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(10 - 1, 442, 258, 442, tocolor(0, 0, 0, 255), 1, false)
        dxDrawLine(258, 442, 258, 255 - 1, tocolor(0, 0, 0, 255), 1, false)
        dxDrawRectangle(10, 255, 248, 187, tocolor(130, 124, 124, 150), false)
        dxDrawText("Top 3 Wins On Mission", 69 + 1, 265 + 1, 200 + 1, 282 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Top 3 Wins On Mission", 69, 265, 200, 282, tocolor(0, 254, 245, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10 + 1, 282 + 1, 258 + 1, 300 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10, 282, 258, 300, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Players", 55 + 1, 300 + 1, 99 + 1, 318 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Players", 55, 300, 99, 318, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Points", 173 + 1, 300 + 1, 216 + 1, 318 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("Points", 173, 300, 216, 318, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10 + 1, 318 + 1, 258 + 1, 337 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        dxDrawText("ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ", 10, 318, 258, 337, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
	dxDrawRectangle(125, 293, 2, 150, tocolor(0, 0, 0, 255), false)
	for index, value in pairs( topPlayers ) do
        	dxDrawText(index .. " -", 14 + 1, 338 + ( 36 * ( index - 1 ) ) + 1, 31 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        	dxDrawText(index .. " -", 14, 338 + ( 36 * ( index - 1 ) ), 31, 358, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        	dxDrawText(""..value.player and getPlayerName(value.player) or "N/A".."", 33 + 1, 338 + ( 36 * ( index - 1 ) ) + 1, 123 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        	dxDrawText(""..value.player and getPlayerName(value.player) or "N/A".."", 33, 338 + ( 36 * ( index - 1 ) ), 123, 358, tocolor(68, 254, 11, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false)
        	dxDrawText(""..value.data or "N/A".."", 151 + 1, 339 + ( 36 * ( index - 1 ) ) + 1, 241 + 1, 358 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
        	dxDrawText(""..value.data or "N/A".."", 151, 339 + ( 36 * ( index - 1 ) ), 241, 358, tocolor(68, 254, 11, 255), 1.00, "default-bold", "center", "top", false, false, false, false, false)
		if( index >= 3 )then
			break;
		end
	end
    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...