GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: N@rbirock - 2012. június 02. - 08:31:01

Cím: 1 élet
Írta: N@rbirock - 2012. június 02. - 08:31:01
Hogy lehet megcsinálni, hogy törlõdjön a mentés ha meghal?
 
stock save(id)
{
new fajl[128];
format(fajl,sizeof(fajl),\"/admin/%s.ini\",nev(id));
if(fexist(fajl))
{
   dini_IntSet(fajl,\"admin\", pi[id][admin]);
   dini_IntSet(fajl,\"rendor\", pi[id][rendor]);
   dini_IntSet(fajl,\"mento\", pi[id][mento]);
   dini_IntSet(fajl,\"ban\", pi[id][ban]);
   dini_IntSet(fajl,\"as\", pi[id][as]);
   dini_IntSet(fajl,\"vip\", pi[id][vip]);
   dini_Set(fajl,\"aname\", pi[id][aname]);
   dini_IntSet(fajl,\"penz\",GetPlayerMoney(id));
   dini_IntSet(fajl,\"pont\",GetPlayerScore(id));
dini_IntSet(fajl,\"korozes\",GetPlayerWantedLevel(id));
}
}
Cím: 1 élet
Írta: Norby - 2012. június 02. - 08:33:45
Az összes adat nullázódjon vagy úgy érted hogy törölje ki az egészet a létrehozott fájlt szóval a regisztrációját ?
Cím: 1 élet
Írta: N@rbirock - 2012. június 02. - 08:38:19
Nullázódjon ne maradjon semmije.
Cím: 1 élet
Írta: Norby - 2012. június 02. - 08:38:39

public OnPlayerDeath(playerid, killerid, reason)
{
pi[playerid][admin]    = 0;
pi[playerid][rendor]    = 0;
pi[playerid][mento]     = 0;
pi[playerid][ban]       = 0;
pi[playerid][as]        = 0;
pi[playerid][vip]       = 0;
pi[playerid][aname]     = \"\";
new fajl[128];
format(fajl,sizeof(fajl),\"/admin/%s.ini\",nev(playerid));
if(fexist(fajl))
{
dini_IntSet(fajl,\"admin\", pi[playerid][admin]);
dini_IntSet(fajl,\"rendor\", pi[playerid][rendor]);
dini_IntSet(fajl,\"mento\", pi[playerid][mento]);
dini_IntSet(fajl,\"ban\", pi[playerid][ban]);
dini_IntSet(fajl,\"as\", pi[playerid][as]);
dini_IntSet(fajl,\"vip\", pi[playerid][vip]);
dini_Set(fajl,\"aname\", pi[playerid][aname]);
dini_IntSet(fajl,\"penz\",0);
dini_IntSet(fajl,\"pont\",0);
dini_IntSet(fajl,\"korozes\",0);
}
return 1;
}
Cím: 1 élet
Írta: N@rbirock - 2012. június 02. - 08:49:32
Nem jó mert megmarad a pénz.
Cím: 1 élet
Írta: Norby - 2012. június 02. - 08:58:18
A pénznek van változója létrehozva ?
Ha nincs akkor így biztos jó lesz  :
 

public OnPlayerDeath(playerid, killerid, reason)
{
        pi[playerid][admin]     = 0;
        pi[playerid][rendor]    = 0;
        pi[playerid][mento]     = 0;
        pi[playerid][ban]       = 0;
        pi[playerid][as]        = 0;
        pi[playerid][vip]       = 0;
        pi[playerid][aname]     = \"\";
        ResetPlayerMoney(playerid);
        SetPlayerScore(playerid,0);
        SetPlayerWantedLevel(playerid,0);
        new fajl[128];
        format(fajl,sizeof(fajl),\"/admin/%s.ini\",nev(playerid));
        if(fexist(fajl))
        {
                dini_IntSet(fajl,\"admin\", pi[playerid][admin]);
                dini_IntSet(fajl,\"rendor\", pi[playerid][rendor]);
                dini_IntSet(fajl,\"mento\", pi[playerid][mento]);
                dini_IntSet(fajl,\"ban\", pi[playerid][ban]);
                dini_IntSet(fajl,\"as\", pi[playerid][as]);
                dini_IntSet(fajl,\"vip\", pi[playerid][vip]);
                dini_Set(fajl,\"aname\", pi[playerid][aname]);
                dini_IntSet(fajl,\"penz\",0);
                dini_IntSet(fajl,\"pont\",0);
                dini_IntSet(fajl,\"korozes\",0);
        }
        return 1;
}
Cím: 1 élet
Írta: JBauer - 2012. június 02. - 09:02:55
    public OnPlayerDeath(playerid, killerid, reason)
    {
            pi[playerid][admin]     = 0;
            pi[playerid][rendor]    = 0;
            pi[playerid][mento]     = 0;
            pi[playerid][ban]       = 0;
            pi[playerid][as]        = 0;
            pi[playerid][vip]       = 0;
            pi[playerid][aname]     = \"\";
            SetPlayerMoney(playerid, 0);
            SetPlayerScore(playerid, 0);
            new fajl[128];
            format(fajl,sizeof(fajl),\"/admin/%s.ini\",nev(playerid));
            if(fexist(fajl))
            {
                    dini_IntSet(fajl,\"admin\", pi[playerid][admin]);
                    dini_IntSet(fajl,\"rendor\", pi[playerid][rendor]);
                    dini_IntSet(fajl,\"mento\", pi[playerid][mento]);
                    dini_IntSet(fajl,\"ban\", pi[playerid][ban]);
                    dini_IntSet(fajl,\"as\", pi[playerid][as]);
                    dini_IntSet(fajl,\"vip\", pi[playerid][vip]);
                    dini_Set(fajl,\"aname\", pi[playerid][aname]);
                    dini_IntSet(fajl,\"penz\",0);
                    dini_IntSet(fajl,\"pont\",0);
                    dini_IntSet(fajl,\"korozes\",0);
            }
            return 1;
    }
     

 
Így?
Cím: 1 élet
Írta: Norby - 2012. június 02. - 09:06:02
Nem SetPlayerMoney!
Hanem :
 
GivePlayerMoney(playerid, Érték);
Cím: 1 élet
Írta: Kovacs_Bela - 2012. június 02. - 09:11:22
Idézetet írta: Norby date=1338620762\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22286\" data-ipsquote-contentclass=\"forums_Topic
Nem SetPlayerMoney!
Hanem :
 
GivePlayerMoney(playerid, Érték);

 

naja... amúgymeg
 ResetPlayerMoney 
Cím: 1 élet
Írta: Norby - 2012. június 02. - 09:12:43
Igazad van az is jó megoldás... ;)
Cím: 1 élet
Írta: JBauer - 2012. június 02. - 09:19:30
Hát, ha GivePlayerMoney-t használsz akkor a jelenlegihez ad hozzá, tehát van neki 10.000$ + 0$ = 10.000$ marad.
Cím: 1 élet
Írta: Norby - 2012. június 02. - 09:27:51
Igen rájöttem.. :D
Cím: 1 élet
Írta: Zsolesszka - 2012. június 02. - 09:57:34
Idézetet írta: N@rbirock date=1338618661\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22286\" data-ipsquote-contentclass=\"forums_Topic
Hogy lehet megcsinálni, hogy törlõdjön a mentés ha meghal?
 
@Norby
Mikor meghal a játékos és nem mikor kilép a szerverrõl.
A fájl törlés ilyen esetben gyorsabb mint minden egyes adatot nullára változtatni a fájlban.
Mikor újra szükség van rá akkor meg létre lehet hozni újra a fájlt.
Cím: 1 élet
Írta: JBauer - 2012. június 02. - 10:01:04
        public OnPlayerDeath(playerid, killerid, reason)
        {
                new fajl[128];
                format(fajl,sizeof(fajl),\"/admin/%s.ini\",nev(playerid));
                if(fexist(fajl))
                {
                     dini_Remove(fajl);
                     SendClientMessage(playerid, -1, \"Mivel meghaltál töröljük a karakteredet! Kérlek relogolj!\");
                     Kick(playerid);
                }
                return 1;
        }
         

 
Így próbáld meg. Mikor meghal akkor eltávolítja a fájl-t és kickeli. (Ha relogol akkor újra kell regiznie.)
Cím: 1 élet
Írta: Norby - 2012. június 02. - 10:02:04
Lol bocsánat! :D
OnPlayerDeath alá...
Átírom.. ;)
Köszi hogy felhívtad a figyelmem Zolesszka..
Igen úgy is meg lehet oldani és valószínûleg okosabb dolog is lenne...