Page 2 of 3
Re: Sesija
Posted: 2013 May 28 21:28
by alfre
Kai pasikrauna žemėlapis, tai kažkokį laiko tarpą palauki ir jei jis neprisijungę, tai užskaitai atjungimą ? Logiškiausia manau būtų.
kai mapas keiciasi,vistiek vygdoma client_putinserver.reikia issaugot vistiek.
Re: Sesija
Posted: 2013 May 28 21:30
by hleV
Tai kad besikeičiant map'ui visiems žaidėjams iššaukiamas client_disconnect. Kas čia tokio, jei į MySQL išsaugos žaidėjo atsijungimo laiką kai keičiasi map'as? Gi jei žaidėjas dar serveryje, tai kai jis atsijungs iš tikrųjų, jo atsijungimo laikas atsinaujins ir MySQL'e.
Re: Sesija
Posted: 2013 May 28 22:35
by alfre
hleV wrote:Tai kad besikeičiant map'ui visiems žaidėjams iššaukiamas client_disconnect. Kas čia tokio, jei į MySQL išsaugos žaidėjo atsijungimo laiką kai keičiasi map'as? Gi jei žaidėjas dar serveryje, tai kai jis atsijungs iš tikrųjų, jo atsijungimo laikas atsinaujins ir MySQL'e.
pas mane taip veikia :
kai prisijungia zaidejas,sukuriama jam nauja lentele/row ar kaip ten pasakius.o kai clientas disconnectina,lentele updatinama.Kai prisijungia,vel sukuriama nauja lentele/row ir t.t.
Re: Sesija
Posted: 2013 May 29 12:41
by newb
Nu galima per prisijungima patikrinti, kada buvo atsijungimas ir jei jis buvo <5min, tai nekurt naujo iraso.
Re: Sesija
Posted: 2013 May 29 13:24
by alfre
Galima,bet ar apsimoketu taip daryt?
Re: Sesija
Posted: 2013 May 29 15:49
by newb
Jeigu issaugoti laika taip, kad ji butu lengvai su pawn nuskaityti, tai apsimoka.
Re: Sesija
Posted: 2013 May 29 16:18
by alfre
gal kodo pavyzdy galetum?
-- 2013 Geg 29 21:40 --
?
Re: Sesija
Posted: 2013 May 30 09:40
by newb
Issaugai data
DATETIME formatu ir vykdai tokia uzklausa
Code: Select all
SELECT id FROM users WHERE DATE_SUB(NOW(),INTERVAL 5 MINUTE) <= disconnect_date AND name = "name" LIMIT 1;
Jei toks irasas yra, tai nekuri naujo.
Aisku, laikas ant serverio kur stovi db turi buti teisingas.
Re: Sesija
Posted: 2013 May 30 11:31
by alfre
Code: Select all
public client_disconnect(client){ new ip[16], query[256], data[1]; get_user_ip(client, ip, charsmax(ip), 1); session[client] = 0; data[0] = client; get_user_authid(client,iddd,31) formatex(query, charsmax(query), "SELECT * FROM %s WHERE STEAMID = '%s'", TABLE, iddd[client]); SQL_ThreadQuery(Tuple, "OnCheckInfoo", query, data, sizeof data); remove_task(client);}
kodel neupdatina disconectinus?
Query failed. [1065] Query was empty

Re: Sesija
Posted: 2013 May 30 12:05
by newb
Nes cia blogas kodas apskritai, jau net nekalbant, kad tu selectini, o nori updaitint...