Problem mit /setname

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
  • Hi,


    ich habe ein Problem mit dem Command /setname hier ist mein Code:


    ocmd:setname(playerid, params[])
    {
    new giveplayerid, newnameid, string[128];


    if (Spieler[playerid][level] >= 1)
    {
    if(sscanf(params, "us", giveplayerid, newnameid))
    {
    SendClientMessage(playerid, Orange, "NUTZUNG: /setname [playerid] [name]");
    return 1;
    }
    format(string, sizeof(string), "Du heist jetzt %s!", newnameid);
    SendClientMessage(giveplayerid, Green, string);
    format(string, sizeof(string), "Du hast den Namen von jemandem auf %s geändert!", newnameid);
    SendClientMessage(playerid, Red, string);
    SetPlayerName(giveplayerid, newnameid);
    }
    else SendClientMessage(playerid, Red, NoAdmin);
    return 1;
    }


    und dann erhalte ich diesen Fehler:
    C:\Users\Marvin\Desktop\Fun-Andreas Server\gamemodes\funandreas.pwn(1200) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    und ich bekomme ihn nicht weg könnt ihr mir helfen ????


    edit:// Dazu muss ich sagen die Zeile 1200 ist hier zeile 13
    edit:// Ne Zeile 16 Sorry

  • //EDIT


    Ich kenn mich mit OCMD 0 aus seh aber auf dem ersten Blick das bei


    format(string, sizeof(string), "Du heist jetzt %s!", newnameid); SendClientMessage(giveplayerid, Green, string); format(string, sizeof(string), "Du hast den Namen von jemandem auf %s geändert!", newnameid); SendClientMessage(playerid, Red, string); SetPlayerName(giveplayerid, newnameid);


    die verschiebung falsch is ...

    Mit freundlichen Grüßen,

  • Dann bekomme ich 4 Fehler:
    C:\Users\Marvin\Desktop\Fun-Andreas Server\gamemodes\funandreas.pwn(1191) : error 032: array index out of bounds (variable "nameid")
    C:\Users\Marvin\Desktop\Fun-Andreas Server\gamemodes\funandreas.pwn(1196) : error 032: array index out of bounds (variable "nameid")
    C:\Users\Marvin\Desktop\Fun-Andreas Server\gamemodes\funandreas.pwn(1198) : error 032: array index out of bounds (variable "nameid")
    C:\Users\Marvin\Desktop\Fun-Andreas Server\gamemodes\funandreas.pwn(1200) : error 032: array index out of bounds (variable "nameid")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Und die einrückung das liegt hier an dem PWN-Code einbinder...

  • ich habe hier mal was für GF Version kannst du aber auch leicht für selfmade anfertigen


    if(strcmp(cmd,"/umbenennen",true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_WHITE,"NUTZUNG: /umbennen [playerid/name] [neuer name] Achtung! Maximale Länge: 16 Zeichen");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(!IsPlayerConnected(giveplayerid))
    {
    SendClientMessage(playerid,COLOR_WHITE," Spieler ist nicht Online!");
    return 1;
    }
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(strlen(result) < 1 || strlen(result) > 16)
    {
    SendClientMessage(playerid,COLOR_WHITE,"NUTZUNG: /umbennen [playerid/name] [neuer name]");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string,sizeof(string),"/Accounts/%s.ini",giveplayer);
    fremove(string);
    format(string,sizeof(string)," AdmCmd: %s hat %s in %s umbenannt!",sendername,giveplayer,result);
    ABroadCast(COLOR_LIGHTRED,string,1);
    format(string,sizeof(string)," Admin %s hat dich in %s umbenannt!",sendername,result);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    SetPlayerName(giveplayerid,result);
    OnPlayerUpdateEx(giveplayerid);
    }
    return 1;
    }
    hoffe ich konnte helfen;)

  • ganz nett und hilfreich aber er benutzt sscanf da brauch er den ganzen mist mit Result usw nicht mehr ;)

  • ganz nett und hilfreich aber er benutzt sscanf da brauch er den ganzen mist mit Result usw nicht mehr ;)


    oh ^^ nicht zuende gelesen xD ok aber jetzt hat er es ja