Probleme bei Namen

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 hab da ein Problem.


    Ich habe diese Commands:


    ocmd:giveweapon(playerid,params[])
    {
    new pid,
    waffe,
    munition,
    string[128],
    string2[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name, sizeof(name));
    if(sscanf(params,"udd",pid,waffe,munition)) return SendClientMessage(playerid,0xFFF000FF,"Benutzung:/giveweapon [ID] [Waffe] [Munition]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,0xFFF000FF,"Kein Spieler mit der angegebenen ID ist Online");
    format(string,sizeof(string),"Du hast %s eine Waffe gegeben",name);
    format(string2,sizeof(string2),"Du hast von %s eine Waffe bekommen",name);
    GivePlayerWeapon(pid,waffe,munition);
    SendClientMessage(playerid,0xFFF000FF,string);
    SendClientMessage(pid,0xFFF000FF,string2);
    SendClientMessageToAll(0xFFFA00FF,string);
    SendClientMessage(playerid,0xFFF000FF,string);
    SendClientMessage(pid,0xFFF000FF,string2);


    GetPlayerName(playerid,name, sizeof(name));
    return 1;
    }


    ocmd:givemoney(playerid,params[])
    {
    new
    pid,
    geld,
    string[128],
    string2[128];
    if(sscanf(params,"ud",pid,geld)) return SendClientMessage(playerid,0xFFF000FF,"Benutzung:/givemoney [ID] [GELD]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,0xFFF000FF,"Kein Spieler mit der angegebenen ID ist Online");
    if(!isPlayerAnAdmin(playerid,5)) return SendClientMessage(playerid,0xFFF000FF,"Du bist kein Server Owner!");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name, sizeof(name));
    format(string,sizeof(string),"Du hast %s %d $ gegeben",gPlayerName[pid],geld);
    format(string2,sizeof(string2),"Du hast von %s %d $ bekommen!",gPlayerName[playerid], geld);
    SendClientMessage(playerid,0xFFF000FF,string);
    SendClientMessage(pid,0xFFF000FF,string2);
    GivePlayerMoney(pid,geld);
    return 1;
    }



    Doch im Server steht dann nur: Du hast 1000$ (z.b.) gegeben. Der Name fehlt. Das gleiche bei giveweapon..



    Wie behebe ich das?



    Mfg Vince

  • ich hab ein stock erstellt und habe seit her keine Probleme mehr damit und finde es so auch leichter ;)


    machs also einfach so:


    stock SpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }


    und dann bei zb giveweapon:


    ocmd:giveweapon(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    new pID, waffe, munition, string[200], string2[200];
    if(sscanf(params,"uii",pID,waffe,munition))return SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /giveweapon [Spieler][Waffe][Munition]");
    format(string,sizeof(string),"**Du hast dem Spieler %s die Waffe mit der ID %d und %d Munition gegeben!**",SpielerName(pID),waffe,munition);
    format(string2,sizeof(string2),"**Der Admin %s hat dir die Waffe mit der ID %d und %d Munition gegeben!**",SpielerName(playerid),waffe,munition);
    GivePlayerWeapon(pID,waffe,munition);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(pID,COLOR_GREEN,string2);
    return 1;
    }


    so müsste es funken und du brauchst nie mehr "new name" oder sonst was machen, weil du einfach SpielerName(deine ID/oder vom Ziel) eingeben musst und es kommt der Name ;)



    MfG

  • new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];


    //OnPlayerConnect:
    GetPlayerName(playerid,PlayerName[playerid],MAX_PLAYER_NAME);
    //Jetzt kannst du überall die Variable PlayerName verwenden:
    ocmd:kick(playerid,params[])
    {
    new s[40];
    format(s,40,"Du hast %s gekickt.",PlayerName[strval(params)]);
    SendClientMessage(playerid,0x00FF00FF",s);
    Kick(strval(params));
    return 1;
    }