is auch klar wieso bau mal im String ,playerid ein sonst kann er ja keine ID anzeigen
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Du benutzt im format 2 Variablen (%s und %i), übermittelst aber nur einen Parameter (giveplayer). Denk mal drüber nach
-
Lesen bildet les mal was ich geschrieben habe (Im String playerid einbauen:
format(string, sizeof(string), "AdminBefehl: Der Admin %s (ID:%i) gibt dir den Führerschein.",giveplayer,playerid);
-
Schau dir am besten mal die format Funktion im Wiki an
-
einbauen:
new sname[MAX_PLAYER_NAME];
GetPlayerName(giveplayerid,sname,sizeof(sname));dann im String %s und am ende ,sname
-
Ich kann dir auch sagen wieso ich habe den fehler schon gesehen nur habe geguckt ob du selber drauf kommst.
if(strcmp(x_nr,"Auto",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setschein [scheinname] [playerid/Name");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername)); //<---- DER ADMIN NAME
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); //<---- DER SPIELER NAME DER ES BEKOMMT:
format(string, sizeof(string), "AdminBefehl: Der Admin %s (ID:%i) gibt dir den Führerschein.",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* ADMIN %s überreichte dir den Führerschein.",sendername);
SendClientMessage(giveplayerid, GRUEN, string);
PlayerInfo[giveplayerid][pCarLic] = 1;
return 1;
}
}
else
{
SendClientMessage(playerid, GRAU, "Der angegebene Spieler ist nicht eingeloggt!");
return 1;
}
}aus dem giveplayer muss sendername und aus dem 2ten wer es bekommen hat muss giveplayer und aus i die playerid
-
Ihr verwechselt alle giveplayerid mit der playerid...
playerid ist der Admin und giveplayerid der betroffene Spieler
also müsste es so aussehen
if(strcmp(x_nr,"Auto",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /setschein [scheinname] [playerid/Name");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new string[128], string2[128]
new sname[MAX_PLAYER_NAME];
GetPlayerName(giveplayerid,sname,sizeof(sname));
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "AdminBefehl: Der Admin %s (ID:%d) überreicht %s (ID:%d) den Führerschein.",sendername, playerid, giveplayer, giveplayerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string2, sizeof(string2), "* ADMIN %s überreichte dir den Führerschein.",sendername);
SendClientMessage(giveplayerid, GRUEN, string2);
PlayerInfo[giveplayerid][pCarLic] = 1;
return 1;
}
}
else
{
SendClientMessage(playerid, GRAU, "Der angegebene Spieler ist nicht eingeloggt!");
return 1;
}
}So sollte es gehen
//Außerdem hast du zwei mal den Selben String drin gehabt, habe dir einen in string2 umbenannt.
-
Fehler nummero 2 ist das der string nur an dir selber gesendet wird, und nicht an alle Admins musste noch nen SendAdminMessage system erstellen
-
Stimmt, dass machst du ungefähr so
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(ADMIN Abfrage > 0)
{
SendClientMessage(i, COLOR_LIGHTBLUE, string);
}/// Ich hab es in nem Public gemacht, meins schaut so aus
forward SendClientMessageToAdmins(color,string[]);
public SendClientMessageToAdmins(color,string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Spieler[i][admin] > 0 || IsPlayerAdmin(i))
{
SendClientMessage(i, color, string);
}
}
}
return 1;
} -
Im Command Selber
-
Wieso machst du es dir so schwer? hast du eigentlich Ahnung vom Scripten bzw schaust du dir an was wir dir posten?
Pascal schrieb er hat es so gemacht:forward SendClientMessageToAdmins(color,string[]);
public SendClientMessageToAdmins(color,string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Spieler[i][admin] > 0 || IsPlayerAdmin(i))
{
SendClientMessage(i, color, string);
}
}
}
return 1;
}dann nehmen wir es mal so:
forward SendClientMessageToAdmins(color,string[]);
public SendClientMessageToAdmins(color,string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
SendClientMessage(i, color, string);
}
}
}
return 1;
}so nun suchste den String:
format(string, sizeof(string), "AdminBefehl: Der Admin %s (ID:%i) überreicht %s (ID:%i) den Führerschein.",giveplayer,sname,playerid);baust darunter:
SendClientMessageToAdmins(color,string);
danach suchste nochmal den string:
[pwn]format(string, sizeof(string), "AdminBefehl: Der Admin %s (ID:%i) überreicht %s (ID:%i) den Führerschein.",giveplayer,sname,playerid);[/pwn]
und machst am ende so: sendername,playerid,giveplayer,giveplayerid, damit auch alles richtig angezeigt wird
was war daran nun so schwer? -
breadfish.de
Hat das Thema geschlossen.