Jump to content

rrtn

Members
  • Posts

    32
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by rrtn

  1. not true. i.e. try this: summon a bot w/ a pet and use the .die command on it. this action = CRASH :mad: i have got this exact same crash elsewhere(i can tell from the crash report, they are identical) in different scenarios but this is the one constant. i have tested this on playerbot branch w/ NO SD2 & custom patches and UDB 381 w/ NO custom addons, i only updated the db with the standard mangos sql updates...basically a "vanilla" playerbot with a "vanilla" UDB so yes this is a big problem
  2. i noticed you forgot an important fix in your commit Player *tPlayer = objmgr.GetPlayer(uint64 (itr->guid)); - if( !tPlayer ) + if( !tPlayer || !tPlayer->isAlive() ) continue; apply that to the druid & shaman AI check out the new dk he is much better/smarter now the rezz for priest never worked for me and if he actually casted it i get a crash...so it working for you? i too am working on my own playerbot branch. a "back to basics/stable" branch: no looting, no questing just follow and fight
  3. @Runsttren - the odd bot movement is sometimes when they follow they do not run but instead they stay in stand state and just appear behind to as you run. basically it looks like the bots teleport every 10 meters or so instead of running. i have seen this same scenario before when i was compiling the 310 mangos branch(when it was in dev still), if i added a custom patch designed for mangos 3.0.9 builds and if you didnt change this: MOVEMENTFLAG_WALK_MODE(old) to this: MONSTER_MOVE_WALK(current) you would see the exact same behaviour. i know those changes have nothing to with your commit its only an example where ive seen the same creature movement. i did try a few changes/rewrites of your commit but i got no where your c++ skills are much greater than mine so im sure this would be easy for you. please understand this not a complaint! i love what you and others are doing to playerbot im only trying to help. @Tiburan1 - that is not a bug at all that is a part of mangos security. bots are = to player status so if you log in as a character(gm level) do a .learn all_myclass or .learn all_mytalents your are now a gm level so now when you log out to recruit that character(player level) as a bot the security kicks in(it assumes your cheating) and wipes out your talents(i.e. a lvl 80 cant have more than 71 talent ponits). use this patch i made to disable that security feature so you keep your maxed out bots diff --git a/src/game/Player.cpp b/src/game/Player.cpp index b2f339a..04f58ab 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -2586,7 +2592,7 @@ void Player::InitTalentForLevel() SetFreeTalentPoints(0); } } - else +/* else { uint32 talentPointsForLevel = CalculateTalentsPoints(); @@ -2602,7 +2608,7 @@ void Player::InitTalentForLevel() else SetFreeTalentPoints(talentPointsForLevel-m_usedTalentCount); } - +*/ if(!GetSession()->PlayerLoading()) SendTalentsInfoData(false); // update at client } now what is a bug...unless someone can explain this one to me why does recruiting a bot reset all achievements?
  4. hunter: fix & update. also added ghostpast patch druid: rewrite, group buff/heal shaman: rewrite, fix totems, group buff/heal warlock: implement summon demon w/ soul link mangos_botguy.sql updated http://filebeam.com/0a14b8e441e8957dcad91a55c9f29476 i spent too much time on AI for git...if you have some extra time winslow please push for me TIA
  5. thank you very much, rastikzzz! i now have working vehicles
  6. thanks Winslow & collinsp edit: O_o there are 2 mend pet fixes. i see you missed the 'out of combat' mend pet fix part. @@ -216,7 +243,7 @@ void PlayerbotHunterAI::DoNonCombatActions() else if( ((float)pet->GetHealth()/(float)pet->GetMaxHealth()) < 0.5f ) { // heal pet when health lower 50% - if( PET_MEND>0 && ai->CastSpell(PET_MEND,*m_bot) ) + if( PET_MEND>0 && !pet->HasAura(PET_MEND,0) && ai->CastSpell(PET_MEND,*m_bot) ) ai->TellMaster( "healing pet" ); } }
  7. hello all, i have a playerbot update patch info: update for mangos_botguy.sql death knight presence fix updated hunter: buffs, melee, ranged & pet mend fix added priest missing spells (this should have been done ages ago ...what, im just sayin) --- diff --git a/mangos_botguy.sql b/mangos_botguy.sql index 0b2e875..9440b93 100644 --- a/mangos_botguy.sql +++ b/mangos_botguy.sql @@ -1 +1 @@ -INSERT INTO `creature_template` VALUES ('99002','0','20','0','20','0','Pappy Looter','The Bot Recruiter',NULL,'59','61','6700','24000','5598','5875','20','35','35','1','1.48','0','0','170','182','0','1235','1400','1900','0','0','0','0','0','0','0','0','0','100','7','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','','1','3','1','1','0','1','0','0','0','bot_giver'); \\ No newline at end of file +INSERT INTO `creature_template` VALUES ('99002','0','20','0','20','0','Pappy Looter','The Bot Recruiter',NULL,'59','61','6700','24000','5598','5875','20','35','35','1','1.48','0','0','181','189','0','158','1','1400','1900','0','0','0','0','0','0','0','0','0','0','100','7','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','','1','3','1','1','0','1','0','0','0','bot_giver'); \\ No newline at end of file diff --git a/src/game/PlayerbotDeathKnightAI.cpp b/src/game/PlayerbotDeathKnightAI.cpp index 69acf02..4c5516d 100644 --- a/src/game/PlayerbotDeathKnightAI.cpp +++ b/src/game/PlayerbotDeathKnightAI.cpp @@ -23,12 +23,12 @@ PlayerbotDeathKnightAI::PlayerbotDeathKnightAI(Player* const master, Player* con STRANGULATE = ai->getSpellId("strangulate"); BLOOD_BOIL = ai->getSpellId("blood boil"); HEART_STRIKE = ai->getSpellId("heart strike"); - UNHOLY_PRESENCE = ai->getSpellId("unholy presence"); // buffs - FROST_PRESENCE = ai->getSpellId("frost presence"); - BLOOD_PRESENCE = ai->getSpellId("blood presence"); - MARK_OF_BLOOD = ai->getSpellId("mark of blood"); + MARK_OF_BLOOD = ai->getSpellId("mark of blood"); // buffs KILLING_MACHINE = ai->getSpellId("killing machine"); HORN_OF_WINTER = ai->getSpellId("horn of winter"); + UNHOLY_PRESENCE = 48265; // presence + FROST_PRESENCE = 48263; + BLOOD_PRESENCE = 48266; } PlayerbotDeathKnightAI::~PlayerbotDeathKnightAI() {} @@ -231,7 +231,7 @@ void PlayerbotDeathKnightAI::DoNonCombatActions() SpellSequence = SPELL_DK_UNHOLY; - // buff myself (Unholy DK) UNHOLY_PRESENCE, HORN_OF_WINTER, DEATH_RUNE_MASTERY + // buff myself (Unholy DK) UNHOLY_PRESENCE, HORN_OF_WINTER if (UNHOLY_PRESENCE > 0) (!m_bot->HasAura(UNHOLY_PRESENCE, 0) && GetAI()->CastSpell (UNHOLY_PRESENCE, *m_bot)); diff --git a/src/game/PlayerbotHunterAI.cpp b/src/game/PlayerbotHunterAI.cpp index cec91c7..280c13f 100644 --- a/src/game/PlayerbotHunterAI.cpp +++ b/src/game/PlayerbotHunterAI.cpp @@ -12,6 +12,9 @@ PlayerbotHunterAI::PlayerbotHunterAI(Player* const master, Player* const bot, Pl PET_REVIVE = ai->getSpellId("revive pet"); PET_MEND = ai->getSpellId("mend pet"); + // PET SKILLS + BAD_ATTITUDE = ai->getSpellId("bad attitude"); // crocolisk + // RANGED COMBAT AUTO_SHOT = ai->getSpellId("auto shot"); // basic ranged hunter fighting HUNTERS_MARK = ai->getSpellId("hunter's mark"); // mark target to get higher ranged combat power @@ -20,12 +23,12 @@ PlayerbotHunterAI::PlayerbotHunterAI(Player* const master, Player* const bot, Pl DISTRACTING_SHOT = ai->getSpellId("distracting shot"); MULTI_SHOT = ai->getSpellId("multi shot"); SERPENT_STING = ai->getSpellId("serpent sting"); + SCORPID_STING = ai->getSpellId("scorpid sting"); // MELEE RAPTOR_STRIKE = ai->getSpellId("raptor strike"); WING_CLIP = ai->getSpellId("wing clip"); MONGOOSE_BITE = ai->getSpellId("mongoose bite"); - BAD_ATTITUDE = ai->getSpellId("bad attitude"); SONIC_BLAST = ai->getSpellId("sonic blast"); NETHER_SHOCK = ai->getSpellId("nether shock"); DEMORALIZING_SCREECH = ai->getSpellId("demoralizing screech"); @@ -33,10 +36,12 @@ PlayerbotHunterAI::PlayerbotHunterAI(Player* const master, Player* const bot, Pl // TRAPS BEAR_TRAP = ai->getSpellId("bear trap"); FREEZING_TRAP = ai->getSpellId("freezing trap"); + IMMOLATION_TRAP = ai->getSpellId("immolation trap"); // BUFFS ASPECT_OF_THE_HAWK = ai->getSpellId("aspect of the hawk"); ASPECT_OF_THE_MONKEY = ai->getSpellId("aspect of the monkey"); + RAPID_FIRE = ai->getSpellId("rapid fire"); m_petSummonFailed = false; m_rangedCombat = true; @@ -70,7 +75,7 @@ void PlayerbotHunterAI::DoNextCombatManeuver(Unit *pTarget) if( ((float)pet->GetHealth()/(float)pet->GetMaxHealth()) < 0.5f ) { // heal pet when health lower 50% - if( PET_MEND>0 && ai->CastSpell(PET_MEND,*m_bot) ) + if( PET_MEND>0 && !pet->HasAura(PET_MEND,0) && ai->CastSpell(PET_MEND,*m_bot) ) { ai->TellMaster( "healing pet" ); return; @@ -92,7 +97,7 @@ void PlayerbotHunterAI::DoNextCombatManeuver(Unit *pTarget) else if( dist>ATTACK_DISTANCE && !m_rangedCombat ) { // switch to ranged combat - m_rangedCombat = false; + m_rangedCombat = true; // increase ranged attack power... ( ASPECT_OF_THE_HAWK>0 && !m_bot->HasAura(ASPECT_OF_THE_HAWK, 0) && ai->CastSpell(ASPECT_OF_THE_HAWK,*m_bot) ); } @@ -124,14 +129,20 @@ void PlayerbotHunterAI::DoNextCombatManeuver(Unit *pTarget) if( m_rangedCombat ) { out << "Case Ranged"; - if( HUNTERS_MARK>0 && ai->GetManaPercent()>=3 && !pTarget->HasAura(HUNTERS_MARK,0) && ai->CastSpell(HUNTERS_MARK,*pTarget) ) + if( HUNTERS_MARK>0 && ai->GetManaPercent()>=2 && !pTarget->HasAura(HUNTERS_MARK,0) && ai->CastSpell(HUNTERS_MARK,*pTarget) ) out << " > Hunter's Mark"; - else if( MULTI_SHOT>0 && ai->GetAttackerCount()>=3 && ai->CastSpell(MULTI_SHOT,*pTarget) ) - out << " > Multi Shot"; + else if( RAPID_FIRE>0 && !m_bot->HasAura(RAPID_FIRE,0) && ai->CastSpell(RAPID_FIRE,*pTarget) ) + out << " > Rapid Fire"; + else if( MULTI_SHOT>0 && ai->GetManaPercent()>=8 && ai->GetAttackerCount()>=3 && ai->CastSpell(MULTI_SHOT,*pTarget) ) + out << " > Multi-Shot"; else if( ARCANE_SHOT>0 && ai->GetManaPercent()>=5 && ai->CastSpell(ARCANE_SHOT,*pTarget) ) out << " > Arcane Shot"; - else if( CONCUSSIVE_SHOT>0 && ai->GetManaPercent()>=8 && !pTarget->HasAura(CONCUSSIVE_SHOT,0) && ai->CastSpell(CONCUSSIVE_SHOT,*pTarget) ) + else if( CONCUSSIVE_SHOT>0 && ai->GetManaPercent()>=5 && !pTarget->HasAura(CONCUSSIVE_SHOT,0) && ai->CastSpell(CONCUSSIVE_SHOT,*pTarget) ) out << " > Concussive Shot"; + else if( SERPENT_STING>0 && ai->GetManaPercent()>=8 && !pTarget->HasAura(SERPENT_STING,0) && !pTarget->HasAura(SCORPID_STING,0) && ai->CastSpell(SERPENT_STING,*pTarget) ) + out << " > Serpent Sting"; + else if( SCORPID_STING>0 && ai->GetManaPercent()>=7 && !pTarget->HasAura(SCORPID_STING,0) && !pTarget->HasAura(SERPENT_STING,0) && ai->CastSpell(SCORPID_STING,*pTarget) ) + out << " > Scorpid Sting"; else out << " NONE!"; } @@ -140,6 +151,22 @@ void PlayerbotHunterAI::DoNextCombatManeuver(Unit *pTarget) out << "Case Melee"; if( RAPTOR_STRIKE>0 && ai->CastSpell(RAPTOR_STRIKE,*pTarget) ) out << " > Raptor Strike"; + else if( WING_CLIP>0 && ai->CastSpell(WING_CLIP,*pTarget) ) + out << " > Wing Clip"; + else if( MONGOOSE_BITE>0 && ai->CastSpell(MONGOOSE_BITE,*pTarget) ) + out << " > Mongoose Bite"; + else if( IMMOLATION_TRAP>0 && !pTarget->HasAura(IMMOLATION_TRAP,0) && !pTarget->HasAura(BEAR_TRAP,0) && ai->CastSpell(IMMOLATION_TRAP,*pTarget) ) + out << " > Immolation Trap"; + else if( SONIC_BLAST>0 && ai->CastSpell(SONIC_BLAST,*pTarget) ) + out << " > Sonic Blast"; + /*else if( FREEZING_TRAP>0 && !pTarget->HasAura(FREEZING_TRAP,0) && !pTarget->HasAura(BEAR_TRAP,0) && !pTarget->HasAura(IMMOLATION_TRAP,0) && ai->CastSpell(FREEZING_TRAP,*pTarget) ) + out << " > Freezing Trap";*/ + else if( NETHER_SHOCK>0 && ai->CastSpell(NETHER_SHOCK,*pTarget) ) + out << " > Nether Shock"; + else if( DEMORALIZING_SCREECH>0 && ai->CastSpell(DEMORALIZING_SCREECH,*pTarget) ) + out << " > Demoralizing Screech"; + else if( BEAR_TRAP>0 && !pTarget->HasAura(BEAR_TRAP,0) && !pTarget->HasAura(IMMOLATION_TRAP,0) && ai->CastSpell(BEAR_TRAP,*pTarget) ) + out << " > Bear Trap"; else out << " NONE!"; } @@ -216,7 +243,7 @@ void PlayerbotHunterAI::DoNonCombatActions() else if( ((float)pet->GetHealth()/(float)pet->GetMaxHealth()) < 0.5f ) { // heal pet when health lower 50% - if( PET_MEND>0 && ai->CastSpell(PET_MEND,*m_bot) ) + if( PET_MEND>0 && !pet->HasAura(PET_MEND,0) && ai->CastSpell(PET_MEND,*m_bot) ) ai->TellMaster( "healing pet" ); } } diff --git a/src/game/PlayerbotHunterAI.h b/src/game/PlayerbotHunterAI.h index f051c30..fae0b44 100644 --- a/src/game/PlayerbotHunterAI.h +++ b/src/game/PlayerbotHunterAI.h @@ -32,10 +32,10 @@ class MANGOS_DLL_SPEC PlayerbotHunterAI : PlayerbotClassAI bool m_rangedCombat; uint32 PET_SUMMON, PET_DISMISS, PET_REVIVE, PET_MEND; - uint32 AUTO_SHOT, HUNTERS_MARK, ARCANE_SHOT, CONCUSSIVE_SHOT, DISTRACTING_SHOT, MULTI_SHOT, SERPENT_STING; + uint32 AUTO_SHOT, HUNTERS_MARK, ARCANE_SHOT, CONCUSSIVE_SHOT, DISTRACTING_SHOT, MULTI_SHOT, SERPENT_STING, SCORPID_STING; uint32 RAPTOR_STRIKE, WING_CLIP, MONGOOSE_BITE, BAD_ATTITUDE, SONIC_BLAST, NETHER_SHOCK, DEMORALIZING_SCREECH; - uint32 BEAR_TRAP, FREEZING_TRAP; - uint32 ASPECT_OF_THE_HAWK, ASPECT_OF_THE_MONKEY; + uint32 BEAR_TRAP, FREEZING_TRAP, IMMOLATION_TRAP; + uint32 ASPECT_OF_THE_HAWK, ASPECT_OF_THE_MONKEY, RAPID_FIRE; }; #endif \\ No newline at end of file diff --git a/src/game/PlayerbotPriestAI.cpp b/src/game/PlayerbotPriestAI.cpp index 54563ca..0f2a4e6 100644 --- a/src/game/PlayerbotPriestAI.cpp +++ b/src/game/PlayerbotPriestAI.cpp @@ -18,6 +18,7 @@ PlayerbotPriestAI::PlayerbotPriestAI(Player* const master, Player* const bot, Pl SMITE = ai->getSpellId("smite"); CLEARCASTING = ai->getSpellId("clearcasting"); HOLY_NOVA = ai->getSpellId("holy nova"); + HOLY_FIRE = ai->getSpellId("holy fire"); DESPERATE_PRAYER = ai->getSpellId("desperate prayer"); PRAYER_OF_HEALING = ai->getSpellId("prayer of healing"); CIRCLE_OF_HEALING = ai->getSpellId("circle of healing"); @@ -51,6 +52,7 @@ PlayerbotPriestAI::PlayerbotPriestAI(Player* const master, Player* const bot, Pl DSPIRIT = ai->getSpellId("divine spirit"); MASS_DISPEL = ai->getSpellId("mass dispel"); + POWER_INFUSION = ai->getSpellId("power infusion"); } PlayerbotPriestAI::~PlayerbotPriestAI() {} -- hey collinsp, maybe you could push these changes for me. i tried to push it myself and update playerbot to rev_8001 but i got wrong key error. i pulled the latest mangos revision into playerbot and it works fine. also, i dont know whats wrong with the rogue but its problematic so again i reverted back to the stable rogue and all is good thx to everyone here contributing to playerbot!
×
×
  • 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