Jump to content

Recommended Posts

First make sure that void CHARACTER::RemoveGoodAffect() in char_affect.cpp is ok, it should be something like:

Spoiler

void CHARACTER::RemoveGoodAffect()
{
    RemoveAffect(AFFECT_MOV_SPEED);
    RemoveAffect(AFFECT_ATT_SPEED);
    RemoveAffect(AFFECT_STR);
    RemoveAffect(AFFECT_DEX);
    RemoveAffect(AFFECT_INT);
    RemoveAffect(AFFECT_CON);
    RemoveAffect(AFFECT_CHINA_FIREWORK);

    RemoveAffect(SKILL_JEONGWI);
    RemoveAffect(SKILL_GEOMKYUNG);
    RemoveAffect(SKILL_CHUNKEON);
    RemoveAffect(SKILL_EUNHYUNG);
    RemoveAffect(SKILL_GYEONGGONG);
    RemoveAffect(SKILL_GWIGEOM);
    RemoveAffect(SKILL_TERROR);
    RemoveAffect(SKILL_JUMAGAP);
    RemoveAffect(SKILL_MANASHILED);
    RemoveAffect(SKILL_HOSIN);
    RemoveAffect(SKILL_REFLECT);
    RemoveAffect(SKILL_KWAESOK);
    RemoveAffect(SKILL_JEUNGRYEOK);
    RemoveAffect(SKILL_GICHEON);
}

Next go in char_skill.cpp and find: "if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_REMOVE_GOOD_AFFECT))"

it should be something like this:

Spoiler

if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_REMOVE_GOOD_AFFECT))
            {
                int iAmount2 = (int) m_pkSk->kPointPoly2.Eval();
                int iDur2 = (int) m_pkSk->kDurationPoly2.Eval();
                iDur2 += m_pkChr->GetPoint(POINT_PARTY_BUFFER_BONUS);

                if (number(1, 100) <= iAmount2)
                {
                    pkChrVictim->RemoveGoodAffect();                 //this is the previous checked function
                    pkChrVictim->AddAffect(m_pkSk->dwVnum, POINT_NONE, 0, AFF_PABEOP, iDur2, 0, true);          //this is where the flag is set to                                                                                                                                                                                                          //victim, if your line is different send it so i can check
                }
            }

Then, still in char_skill.cpp, check this:

Spoiler

if (pkVictim->IsAffectFlag(AFF_PABEOP) && pkVictim->IsGoodAffect(dwVnum))
    {
        return BATTLE_NONE;
    }

And if you find everything is ok then  you can try 2 different things: 

1)check you skill_proto in database but i highly doubt the problem is there

2)open every game/src/*.cpp and .h files in notepad++ -> Ctrl+F -> search for AFF_PABEOP in every opened document and go for every occurency manually checking if there's something wrong

  • Love 1
Link to comment
Share on other sites

Acum 2 ore, OtherChoice a spus:

First make sure that void CHARACTER::RemoveGoodAffect() in char_affect.cpp is ok, it should be something like:

  Reafișează conținuturi ascunse

void CHARACTER::RemoveGoodAffect()
{
    RemoveAffect(AFFECT_MOV_SPEED);
    RemoveAffect(AFFECT_ATT_SPEED);
    RemoveAffect(AFFECT_STR);
    RemoveAffect(AFFECT_DEX);
    RemoveAffect(AFFECT_INT);
    RemoveAffect(AFFECT_CON);
    RemoveAffect(AFFECT_CHINA_FIREWORK);

    RemoveAffect(SKILL_JEONGWI);
    RemoveAffect(SKILL_GEOMKYUNG);
    RemoveAffect(SKILL_CHUNKEON);
    RemoveAffect(SKILL_EUNHYUNG);
    RemoveAffect(SKILL_GYEONGGONG);
    RemoveAffect(SKILL_GWIGEOM);
    RemoveAffect(SKILL_TERROR);
    RemoveAffect(SKILL_JUMAGAP);
    RemoveAffect(SKILL_MANASHILED);
    RemoveAffect(SKILL_HOSIN);
    RemoveAffect(SKILL_REFLECT);
    RemoveAffect(SKILL_KWAESOK);
    RemoveAffect(SKILL_JEUNGRYEOK);
    RemoveAffect(SKILL_GICHEON);
}

Next go in char_skill.cpp and find: "if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_REMOVE_GOOD_AFFECT))"

it should be something like this:

  Reafișează conținuturi ascunse

if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_REMOVE_GOOD_AFFECT))
            {
                int iAmount2 = (int) m_pkSk->kPointPoly2.Eval();
                int iDur2 = (int) m_pkSk->kDurationPoly2.Eval();
                iDur2 += m_pkChr->GetPoint(POINT_PARTY_BUFFER_BONUS);

                if (number(1, 100) <= iAmount2)
                {
                    pkChrVictim->RemoveGoodAffect();                 //this is the previous checked function
                    pkChrVictim->AddAffect(m_pkSk->dwVnum, POINT_NONE, 0, AFF_PABEOP, iDur2, 0, true);          //this is where the flag is set to                                                                                                                                                                                                          //victim, if your line is different send it so i can check
                }
            }

Then, still in char_skill.cpp, check this:

  Reafișează conținuturi ascunse

if (pkVictim->IsAffectFlag(AFF_PABEOP) && pkVictim->IsGoodAffect(dwVnum))
    {
        return BATTLE_NONE;
    }

And if you find everything is ok then  you can try 2 different things: 

1)check you skill_proto in database but i highly doubt the problem is there

2)open every game/src/*.cpp and .h files in notepad++ -> Ctrl+F -> search for AFF_PABEOP in every opened document and go for every occurency manually checking if there's something wrong

Thank you very much. The problem was from char_affect.cpp. i rewritten the function and i haven't tested it anymore.

My old char_affect.cpp

Spoiler

void CHARACTER::RemoveGoodAffect()
{
    DWORD listAffect[23] =
    {
        AFFECT_MOV_SPEED, 
        AFFECT_ATT_SPEED,

        AFFECT_STR,
        AFFECT_DEX,
        AFFECT_INT,
        AFFECT_CON,

        AFFECT_CHINA_FIREWORK,

        SKILL_JEONGWI,
        SKILL_GEOMKYUNG,
        
        SKILL_CHUNKEON,

        SKILL_EUNHYUNG,
        
        SKILL_GYEONGGONG,
        
        SKILL_GWIGEOM,
        SKILL_TERROR,
        SKILL_JUMAGAP,
        
        SKILL_MANASHILED,
        
        SKILL_HOSIN,
        SKILL_REFLECT,
        SKILL_GICHEON,
        
        SKILL_KWAESOK,
        SKILL_JEUNGRYEOK,
    };

    for (int i = 0; i < 21; i++)
    {
        RemoveAffect(listAffect, false);
    }

    RefreshAffect();
    UpdatePacket();
}

 Solved! TC Please.

Edited by xGetHigh
solved, tc please
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.