Jump to content

yad02

Members
  • Posts

    149
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by yad02

  1. Cool, I had meant to do some more encapsulation.

    I think that the crash is from something more complicated though. Can you describe more about it? I'll try to reproduce it and see what's making it happen.

    I just use .tele dalaran .tele stormwind .tele orgrimmar...

  2. Hello, I have just tested this patch and I have some crash (access violation) when I use .tele dalaran

    so I rewrite some part to protect attributes, I think my changes need some improvement...

    http://pastebin.com/FbRtyXw9

    EDIT :

    I just add it to fix another crash, I don't understand how it is produced...

    @@ -160,11 +160,11 @@ bool TargetedMovementGeneratorMedium<T,D>::Update(T &owner, const uint32 & time_
            return true;
        }
    
        if (i_destinationHolder.UpdateTraveller(traveller, time_diff, false))
        {
    -        if (!IsActive(owner))                               // force stop processing (movement can move out active zone with cleanup movegens list)
    +        if (!IsActive(owner) || !i_path)                    // force stop processing (movement can move out active zone with cleanup movegens list)
                return true;                                    // not expire now, but already lost
    
            // put targeted movement generators on a higher priority
            if (owner.GetObjectSize())
                i_destinationHolder.ResetUpdate(50);
    
    

  3. Hello,

    just some typo in AchivementMgr.cpp

    @@ -1582,14 +1582,14 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
        // counter can never complete
        if(entry->flags & ACHIEVEMENT_FLAG_COUNTER)
            return false;
    
        // for achievement with referenced achievement criterias get from referenced and counter from self
    -    uint32 achievmentForTestId = entry->refAchievement ? entry->refAchievement : entry->ID;
    -    uint32 achievmentForTestCount = entry->count;
    +    uint32 achievementForTestId = entry->refAchievement ? entry->refAchievement : entry->ID;
    +    uint32 achievementForTestCount = entry->count;
    
    -    AchievementCriteriaEntryList const* cList = sAchievementMgr.GetAchievementCriteriaByAchievement(achievmentForTestId);
    +    AchievementCriteriaEntryList const* cList = sAchievementMgr.GetAchievementCriteriaByAchievement(achievementForTestId);
        if(!cList)
            return false;
        uint32 count = 0;
    
        // For SUMM achievements, we have to count the progress of each criteria of the achievement.
    @@ -1627,16 +1627,16 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
                ++count;
            else
                completed_all = false;
    
            // completed as have req. count of completed criterias
    -        if(achievmentForTestCount > 0 && achievmentForTestCount <= count)
    +        if(achievementForTestCount > 0 && achievementForTestCount <= count)
               return true;
        }
    
        // all criterias completed requirement
    -    if(completed_all && achievmentForTestCount==0)
    +    if(completed_all && achievementForTestCount==0)
            return true;
    
        return false;
    }
    

  4. I use it and I have no crashs :

    @@ -13149,12 +13149,9 @@ void Player::PrepareGossipMenu(WorldObject *pSource, uint32 menuId)
    
        GossipMenuItemsMapBounds pMenuItemBounds = sObjectMgr.GetGossipMenuItemsMapBounds(menuId);
    
       if(pSource->GetTypeId() == TYPEID_UNIT && ((Creature*)pSource)->isBotGiver())
        {
           ((Creature*)pSource)->LoadBotMenu(this);
            return;
        }
    
    
    

  5. This fix Druid Tank bug

    Without it, druid never use SWIPE,

    else if (ENRAGE > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && DruidSpellCombat < 2 && !m_bot->HasAura(ENRAGE, 0))

    is always true if you are un DIRE_BEAR_FORM

    you must add ( || )

    @@ -156,7 +156,7 @@ void PlayerbotDruidAI::DoNextCombatManeuver(Unit *pTarget)
                {
                    ai->CastSpell (BEAR_FORM);
                }
    -            else if (DEMORALIZING_ROAR > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && !m_bot->HasAura(MOONKIN_FORM, 0) && !pTarget->HasAura(DEMORALIZING_ROAR, 0) && ai->GetRageAmount() >= 10)
    +            else if (DEMORALIZING_ROAR > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && !m_bot->HasAura(MOONKIN_FORM, 0) && !pTarget->HasAura(DEMORALIZING_ROAR, 0) && ai->GetRageAmount() >= 10)
                {
                    ai->CastSpell(DEMORALIZING_ROAR, *pTarget);
                }
    @@ -235,37 +235,37 @@ void PlayerbotDruidAI::DoNextCombatManeuver(Unit *pTarget)
                    DruidSpellCombat++;
                    break;
                }
    -            else if (ENRAGE > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && DruidSpellCombat < 2 && !m_bot->HasAura(ENRAGE, 0))
    +            else if (ENRAGE > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && DruidSpellCombat < 2 && !m_bot->HasAura(ENRAGE, 0))
                {
                    ai->CastSpell(ENRAGE, *m_bot);
                    DruidSpellCombat = DruidSpellCombat +2;
                    break;
                }
    -            else if (SWIPE > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && DruidSpellCombat < 4 && ai->GetRageAmount()>=20)
    +            else if (SWIPE > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && DruidSpellCombat < 4 && ai->GetRageAmount()>=20)
                {
                    ai->CastSpell(SWIPE, *pTarget);
                    DruidSpellCombat = DruidSpellCombat +2;
                    break;
                }
    -            else if (MAUL > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && DruidSpellCombat < 6 && ai->GetRageAmount()>=15)
    +            else if (MAUL > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && DruidSpellCombat < 6 && ai->GetRageAmount()>=15)
                {
                    ai->CastSpell(MAUL, *pTarget);
                    DruidSpellCombat = DruidSpellCombat +2;
                    break;
                }
    -            else if (BASH > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && !pTarget->HasAura(BASH, 0) && DruidSpellCombat < 8 && ai->GetRageAmount()>=10)
    +            else if (BASH > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && !pTarget->HasAura(BASH, 0) && DruidSpellCombat < 8 && ai->GetRageAmount()>=10)
                {
                    ai->CastSpell(BASH, *pTarget);
                    DruidSpellCombat = DruidSpellCombat +2;
                    break;
                }
    -            else if (CHALLENGING_ROAR > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && pVictim != m_bot && DruidSpellCombat < 10 && !pTarget->HasAura(CHALLENGING_ROAR, 0) && !pTarget->HasAura(GROWL, 0) && ai->GetRageAmount()>=15)
    +            else if (CHALLENGING_ROAR > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && pVictim != m_bot && DruidSpellCombat < 10 && !pTarget->HasAura(CHALLENGING_ROAR, 0) && !pTarget->HasAura(GROWL, 0) && ai->GetRageAmount()>=15)
                {
                    ai->CastSpell(CHALLENGING_ROAR, *pTarget);
                    DruidSpellCombat = DruidSpellCombat +2;
                    break;
                }
    -            else if (GROWL > 0 && m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0) && pVictim != m_bot && DruidSpellCombat < 12 && !pTarget->HasAura(CHALLENGING_ROAR, 0) && !pTarget->HasAura(GROWL, 0))
    +            else if (GROWL > 0 && (m_bot->HasAura(DIRE_BEAR_FORM, 0) || m_bot->HasAura(BEAR_FORM, 0)) && pVictim != m_bot && DruidSpellCombat < 12 && !pTarget->HasAura(CHALLENGING_ROAR, 0) && !pTarget->HasAura(GROWL, 0))
                {
                    ai->CastSpell(GROWL, *pTarget);
                    DruidSpellCombat = DruidSpellCombat +2;
    

  6. About mounts I think it could be interessting to force bot speed (WALK) to same as master speed (FLIGHT)

    In fact if you are in flight, bot speed is flying mount WALK speed (Z isn't really supported)

    And if bot haven't mount they are too often teleported

    EDIT thank you blueboy

  7. In fact if I want to use current patch in github, I must switch my spell.dbc (in dbc folder) by a spell.dbc enUS

    In spell.dbc (frFR)

    I haven't english spell name in dbc frFR, so when you search spellid based on spell name 99% of time, function returns 0.

    For me it's the best issue. However I maybe not understand spellid function search. But it doesn't work and now it works !

    (I'm agree it's too custom)

  8. Hello, I use french DBC and spells (based on name search) don't work

    So I implemente a new table with 2 colomns : entry and english spell name, and it works.

    http://filebeam.com/06764ef221cb5a6a3838c67d26c99535

    You can delete this code, I miss it in patch :

       int loc = 0;
       if (master)
           loc = GetMaster()->GetSession()->GetSessionDbcLocale();
       else
           loc = m_bot->GetSession()->GetSessionDbcLocale();
    

    I use a php code to generate SQL data based on english dbc.

  9. in your crash log : 007F4784 00000000 AuctionHouseBot+F4

    Are you sure that is really due to vehicle patch ?

    Does your auctionhousebot patch is correctly configured ?

    Your must edit your mangosd.conf file with existing player guid and account id.

    You can disable auctionhousebot patch using guid = 0 and id = 0.

×
×
  • Create New...

Important Information

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