←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Losowanie graczy do teamów + restart po ko...

Zablokowany

  • +
  • -
Gerro - zdjęcie Gerro 19.02.2009

Witam.
Poszukuję (potrzebuję) pluginu, który po wejściu graczy na serwer i wpisaniu przez administratora komendy amx_draw_teams gracze zostaną losowo przyporządkowani do teamów (nawet, jak są juz w teamach) i zostanie uruchomiony restart serwera.
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 21.02.2009

#include <amxmodx>

#include <amxmisc>

public plugin_init() {

	register_plugin("rand+res","0.1","grankee")

	register_clcmd("amx_draw_teams","losuj",ADMIN_CVAR," - miesza drużyny i daje restart.")

}

public losuj(id,level,cid)

{

	if(!cmd_access(id,level,cid,1))

		return 1

	

	server_cmd("amx_randomizeteams;sv_restart 3")

	return 1

}
Odpowiedz

  • +
  • -
wizu - zdjęcie wizu 21.02.2009

server_cmd("amx_randomizeteams;sv_restart 3")

Amxx standardowo nie ma komendy amx_randomizeteams. Jest ona dostępna w pluginie amx_match_deluxe. Tak więc musisz sobie doinstalować ten plugin.
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 21.02.2009

hmm wizu, byłem przekonany, że jest w standardzie...

[ Dodano: 21-02-2009, 10:39 ]
nie sprawdzałem, ale powinno śmiagać


#include <amxmodx>
#include <amxmisc>
#include <cstrike>
public plugin_init() {
    register_plugin("rand+res","0.1","grankee")
    register_clcmd("amx_draw_teams","losuj",ADMIN_CVAR," - miesza drużyny i daje restart.")
} 

public losuj(id,level,cid)
{
	// Declare variables	
	new num
	new players[32]
	
	new playersT_pos
	new playersCT_pos
	
	new playersT[32]
	new playersCT[32]
	
	new random_team
	
	new difference
	
	new player
	
	
	if (!cmd_access(id,level,cid,1))
	{
		
		return PLUGIN_HANDLED
	}


	// Set the arrays
	get_players(players, num)
	for(new i = 0; i < num; i++)
	{
		player = players[i]
		
		if(is_user_connected(player) && (cs_get_user_team(player) != CS_TEAM_SPECTATOR ))
		{
			random_team = random_num(1,2)
			
			if(random_team == 1) 
			{
				playersT[playersT_pos++] = player
			}
			else 
			{
				playersCT[playersCT_pos++] = player
			}
		}
	}
	
	difference = abs(playersCT_pos - playersT_pos)
	
	if(difference > 1)
	{
		if(playersCT_pos > playersT_pos)
		{
			for(new i = playersCT_pos; (i >= 0) && (playersCT_pos > playersT_pos); i--)
			{
				playersT[playersT_pos++] = playersCT[--playersCT_pos]
			}
		}
		else
		{
			for(new i = playersT_pos; (i >= 0) && (playersT_pos > playersCT_pos); i--)
			{
				playersCT[playersCT_pos++] = playersT[--playersT_pos]
			}
		}
	}
	
	
	// Set T team
	for(new i = 0; i < playersT_pos; i++)
	{
		cs_set_user_team(playersT[i], CS_TEAM_T)
	}	

	
	// Set CT team
	for(new i = 0; i < playersCT_pos; i++)
	{	
		cs_set_user_team(playersCT[i], CS_TEAM_CT)
	}
	
	
	server_cmd("sv_restart 2")
	
	
	return PLUGIN_CONTINUE
}
Odpowiedz
Zablokowany