[Pomoc] Spremanje računa


Započeo Pollat Alemdar, Septembar 14, 2014, 06:55:57 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: moj NL mod
Detaljan opis problema:Eh ovako momci , imam jedan problem , vjerujem da je većina vas upoznato sa " GOLD-ovima " , eh imam tu jedan problem.. I općenito što se tiče sve imovine , dosta toga zna nestati nakon toga što neki igrač ode relog ili jednostavno bude restart , pa me interesuje zna li neko gdje mogu postaviti da mi češće sprema račune i da li to stvari neko opterećenje ako bih postavio primjer dajem da svakih 5 minuta spremi račune. Znači nakon što igrač ode relog ili bude restart servera uvijek znači , uvijek nestanu goldovi a i pare znaju često nestati , znači zna li neko gdje mogu naći to gdje mi sprema račune u modu , da postavim malo manje vrijeme odnosno da mi češće sprema račune.
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /

Ima ja mislim public SpremiAccounte, nadji ga u skripti i podesi kako tebi odgovara.

Da ima , ali mozes mi malo pojasniti pogleda npr ovo :
spremiacc = SetTimer("SpremiAccounte", 1200000+random(20000), true);
Ne kontam malo ove cifre , ako možete pojasniti heh :)

1200000 = 20 minuta i na to se dodaje random vrijeme od 20 sekundi.

Znaci maksimalno za koliko ti se spremaju racuni moze biti 20 minuta i 20 sekundi, a minimalno 20 minuta i 1 sekunda.

Hvala na odgovoru :) , interesuje me da li nešto šteti serveru ili ga usporava ili bilo šta negativno ako bih stavio spremanje svakih 5 minuta ? :)

Citat: Pollat Alemdar poslato Septembar 14, 2014, 17:21:06 POSLE PODNE
Hvala na odgovoru :) , interesuje me da li nešto šteti serveru ili ga usporava ili bilo šta negativno ako bih stavio spremanje svakih 5 minuta ? :)

Moze stvoriti lag ali sve zavisi od broja igraca.
Posto vidim da koristis mysql zasto ne radis da odma nakon promjene nekog statsa mu to i cuva?

I to je moguće ? - Kako da to odradim ?

Evo ti primjer iz NL moda:

new ime[MAX_PLAYER_NAME], upit[128];
ImeIgraca(playerid, ime);
format(upit, sizeof(upit), "UPDATE `Igraci` SET `DozvolaVoznja` = '1' WHERE `Ime` = '%s'", ime);
mysql_query(upit, THREAD_OSTALO);
Poslednja Izmena: Septembar 14, 2014, 17:29:00 POSLE PODNE od Lenon

Ovako bi trebao odraditi za čitav stats,je li ? :)

Citat: Pollat Alemdar poslato Septembar 14, 2014, 17:34:53 POSLE PODNE
Ovako bi trebao odraditi za čitav stats,je li ? :)

Ne moras za kompletan, npr. ako dodje do promjene igracevog novca ti stavis da mu cuva samo novac, stavis odmah u tu komandu sa kojom dobije novac ako je rijec o komandi (ovo je samo primjer).
Jos jedan primjer, ako npr. kupi telefon, stavis samo da mu cuva telefon?


Kontas sad?

Ne razumijem matere mi , de mi pojasni na vise primjera kako bi to trebalo raditi ako ti nije teško , jer ne shavatam ( inače 2 mjeseca skriptam :) )

Citat: Pollat Alemdar poslato Septembar 14, 2014, 17:47:32 POSLE PODNE
Ne razumijem matere mi , de mi pojasni na vise primjera kako bi to trebalo raditi ako ti nije teško , jer ne shavatam ( inače 2 mjeseca skriptam :) )

Primjer komanda za davanje novca:

CMD:dajnovac(playerid, params[])
{
	new id, novac;
	if(sscanf(params, "ui", id, novac)) return SCM(playerid, -1, "Bla bla!");
	PlayerInfo[playerid][Novac] += novac;
	new ime[MAX_PLAYER_NAME], upit[128];
	ImeIgraca(playerid, ime);
	format(upit, sizeof(upit), "UPDATE `Igraci` SET `Novac` = '%d' WHERE `Ime` = '%s'", PlayeInfo[playerid][Novac],ime);
	mysql_query(upit, THREAD_OSTALO);
	return 1;
}


Posto si pocetnik ne preporucujem ti da radis sa mysql-om.

Imam jedan warning pri kompajlu , local variable "upit" shadows a variable at a preceding level :/

Citat: Pollat Alemdar poslato Septembar 14, 2014, 18:29:11 POSLE PODNE
Imam jedan warning pri kompajlu , local variable "upit" shadows a variable at a preceding level :/

Znaci da ti je "upit" vec definisano, preimenuj ga samo.
Poslednja Izmena: Septembar 14, 2014, 18:30:10 POSLE PODNE od Lenon