Jump to content

استفسار


Recommended Posts

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
Link to comment

يعني عندي

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

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

Link to comment
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 ) -- اغلاق الوظيفة , واقفال القوس

 

Link to comment

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

Link to comment
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
)

 

Link to comment

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

Link to comment
  On 03/05/2017 at 20:04, Mhmd.z said:

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

Expand  

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

Link to comment
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
)

 

Link to comment

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

Link to comment
  On 03/05/2017 at 20:12, Mhmd.z said:

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

Expand  

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

Link to comment

جرب هذا

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 . .
Link to comment

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

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

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

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