Rezolvare problema skill sync client <-> server.
Cam majoritatea serverelor au problema cu sincronizarea la skilluri.
Cum se manifesta aceasta problema?
De multe ori cand dai skill dupa ce cooldown-ul a trecut, acesta nu are damage.
Acest lucru se intampla, deoarece in client este o durata la cooldown si in db este alta durata:
- Daca in db durata de cooldown e mai mare decat cea din client, in client skill-ul devine "disponibil", dar acesta inca are cooldown inca cateva secunde in server.
- Astfel, cand folosesti skill-ul, doar animatia se va aplica - nu si damage-ul!
Tutorialul va rezolva si problema cu Aura/Iuresul care nu se activeaza cateodata (daca nu le aveti pe toggle deja - recomand sa le faceti)
*Link download / Code:
[1]. In primul rand, trebuie sa refacem partea de enum a tokenilor (care este folosita in CPythonSkill::RegisterSkillTable). Asta inseamna ca schimbam ordinea liniilor din tabel, pentru ca Ymir nu a folosit toate coloanele. In acest fel, pastram fisierul mai curat si cu doar coloanele necesare (9 in loc de 27).
Mergem in Srcs/Client/UserInterface/PythonSkill.h si cautam:
Code:
enum ESkillTableTokenType
{
[...]
};
In locale_inc.h adaugam:
Code:
#define ENABLE_SKILL_TABLE_RENEW // Enable synchronization skill_proto -> skilltable
- Deschidem tabelul player
- Export Wizard -> Bifeaza "skill_proto" -> Export to : alegem o locatie in PC-ul nostru, exemplu Desktop.
- Export format -> *.txt
- Debifam optiunea "All fields" dupa care dam pe butonul "Unselect All"
- La "Available fields" bifam urmatoarele: -> {'dwVnum', 'bMaxLevel', 'bLevelLimit', 'szPointPoly', 'szSPCostPoly', 'szDurationPoly', 'szDurationSPCostPoly', 'szCooldownPoly', 'dwTargetRange'}
- Debifam optiunea "Include column titles"
- Selectam la optiunea "Text Qualifier": None
- Copiem fisierul generat skilltable.txt de pe Desktop si il bagam in clientul nostru -> locale -> ../locale/ro/ (inlocuim pe cel vechi)
Aici aveti un tutorial daca nu va descurcati: