diff options
author | Spp <spp@jorge.gr> | 2012-12-19 08:23:34 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-12-19 08:23:34 +0100 |
commit | 80b1b6c4940a43fa0db175097a54d6cb50e7b15c (patch) | |
tree | ab3c1f0d7ea2df6fb563e3af7e205fcc84baacda /src/server/game | |
parent | a227a3494766103cf6805cf52839612854c2767b (diff) | |
parent | a2832805afb9a8a3434172479c814ca2a729ece1 (diff) |
Merge branch 'master' into 4.3.4
Conflicts:
src/server/game/Globals/ObjectMgr.cpp
src/server/game/World/World.h
src/server/scripts/Kalimdor/moonglade.cpp
Diffstat (limited to 'src/server/game')
-rw-r--r-- | src/server/game/AI/CoreAI/PetAI.cpp | 5 | ||||
-rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Movement/MotionMaster.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptLoader.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 4 | ||||
-rw-r--r-- | src/server/game/Tools/CharacterDatabaseCleaner.cpp | 5 | ||||
-rw-r--r-- | src/server/game/World/World.h | 12 |
9 files changed, 31 insertions, 23 deletions
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp index 3d9e0486838..6535fe2be17 100644 --- a/src/server/game/AI/CoreAI/PetAI.cpp +++ b/src/server/game/AI/CoreAI/PetAI.cpp @@ -181,8 +181,10 @@ void PetAI::UpdateAI(const uint32 diff) spellUsed = true; } } + if (spellInfo->HasEffect(SPELL_EFFECT_JUMP_DEST)) - continue; //pets must jump only to target + continue; // Pets must only jump to target + // No enemy, check friendly if (!spellUsed) { @@ -266,6 +268,7 @@ void PetAI::UpdateAllies() //only pet and owner/not in group->ok if (m_AllySet.size() == 2 && !group) return; + //owner is in group; group members filled in already (no raid -> subgroupcount = whole count) if (group && !group->isRaidGroup() && m_AllySet.size() == (group->GetMembersCount() + 2)) return; diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 74f70f6bb4b..c31a9141e18 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -422,6 +422,8 @@ bool AuctionHouseObject::RemoveAuction(AuctionEntry* auction, uint32 /*itemEntry // we need to delete the entry, it is not referenced any more delete auction; + auction = NULL; + return wasInMap; } @@ -474,8 +476,8 @@ void AuctionHouseObject::Update() auction->DeleteFromDB(trans); CharacterDatabase.CommitTransaction(trans); - RemoveAuction(auction, itemEntry); sAuctionMgr->RemoveAItem(auction->itemGUIDLow); + RemoveAuction(auction, itemEntry); } while (result->NextRow()); } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 5cc304223e6..596f0ebbc28 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1661,7 +1661,7 @@ bool ObjectMgr::MoveCreData(uint32 guid, uint32 mapId, Position pos) Creature* creature = new Creature; if (!creature->LoadCreatureFromDB(guid, map)) { - sLog->outError(LOG_FILTER_GENERAL, "AddCreature: cannot add creature entry %u to map", guid); + sLog->outError(LOG_FILTER_GENERAL, "MoveCreData: Cannot add creature guid %u to map", guid); delete creature; return false; } @@ -1713,7 +1713,7 @@ uint32 ObjectMgr::AddCreData(uint32 entry, uint32 /*team*/, uint32 mapId, float Creature* creature = new Creature; if (!creature->LoadCreatureFromDB(guid, map)) { - sLog->outError(LOG_FILTER_GENERAL, "AddCreature: cannot add creature entry %u to map", entry); + sLog->outError(LOG_FILTER_GENERAL, "AddCreature: Cannot add creature entry %u to map", entry); delete creature; return 0; } @@ -1738,8 +1738,7 @@ void ObjectMgr::LoadGameobjects() if (!result) { - sLog->outError(LOG_FILTER_SERVER_LOADING, ">> Loaded 0 gameobjects. DB table `gameobject` is empty."); - + sLog->outError(LOG_FILTER_SQL, ">> Loaded 0 gameobjects. DB table `gameobject` is empty."); return; } diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 488dbfc9159..4f45044d5f7 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -378,14 +378,14 @@ void MotionMaster::MoveJump(float x, float y, float z, float speedXY, float spee Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED); } -void MotionMaster::MoveFall(uint32 id/*=0*/) +void MotionMaster::MoveFall(uint32 id /*=0*/) { // use larger distance for vmap height search than in most other cases float tz = _owner->GetMap()->GetHeight(_owner->GetPhaseMask(), _owner->GetPositionX(), _owner->GetPositionY(), _owner->GetPositionZ(), true, MAX_FALL_DISTANCE); if (tz <= INVALID_HEIGHT) { sLog->outDebug(LOG_FILTER_GENERAL, "MotionMaster::MoveFall: unable retrive a proper height at map %u (x: %f, y: %f, z: %f).", - _owner->GetMap()->GetId(), _owner->GetPositionX(), _owner->GetPositionX(), _owner->GetPositionZ()); + _owner->GetMap()->GetId(), _owner->GetPositionX(), _owner->GetPositionY(), _owner->GetPositionZ()); return; } diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index 38da442ca5b..97ad1d5f651 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -314,6 +314,7 @@ void AddSC_boss_ayamiss(); void AddSC_boss_ossirian(); void AddSC_instance_ruins_of_ahnqiraj(); void AddSC_boss_cthun(); //Temple of ahn'qiraj +void AddSC_boss_viscidus(); void AddSC_boss_fankriss(); void AddSC_boss_huhuran(); void AddSC_bug_trio(); @@ -941,6 +942,7 @@ void AddKalimdorScripts() AddSC_boss_ossirian(); AddSC_instance_ruins_of_ahnqiraj(); AddSC_boss_cthun(); //Temple of ahn'qiraj + AddSC_boss_viscidus(); AddSC_boss_fankriss(); AddSC_boss_huhuran(); AddSC_bug_trio(); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 51e6ced8d24..aa9477b1c42 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1379,10 +1379,11 @@ FormulaScript::FormulaScript(const char* name) ScriptRegistry<FormulaScript>::AddScript(this); } -UnitScript::UnitScript(const char* name) +UnitScript::UnitScript(const char* name, bool addToScripts) : ScriptObject(name) { - ScriptRegistry<UnitScript>::AddScript(this); + if (addToScripts) + ScriptRegistry<UnitScript>::AddScript(this); } WorldMapScript::WorldMapScript(const char* name, uint32 mapId) @@ -1419,7 +1420,7 @@ ItemScript::ItemScript(const char* name) } CreatureScript::CreatureScript(const char* name) - : UnitScript(name) + : UnitScript(name, false) { ScriptRegistry<CreatureScript>::AddScript(this); } @@ -1473,7 +1474,7 @@ ConditionScript::ConditionScript(const char* name) } VehicleScript::VehicleScript(const char* name) - : UnitScript(name) + : ScriptObject(name) { ScriptRegistry<VehicleScript>::AddScript(this); } @@ -1497,7 +1498,7 @@ AchievementCriteriaScript::AchievementCriteriaScript(const char* name) } PlayerScript::PlayerScript(const char* name) - : UnitScript(name) + : UnitScript(name, false) { ScriptRegistry<PlayerScript>::AddScript(this); } diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 17cc3844605..86cf321264e 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -395,7 +395,7 @@ class UnitScript : public ScriptObject { protected: - UnitScript(const char* name); + UnitScript(const char* name, bool addToScripts = true); public: // Called when DoT's Tick Damage is being Dealt @@ -599,7 +599,7 @@ class ConditionScript : public ScriptObject virtual bool OnConditionCheck(Condition* /*condition*/, ConditionSourceInfo& /*sourceInfo*/) { return true; } }; -class VehicleScript : public UnitScript +class VehicleScript : public ScriptObject { protected: diff --git a/src/server/game/Tools/CharacterDatabaseCleaner.cpp b/src/server/game/Tools/CharacterDatabaseCleaner.cpp index 198bce4a9fe..02ab1fde209 100644 --- a/src/server/game/Tools/CharacterDatabaseCleaner.cpp +++ b/src/server/game/Tools/CharacterDatabaseCleaner.cpp @@ -36,7 +36,7 @@ void CharacterDatabaseCleaner::CleanDatabase() uint32 oldMSTime = getMSTime(); // check flags which clean ups are necessary - QueryResult result = CharacterDatabase.Query("SELECT value FROM worldstates WHERE entry = 20004"); + QueryResult result = CharacterDatabase.PQuery("SELECT value FROM worldstates WHERE entry = %d", WS_CLEANING_FLAGS); if (!result) return; @@ -61,12 +61,11 @@ void CharacterDatabaseCleaner::CleanDatabase() // NOTE: In order to have persistentFlags be set in worldstates for the next cleanup, // you need to define them at least once in worldstates. flags &= sWorld->getIntConfig(CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS); - CharacterDatabase.DirectPExecute("UPDATE worldstates SET value = %u WHERE entry = 20004", flags); + CharacterDatabase.DirectPExecute("UPDATE worldstates SET value = %u WHERE entry = %d", flags, WS_CLEANING_FLAGS); sWorld->SetCleaningFlags(flags); sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Cleaned character database in %u ms", GetMSTimeDiffToNow(oldMSTime)); - } void CharacterDatabaseCleaner::CheckUnique(const char* column, const char* table, bool (*check)(uint32)) diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 505ccd939c6..3158756cba5 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -487,11 +487,13 @@ enum RealmZone enum WorldStates { - WS_WEEKLY_QUEST_RESET_TIME = 20002, // Next weekly reset time - WS_BG_DAILY_RESET_TIME = 20003, // Next daily BG reset time - WS_MONTHLY_QUEST_RESET_TIME = 20004, // Next monthly reset time - WS_GUILD_DAILY_RESET_TIME = 20006, // Next guild cap reset time - WS_GUILD_WEEKLY_RESET_TIME = 20007, // Next guild week reset time + WS_WEEKLY_QUEST_RESET_TIME = 20002, // Next weekly reset time + WS_BG_DAILY_RESET_TIME = 20003, // Next daily BG reset time + WS_CLEANING_FLAGS = 20004, // Cleaning Flags + WS_GUILD_DAILY_RESET_TIME = 20006, // Next guild cap reset time + WS_MONTHLY_QUEST_RESET_TIME = 20007, // Next monthly reset time + // Cata specific custom worldstates + WS_GUILD_WEEKLY_RESET_TIME = 20050, // Next guild week reset time }; /// Storage class for commands issued for delayed execution |