Bekommst gleich 'ne Antworte, dauert noch 5 Minuten.
new invited[MAX_PLAYERS] = 0;
new invfrak[MAX_PLAYERS] = 0;
ocmd:annehmen(playerid,params[])
{
if(invited[playerid] == 0) return SendClientMessage(playerid,-1,"Du wurdest nicht in eine Fraktion eingeladen!");
//if(GetPVarInt(playerid,"Fraktion") != 0)return SendClientMessage(playerid,-1,"Du bist bereits in einer Fraktion.");
new ftext[128];
if(invfrak[playerid] == 1) { ftext= "LSPD"; SetPVarInt(playerid,"Fraktion",1); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 2) { ftext= "Ordnungsamt"; SetPVarInt(playerid,"Fraktion",2); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 3) { ftext= "Sanitäter"; SetPVarInt(playerid,"Fraktion",3); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 4) { ftext= "Grove Street"; SetPVarInt(playerid,"Fraktion",4); SetPVarInt(playerid,"Rank",1); }
else if(invfrak[playerid] == 5) { ftext= "Yakuza"; SetPVarInt(playerid,"Fraktion",5); SetPVarInt(playerid,"Rank",1); }
new string[128];
format(string,sizeof(string),"Du bist nun Mitglied der Fraktion %s.",ftext);
SendClientMessage(playerid,-1,string);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(GetPVarInt(i,"Fraktion") == invfrak[playerid] && GetPVarInt(i,"Rank") == 6)
{
SendClientMessage(i,-1,"Die Inviteanfrange wurde angenommen.");
}
}
invited[playerid] = 0;
invfrak[playerid] = 0;
return 1;
}
ocmd:invite(playerid,params[])
{
if(!isPlayerRank(playerid,6))return SendClientMessage(playerid,-1,"Du bist kein Leader einer Fraktion.");
new InviteID, rank;
if(sscanf(params,"u",InviteID))return SendClientMessage(playerid,-1,"Benutze: /invite [Spielerid]");
rank = GetPVarInt(playerid,"Fraktion");
new ftext[128];
if(rank == 1) { ftext= "LSPD";}
else if(rank == 2) { ftext= "Ordnungsamt";}
else if(rank == 3) { ftext= "Sanitäter";}
else if(rank == 4) { ftext= "Grove Street";}
else if(rank == 5) { ftext= "Yakuza";}
new string[128];
format(string,sizeof(string),"%s von der Fraktion %s möchte dich %s in die Fraktion aufnehmen. Tippe /annehmen.",SpielerName(playerid),SpielerName(InviteID),ftext);
SendClientMessage(InviteID,-1,string);
invfrak[InviteID] = rank;
invited[InviteID] = 1;
return 1;
}
Ungetestet, kann also sein, dass das nicht ganz funktioniert, dann sag einfach Bescheid. Falls du was nicht verstehst sag auch Bescheid.
//edit2: Und an dem stock ist was falsch, so ist es richtig:
stock isPlayerRank(playerid,rankid)
{
if(GetPVarInt(playerid,"Rank") < rankid)return 1;
return 0;
}
//edit3: Das auskommentiert dort oben, kannst du mit reinnehmen, musst du aber nicht.