waffen mitabspeichern (definierung mach ich)

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
  • tach, wollte fragen wie man die waffen einfach abspeichert.


    edfinieren tu ich sie selbst.
    bin mal uff leute, hoffe jemand antwortet. danke.
    MfG

  • Oben:

    Code
    new bool:HatWaffen[MAX_PLAYERS];


    Bei OnPlayerConnect(playerid):

    Code
    HatWaffen[playerid] = false;


    Bei SetPlayerSpawn:

    Code
    if (!HatWaffen[playerid])SetTimerEx("LoadWaffen",250,false,"i",playerid);


    Bei OnPlayerDisconnect(playerid, reason):

    Code
    SaveWaffen(playerid);


    Unten:

  • hm, ich wollte es eher meiner regyster system anpassen, keine neue datei erstellen.
    trotzdem schonmal Danke.
    Im übringem, benutze ich jake's Regyster System (zombie.modder's "new" Regyster system, seite 8 oder so.)
    wie müsste ich es dann umbauen?
    denn momentan wird das adminleve, die tote, die morde & das geld gespeichert.
    sry, ich habe noch nie eine neue variable ins regy sys eingefügt^^

    2 Mal editiert, zuletzt von Loadup[GER] ()

  • Ich hätte es wie die anderen gemacht und GetPlayerWeapon
    gemacht

  • ok ich versuchs mal :S
    wenn es nicht funktioniert melde ich mich mit einem "//EDIT:".


    also kurzes EDIT,
    wie kann ich alle slots auswählen?
    sodas man mit "GetPlayerWeaponData(playerid," alle slots etc.
    auswählen kann. ich möchte jetzt nicht 10tausend zeilen nur für die waffen machen. (die slots xD)


    danke schonmal!


    so sollte es gehen oder? habs ausm wiki:
    [...]
    format(var, 32, "Tode=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
    new weapons[13][2];
    for (new i = 0; i < 13; i++)
    {
    PlayerInfo[playerid][pWeapons] = GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    }
    format(var, 32, "Waffen=%d\n",PlayerInfo[playerid][pWeapons]);fwrite(hFile, var);
    [...]

    Einmal editiert, zuletzt von Loadup[GER] ()

  • so kannst du nur eine waffe speichern und das ohne munition <.<
    du kannst so kein array in eine datei speichern.


    Stas wieso machst du ein timer?
    if (!HatWaffen[playerid])SetTimerEx("LoadWaffen",250,false,"i",playerid);
    ein einfacher funktionsaufruf würde doch reichen oder nicht?

  • danke >_>
    wie würdest du es machen?
    bitte helf' mir.


    so, bin jetzt mit dem definieren (bis auf das "GETPLAYERWEAPONS (ich weiß gibt es nicht ^.^)" komplett fertig.
    bitte jetzt um hilfe.

  • och nee nicht wieder wieder MYSQL.
    SAMPKILLER wollte es mir mal beibringen.
    nein, aber danke^^
    (Danke, aber nein Oo)


    also wie würdest du die waffen (komplette waffen + ammo) aufrüfen also "GETTEN" oder "BEKOMMEN"? :wacko:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • holy macarony what da hell?
    kein error.
    trotzdem steht es nicht bei der a_player.inc oder wie die heißt.
    sry^^
    so ...
    also ich habe
    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid])
    {
    new string3[32];
    new pname3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "/Spieler/%s.ini", pname3);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "Passwort=%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
    format(var, 32, "Adminlevel=%d\n", PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
    PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
    format(var, 32, "Morde=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
    format(var, 32, "Tode=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
    format(var, 32, "Waffen=%d\n",PlayerInfo[playerid][pWeapons]);fwrite(hFile, var);
    format(var, 32, "Geld=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    }
    return 1;
    }
    ,
    public Einloggen(playerid,password[])
    {
    new name2[MAX_PLAYER_NAME];
    new string2[64];
    GetPlayerName(playerid, name2, sizeof(name2));
    format(string2, sizeof(string2), "/Spieler/%s.ini", name2);
    new File: UserFile = fopen(string2, io_read);
    if (UserFile)
    {
    new PassData[256];
    new valtmp[256], keytmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Passwort" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if (strcmp(PlayerInfo[playerid][pPassword], password, true) == 0)
    {
    new key[ 256 ],val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Adminlevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
    if( strcmp( key , "Morde" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Tode" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Waffen" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pWeapons] = strval( val ); }
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    GetPlayerName(playerid, name2, sizeof(name2));
    format(string2, sizeof(string2), "Welcome %s, you have successful logged in!", name2);
    SendClientMessage(playerid, COLOR_GOLD,string2);
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid, RED, "The password is wrong!");
    fclose(UserFile);
    }
    }
    return 1;
    }
    ,
    if (strcmp(cmd, "/Register", true)==0)
    {
    new string[128];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GOLD, "USE: /Register [PASSWORD]");
    return 1;
    }
    if (gPlayerAccount[playerid] == 1)
    {
    SendClientMessage(playerid, RED, "Your Account is already exist!");
    return 1;
    }


    strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
    Encrypt(PlayerInfo[playerid][pPassword]);
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string, sizeof(string), "/Spieler/%s.ini", playername);
    new File: file = fopen(string, io_read);
    if (file)
    {
    SendClientMessage(playerid, RED, "Your Account is already exist!");
    fclose(file);
    return 1;
    }
    new File:hFile;
    hFile = fopen(string, io_append);
    new var[32];//
    format(var, 32, "Passwort=%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
    format(var, 32, "Morde=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
    format(var, 32, "Tode=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
    new weaponid;
    weaponid = GetPlayerWeapon(playerid);
    format(var, 32, "Waffen=%d\n",PlayerInfo[playerid][pWeapons]);fwrite(hFile, var);
    PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
    format(var, 32, "Geld=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
    fclose(hFile);
    Einloggen(playerid,PlayerInfo[playerid][pPassword]);
    return 1;
    }


    also wie lade ich nun die waffen?
    ist das auch richtig? XD
    //EDIT: Sry leute, der pawn code verschiebt sich immer xD

    2 Mal editiert, zuletzt von Loadup[GER] ()


  • Stas wieso machst du ein timer?
    if (!HatWaffen[playerid])SetTimerEx("LoadWaffen",250,false,"i",playerid);
    ein einfacher funktionsaufruf würde doch reichen oder nicht?


    Weil das bei mir später als eine andere Funktion geladen werden soll.

  • //============================//ICH MACHE DAFÜR NEN NEUEN TREAD, DAS HAT DAMIT NICHT VIEL ZU TUN^^//===========================//

    4 Mal editiert, zuletzt von Loadup[GER] ()