Jump to content

استفسار


Recommended Posts

Posted (edited)

كيف اسوي تحقق لو كان كل الاعبين يلي بالماركر معهم نفس القيمة بداخل داتا معينه ؟

Edited by Mhmd.z
Posted
function getPlayersFromData ( DataName, DataType, value )
	DataFrom = { }
	local value = value or nil
	local DataType = DataType or { "player","ped","vehicle","object","marker","colshape","team" }
	if type(DataType) ~= 'table' then
	for i,v in ipairs ( getElementsByType( DataType ) ) do
		if value ~= nil then
				if getElementData(v,DataName) == value then
					table["insert"](DataFrom,v)
				end
					else
				if getElementData(v,DataName) ~= nil then
					table["insert"](DataFrom,v)
				end
			end
		end
			else
		for k,z in ipairs ( DataType ) do
			for i,v in ipairs ( getElementsByType( z ) ) do
			if value ~= nil then
					if getElementData(v,DataName) == value then
						table["insert"](DataFrom,v)
					end
						else
					if getElementData(v,DataName) ~= nil then
						table["insert"](DataFrom,v)
					end
				end
			end
		end
	end
	return DataFrom;
end

^ سويتلك وظيفة /:

الارقمنتات 

[ * ] أجباري

[ ^ ] أختياري

*DataName = اسم الداتا 

^DataType = نوع اللوب يعني تبيه يجيب كل الانوع بلاير و بيد وسيارات واوبجكت الخ ..

تقدر تحط "players" فقط

^value = قيمة الداتا 

مثال :

addEventHandler ( "onPlayerJoin", root, function ( ) -- حدث لما اللاعب يدخل
    setElementData(source,"Join",true) -- نعطيه داتا
    end ) -- اغلاق للوظيفة والحدث

addCommandHandler ( "getPlayers", function ( p ) -- نضيف امر
      local PlayersData = getPlayersFromData("Join","players",true) -- نجلب تيبل فيه جميع اللاعبين الي معهم داتا وقيمتها ترو
      for i,v in ipairs ( PlayersData ) do -- نسوي لوب لل تيبل
		outputChatBox(" "..getPlayerName(v).." ") -- نطرح في الشات اسماء اللاعبين الي معهم الداتا
      end -- اغلاق اللوب
    end ) -- اغلاق الامر والوظيفة

 

وبالتوفيق

  • Like 1
Posted

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

Posted
1 minute ago, Mhmd.z said:

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

مافهمت ولا حاقة ؛

Posted

يعني عندي

addEventHandler("onPlayerLogin", root,
  function ()
    	setElementData(source, "Data", math.random(1,5)) 
    end
  )

ابي اول ما تسوي كوماند باف 8 يجيب لك كل الاعبين يلي بداخل الماركر ويجيب لو معهم قيمه رقمها 3

Posted
function getPlayersFromData ( DataName, value, DataType )
	DataFrom = { }
	local value = value or nil
	local DataType = DataType or { "player","ped","vehicle","object","marker" }
	if type(DataType) ~= 'table' then
	for i,v in ipairs ( getElementsByType( DataType ) ) do
		if value ~= nil then
				if getElementData(v,DataName) == value then
					table["insert"](DataFrom,v)
				end
					else
				if getElementData(v,DataName) ~= nil then
					table["insert"](DataFrom,v)
				end
			end
		end
			else
		for k,z in ipairs ( DataType ) do
			for i,v in ipairs ( getElementsByType( z ) ) do
			if value ~= nil then
					if getElementData(v,DataName) == value then
						table["insert"](DataFrom,v)
					end
						else
					if getElementData(v,DataName) ~= nil then
						table["insert"](DataFrom,v)
					end
				end
			end
		end
	end
	return DataFrom;
end
function getPlayersInMarker(marker)
	local players = 0
	if marker and getElementType(marker) == "marker" then
		for i,player in ipairs(getElementsByType("player")) do
			if isElementWithinMarker(player,marker) then
				players = players + 1
			end
		end
	end
	return players
end

addCommandHandler ( "getPlayers", function ( p ) -- نضيف امر
      local PlayersData = getPlayersFromData("Data","players",3) -- نجلب تيبل فيه جميع اللاعبين الي معهم داتا وقيمتها 3 
	  local PlayersMarker = getPlayersInMarker( MyMarker ) -- نجلب جميع من داخل الماركر
			for k,z in ipairs( PlayersMarker ) do -- نسوي لوب لل تيبل
				for i,v in ipairs ( PlayersData ) do -- نسوي لوب لل تيبل
					if z == v then -- نسوي تحقق انه الي في الماركر في الجدول حق الي معهم داتا
							outputChatBox( " انت لديك الداتا وانت داخل الماركر ",z) -- يطرح اوت بوت شات بوكس
						break; -- يسوي بريك لل جدول, عشان يمنع التكرار
					end -- اغلاق تحقق
				end -- اغلاق اللوب
			end -- اغلاق اللوب
    end ) -- اغلاق الوظيفة , واقفال القوس

 

Posted

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

Posted (edited)

up...

need function make me can check if all players in marker are in the same data value

Edited by Mhmd.z
Posted
local marker = createMarker ( ... )

addCommandHandler("check", 
	function ( player )
		for _,v in ipairs ( getElementsByType("player") ) do
			if ( isElementWithinMarker( v, marker ) == true ) then
				if ( getElementData(v) == "1" ) then
					outputChatBox("Okay.", player)
				else
					outputChatBox("Error.", player)
				end
			end
		end
	end
)

 

Posted

مو كذه قصدي , انت الحين جبت الاعبين يلي معهم قيمه 1 , انا ابي اجيب يلي معهم نفس القيمه  يعني ممكن كلهم تكون قيمتهم 2 يكتبلي اوك او كلهم 5 يكتب اوك

Posted
2 minutes ago, Mhmd.z said:

مو كذه قصدي , انت الحين جبت الاعبين يلي معهم قيمه 1 , انا ابي اجيب يلي معهم نفس القيمه  يعني ممكن كلهم تكون قيمتهم 2 يكتبلي اوك او كلهم 5 يكتب اوك

تبيهم كلهم على يكونون على عدد واحد؟

Posted
local marker = createMarker ( ... )
local numberTable = { 1, 2, 3, 4, 5 }

addCommandHandler("check", 
	function ( player )
		for _,v in ipairs ( getElementsByType("player") ) do
			if ( isElementWithinMarker( v, marker ) == true ) then
				for _,n in ipairs ( numberTable ) do 
					if ( getElementData(v) == n ) then
						outputChatBox("Okay.", player)
					else
						outputChatBox("Error.", player)
					end
				end
			end
		end
	end
)

 

Posted

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

Posted
1 hour ago, Mhmd.z said:

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

كود نكست صحيح ونفس طلبك

Posted (edited)

جرب هذا

local Groups = {}
local GroupData = 'Group'

function Turf ( marker )
    for i,v in ipairs ( getElementsByType("player") ) do
        local Group = getElementData ( v, GroupData )
        if isElementWithinMarker ( v, marker ) and Group then
            if not Groups[Group] then
                Groups[Group] = 0
            end
            Groups[Group] = Groups[Group] + 1
        end
    end
end

عاد إذا اشتغل معك لازم تعدل عشان تحسب لكل ماركر كم محتلينها وكذا

Edited by 'SimpleArtS . .
Posted

 

1 minute ago, 'SimpleArtS . . said:

انت وش تبي تسوي بالضبط ؟

مو ارض احتلال؟

يب , الحين انا مسوي كل تايمر ينقص داتا من الارض , لكن ابي اسوي تحقق لو كلهم الي بالمنطقه نفس لقروب

Posted

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

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

وجيب القروب حقه ونقص 1 من الارض وزودها للقروب

Posted

انا مو مسوي حدث يوم تدخل المنطقه , سويت على طول تايمر للمنطقه مع تحقق لو كان فيها لاعبين 

Posted

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

او حط اكوادك في الموضوع

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