Befehl um Namen zu ändern klappt nicht

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
  • Hallo Leute,
    ich habe einen Befehl geschrieben, dass der Name geändert wird und der alte gespeichert wird.
    Wenn ich den Befehl eingebe passiert aber einfach nichts...Er sollte eig dann den Namen in den inputtext ändern, was er nicht tut.
    Ich weiß nicht woran es liegt...vllt ist es wieder was ganz einfaches ^^


    ocmd:uc(playerid, params[])
    {
    if(IsPlayerInFrakt(playerid,3))
    {
    if(maske[playerid] == false) //Wenn du keine Maske an hast
    {
    new string[35];
    new text[24];
    maske[playerid] = true;
    GetPlayerName(playerid, string, sizeof(string));
    strmid(OldUsername[playerid], string, 0, strlen(string), 64);
    if(sscanf(params,"s",text))return SendClientMessage(playerid,weiß,"Benutzen: /uc [Deckname]");
    switch(SetPlayerName(playerid, text))
    {
    case -1: SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Dein Deckname konnte nicht gesetzt werden. Jemand anderes verwendet den Namen");
    case 0: SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Du nennst dich bereits so");
    case 1: SendClientMessage(playerid, HBLAU, "AdmCmd: Du hast deine Maske aufgezogen (/uc um sie abzuziehen)");
    }
    }
    else
    {
    SetPlayerName(playerid, OldUsername[playerid]);
    maske[playerid] = false;
    SendClientMessage(playerid,HBLAU,"AdmCmd: Du hast deine Tarnung nun wieder abgenommen");
    }
    }
    return 1;
    }


    Danke schonmal :)

  • Whops, stimmt. Tut mir leid, bin leicht verrostet.
    Auf den ersten Blick sehe ich keinen Fehler, aber vielleicht funktioniert ja das:

    ocmd:uc(playerid, params[])
    {
    if(IsPlayerInFrakt(playerid,3))
    {
    if(maske[playerid] == false) //Wenn du keine Maske an hast
    {
    new OldName[MAX_PLAYER_NAME];
    new NewName[MAX_PLAYER_NAME];
    maske[playerid] = true;
    GetPlayerName(playerid, OldName, MAX_PLAYER_NAME);
    format(OldUsername[playerid], MAX_PLAYER_NAME, OldName);
    if(sscanf(params, "s", NewName))
    return SendClientMessage(playerid, 0x000000FF, "Benutzen: /uc [Deckname]");
    switch(SetPlayerName(playerid, NewName))
    {
    case -1: SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Dein Deckname konnte nicht gesetzt werden. Jemand anderes verwendet den Namen");
    case 0: SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Du nennst dich bereits so");
    case 1: SendClientMessage(playerid, HBLAU, "AdmCmd: Du hast deine Maske aufgezogen (/uc um sie abzuziehen)");
    }
    }
    else
    {
    SetPlayerName(playerid, OldUsername[playerid]);
    maske[playerid] = false;
    SendClientMessage(playerid,HBLAU,"AdmCmd: Du hast deine Tarnung nun wieder abgenommen");
    }
    }
    return 1;
    }

  • Danke Geht! :love:

  • Danke Geht! :love:


    Dennoch solltest du daran denken dein code dementsprechend ein zu ordnen


    new bool: maske[MAX_PLAYERS],
    OldName[MAX_PLAYERS][MAX_PLAYER_NAME];


    CMD:uc(playerid, params[])
    {
    new NewName[MAX_PLAYER_NAME];
    if(sscanf(params, "s[20]", NewName))return SendClientMessage(playerid, 0x000000FF, "Benutzen: /uc [Deckname]");
    if(maske[playerid] == false){
    switch(SetPlayerName(playerid, NewName))
    {
    case -1:return SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Dein Deckname konnte nicht gesetzt werden. Jemand anderes verwendet den Namen");
    case 0: return SendClientMessage(playerid, 0xFF0000FF, "AdmCmd: Du nennst dich bereits so");
    case 1: SendClientMessage(playerid, HBLAU, "AdmCmd: Du hast deine Maske aufgezogen (/uc um sie abzuziehen)");
    }
    maske[playerid] = true;
    GetPlayerName(playerid, OldName[playerid],MAX_PLAYER_NAME);
    }else{
    SetPlayerName(playerid, OldName[playerid]);
    maske[playerid] = false;
    SendClientMessage(playerid,HBLAU,"AdmCmd: Du hast deine Tarnung nun wieder abgenommen");
    }
    return 1;
    }


    du setzt schon davor die variabel auf true obwohl der spiele rnichtmal einen string dahinter verwendet hat. Zu dem sollte etwas nicht passen muss er nochmal den command eingeben damit
    er zurück kommt um den command neu einzugeben mit name


  • Ja hatte es danach direkt geändert danke trotzdem :)))