many thx to all devs, this problem was fixed on latest may 1 nightly build. I tested these same 2 functions to simulate the exploit and now both are working fine, they just show a console warning instead crash the server
@Avatar
thx for share your engine, mine is quite similar but I sync everything in real time instead sync all chars together. I have 5000 accounts on my server, and if I sync everything together it will overload sphere and SQL too.
Each account needs to sync 24 layers + 49 skills + char info (fame, karma, kills, deaths, etc). So it's a 73 loop and 3 tables to update (paperdoll layers + skills + char info)
To sync all 5000 accounts this will be a 365.000 script loop and 15.000 SQL commands to execute. So I think its better sync in real time, the sync will be constant but much more light weight. I'm using TAGs just to optimize it.
Imagine a event like this:
Quote:ON=@Equip
SQL_SyncLayer <ACT.LAYER>
ON=@Unequip
SQL_SyncLayer <ACT.LAYER>
If the player create a macro "equip weapon + unequip weapon" with infinite loop and no-delay this will overload SQL with infinite equip/unequip commands. The TAG goes here, instead execute 1 command to each equip or unequip, it will store all layers to change and then execute a single SQL command