diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/ScriptMgr.cpp | 4 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/go/go_scripts.cpp | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp | 14 | ||||
-rw-r--r-- | src/game/Chat.cpp | 3 | ||||
-rw-r--r-- | src/game/MiscHandler.cpp | 1 | ||||
-rw-r--r-- | src/game/Object.cpp | 7 | ||||
-rw-r--r-- | src/game/Object.h | 8 | ||||
-rw-r--r-- | src/game/Player.cpp | 2 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 23 | ||||
-rw-r--r-- | src/game/WaypointMovementGenerator.cpp | 3 |
11 files changed, 47 insertions, 22 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 2ae7072dee1..10b23ba1b47 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -1690,7 +1690,7 @@ TRINITY_DLL_EXPORT bool GOSelect( Player *player, GameObject *_GO, uint32 sender, uint32 action ) { if(!_GO) - return false; + return false; debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; @@ -1704,7 +1704,7 @@ TRINITY_DLL_EXPORT bool GOSelectWithCode( Player *player, GameObject *_GO, uint32 sender, uint32 action, const char* sCode ) { if(!_GO) - return false; + return false; debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp index 969c7ea69ee..eea2e40a1af 100644 --- a/src/bindings/scripts/scripts/go/go_scripts.cpp +++ b/src/bindings/scripts/scripts/go/go_scripts.cpp @@ -190,7 +190,7 @@ bool GOHello_go_tablet_of_the_seven(Player *player, GameObject* _GO) bool GOHello_go_jump_a_tron(Player *player, GameObject* _GO) { if (player->GetQuestStatus(10111) == QUEST_STATUS_INCOMPLETE) - player->CastSpell(player,33382,true); + player->CastSpell(player,33382,true); return true; } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h index 39db5bed06a..3253a384217 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h @@ -13,7 +13,7 @@ #define TYPE_THRALL_PART4 6 #define DATA_THRALL 7 #define DATA_TARETHA 8 -#define DATA_EPOCH 9 +#define DATA_EPOCH 9 #define WORLD_STATE_OH 2436 #endif diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp index 8b0a62c4452..d03d53cd397 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp @@ -28,7 +28,7 @@ EndScriptData */ #define THRALL_ENTRY 17876 #define TARETHA_ENTRY 18887 -#define EPOCH_ENTRY 18096 +#define EPOCH_ENTRY 18096 #define DRAKE_ENTRY 17848 @@ -53,7 +53,7 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance mThrallEventCount = 0; ThrallGUID = 0; TarethaGUID = 0; - EpochGUID = 0; + EpochGUID = 0; for(uint8 i = 0; i < ENCOUNTERS; i++) Encounter[i] = NOT_STARTED; @@ -106,9 +106,9 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance case TARETHA_ENTRY: TarethaGUID = creature->GetGUID(); break; - case EPOCH_ENTRY: - EpochGUID = creature->GetGUID(); - break; + case EPOCH_ENTRY: + EpochGUID = creature->GetGUID(); + break; } } @@ -222,8 +222,8 @@ struct TRINITY_DLL_DECL instance_old_hillsbrad : public ScriptedInstance return ThrallGUID; case DATA_TARETHA: return TarethaGUID; - case DATA_EPOCH: - return EpochGUID; + case DATA_EPOCH: + return EpochGUID; } return 0; } diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 9a01742abc8..55872937395 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -1021,9 +1021,6 @@ int ChatHandler::ParseCommands(const char* text) std::string fullcmd = text; - //if(m_session->GetSecurity() == 0) - // return 0; - /// chat case (.command or !command format) if(m_session) { diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 57d63948872..0672c38ee21 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -115,6 +115,7 @@ void WorldSession::HandleGossipSelectOptionOpcode( WorldPacket & recv_data ) else { sLog.outDebug( "WORLD: HandleGossipSelectOptionOpcode - unsupported GUID type for highguid %u. lowpart %u.", uint32(GUID_HIPART(guid)), uint32(GUID_LOPART(guid)) ); + return; } // remove fake death diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 015bb6d3479..3ec11e83f81 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -1145,6 +1145,7 @@ WorldObject::WorldObject() m_mapId = 0; m_InstanceId = 0; + m_map = NULL; m_name = ""; @@ -1674,12 +1675,14 @@ void WorldObject::SendObjectDeSpawnAnim(uint64 guid) Map* WorldObject::GetMap() const { - return MapManager::Instance().GetMap(GetMapId(), this); + if(m_map) return m_map; + else return const_cast<Map*>(m_map) = MapManager::Instance().GetMap(GetMapId(), this); } Map* WorldObject::FindMap() const { - return MapManager::Instance().FindMap(GetMapId(), GetInstanceId()); + if(m_map) return m_map; + else return const_cast<Map*>(m_map) = MapManager::Instance().FindMap(GetMapId(), GetInstanceId()); } Map const* WorldObject::GetBaseMap() const diff --git a/src/game/Object.h b/src/game/Object.h index 83c2afbb880..9bb99af50de 100644 --- a/src/game/Object.h +++ b/src/game/Object.h @@ -439,8 +439,10 @@ class TRINITY_DLL_SPEC WorldObject : public Object void GetRandomPoint( float x, float y, float z, float distance, float &rand_x, float &rand_y, float &rand_z ) const; - void SetMapId(uint32 newMap) { m_mapId = newMap; } + void SetMapId(uint32 newMap) { m_mapId = newMap; m_map = NULL; } uint32 GetMapId() const { return m_mapId; } + void SetInstanceId(uint32 val) { m_InstanceId = val; m_map = NULL; } + uint32 GetInstanceId() const { return m_InstanceId; } virtual void SetPhaseMask(uint32 newPhaseMask, bool update); uint32 GetPhaseMask() const { return m_phaseMask; } @@ -502,9 +504,6 @@ class TRINITY_DLL_SPEC WorldObject : public Object virtual void SaveRespawnTime() {} - uint32 GetInstanceId() const { return m_InstanceId; } - void SetInstanceId(uint32 val) { m_InstanceId = val; } - void AddObjectToRemoveList(); // main visibility check function in normal case (ignore grey zone distance check) @@ -540,6 +539,7 @@ class TRINITY_DLL_SPEC WorldObject : public Object uint32 m_mapId; // object at map with map_id uint32 m_InstanceId; // in map copy with instance id uint32 m_phaseMask; // in area phase state + Map *m_map; float m_positionX; float m_positionY; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 930e58e17d6..7fd6194d73a 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18246,7 +18246,7 @@ template<class T> void Player::UpdateVisibilityOf(T* target, UpdateData& data, std::set<WorldObject*>& visibleNow) { if(!target) - return; + return; if(HaveAtClient(target)) { if(!target->isVisibleForInState(this,true)) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 09ad6501c4d..d8b50b10a91 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4019,6 +4019,7 @@ void AuraEffect::HandleAuraModDecreaseSpeed(bool /*apply*/, bool Real) if(!Real) return; + //m_target->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); m_target->UpdateSpeed(MOVE_RUN, true); m_target->UpdateSpeed(MOVE_SWIM, true); m_target->UpdateSpeed(MOVE_FLIGHT, true); @@ -5092,6 +5093,28 @@ void AuraEffect::HandleRangedAmmoHaste(bool apply, bool Real) void AuraEffect::HandleAuraModAttackPower(bool apply, bool Real) { m_target->HandleStatModifier(UNIT_MOD_ATTACK_POWER, TOTAL_VALUE, float(m_amount), apply); + if(apply) + switch(m_spellProto->Id){ + // Warrior & Druid Demoshout should remove stealth + case 1160: + case 6190: + case 11554: + case 11555: + case 11556: + case 25202: + case 25203: + case 47437: //WotLK spell + case 99: + case 1735: + case 9490: + case 9747: + case 9898: + case 26998: + case 48559: //WotLK spell + case 48560: //WotLK spell + m_target->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); + break; + } } void AuraEffect::HandleAuraModRangedAttackPower(bool apply, bool Real) diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp index 7c606697ac3..4ca838ebc33 100644 --- a/src/game/WaypointMovementGenerator.cpp +++ b/src/game/WaypointMovementGenerator.cpp @@ -196,8 +196,9 @@ WaypointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff) if(node->delay) i_nextMoveTime.Reset(node->delay); + //note: disable "start" for mtmap if(node->event_id && rand()%100 < node->event_chance) - sWorld.ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL); + sWorld.ScriptsStart(sWaypointScripts, node->event_id, &unit, NULL, false); MovementInform(unit); unit.UpdateWaypointID(i_currentNode); |