String bug [HELP]

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
  • is auch klar wieso bau mal im String ,playerid ein sonst kann er ja keine ID anzeigen

  • Du benutzt im format 2 Variablen (%s und %i), übermittelst aber nur einen Parameter (giveplayer). Denk mal drüber nach ;)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • 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);

  • 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;
    }

  • 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?