---How to use the rune glitch fix?
1)Replace gs within /server-fw/gamed
2)Replace libtask.so & libskill.so within /usr/lib
*v253 Rune cooldown fix:
https://drive.google.com/file/d/1rD7...usp=share_link
*V260 Rune cooldown fix:
https://drive.google.com/file/d/11o6...usp=share_link
->Debug messages are disabled through wgame/gs/player_imp.h [Friend's fix]
Code:
inline bool GetDebugMode()
{
// return _debug_command_enable;
return false;
}
---General Method to fix rune glitch:
We will be adjusting wskill/skill/skillwrapper.cpp
Code:
We will be replacing this:
if(real != it->second.reallevel)
With:
if(real < it->second.reallevel)
---FW253(Dysil Wrath):
Code:
int SkillWrapper::Degrade(ID id, unsigned int level, unsigned int mask, object_interface player)
{
if(!id)
{
commonlevel -= level;
for( StorageMap::iterator it = map.begin(); it != map.end(); ++it )
{
if(it->second.baselevel)
{
int real = commonlevel + it->second.baselevel + it->second.actilevel + it->second.actilevel2;
if(real < it->second.reallevel)
it->second.reallevel = real;
}
}
player.SendClientSkillCommonAddon(commonlevel);
return 0;
}
StorageMap::iterator it = map.find(id);
if(it!=map.end())
{
if(mask)
it->second.actilevel2 -= level;
else
it->second.actilevel -= level;
int real = commonlevel + it->second.baselevel + it->second.actilevel + it->second.actilevel2;
//if(real != it->second.reallevel)
if(real < it->second.reallevel)
it->second.reallevel = real;
if(mask)
player.SendClientExtraSkillByAddon(id, it->second.actilevel2);
else
player.SendClientSkillAddon(id, it->second.actilevel);
}
return 0;
}
---FW260(Bloodharvest):
Code:
int SkillWrapper::Degrade(ID id, unsigned int level, unsigned int mask, object_interface player)
{
if(!id)
{
commonlevel -= level;
for( StorageMap::iterator it = map.begin(); it != map.end(); ++it )
{
if(it->second.baselevel)
{
int real = commonlevel + it->second.baselevel + it->second.actilevel + it->second.actilevel2;
if(real < it->second.reallevel)
{
PassiveSkillUpdate(id, player, it->second.reallevel, real);
it->second.reallevel = real;
}
}
}
player.SendClientSkillCommonAddon(commonlevel);
return 0;
}
StorageMap::iterator it = map.find(id);
if(it!=map.end())
{
if(mask)
it->second.actilevel2 -= level;
else
it->second.actilevel -= level;
int real = commonlevel + it->second.baselevel + it->second.actilevel + it->second.actilevel2;
//if(real != it->second.reallevel)
if(real < it->second.reallevel)
{
if(it->second.baselevel != 0)
PassiveSkillUpdate(id, player, it->second.reallevel, real);
it->second.reallevel = real;
}
if(mask)
player.SendClientExtraSkillByAddon(id, it->second.actilevel2);
else
player.SendClientSkillAddon(id, it->second.actilevel);
}
return 0;
}
I wasn't the one to figure out this fix but I'm glad to help the community.
Special thanks to the person who publicly shared the fix.
If there is any issue ,please let me know!