About the bug Rune cooldown(v253/v260), does anyone have a solution?

Results 1 to 7 of 7
  1. #1
    Valued Member wxk0248 is offline
    MemberRank
    Jan 2015 Join Date
    114Posts

    ! About the bug Rune cooldown(v253/v260), does anyone have a solution?

    This bug can be repeated stably through the following steps:
    1.Prepare 10 (or more) runes with the same talent attributes
    2.Install them all
    3.Uninstall any one
    Then you triggered the bug.

    like this talent:


    Prepare 10(or more) red/yellow/blue runes with the same additional attributes



    https://drive.google.com/file/d/15ds...ew?usp=sharing

    Under this bug, the cooldown of skills becomes 0 second. This bug can be triggered by talents of all occupations.

    I've known this bug for a long time, and only recently did I know how to trigger it stably.
    As far as I know, this bug has been fixed in v773.
    Does anyone know how to fix it in v253/v260?

    - - - Updated - - -

    rune_bug_0.pngrune_bug_1.jpgrune_bug_2.jpg


  2. #2
    Valued Member Mistigri is offline
    MemberRank
    Oct 2020 Join Date
    Forsaken WorldLocation
    120Posts
    Did no one really figure out the fix or is it possible that they are selling the fix for that?
    (I'm not expecting an answer.I'm just a bit frustrated that nothing really happens)

    I will try to figure it out in the coming years and the day I get inspired and find a solution for this I hope to publicly share the method along with compiled binaries for v253+v260 with the fix.


  3. #3
    Apprentice ByGabrieL2018 is offline
    MemberRank
    Jul 2018 Join Date
    10Posts
    So far I haven't seen any correction either, I got around this problem in another way, on my server the runes are obtained through the player's panel and in limited quantities by attributes. The negative point of this rescue is that there is no more rune trading, the positive point is the impossibility of bug.

  4. #4
    Valued Member Mistigri is offline
    MemberRank
    Oct 2020 Join Date
    Forsaken WorldLocation
    120Posts
    ---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!

    Last edited by Mistigri; 4 Weeks Ago at 10:32 PM.

  5. #5
    Valued Member wxk0248 is offline
    MemberRank
    Jan 2015 Join Date
    114Posts
    I tested it, it worked, and there were no drop table bugs that occurred when I compiled.

    - - - Updated - - -

    In v253/260,another bug I know is about "pet melt", which occurs in a specific situation when "logic_level_limit>80" in "ptemplate.conf". When "logic_level_limit>80" and a pet's level exceeds 80, players using pet_melt_service will cause the gs to crash. I compared v773 and can fix it in the following ways:
    /wgame/gs/item/item_mercenary_bedge.cpp
    replacing this:
    ASSERT(gmatrix::GetDataMan().generate_item(guard,entry.gain_item_id,&tag,sizeof(tag)));
    with:
    if (!gmatrix::GetDataMan().generate_item(guard,entry.gain_item_id,&tag,sizeof(tag))) { return S2C::ERR_FATAL_ERR; }

  6. #6
    Apprentice ByGabrieL2018 is offline
    MemberRank
    Jul 2018 Join Date
    10Posts
    Quote Originally Posted by wxk0248 View Post
    Eu testei, funcionou e não houve bugs de drop table que ocorreram quando eu compilei.

    - - - Atualizado - - -

    Na v253/260, outro bug que conheço é sobre "pet melt", que ocorre em uma situação específica quando "logic_level_limit>80" em "ptemplate.conf". Quando "logic_level_limit>80" e o nível de um animal de estimação exceder 80, os jogadores que usam pet_melt_service farão com que o gs trave. Comparei v773 e posso corrigi-lo das seguintes maneiras:
    This can be corrected directly in elements.data, in versions where the maximum level is 80, PET does not have an experience table above this level, just replicate what is in FW2 elements.

  7. #7
    Valued Member wxk0248 is offline
    MemberRank
    Jan 2015 Join Date
    114Posts
    Quote Originally Posted by ByGabrieL2018 View Post
    This can be corrected directly in elements.data, in versions where the maximum level is 80, PET does not have an experience table above this level, just replicate what is in FW2 elements.
    Yes, this is a better solution



Advertisement