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: Heromen - 2014. április 06. - 11:04:20

Cím: Mentés
Írta: Heromen - 2014. április 06. - 11:04:20
Helló.
Meg csináltam hogy mentse dinivel de csak egy .ini fájt csinál és a másodpercet percet órát nem menti le , csak 0kat ír oda. Valaki nem tudja miért?
script:
 
#include <a_samp>
#include <dini>
#include <zcmd>
#define COLOR_RED 0xFF0000FF
new fido_timer[MAX_PLAYERS];
enum JatekosInfo
{
FOra,
FPerc,
FMPerc,
}
new PlayerTime[MAX_PLAYERS][JatekosInfo];
new FIdo[MAX_PLAYERS][JatekosInfo];
forward PlayedTime(playerid);
forward Uzenet(playerid);
public OnPlayerConnect(playerid)
{
        new file[128];
fido_timer[playerid] = SetTimerEx(\"tfido\", 1000, true, \"i\", playerid);
        if(!fexist(file))
        {
                    new name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(file,sizeof(file),\"/Szerver/%s.ini\",name);
                        if(!fexist(file))
                        {
                                dini_Create(file);
                               dini_IntSet(file, \"FMPerc\", 0);
                                dini_IntSet(file, \"FPerc\", 0);
                                dini_IntSet(file, \"FOra\", 0);
                        }
        }
        if(fexist(file))
        {
                        new name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(file,sizeof(file),\"/Szerver/%s.ini\",name);
                        if(fexist(file))
                        {
                                        PlayerTime[playerid][FMPerc] = dini_Int(file, \"FMPerc\");
                                        PlayerTime[playerid][FPerc] = dini_Int(file, \"FPerc\");
                                        PlayerTime[playerid][FOra] = dini_Int(file, \"FOra\");
                        }
        }
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new file[128];
    new name[MAX_PLAYER_NAME];
    format(file,sizeof(file),\"%s.ini\",name);
        if(fexist(file))
        {
              dini_IntSet(file, \"FMPerc\", PlayerTime[playerid][FMPerc]);
                dini_IntSet(file, \"FPerc\", PlayerTime[playerid][FPerc]);
                dini_IntSet(file, \"POra\", PlayerTime[playerid][FOra]);
                KillTimer(fido_timer[playerid]);
        }
        return 1;
}
forward tfido(playerid);
public tfido(playerid)
{
FIdo[playerid][FMPerc] ++;
if(FIdo[playerid][FMPerc] == 60)
{
        FIdo[playerid][FMPerc] = 0;
       FIdo[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(FIdo[playerid][FPerc] == 60)
    {
       FIdo[playerid][FMPerc] = 0;
        FIdo[playerid][FPerc] = 0;
         FIdo[playerid][FOra] ++;
          SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}
CMD:stat(playerid, params[])
{
new fido[256];
format(fido, sizeof(fido), \"|| Fent lévõ Óra: %02d | Perc: %02d | MásodPerc: %02d ||\", FIdo[playerid][FOra], FIdo[playerid][FPerc], FIdo[playerid][FMPerc]);
SendClientMessage(playerid, -1, fido);
return 1;
}
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 11:07:35
dini_IntSet(file, \"POra\", PlayerTime[playerid][FOra]);

 
A POra-t akarod menteni, de FOrat töltesz be. Akkor ide is FOra kéne, nem?
 
dini_IntSet(file, \"FOra\", PlayerTime[playerid][FOra]);
Cím: Mentés
Írta: Heromen - 2014. április 06. - 11:17:24
Valami nemjó :S ki fagy tõle a szerver ha felépek  :S

Dupla hozzászólás automatikusan összefûzve. ( 2014. április 06. - 11:58:06 )

Még így se menti le :S
http://kepfeltoltes.hu/view/140406/sss_www.kepfeltoltes.hu_.png
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 12:05:16
format(file,sizeof(file),\"%s.ini\",name);

 
Esetleg e helyett nem ez kéne? Máshol így van:
 
format(file,sizeof(file),\"/Szerver/%s.ini\",name);
Cím: Mentés
Írta: Heromen - 2014. április 06. - 12:16:54
Az márt meg van csak még mindíg mindenhol 0-t ír
Cím: Mentés
Írta: kriszrap - 2014. április 06. - 12:29:39
szerintem meg csináld igy de nem biztos hogy ez a baj:)
 

public tfido(playerid)
{
       PlayerTime[playerid][FMPerc] ++;
        if(PlayerTime[playerid][FMPerc] == 60)
        {
               PlayerTime[playerid][FMPerc] = 0;
        PlayerTime[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(PlayerTime[playerid][FPerc]== 60)
    {
       PlayerTime[playerid][FMPerc]= 0;
       PlayerTime[playerid][FPerc] = 0;
        PlayerTime[playerid][FOra]++;
        SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 12:49:33
Idézetet írta: kriszrap date=1396780179\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47566\" data-ipsquote-contentclass=\"forums_Topic
szerintem meg csináld igy de nem biztos hogy ez a baj:)
 

public tfido(playerid)
{
       PlayerTime[playerid][FMPerc] ++;
        if(PlayerTime[playerid][FMPerc] == 60)
        {
               PlayerTime[playerid][FMPerc] = 0;
        PlayerTime[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(PlayerTime[playerid][FPerc]== 60)
    {
       PlayerTime[playerid][FMPerc]= 0;
       PlayerTime[playerid][FPerc] = 0;
        PlayerTime[playerid][FOra]++;
        SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}

 

Most nem csináltál mást, mint azt, hogy átnevezted az FIdo-t PlayerTime-ra. Viszont érthetõ, hogy miért. Ezt én például észre sem vettem. Te két különbözõ változót használsz, ugyanarra az enumra.
 
new PlayerTime[MAX_PLAYERS][JatekosInfo];
new FIdo[MAX_PLAYERS][JatekosInfo];

 
Használj csak egyet, mondjuk akkor a PlayerTime-ot, ha már kriszrap is azt választotta. Cserélj ki MINDEN FIdo-t PlayerTime-ra, a
 
new FIdo[MAX_PLAYERS][JatekosInfo];

 
-t pedig töröld nyugodtan. Úgy már csak-csak jó lesz.
Cím: Mentés
Írta: Heromen - 2014. április 06. - 13:01:16
Még most se jó :S
Cím: Mentés
Írta: Heromen - 2014. április 06. - 11:04:20
Helló.
Meg csináltam hogy mentse dinivel de csak egy .ini fájt csinál és a másodpercet percet órát nem menti le , csak 0kat ír oda. Valaki nem tudja miért?
script:
 
#include <a_samp>
#include <dini>
#include <zcmd>
#define COLOR_RED 0xFF0000FF
new fido_timer[MAX_PLAYERS];
enum JatekosInfo
{
FOra,
FPerc,
FMPerc,
}
new PlayerTime[MAX_PLAYERS][JatekosInfo];
new FIdo[MAX_PLAYERS][JatekosInfo];
forward PlayedTime(playerid);
forward Uzenet(playerid);
public OnPlayerConnect(playerid)
{
        new file[128];
fido_timer[playerid] = SetTimerEx(\"tfido\", 1000, true, \"i\", playerid);
        if(!fexist(file))
        {
                    new name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(file,sizeof(file),\"/Szerver/%s.ini\",name);
                        if(!fexist(file))
                        {
                                dini_Create(file);
                               dini_IntSet(file, \"FMPerc\", 0);
                                dini_IntSet(file, \"FPerc\", 0);
                                dini_IntSet(file, \"FOra\", 0);
                        }
        }
        if(fexist(file))
        {
                        new name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(file,sizeof(file),\"/Szerver/%s.ini\",name);
                        if(fexist(file))
                        {
                                        PlayerTime[playerid][FMPerc] = dini_Int(file, \"FMPerc\");
                                        PlayerTime[playerid][FPerc] = dini_Int(file, \"FPerc\");
                                        PlayerTime[playerid][FOra] = dini_Int(file, \"FOra\");
                        }
        }
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new file[128];
    new name[MAX_PLAYER_NAME];
    format(file,sizeof(file),\"%s.ini\",name);
        if(fexist(file))
        {
              dini_IntSet(file, \"FMPerc\", PlayerTime[playerid][FMPerc]);
                dini_IntSet(file, \"FPerc\", PlayerTime[playerid][FPerc]);
                dini_IntSet(file, \"POra\", PlayerTime[playerid][FOra]);
                KillTimer(fido_timer[playerid]);
        }
        return 1;
}
forward tfido(playerid);
public tfido(playerid)
{
FIdo[playerid][FMPerc] ++;
if(FIdo[playerid][FMPerc] == 60)
{
        FIdo[playerid][FMPerc] = 0;
       FIdo[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(FIdo[playerid][FPerc] == 60)
    {
       FIdo[playerid][FMPerc] = 0;
        FIdo[playerid][FPerc] = 0;
         FIdo[playerid][FOra] ++;
          SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}
CMD:stat(playerid, params[])
{
new fido[256];
format(fido, sizeof(fido), \"|| Fent lévõ Óra: %02d | Perc: %02d | MásodPerc: %02d ||\", FIdo[playerid][FOra], FIdo[playerid][FPerc], FIdo[playerid][FMPerc]);
SendClientMessage(playerid, -1, fido);
return 1;
}
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 11:07:35
dini_IntSet(file, \"POra\", PlayerTime[playerid][FOra]);

 
A POra-t akarod menteni, de FOrat töltesz be. Akkor ide is FOra kéne, nem?
 
dini_IntSet(file, \"FOra\", PlayerTime[playerid][FOra]);
Cím: Mentés
Írta: Heromen - 2014. április 06. - 11:17:24
Valami nemjó :S ki fagy tõle a szerver ha felépek  :S

Dupla hozzászólás automatikusan összefûzve. ( 2014. április 06. - 11:58:06 )

Még így se menti le :S
http://kepfeltoltes.hu/view/140406/sss_www.kepfeltoltes.hu_.png
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 12:05:16
format(file,sizeof(file),\"%s.ini\",name);

 
Esetleg e helyett nem ez kéne? Máshol így van:
 
format(file,sizeof(file),\"/Szerver/%s.ini\",name);
Cím: Mentés
Írta: Heromen - 2014. április 06. - 12:16:54
Az márt meg van csak még mindíg mindenhol 0-t ír
Cím: Mentés
Írta: kriszrap - 2014. április 06. - 12:29:39
szerintem meg csináld igy de nem biztos hogy ez a baj:)
 

public tfido(playerid)
{
       PlayerTime[playerid][FMPerc] ++;
        if(PlayerTime[playerid][FMPerc] == 60)
        {
               PlayerTime[playerid][FMPerc] = 0;
        PlayerTime[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(PlayerTime[playerid][FPerc]== 60)
    {
       PlayerTime[playerid][FMPerc]= 0;
       PlayerTime[playerid][FPerc] = 0;
        PlayerTime[playerid][FOra]++;
        SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}
Cím: Mentés
Írta: Dfoglalo - 2014. április 06. - 12:49:33
Idézetet írta: kriszrap date=1396780179\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47566\" data-ipsquote-contentclass=\"forums_Topic
szerintem meg csináld igy de nem biztos hogy ez a baj:)
 

public tfido(playerid)
{
       PlayerTime[playerid][FMPerc] ++;
        if(PlayerTime[playerid][FMPerc] == 60)
        {
               PlayerTime[playerid][FMPerc] = 0;
        PlayerTime[playerid][FPerc] ++;
        SendClientMessage(playerid, -1, \"Percet ugrottál!\");
    }
    if(PlayerTime[playerid][FPerc]== 60)
    {
       PlayerTime[playerid][FMPerc]= 0;
       PlayerTime[playerid][FPerc] = 0;
        PlayerTime[playerid][FOra]++;
        SendClientMessage(playerid, -1, \"Órát ugrottál!\");
        }
}

 

Most nem csináltál mást, mint azt, hogy átnevezted az FIdo-t PlayerTime-ra. Viszont érthetõ, hogy miért. Ezt én például észre sem vettem. Te két különbözõ változót használsz, ugyanarra az enumra.
 
new PlayerTime[MAX_PLAYERS][JatekosInfo];
new FIdo[MAX_PLAYERS][JatekosInfo];

 
Használj csak egyet, mondjuk akkor a PlayerTime-ot, ha már kriszrap is azt választotta. Cserélj ki MINDEN FIdo-t PlayerTime-ra, a
 
new FIdo[MAX_PLAYERS][JatekosInfo];

 
-t pedig töröld nyugodtan. Úgy már csak-csak jó lesz.
Cím: Mentés
Írta: Heromen - 2014. április 06. - 13:01:16
Még most se jó :S