"GetPlayerName" global machen möglich ?

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
  • danke dan werde ich es mal wieder änder ^^ habs auch schon gemerkt aber dachte vieleicht gehts irgendwie ^^


    //EDIT: Hab aber mal ne frage will aber kein extra Thread machen wie kann ich es machen das man /admins eingibt und die admins die grade on sind angezeigt werden ??

  • Schreib einfach ne Funktion:

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

    (freihhand geschrieben, daher nicht eingerückt)
    Sollte dem entsprechen was du suchst....

  • oki werde es mal testen ^^


    //EDIT: naja jetz zeigt es für jeden befehl: error 017: undefined symbol "name"
    ich wollte das halt weil ich in allen befehlen nur mit playerid->name und pplayerid->pname arbeite das global machen um es nicht überall zu schreiben

  • Für das ganze Aktuelle Script definieren


    new names[MAX_PLAYERS][MAX_PLAYER_NAME];



    Unter OnPlayerConnect


    GetPlayerName(playerid,names[playerid],MAX_PLAYER_NAME);


    so und nun kannst du :


    names[id des spielers] nutzen da dort der Name für die ID drin ist, ganz einfach

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Du hast mich wohl falsch verstanden, ich zeige dir mal eben wie du es einsetzen könntest:


    format(iwas,sizeof(iwas)," Der Name ist %d",GetPlayerName2(playerid));


    Anstatt vorher umständlich name formatieren etc. kannst du direkt so vorgehen.


    brauchst damit nirgendswo mehr new name oder sonstwas zu machen.

  • hab das ja aber alles schon geschrieben also in jedem befehl steht in jeden format hinten name oder pname je mach dem und deswegen fragte ich ja obs geht das so zu machen oder kan man GetPlayerName nur für alle cmd´s definieren würde das den gehen ? das ich nicht in jeden cmd GetPlayerName(playerid,name...) und GetPlayerName(pplayerid,pname...) reinschreiben muss ?

  • naja das hier:
    stock GetPlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    return name;
    }
    ganz untem im script.
    und verwenden zB. hier:
    dcmd_gebegeld(playerid,params[])
    {
    new Float:x, Float:y, Float:z,moneyid,moneyamount;
    GetPlayerPos(playerid,x,y,z);

    if(sscanf(params, "ud",moneyid,moneyamount))
    {
    return SendClientMessage(playerid,COLOR_YELLOW,"/gebegeld [ID] [Geld]");
    }
    if(!IsPlayerConnected(moneyid))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"Spieler nicht online!");
    }
    else if(!IsPlayerInRangeOfPoint(moneyid,1.5,x,y,z))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"Der Spieler ist nicht in deiner Nähe.");
    }
    else if(moneyamount < 1 || moneyamount > 50000)
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"Ungültige Summe!");
    }
    else if(moneyamount < 0 || moneyamount > GetPlayerMoney(playerid))
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"Ungültige Summe!");
    }
    {
    format(strink,sizeof(strink),"Du hast von %s $%d bekommen!",name,moneyamount);
    SendClientMessage(moneyid,COLOR_LIGHTGREEN,strink);
    GivePlayerMoney(moneyid,moneyamount);
    format(strink,sizeof(strink),"Du hast %s $%d gegeben!",pname,moneyamount);
    SendClientMessage(playerid,COLOR_LIGHTGREEN,strink);
    GivePlayerMoney(playerid,-moneyamount);
    }
    return 1;
    }
    //also hier
    format(strink,sizeof(strink),"Du hast von %s $%d bekommen!",/*name*/,moneyamount);

  • Ich wollte ja nur wissen wie ich es machen kann das ich es nicht in jeden befehl GetPlayer...... machen kann da ich jetz sonst 30 Befehle umschreiben müsste da ich überall alles mit name und pname geschrieben habe
    aber enns nich anders geht muss ich das halt machen

  • Wie schon gesagt ... aber hier müsstest du auch einiges umändern , dann musst dir halt die Zeit dazu nehmen und das so oder wie Portgas dir das zeigte,
    dann machst du es Zukunft halt mit eine der Methoden ansonsten bleibst du halt bei deinem ;)

    Mfg. BlackFoX_UD_ alias [BFX]Explosion