Jump to content
  • 0

reset specialquest


viji

Question

10 answers to this question

Recommended Posts

  • 0
Just now, DanielSy said:

unde se da payday ul , faci o verificare daca hour == 24 sa l reseteze pentru jucatori, facand un query finndcca ma gandesc ca vrei si la cei offline sa se reseteze.

ora nu o sa fie niciodata 24.. si nu mi se pare o metoda rentabila, cel mai bine ar fi sa stocheze unix timestampul la player in baza de date in momentul cand termina questul, iar cand se conecteaza playerul sa verifice daca au trecut 24 de ore de la finalizarea questului si sa reseteze.

Link to comment
Share on other sites

  • 0
1 minute ago, Sancky said:

ora nu o sa fie niciodata 24.. si nu mi se pare o metoda rentabila, cel mai bine ar fi sa stocheze unix timestampul la player in baza de date in momentul cand termina questul, iar cand se conecteaza playerul sa verifice daca au trecut 24 de ore de la finalizarea questului si sa reseteze.

nu spun nu, dar trebuie modificat system-ul iar metoda asta mi s-a parut o metoda mai okey fara a modifica codul. 

 

 

Link to comment
Share on other sites

  • 0
1 minute ago, DanielSy said:

nu spun nu, dar trebuie modificat system-ul iar metoda asta mi s-a parut o metoda mai okey fara a modifica codul. 

nu prea trebuie modificat, trebuie adaugate mici chestii, e relativ usor de facut

Edited by Sancky
Link to comment
Share on other sites

  • 0

@viji  te duci in baza de date, creezi un column in care trebuie stocat unix timestampul in tabelul cu playerii sau cum ai tu structurat questul, de preferat INT ca data type, in momentul cand playerul finalizeaza questul, executi un query catre db care va fi asa: `UPDATE `users` SET `QuestTime` = UNIX_TIMESTAMP() WHERE ID = %d` 

inlocuiesti tu denumirile la tabel si column, si la ID pui id-ul unic al playerului respectiv, adica valoarea primary keyului care are auto increment

iar in momentul cand se apeleaza functia care se executa atunci cand jucatorul se logheaza si este apelata de queryul care selecteaza datele userului respectiv (asta daca ai columnul respectiv in tabelul userilor), faci verificarea urmatoare: 

if(gettime() - cache_get_field_content_int(0, "QuestTime") > (24 * 3600)) 

{

    // resetare quest

   // updatezi valoarea la QuestTime in db la -1 pentru a prevenii resetarea multipla inutila

}

 

p.s: cache_get_field_content_int e o functie mai veche a versiunilor mai vechi de mysql, daca folosesti o versiune mai noua, foloseste functia conforma a versiunii pe care o ai

si cam atat.

Edited by Sancky
Link to comment
Share on other sites

  • 0
1 hour ago, Sancky said:

@viji  te duci in baza de date, creezi un column in care trebuie stocat unix timestampul in tabelul cu playerii sau cum ai tu structurat questul, de preferat INT ca data type, in momentul cand playerul finalizeaza questul, executi un query catre db care va fi asa: `UPDATE `users` SET `QuestTime` = UNIX_TIMESTAMP() WHERE ID = %d` 

inlocuiesti tu denumirile la tabel si column, si la ID pui id-ul unic al playerului respectiv, adica valoarea primary keyului care are auto increment

iar in momentul cand se apeleaza functia care se executa atunci cand jucatorul se logheaza si este apelata de queryul care selecteaza datele userului respectiv (asta daca ai columnul respectiv in tabelul userilor), faci verificarea urmatoare: 

if(gettime() - cache_get_field_content_int(0, "QuestTime") > (24 * 3600)) 

{

    // resetare quest

   // updatezi valoarea la QuestTime in db la -1 pentru a prevenii resetarea multipla inutila

}

 

p.s: cache_get_field_content_int e o functie mai veche a versiunilor mai vechi de mysql, daca folosesti o versiune mai noua, foloseste functia conforma a versiunii pe care o ai

si cam atat.

nu stiu daca merita atata efort, dar cel mai simplu ar fi un query in care updatezi la toti questdone (de ex) = 0 si un loop pt toti jucatorii online sa le setezi progres 0

Edited by irinelbro69
Link to comment
Share on other sites

  • 0
45 minutes ago, irinelbro69 said:

nu stiu daca merita atata efort, dar cel mai simplu ar fi un query in care updatezi la toti questdone (de ex) = 0 si un loop pt toti jucatorii online sa le setezi progres 0

mg si asa, doar ca tb resetate doar pt jucatorii care au terminat questul, sunt multe metode, acum depinde ce preferinte ai, la asta cu resetarea la ora exacta poate sa se foloseasca si de mysql events sa se execute query la o ora stabilita in fiecare zi, dar in schimb nu o sa se updateze si la jucatorii online, acum depinde ce doresti

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.