Guten Abend,
Ich habe mal eine Frage. Wie kann man das machen, dass man bei meinen Kick Befehl z.B. /kick und /kicken eingeben kann. Beides sollte man eingeben können!
dcmd_kick(playerid,params[])
Danke im Vorraus!
Guten Abend,
Ich habe mal eine Frage. Wie kann man das machen, dass man bei meinen Kick Befehl z.B. /kick und /kicken eingeben kann. Beides sollte man eingeben können!
dcmd_kick(playerid,params[])
Danke im Vorraus!
Muss es dcmd sein?
bei ocmd kann man das nämlich machen, bei dcmd weiß ich nicht genau
Na ja, weiß vielleicht einer, wie ich dieses hier schonender Schreiben kann?
dcmd_r(playerid,params[])
{
new ra[64],string[128],text[128];
if(Spieler[playerid][Fraktion] == 1)
{
if(sscanf(params,"s",text))return SendClientMessage(playerid,grau,"VERWENDE: /r(adio) [Nachricht]");
Schleife(i,GetMaxPlayers())
{
if(Spieler[i][Fraktion] == 1)
{
switch(Spieler[playerid][Rang])
{
case 0:{ra="Rang 0";}
case 1:{ra="Rang 1";}
case 2:{ra="Rang 2";}
case 3:{ra="Rang 3";}
case 4:{ra="Rang 4";}
case 5:{ra="Rang 5";}
case 6:{ra="Rang 6";}
}
format(string,sizeof(string),"** %s %s: %s",ra,Name(playerid),text);
SendClientMessage(i,grau,string);
return 1;
}
}
}
else SendClientMessage(playerid,grau," Der Befehl ist nur für die Staatsfraktionen benutzbar!");
return 1;
}
Ich würde dann bei Fraktion 2 das gleiche darunter machen, bloß halt die Zahlen tauschen
Aber ich denke, das kann man auch mit "switch & case" machen, aber weiß gerade nicht wie.
Würde bei der ersten if-Abfrage abfragen, ob der Spieler in den entsprechenden Fraktionen ist.
Ab der zweiten if-Abfrage bezüglich der Fraktion und deren Ränge würde ich mit else if arbeiten und dann halt mit switch & case die entsprechenden Ränge auslesen, so hast du alle Fraktionen in einem Befehl untergebracht.
dcmd_r(playerid,params[])
{
new ra[64],string[128],text[128];
if(Spieler[playerid][Fraktion] != 1 && Spieler[playerid][Fraktion] != 2 /* Alle Staatsfraks*/)return SendClientMessage(playerid,grau," Der Befehl ist nur für die Staatsfraktionen benutzbar!");
if(sscanf(params,"s",text))return SendClientMessage(playerid,grau,"VERWENDE: /r(adio) [Nachricht]");
Schleife(i,GetMaxPlayers())
{
if(Spieler[i][Fraktion] != 1 && Spieler[i][Fraktion] != 2 /*Alle Staatsfraktionen*/)continue;
switch(Spieler[playerid][Rang])
{
case 0:{ra="Rang 0";}
case 1:{ra="Rang 1";}
case 2:{ra="Rang 2";}
case 3:{ra="Rang 3";}
case 4:{ra="Rang 4";}
case 5:{ra="Rang 5";}
case 6:{ra="Rang 6";}
}
format(string,sizeof(string),"** %s %s: %s",ra,Name(playerid),text);
SendClientMessage(i,grau,string);
return 1;
}
return 1;
}
Dankeschön, dann mach ich das so, wie du es sagtest, ist wohl am besten
Du fragst ab, wenn der Spieler nicht in der Fraktion ist.
Wenn, dann mach es bitte richtig, außerdem denke ich nicht, dass jede Fraktion die selben Rangnamen hat.
Text editiert .. Hatte nen kleinen Fehler drin
Du fragst ab, wenn der Spieler nicht in der Fraktion ist.
Meinst du mich?
Text editiert .. Hatte nen kleinen Fehler drin
Meinst du mich?
Ja ich meine dich.
Ich frage ab, ob der Spieler nicht in dieser Fraktion ist .. Und wenn nicht, dann geht er weiter bzw wird im der Text angezeigt ( Der Befehl ist nur für die Staatsfraktionen benutzbar! )
Ich finde es persönlich übersichtlicher und was soll daran falsch sein?
Ich frage ab, ob der Spieler nicht in dieser Fraktion ist .. Und wenn nicht, dann geht er weiter bzw wird im der Text angezeigt ( Der Befehl ist nur für die Staatsfraktionen benutzbar! )
Ich finde es persönlich übersichtlicher und was soll daran falsch sein?
Wie gesagt, behebt es aber dennoch nicht das Problem mit den Rängen, da jede Fraktion andere Rangtitel hat.
Und ich denke 5Gum wird schon eine gute Lösung für das Problem finden, wie er bereits gesagt hat.
Wie gesagt, behebt es aber dennoch nicht das Problem mit den Rängen, da jede Fraktion andere Rangtitel hat.
Und ich denke 5Gum wird schon eine gute Lösung für das Problem finden, wie er bereits gesagt hat.
Dann eben so:
dcmd_r(playerid,params[])
{
new ra[64],string[128],text[128];
if(Spieler[playerid][Fraktion] != 1 && Spieler[playerid][Fraktion] != 2 /* Alle Staatsfraks*/)return SendClientMessage(playerid,grau," Der Befehl ist nur für die Staatsfraktionen benutzbar!");
if(sscanf(params,"s",text))return SendClientMessage(playerid,grau,"VERWENDE: /r(adio) [Nachricht]");
Schleife(i,GetMaxPlayers())
{
switch(Spieler[i][Fraktion])
{
case 1:
{
switch(Spieler[playerid][Rang])
{
case 0:{ra="Rang 0";}
case 1:{ra="Rang 1";}
case 2:{ra="Rang 2";}
case 3:{ra="Rang 3";}
case 4:{ra="Rang 4";}
case 5:{ra="Rang 5";}
case 6:{ra="Rang 6";}
}
}
case 2:
{
switch(Spieler[playerid][Rang])
{
case 0:{ra="Rang 0";}
case 1:{ra="Rang 1";}
case 2:{ra="Rang 2";}
case 3:{ra="Rang 3";}
case 4:{ra="Rang 4";}
case 5:{ra="Rang 5";}
case 6:{ra="Rang 6";}
}
}
}
format(string,sizeof(string),"** %s %s: %s",ra,Name(playerid),text);
SendClientMessage(i,grau,string);
return 1;
}
return 1;
}
Um die ursprüngliche Frage zu beantworten: Ja
dcmd_kicken(playerid,params[]) return dcmd_kick(playerid,params);
Den kicken Befehl natürlich ganz normal wie immer bei OnPlayerCommandText definieren.