Jump to content

آستفسآر عن تقسيم آلآعبين


Recommended Posts

سلام عليكم

هل في طريقة , آقدر آقسم فيهآ آلآعبين لآتنين ؟

يعني مثلا معي سيرفر فيه 10 لآعبين

آقدر آسوي 5 يطلعوآ آسمهم بآلشآت وجمبهم علآمة صح

و5 يطلعوآ آسمهم بآلشآت وجمبهم علآمة خطآ

آقدر؟

Link to comment
Just now, #_iMr,[E]coo said:

- Loop ,

- Value ,

- Data or Table ,

وضح آكتر 

آنآ آبي لو كتبت تقسيم مثلا بآف8

كل آلي عندهم دآتآ تست ينقسموآ لآثنين

addCommandHandler("تقسيم",
	function (	)
		for k, v in ipairs ( getElementsByType ( "player" ) ) do
			if getElementData(v, "testData" ) then

			end
		end
	end
)

 

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

وضح آكتر 

آنآ آبي لو كتبت تقسيم مثلا بآف8

كل آلي عندهم دآتآ تست ينقسموآ لآثنين


addCommandHandler("تقسيم",
	function (	)
		for k, v in ipairs ( getElementsByType ( "player" ) ) do
			if getElementData(v, "testData" ) then

			end
		end
	end
)

 

function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    Value = Value + 1
    outputChatBox ( getPlayerName..' noop ' , root )
    if ( Value == #Players / 2 ) then 
      outputChatBox ( getPlayerName..' pro ' , root )
    end 
  end
  Value = 0
end

Testing it .

Edited by #_iMr,[E]coo
Link to comment
Just now, #_iMr,[E]coo said:

function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    Value = Value + 1
    outputChatBox ( getPlayerName..' noop ' , root )
    if ( Value == #Players / 2 ) then 
      outputChatBox ( getPlayerName..' pro ' , root )
    end 
  end
ens 

Testing it .

مآ فهمت آلكود !

آبي يجيب لآعبين عندهم دآتآ محددة

ويقسمهم علي آتنين

آل 5 آلآوآئل يعطيهم فلوس وآل 5 آلثآنين يسحب منهم فلوس مثلا

Link to comment
1 minute ago, Mr.Mostafa said:

مآ فهمت آلكود !

آبي يجيب لآعبين عندهم دآتآ محددة

ويقسمهم علي آتنين

آل 5 آلآوآئل يعطيهم فلوس وآل 5 آلثآنين يسحب منهم فلوس مثلا

طلبك فوق انت بس عدله , 

Link to comment
function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    if ( getElementData ( v , 'Data' ) == true ) then 
      Value = Value + 1
      givePlayerMoney ( v , 10000 )
      if ( Value == #Players / 2 ) then 
        takePlayerMoney ( v , 1000 )
      end 
    end
  end 
  Value = 0 
end 

 

Link to comment
Just now, #_iMr,[E]coo said:

function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    if ( getElementData ( v , 'Data' ) == true ) then 
      Value = Value + 1
      givePlayerMoney ( v , 10000 )
      if ( Value == #Players / 2 ) then 
        takePlayerMoney ( v , 1000 )
      end 
    end
  end 
  Value = 0 
end 

 

كفو تسلم

بجربه وآقولك

Link to comment
8 minutes ago, #_iMr,[E]coo said:

function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    if ( getElementData ( v , 'Data' ) == true ) then 
      Value = Value + 1
      givePlayerMoney ( v , 10000 )
      if ( Value == #Players / 2 ) then 
        takePlayerMoney ( v , 1000 )
      end 
    end
  end 
  Value = 0 
end 

 

ليش تسوي متغير وانت تقدر تسويه من نفس اللوب

Link to comment
On 8/14/2018 at 22:04, #_iMr,[E]coo said:

function GetHalfPlayer ( )
  local Players , Value = getElementsByType ( 'player' ) , 0
  for _ , v in ipairs ( Players ) do
    if ( getElementData ( v , 'Data' ) == true ) then 
      Value = Value + 1
      givePlayerMoney ( v , 10000 )
      if ( Value == #Players / 2 ) then 
        takePlayerMoney ( v , 1000 )
      end 
    end
  end 
  Value = 0 
end 

 

ترآ هآدآ آلكل مآ ظبط

 

Link to comment
On 15/08/2018 at 01:07, Mr.Mostafa said:

مآ ظبطت طريقتك

آنآ آبي آقسمهم فريقين

ويحط آلفريق آلآول بتيم رقم 1 وآلفريق آلتآني بتيم رقم 2

@#_iMr,[E]coo

countPlayersInTeam

Shared function
 
 

This function is for returning the number of players in the specified team.

Syntax[edit]

int countPlayersInTeam ( team theTeam )

OOP Syntax Help! I don't understand this!

Method: team:countPlayers(...)
Variable: .playerCount

Optional Arguments[edit]

  • theTeam: The team you wish to retrieve the player count of.

Returns[edit]

Returns an integer containing the number of players in the team, false if it could not be retrieved.

Example[edit]

Click to collapse [-]
Example 3

This example balances a gamemode, to ensure equal number of players between the "grove" and "ballas" teams. This could be triggered when a player joins the server, or for all players currently in the server when the gamemode starts.

function balanceTeams ( thePlayer )
	--get the team pointers from their names
	local groveTeam = getTeamFromName ( "grove" )
	local ballasTeam = getTeamFromName ( "ballas" )
	--count the number of players in each team, and store them
	local groveCount = countPlayersInTeam ( groveTeam )
	local ballasCount = countPlayersInTeam ( ballasTeam )
	if groveCount == ballasCount then --if the teams are equal
		setPlayerTeam ( thePlayer , groveTeam ) --place the player in grove
	elseif groveCount > ballasCount then --if there are more in grove
		setPlayerTeam ( thePlayer , ballasTeam ) --place him in ballas
	elseif groveCount < ballasCount then --if there are more in ballas
		setPlayerTeam ( thePlayer , groveTeam ) --place him in grove.
	end
end

 

طلبك جاهز بالويكي اصلا :- 

for _,player in ipairs(getElementsByType("player")) do

balanceTeams (player)

end

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

مآله فآيدة هآدآ , آنآ آبي آقسم آلآعبين علي آتنين

نص آلآعبين يآخد تيم رقم 1 ونفس آلآعبين آلثآنين يآخدوآ تيم رقم 2

شوف المثال -_-

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

يب لكن هآدآ مآ يقسمهم آتنين

يعني لو آبي آعطي فلوس للآتنين آلتآنين بنفس سطر آلكود كيف

كيف ما يقسمهم ؟ 

الكود كالتالي : يحسب اللاعبين الي بالتيم الأول و التيم التاني

لو الكود لقي ان لاعبين التيم الأول اكبر من التاني يدخلهم التيم التاني

و لو لقي العكس نفس الحكايه و لو لقي الأتنين قد بعض هيدخلهم  الأول

for _,player in ipairs(getElementsByType("player")) do
  balanceTeams(player)
end

 

+ كود مستر ايكو يمشي لو السيرفر فيه 10 12 , رقم زوجي يعني

لاكن لو به 11 ما هيظبط كوده لهيك المفروض تستخدم

math.floor

او الكود الجاهز من الويكي

 

Edited by #َxLysandeR
Link to comment
3 minutes ago, #َxLysandeR said:

كيف ما يقسمهم ؟ 

الكود كالتالي : يحسب اللاعبين الي بالتيم الأول و التيم التاني

لو الكود لقي ان لاعبين التيم الأول اكبر من التاني يدخلهم التيم التاني

و لو لقي العكس نفس الحكايه و لو لقي الأتنين قد بعض هيدخلهم  الأول


for _,player in ipairs(getElementsByType("player")) do
  balanceTeams(player)
end

 

مم , يعني لو آبي آعطي فلوس للتقسيم آلآول , آعطي علي حسب آلتيم ؟

Link to comment
function startTime ()
if ( #getPlayersInMission() >= 2 ) then 
stateMission = "started"
for _,player in ipairs(getElementsByType("player")) do
  if ( getElementData (player , 'doneStartMission' ) == true ) then 
  balanceTeams(player)
end
end
	local theTeamPolice = getTeamFromName ( "Police" )
	local theTeamRobbert = getTeamFromName ( "Robbers" )
	local playersPolice = getPlayersInTeam ( theTeamPolice )
	local playersRobbert = getPlayersInTeam ( theTeamRobbert )
	  outputChatBox("تم دخولك كآ شرطي",playersPolice,255,0,0)
	  outputChatBox("#990000* [ War Mission ] : #ffffff[ "..getPlayerName(playersPolice).." ( "..tostring(#getPlayersInMission()).."/30 ) ] قآم بآلآنضمآم آلي آلشرطة",root,255,0,0,true)
	  setElementPosition ( playersPolice, -1784.86060,-1606.27417+math.random(1,5),21.78221 )
	  setElementModel ( playersPolice, 266 )
	setElementInterior ( playersPolice, 0 )
	  outputChatBox("تم دخولك كآ عصآبة",playersRobbert,255,0,0)
	  	  outputChatBox("#990000* [ War Mission ] : #ffffff[ "..getPlayerName(playersRobbert).." ( "..tostring(#getPlayersInMission()).."/30 ) ] قآم بآلآنضمآم آلي آلعصآبة",root,255,0,0,true)
	  setElementPosition ( playersRobbert, -1933.83997,-1669.91809+math.random(1,5),21.75000 )
			setElementInterior ( playersRobbert, 0 )

وش آلخطآ كدآ , مآ يبي يظبط

Link to comment
function balanceTeams(player)
	local team1 = getTeamFromName("Police")
	local team2 = getTeamFromName("Robbers")
	local team1Count = countPlayersInTeam(team1)
	local team2Count = countPlayersInTeam(team2)
	if team1Count == team2Count then
		setPlayerTeam(player, team1)
		outputChatBox("تم دخولك كآ شرطي",player,255,0,0)
		outputChatBox("#990000* [ War Mission ] : #ffffff[ "..getPlayerName(player).." ( "..tostring(#getPlayersInMission()).."/30 ) ] قآم بآلآنضمآم آلي آلشرطة",root,255,0,0,true)
		setElementPosition(player, -1784.86060, -1606.27417+math.random(1,5), 21.78221)
		setElementModel(player, 266)
		setElementInterior(player, 0)
	elseif team1Count > team2Count then
		setPlayerTeam(player, team2)
		outputChatBox("تم دخولك كآ عصآبة", player,255,0,0)
	 	outputChatBox("#990000* [ War Mission ] : #ffffff[ "..getPlayerName(player).." ( "..tostring(#getPlayersInMission()).."/30 ) ] قآم بآلآنضمآم آلي آلعصآبة",root,255,0,0,true)
		setElementPosition(player, -1933.83997, -1669.91809+math.random(1,5), 21.75000)
		setElementInterior(player, 0)
	elseif team1Count < team2Count then
		setPlayerTeam(player, team1)
		outputChatBox("تم دخولك كآ شرطي",player,255,0,0)
		outputChatBox("#990000* [ War Mission ] : #ffffff[ "..getPlayerName(player).." ( "..tostring(#getPlayersInMission()).."/30 ) ] قآم بآلآنضمآم آلي آلشرطة",root,255,0,0,true)
		setElementPosition(player, -1784.86060, -1606.27417+math.random(1,5), 21.78221)
		setElementModel(player, 266)
		setElementInterior(player, 0)
	end
end

function startTime()
	if ( #getPlayersInMission() >= 2 ) then 
		stateMission = "started"
		for _,player in ipairs(getElementsByType("player")) do
			if ( getElementData (player , 'doneStartMission' ) == true ) then 
				balanceTeams(player)
			end
		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...