Hi... es war bisschen Arbeit, aber hier:
//Bei OnPlayerConnect
gTeam[playerid] = TEAM_ZIVI;
//Bei den Defines, ganz oben
#define TEAM_GROVE 2
#define TEAM_BALLAS 3
#define TEAM_GROVELEADER 0
#define TEAM_BALLASLEADER 1
#define TEAM_ZIVI 4
static gTeam[MAX_PLAYERS];
// bei OnPlayerCommandText
dcmd(makeleader,10,cmdtext);
dcmd(invite,6,cmdtext);
dcmd(tc,2,cmdtext);
// außerhalb i-eines CallBacks
dcmd_invite(playerid,params[])
{
new target = strval(params);
new leader[MAX_PLAYER_NAME];
new invites[64];
new invites2[64];
new targets[MAX_PLAYER_NAME];
if(!strlen(params))
{
return SendClientMessage(playerid,0x0000BBAA,"Verwende: /invite [ID]");
}
if(!IsPlayerConnected(target))
{
SendClientMessage(playerid,0x0000BBAA," Der angegebene User ist nicht online" );
return 1;
}
if(gTeam[playerid] == TEAM_GROVELEADER)
{
gTeam[target] = 2;
GetPlayerName(target, targets, sizeof targets );
format(invites, sizeof invites, "Du hast %s in deine Fraktion eingeladen",targets);
SendClientMessage(playerid,0x0000BBAA,invites);
GetPlayerName(playerid, leader, sizeof leader);
format(invites2, sizeof invites2 , "Du wurdest von %s in die GroveGang eingeladen!", leader);
SendClientMessage(target,0x0000BBAA,invites2);
return 1;
}
if(gTeam[playerid] == TEAM_BALLASLEADER)
{
gTeam[target] = 3;
GetPlayerName(target, targets, sizeof targets );
format(invites, sizeof invites, "Du hast %s in deine Fraktion eingeladen",targets);
SendClientMessage(playerid,0x0000BBAA,invites);
GetPlayerName(playerid, leader, sizeof leader);
format(invites2, sizeof invites2 , "Du wurdest von %s in die Ballas eingeladen!", leader);
SendClientMessage(target,0x0000BBAA,invites2);
return 1;
}
else
{
SendClientMessage(playerid,0x0000BBAA,"Du bist kein Leader !");
return 1;
}
}
dcmd_makeleader(playerid,params[])
{
new admin[MAX_PLAYER_NAME];
new zielname[MAX_PLAYER_NAME];
new leaderstring[64];
new leaders2[64];
new leaderzahl;
new target;
if(sscanf(params,"dd",target,leaderzahl))
{
SendClientMessage(playerid,0x0000BBAA," USAGE : /makeleader [ID] [Zahl ( 1 - 2 )");
return 1;
}
if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,0x0000BBAA," Du bist kein RCON-Admin, ");
SendClientMessage(playerid,0x0000BBAA," und bist daher nicht befugt dies zu benutzen ");
return 1;
}
if(!IsPlayerConnected(target))
{
SendClientMessage(playerid,0x0000BBAA,"> Der angegebene User ist nicht online <");
return 1;
}
if(leaderzahl == 0)
{
gTeam[target] = 0;
GetPlayerName(playerid, admin, sizeof admin);
GetPlayerName(target, zielname, sizeof zielname);
format(leaderstring, sizeof leaderstring,"Du wurdest zum Leader der %d . Fraktion gemacht",leaderzahl);
SendClientMessage(target,0x0000BBAA,leaderstring);
format(leaders2, sizeof leaders2,"Du hast %s zum Leader der %d . Fraktion gemacht",zielname,leaderzahl);
SendClientMessage(playerid,0x0000BBAA,leaders2);
return 1;
}
else if(leaderzahl == 1)
{
gTeam[target] = 1;
GetPlayerName(playerid, admin, sizeof admin);
GetPlayerName(target, zielname, sizeof zielname);
format(leaderstring, sizeof leaderstring,"Du wurdest zum Leader der %d . Fraktion gemacht",leaderzahl);
SendClientMessage(target,0x0000BBAA,leaderstring);
format(leaders2, sizeof leaders2,"Du hast %s zum Leader der %d . Fraktion gemacht",zielname,leaderzahl);
SendClientMessage(playerid,0x0000BBAA,leaders2);
return 1;
}
else if(leaderzahl >= 2 )
{
SendClientMessage(playerid,0x0000BBAA, " Leaderzahlen: 1 und 2.");
return 1;
}
return 1;
}
dcmd_tc(playerid,params[])
{
new tc[90];
new UZ[100];
if(sscanf(params,"s",tc))
{
SendClientMessage(playerid,COLOR_RED, "Verwende: /tc ");
return 1;
}
if(gTeam[playerid] == TEAM_GROVELEADER || gTeam[playerid] == TEAM_GROVE) //roflmato
{
GetPlayerName(playerid, xname, sizeof xname );
for( new i = 0; i < MAX_PLAYERS; i++)
{
if(gTeam[playerid] == TEAM_GROVELEADER || gTeam[playerid] == TEAM_GROVE)
{
format(UZ, sizeof UZ, "%s : %s ", xname , tc);
SendClientMessage(playerid, 0x0000BBAA, UZ);
return 1;
}
}
}
if(gTeam[playerid] == TEAM_BALLASLEADER || gTeam[playerid] == TEAM_BALLAS)
{
GetPlayerName(playerid, xname, sizeof xname );
for( new i = 0; i < MAX_PLAYERS; i++)
{
if(gTeam[playerid] == TEAM_BALLASLEADER || gTeam[playerid] == TEAM_BALLAS)
format(UZ, sizeof UZ, "%s : %s ", xname , tc);
SendClientMessage(playerid, COLOR_RED, UZ);
return 1;
}
}
return 1;
}
! WICHTIG ! :
-Da ich dein Register & Login System kenne, wird nicht gespeichert, in welcher Fraktion man ist ( auf Wunsch kann ich das natürlich nachtragen ), damit nicht jeder jeden "inviten" kann
=> Daher auch bei "OnPlayerConnect" : gTeam[playerid] = TEAM_ZIVI;
-Bugs bitte berichten... werde es nach Möglichkeit ändern
-Hab einen Teamchat ( /tc ) eingebaut
-Ich gehe davon aus, dass du die dcmd & sscanf Cods im Script hast ( Wenn nicht: [ SCRIPTING ][/b] Commands mit Parametern '] [ SCRIPTING ] Commands mit Parametern )
-Teams kann man beliebig erweitern bzw. ändern
Viel Spaß ...
//Edit: Credits etc. brauch ich nicht