Kiedyś zrobiłem coś takiego, lecz nie sprawdzałem czy działa
/* Plugin generated by AMXX-Studio */
[code]
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <hamsandwich>
#define PLUGIN "Team"
#define VERSION "1.0"
#define AUTHOR "author"
#define TEAMS 4 // Liczba drużyn
#define MAX_MEMBER 4 // Maxymalna liczba członków dla drużyny
#define MAX_PLAYERS 32 //Maxymalna liczba graczy
#define DEATH "Trup"
new TeamName[ TEAMS ][ ] =
{
"Druzyna 1",
"Druzyna 2",
"Druzyna 3",
"Druzyna 4"
}
new TeamMembers[ TEAMS ]
new UserTeam[ MAX_PLAYERS ] = _:-1
new nazwa_gracza[33][33]
new gSync;
new Text[512], temp[64]
new MAX_MEMBERS = MAX_MEMBER+1
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
gSync = CreateHudSyncObj()
register_clcmd("say /test", "PokazDruzyny")
set_task(1.0, "PokazDruzyny", _, _, _, "b")
}
public client_putinserver( id )
{
for( new i ; i < TEAMS +1; i ++ )
{
new wylosowana_druzyna = random( TEAMS )
if( TeamMembers[ wylosowana_druzyna ]+1 > MAX_MEMBERS)
continue
else
{
UserTeam[ id ] = wylosowana_druzyna
TeamMembers[ wylosowana_druzyna ] ++
}
get_user_name(id, nazwa_gracza[id], 32)
return
}
}
public client_disconnect(id)
{
formatex(nazwa_gracza[id], 32, "")
TeamMembers[UserTeam[id]]--
UserTeam[id] = -1
}
public PokazDruzyny()
{
formatex(Text, 511, "")
formatex(temp, 63, "")
for( new i ; i < TEAMS + 1 ; i++ )
{
if(get_teams_alive_num(i) > 0)
{
formatex(temp, 63, "^n%s:^n", TeamName[i])
add(Text, 511, temp)
new ids[MAX_MEMBER+2]
get_teams_id( i, ids, MAX_MEMBERS - 1 )
for( new j ; j <= MAX_MEMBERS ; j ++ )
{
if(!is_user_connected(ids[j]))
{
if(j+1 == MAX_MEMBERS)
add(Text, 511, "^n")
continue
}
static type[10]
num_to_str(get_user_health( ids[ j ] ), type, 9)
formatex(temp, 63, "^n %s: %s", /*get_user_team(ids[j])==1?"TT":get_user_team(ids[j])==2?"CT":"",*/ nazwa_gracza[ ids[ j ] ], is_user_alive(ids[j])?type:DEATH)
add(Text, 511, temp)
if(j+1 == MAX_MEMBERS)
add(Text, 511, "^n")
}
}
}
set_hudmessage( 255, 255, 255, 0.6, 0.1, 0, 6.0, 1.1 )
ShowSyncHudMsg( 0, gSync, Text)
return PLUGIN_CONTINUE
}
stock get_teams_alive_num(team)
{
new num
for(new i = 1 ; i < MAX_PLAYERS + 1 ; i ++ )
{
if(!is_user_alive(i) || !is_user_connected(i) || is_user_hltv(i) || UserTeam[i] != team )
continue
num++
}
return num
}
stock get_teams_id(team, outpout[], len)
{
new num
for(new i = 1 ; i < MAX_PLAYERS + 1 ; i ++ )
{
if(!is_user_connected(i) || is_user_hltv(i) || UserTeam[i] != team )
continue
outpout[ num++ ] = i
if( num+1 > len )
return
}
}
jak ucielo include to amxmodx, hamsandwich
Użytkownik PaTrIcKx edytował ten post 08.05.2013 20:30