Page 2 of 2
Re: Player ID
Posted: 2013 May 26 15:19
by Tetusis
Jeigu neturite custom disconnect event ir norite zaidejui issaugoti xp, galima ir kitokiu budu aisku jis nera labai efektyvus resursu naudojime, bet ciklas kas 1min (set_task loop) kai yra issaugoma kiekvienam zaidejui xp nemanau, kad darytu didele itaka serverio veiklai, bet is kitos puses jau butu garantija, kad zaidejas nepraras xp, dar daznai buna bug'u su client disconnect kai keiciasi zemelapis (sql) ir xp nera issaugota, set task padetu isspresti sias problemas.
Re: Player ID
Posted: 2013 May 26 15:32
by aaarnas
Tetusis wrote:Jeigu neturite custom disconnect event ir norite zaidejui issaugoti xp, galima ir kitokiu budu aisku jis nera labai efektyvus resursu naudojime, bet ciklas kas 1min (set_task loop) kai yra issaugoma kiekvienam zaidejui xp nemanau, kad darytu didele itaka serverio veiklai, bet is kitos puses jau butu garantija, kad zaidejas nepraras xp, dar daznai buna bug'u su client disconnect kai keiciasi zemelapis (sql) ir xp nera issaugota, set task padetu isspresti sias problemas.
Šitas variantas šiaip net geresnis už įprastą saugojimą disconnect'e, nes visada bus garantuota, kad žaidėjui bus išsaugoti taškai (ar tai serveris lūžta, ar jis pats).
Tik toks dalykas, kad saugoti geriausia yra tais momentais, kai jis gauna arba praranda taškus. Jei yra kažkokia vieta kur daug kartų greitai gaunami taškai, tai geriausia pridėti kokį delay toje vietoje.
Pvz:
gaunam taškus už kill.
kuriam task 1min
gaunam taškus už kill.
ar yra task?
Yra: tai skip ir laukiam kol išsaugos.
Ne: kuriam task 1min
Task:
saugom žaidėjo taškus.
Aišku priklauso nuo žaidimo modifikacijos kiek ir kur dažnai galima saugoti. Kuo rečiau tai daroma - tuo geriau. Nes paleidžiant 10 serverių ir kai visi jungiasi prie vienos duombazės tai nėra labai efektyvu.
Re: Player ID
Posted: 2013 May 26 17:40
by Tetusis
aaarnas wrote:Tetusis wrote:Jeigu neturite custom disconnect event ir norite zaidejui issaugoti xp, galima ir kitokiu budu aisku jis nera labai efektyvus resursu naudojime, bet ciklas kas 1min (set_task loop) kai yra issaugoma kiekvienam zaidejui xp nemanau, kad darytu didele itaka serverio veiklai, bet is kitos puses jau butu garantija, kad zaidejas nepraras xp, dar daznai buna bug'u su client disconnect kai keiciasi zemelapis (sql) ir xp nera issaugota, set task padetu isspresti sias problemas.
Šitas variantas šiaip net geresnis už įprastą saugojimą disconnect'e, nes visada bus garantuota, kad žaidėjui bus išsaugoti taškai (ar tai serveris lūžta, ar jis pats).
Tik toks dalykas, kad saugoti geriausia yra tais momentais, kai jis gauna arba praranda taškus. Jei yra kažkokia vieta kur daug kartų greitai gaunami taškai, tai geriausia pridėti kokį delay toje vietoje.
Pvz:
gaunam taškus už kill.
kuriam task 1min
gaunam taškus už kill.
ar yra task?
Yra: tai skip ir laukiam kol išsaugos.
Ne: kuriam task 1min
Task:
saugom žaidėjo taškus.
Aišku priklauso nuo žaidimo modifikacijos kiek ir kur dažnai galima saugoti. Kuo rečiau tai daroma - tuo geriau. Nes paleidžiant 10 serverių ir kai visi jungiasi prie vienos duombazės tai nėra labai efektyvu.
Tai dar galima kaupti naudojant virtualia atminti array arba trie, kiekviena karta kai nuzudo ar kazkas atsitinka viskas yra irasoma, kad neapkrauti serverio su realtime, o paskui su set task tvarkingai kas 1min perkeldineti i duomenu baze arba spawn evente/death event'a vietoi task galime naudoti, nors dar viskas priklauso nuo mod'u.
Re: Player ID
Posted: 2013 May 26 19:38
by aaarnas
Na čia nebent kažkokie išskirtiniai duomenys. Paprastai xp būna vos ne viename kintamajame, kurį ir užtenka kas kiek laiko saugoti.
Na taip, tiksliausias atsakymas - priklauso nuo modifikacijos.