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: ZyZu. - 2013. február 27. - 19:12:02

Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: ZyZu. - 2013. február 27. - 19:12:02
Helló! Kerestem a fórumon olyan kódot de nem jártam síkerel! Azt szeretném meg csinálni, hogy aki regisztrálva van a szerveren vagyis mindenki regisztrál az ha lelép akkor kezdjen el egy timer pénzt adni a számlájára.. probáltam ilyesmit keresni de nem nagyon találtam..  :-[ valami ötlet?  :)
Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: Rupert - 2013. február 27. - 19:18:41
mySQL vagy dini?
Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: ZyZu. - 2013. február 27. - 19:20:30
inkább dini. :)
Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: Rupert - 2013. február 27. - 19:25:15
Erre a legjobb lehetõség, ha egy külön mappában (aminek a neve pl. \"penz\") számozott fájlokat hozol létre, amelyekben eltárolod a játékos nevét illetve pénzét. For ciklussal végigjárod a fájlokat, és elvégzed a dolgod. (Megnyitod, szerkeszted, örülsz)
Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: Zsolesszka - 2013. február 27. - 19:28:09
Mysql adatbázisban ezt egyszerûen megoldhatod, egyetlen egy utasítással minden regisztrált játékosnak aki nem online növelheted a pénzét.
Egy idõzítõt létrehozol, és a következõ utasítással növeled az összeget:
 
UPDATE `users` SET `Money` = `Money` + 200 WHERE `LoggedIn` = 0

 // Javítva mivel akkor adjon, mikor nem online tehát nincs bejelentkezve.
Persze mysql adatmentés kell, és ehhez mindig frissíteni kell a LoggedIn értéket akkor mikor csatlakozik egy játékos illetve ha kilép, és természetesen szerver indításkor meg minden LoggedIn mezõt nullára kell állítani, mivel crash miatt maradhat olyan adat ami hamis.
OnGameModeInit alá:
 
UPDATE `users` SET `LoggedIn` = 0

 
Edit:
Persze lehetséges hogy mysql képes idõzített feladatokra is, de ennek utána nézek kíváncsiságból.
Edit2:
A dini-t meg felejtsd el erre a célra, 1010 regisztrált játékos esetében 1000 nem online akkor ezer fájlt módosítani bizonyos idõközönként dinivel?
Mikor tudjuk hogy a dini egy adat módosításkor kettõ fájlt hoz létre kettõt töröl, miközben kétszer másolja át a tartalmat egyszer adatmódosítással egyszer meg csak azért hogy a fájl kiterjesztése megmaradjon, akkor lesz egy kis lagg. :D :D
Cím: Pénz adás amikor a játékos nincs fent(timer.)
Írta: ZyZu. - 2013. február 27. - 19:51:02
Értem, köszönöm!  :)