Jump to content
  • 0

pomoc Nefunguje cas


Mivčo

Dotaz

Caute :(

chcem si spravit cas na server že kolko minut som nahral a by to išlo ako na ten sprostej RZE iba mi Zapisuje že 0D 0H 0M a toto mam furt

Help me please :(

+ ked si pridam na servery peniaze co som nahral odhlasim sa yam ked pridem na server mam iba 500 prečo?

enum pInfo
{
pAdminLevel,
pCash,
pScore,
Skin,
Kills,
Deaths,
Days,
Minuts,
Hours,
}

new PlayerInfo[MAX_PLAYERS][pInfo];

forward Cas(playerid);
public Cas(playerid)
{
if(PlayerInfo[playerid][Minuts] > 59)
{
PlayerInfo[playerid][Minuts] = 0;
PlayerInfo[playerid][Hours] ++;
}
if(PlayerInfo[playerid][Hours] > 23)
{
PlayerInfo[playerid][Days]++;
PlayerInfo[playerid][Hours] = 0;
PlayerInfo[playerid][Minuts] = 0;
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[256], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "%s.dof2.sav", name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Text", "bla bla ", "Register", "Exit");
dini_Create(file);
dini_IntSet(file, "Password", udb_hash(inputtext));
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin] = 0);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills] = 0);
dini_IntSet(file, "Deaths",PlayerInfo[playerid][Deaths] = 0);
dini_IntSet(file, "Seconds",PlayerInfo[playerid][Days] = 0);
dini_IntSet(file, "Minutes",PlayerInfo[playerid][Minuts] = 0);
dini_IntSet(file, "Hours",PlayerInfo[playerid][Hours] = 0);
format(string, 128, "[sYSTEM]:Uspešne zaregistrovaný tvoje meno je %s a heslo je %s.", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "%s.dof2.sav", name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Si zaregistrovaný", "Vyborne zaregistrovaný .. pametaj si heslo", "Login", "Leave");
new tmp;
tmp = dini_Int(file, "Password");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Zlé heslo.");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Text", "abla bla", "Login", "Exit");
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][pCash] = dini_Int(file, "Money");
PlayerInfo[playerid][pScore] = dini_Int(file, "Score");
PlayerInfo[playerid][skin] = dini_Int(file, "Skin");
PlayerInfo[playerid][Kills] = dini_Int(file, "Kills");
PlayerInfo[playerid][Deaths] = dini_Int(file, "Deaths");
PlayerInfo[playerid][Days] = dini_Int(file, "Days");
PlayerInfo[playerid][Minuts] = dini_Int(file, "Minuts");
PlayerInfo[playerid][Hours] = dini_Int(file, "Hours");
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
SendClientMessage(playerid,COLOR_RED, "[sYSTEM]:Login prijatý!");
new string[128];
format(string,sizeof(string),"Adminlevel: %d, Money: %d$, Skore: %d",PlayerInfo[playerid][pAdminLevel],GetPlayerMoney(playerid),PlayerInfo[playerid][pScore]);
SendClientMessage(playerid,COLOR_RED,string);
format(string,sizeof(string),"%dD %dH %dM",PlayerInfo[playerid][Days],PlayerInfo[playerid][Hours],PlayerInfo[playerid][Minuts]);
SendClientMessage(playerid,COLOR_RED,string);

}
}
return 1;
}

public OnGameModeInit(){
SetTimer("Cas",1000,true); } return 1; }

Link to comment
Share on other sites

Recommended Posts

  • 0

Máš furt 500 protožéé...

dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);

Teď přemýšlej jak to opravit... Na to bys mohl přijít.. na to by přišel i můj pes :d

Link to comment
Share on other sites

  • 0

Máš furt 500 protožéé...

dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);

Teď přemýšlej jak to opravit... Na to bys mohl přijít.. na to by přišel i můj pes :d

Každý je omylný (tým myslím teraz teba)...

 

Počuj mi si máme kód vycucať z prstu ? Načo je nám kód registrácie keď problém nastáva s ukladaním tj. disconnect....

Link to comment
Share on other sites

  • 0

public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "%s.dof2.sav", pname);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin]);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills]);
}
gPlayerLogged[playerid] = 0;

ked som do OnPlayerDisconnect daj aj dni hodiny a tak, ked sa mi vytvoril učet som tam mal 2x Dny,hodiny,minuty

Link to comment
Share on other sites

  • 0

CMD:gm(playerid,params[])
{
new id = strval(params[0]);
new money = strval(params[1]);
if(PlayerInfo[playerid][pAdminLevel] < 3) return SCM(playerid,C,"{FFFFFF}Nemas AdminLevel 3");
else if(!IPC(id)) return SCM(playerid,C,"{FFFFFF}Zadal jsi špadné ID");
else if(!params[0] || !params[1]) return SCM(playerid,C,"{FFFFFF}/gm [iD] [Money]");
else if(money < 0 || money > 1000000) return SCM(playerid,-1,"Zlá suma");
new str[128];
format(str,128,"{D70000}Administrator %s dal hráči %s penazí %d",PlayerName(playerid),PlayerName(id),money);
SCMTA(C,str);
GPM(id,money);
return 1;
}

 

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if (dialogid == 1)

{

new name[MAX_PLAYER_NAME], file[256], string[128];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), "%s.dof2.sav", name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return

ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Text", "bla bla ", "Register", "Exit");

dini_Create(file);

dini_IntSet(file, "Password", udb_hash(inputtext));

dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);

dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);

dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);

dini_IntSet(file, "Skin",PlayerInfo[playerid][skin] = 0);

dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills] = 0);

dini_IntSet(file, "Deaths",PlayerInfo[playerid][Deaths] = 0);

dini_IntSet(file, "Seconds",PlayerInfo[playerid][Days] = 0);

dini_IntSet(file, "Minutes",PlayerInfo[playerid][Minuts] = 0);

dini_IntSet(file, "Hours",PlayerInfo[playerid][Hours] = 0);

format(string, 128, "[sYSTEM]:Uspešne zaregistrovaný tvoje meno je %s a heslo je %s.", name, inputtext);

SendClientMessage(playerid, COLOR_YELLOW, string);

gPlayerLogged[playerid] = 1;

}

if (dialogid == 2)

{

new name[MAX_PLAYER_NAME], file[256];

GetPlayerName(playerid, name, sizeof(name));

format(file, sizeof(file), "%s.dof2.sav", name);

if(!response) return Kick(playerid);

if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Si zaregistrovaný", "Vyborne zaregistrovaný .. pametaj si heslo", "Login", "Leave");

new tmp;

tmp = dini_Int(file, "Password");

if(udb_hash(inputtext) != tmp) {

SendClientMessage(playerid, COLOR_RED, "Zlé heslo.");

ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Text", "abla bla", "Login", "Exit");

}

else

{

gPlayerLogged[playerid] = 1;

PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");

PlayerInfo[playerid][pCash] = dini_Int(file, "Money");

PlayerInfo[playerid][pScore] = dini_Int(file, "Score");

PlayerInfo[playerid][skin] = dini_Int(file, "Skin");

PlayerInfo[playerid][Kills] = dini_Int(file, "Kills");

PlayerInfo[playerid][Deaths] = dini_Int(file, "Deaths");

PlayerInfo[playerid][Days] = dini_Int(file, "Days");

PlayerInfo[playerid][Minuts] = dini_Int(file, "Minuts");

PlayerInfo[playerid][Hours] = dini_Int(file, "Hours");

SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);

GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));

SendClientMessage(playerid,COLOR_RED, "[sYSTEM]:Login prijatý!");

new string[128];

format(string,sizeof(string),"Adminlevel: %d, Money: %d$, Skore: %d",PlayerInfo[playerid][pAdminLevel],GetPlayerMoney(playerid),PlayerInfo[playerid][pScore]);

SendClientMessage(playerid,COLOR_RED,string);

format(string,sizeof(string),"%dD %dH %dM",PlayerInfo[playerid][Days],PlayerInfo[playerid][Hours],PlayerInfo[playerid][Minuts]);

SendClientMessage(playerid,COLOR_RED,string);

 

}

}

return 1;

}

 

 

 

a prečo mi nejde ten cas :(

Link to comment
Share on other sites

  • 0

Každý je omylný (tým myslím teraz teba)...

 

Počuj mi si máme kód vycucať z prstu ? Načo je nám kód registrácie keď problém nastáva s ukladaním tj. disconnect....

 

:d Tak já jsem nekoukal na kód.. jenom jsem si řekl, že když má něco s tím, že má furt 500 tak to bude mít někde nastavené. Tak jsem dal ctrl + F , napsal 500 viděl jsem = 500 a na zbytek kódu jsem nekoukal :d .. Stane se no. Ale tak, kde jinde by taky mohlo být ohnisko problému ? Když má furt stejné množství peněz tak se mu ta 500 Někde musí nastavovat.

Link to comment
Share on other sites

  • 0

Ešte 10 vecí od teba vypýtam a možno to aj vyriešime... daj sem definiciu/stock/public GPM...

 

a ešte sem daj to kde zobrazuješ registráciu/login (nemyslím OnDialogResponse)... pravdepodobne to máš v OnPlayerConnect (len pravdepodobne!)

 

a taká malá rada mimo problému

else if(money < 0 || money > 1000000) return SCM(playerid,-1,"Zlá suma"); // Toto by som dal preč, ušetríš tak príkaz /resetmoney a ak bude chcieť admin niekoho potrestať (ubrať mu peniaze) tak tiež nebude problém

 

 

 

 

:d Tak já jsem nekoukal na kód.. jenom jsem si řekl, že když má něco s tím, že má furt 500 tak to bude mít někde nastavené. Tak jsem dal ctrl + F , napsal 500 viděl jsem = 500 a na zbytek kódu jsem nekoukal :d .. Stane se no. Ale tak, kde jinde by taky mohlo být ohnisko problému ? Když má furt stejné množství peněz tak se mu ta 500 Někde musí nastavovat.

šak vravím že každý sa niekedy pomýli... podla môjho názor je problém v tom že má zle nastavené pridávanie peňazí v príkaze... ale to je len odhad...

Link to comment
Share on other sites

  • 0

Dej sem celý mód ! :d Stejně tam není nic tvoje tak nemusíš mít strach o copyright :d

Iba Registračka je Copy všetko si robim sam

Quiter maš skype lebo načo to tu budem davat cele

Link to comment
Share on other sites

  • 0

Iba Registračka je Copy všetko si robim sam

Quiter maš skype lebo načo to tu budem davat cele

Ja som ti nekázal to sem dať celé... mne stačí keď sem dáš to čo som ti povedal... A šup, šup nemáme celý deň :d

Link to comment
Share on other sites

  • 0

public OnPlayerConnect(playerid)
{
PlayerPlaySound(playerid, 1062,0.0,0.0,10.0);
gPlayerLogged[playerid] = 0;
new string[64], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
format(string,sizeof string,"%s has joined the server. Welcome!",pName);
SendClientMessageToAll(0xFFFFFFAA,string);

new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "%s.dof2.sav", name);
if (!dini_Exists(file))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Text", "Bla bla bla", "Register", "Exit");
}
if(fexist(file))
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Text", "bla bla bla", "Login", "Exit");
}
RemoveBuildingForPlayer(playerid, 10763, -1255.8984, 47.1797, 45.9063, 0.25);
RemoveBuildingForPlayer(playerid, 10884, -1255.8984, 47.1797, 45.9063, 0.25);
RemoveBuildingForPlayer(playerid, 3459, 2411.7656, 623.4297, 17.2969, 0.25);
RemoveBuildingForPlayer(playerid, 3459, 2521.8906, 683.5000, 17.3203, 0.25);
RemoveBuildingForPlayer(playerid, 8596, 2490.4297, 703.1953, 21.9453, 0.25);
RemoveBuildingForPlayer(playerid, 3459, 2498.5391, 698.8906, 17.3203, 0.25);
RemoveBuildingForPlayer(playerid, 1294, 2503.2500, 705.6016, 14.3047, 0.25);
RemoveBuildingForPlayer(playerid, 3366, 276.6563, 2023.7578, 16.6328, 0.25);
RemoveBuildingForPlayer(playerid, 3366, 276.6563, 1989.5469, 16.6328, 0.25);
RemoveBuildingForPlayer(playerid, 3366, 276.6563, 1955.7656, 16.6328, 0.25);
RemoveBuildingForPlayer(playerid, 3268, 276.6563, 2023.7578, 16.6328, 0.25);
RemoveBuildingForPlayer(playerid, 3268, 276.6563, 1989.5469, 16.6328, 0.25);
RemoveBuildingForPlayer(playerid, 3268, 276.6563, 1955.7656, 16.6328, 0.25);
return 1;
}

OnPlayerConnect

Link to comment
Share on other sites

  • 0

#define GPM GivePlayerMoney

Myslel som si...

tamto zmaž, a niekde do módu si daj : (najlepšie nad publicy a pod newy, proste tam kde máš stocky)

stock GPM(id,m) // GivePlayerMoney
{
PlayerInfo[id][pCash]+=m; // Ak vyhodí error/warn zmeň na =+ lebo už vážne neviem v akom poradí 
ResetPlayerMoney(id); // Nastavíme zobrazované peniaze na 0 (hore pri HP)
GivePlayerMoney(id,PlayerInfo[id][pCash]); // Nastavíme zobrazované peniaze na aktuálnu hotovosť hráča
return PlayerInfo[id][pCash]; // Vrátime hodnotu peňazí
}

stock GetPM(id,m) // GetPlayerMoney
{
ResetPlayerMoney(id); // Toto tu je už len pre prípad nejakej chyby
GivePlayerMoney(id,PlayerInfo[id][pCash]); // -||-
return PlayerInfo[id][pCash]; // Vrátime hodnotu peňazí
}

 

Ak to bude fungovať, tak ideme riešiť ten 2. problém (ten čas).

Popíš čo je zlé s časom....

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

idem na server zaregistrujem sa a hram tam napriklad 10min a ked sa odhlasim a pridem znova na server a prihlasim sa tak mám mma tam napisane 0D 0H 0M

ukladanie učet:

Password=5374034
AdminLevel=5
Money=500
Score=0
Skin=0
Kills=0
Deaths=0
Hours=0
Days=0
Minuts=0
Meno=1bit
X=-1173.196411
Y=-43.770965
Z=-0.356341

Link to comment
Share on other sites

  • 0
public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "%s.dof2.sav", pname);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin]);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills]);
dini_IntSet(file, "Days",PlayerInfo[playerid][Days]);
dini_IntSet(file, "Hours",PlayerInfo[playerid][Hours]);
dini_IntSet(file, "Minuts",PlayerInfo[playerid][Minuts]);
}
gPlayerLogged[playerid] = 0;

Link to comment
Share on other sites

  • 0

kde máš v disconnecte podmienkapeniaze = GetPlayerMoney(playerid); podľa mňa nemôžeš uložiť niečo keď nemáš zistené koľko toho je.. :d Btw. Dúfam že som to neprehliadol :d

Link to comment
Share on other sites

  • 0

public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "%s.dof2.sav", pname);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin]);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills]);
}
gPlayerLogged[playerid] = 0;

 

nič zložitého.. :d

Link to comment
Share on other sites

  • 0

kde máš v disconnecte podmienkapeniaze = GetPlayerMoney(playerid); podľa mňa nemôžeš uložiť niečo keď nemáš zistené koľko toho je.. :d Btw. Dúfam že som to neprehliadol :d

tak za A : peniaze = GetPlayerMoney(playerid); nieje podmienka :slap:

a za B : PlayerInfo[playerid][pCash] zisťuje koľko má pri sebe peňazí

 

Alebo čo presne si mal na mysli ?

 

PS :

 

 

public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "%s.dof2.sav", pname);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin]);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills]);
}
gPlayerLogged[playerid] = 0;

 

nič zložitého.. :d

nepleť mu hlavu pi*ovinami a prečítaj si všetko čo sa tu písalo

 

 

 

takto to má byť :

 

 

public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), "%s.dof2.sav", pname);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
dini_IntSet(file, "Skin",PlayerInfo[playerid][skin]);
dini_IntSet(file, "Kills",PlayerInfo[playerid][Kills]);
dini_IntSet(file, "Days",PlayerInfo[playerid][Days]);
dini_IntSet(file, "Hours",PlayerInfo[playerid][Hours]);
dini_IntSet(file, "Minuts",PlayerInfo[playerid][Minuts]);
}
gPlayerLogged[playerid] = 0;

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...