Bei GF Spieler namen speichern

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
  • Guten Morgen :)
    ihr Brodis


    Ich wollte mal fragen wie ich beim gf den namen des users rein klatschen kann jeder kennt ja dieses gf speicherungs art :) mit den playerinfo enum


    also ich hab es jetzt so



    enum pInfo
    {
    pKey[128],
    pHerkunft[128],
    pName[MAX_PLAYER_NAME],//hier
    pLevel,
    pAdmin,
    pSupporter,
    pDonateRank,
    gPupgrade,
    pPassport,
    pReg,
    pSex,
    pMauled,
    pAlter,
    pMuted,
    pExp,
    pGeld,
    pMP3,
    pZollpass,
    bool:pGenerateState,
    pGenerateTimer,
    pSpawn,
    pHauskasse,
    pFahrverbot,
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];

    und wie speichere ich das jetzt ab ?
    laden brauch ich es ja net es soll ja nur ausgelesen werden...


    so speichere ich ab zb mit meiner bank
    format(var, 32, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);


    und lade ich


    if( strcmp( key , "Bank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAccount] = strval( val ); }


    wie müsste ich es dann mit pName machen ?

  • Ich versteh dein Problem nicht, den Namen fragst du wie folgt ab.
    ocmd:meinname(playerid,params[])
    {
    #pragma unused params
    new string[128];
    format(string,sizeof(string),"Mein Name lautet: %s",pInfo[playerid][pName]);
    SendClientMessage(playerid,-1,string);
    return 1;
    }

  • Speichern:
    format(var, 32, "pName=%s\n",PlayerInfo[playerid][pName]);fwrite(hFile, var);


    Auslesen:
    if( strcmp( key , "pName" , true ) == 0 ) { val = ini_GetValue( Data ); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, val); }

  • Du brauchst den Namen nicht mit getPlayerName abfragen, pInfo[playerid][pName] liest deinen Namen doch direkt aus.


    ja aber wie soll ich abfragen welchen namen ich voher hate somit is diese funktion für mich überflüssig...
    ich kenne auch diese metode
    doch geht es von der ini auch schneller ;) zumal man immer mit geplayername usw immer erst abfragen muss wie er den nun heißt und dann mit format string es in was umzusetzen das is
    doch käse in der ini geht es nach meiner meinung nach schneller

  • naja aber etwas einfacher


    man muss net immer bei jedem befehl oder ne ausgabe immer das machen



    new pname[24],stext[128];
    GetPlayerName(i,pname,sizeof(pname));
    format(stext,sizeof(stext),"Adminmeldung: %s wurde von System gebannt, Grund: Falsches Rcon Passwort",pname)

    sondern kann es gleich so machen



    format(stext,sizeof(stext),"Adminmeldung: %s wurde von System gebannt, Grund: Falsches Rcon Passwort",PlayerInfo[Playerid][pName]);


    wen ich mich net grad irre aber so sollte es dann auch gehen hab ich öfters bei anderen scripts so gesehen
    gut man könnte auch nen stock machen ginge auch..



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

  • Deshalb einfach
    GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
    bei OnPlayerConnect hinsetzen. Dann hast du den Namen in dieser Variable, und das auslesen aus der Datei sparst du dir auch, ebenso wie das speichern.

  • Deshalb einfach
    GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
    bei OnPlayerConnect hinsetzen. Dann hast du den Namen in dieser Variable, und das auslesen aus der Datei sparst du dir auch, ebenso wie das speichern.


    habe ich auch so danke dir aufjedenfall :)
    :thumbup: