diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/DataStores/DBCStores.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/DataStores/DBCStores.h | 1 | ||||
-rwxr-xr-x | src/server/game/DataStores/DBCStructure.h | 22 | ||||
-rwxr-xr-x | src/server/game/DataStores/DBCfmt.h | 1 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 45 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 6 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.h | 2 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_account.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_gm.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_reload.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_hunter.cpp | 2 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 6 |
15 files changed, 64 insertions, 41 deletions
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp index fc709599da5..85af0f6c1e2 100755 --- a/src/server/game/DataStores/DBCStores.cpp +++ b/src/server/game/DataStores/DBCStores.cpp @@ -118,7 +118,7 @@ DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore(ItemRandomSuffixfmt); DBCStorage <ItemSetEntry> sItemSetStore(ItemSetEntryfmt); DBCStorage <LFGDungeonEntry> sLFGDungeonStore(LFGDungeonEntryfmt); - +//DBCStorage <LiquidTypeEntry> sLiquidTypeStore(LiquidTypeEntryfmt); DBCStorage <LockEntry> sLockStore(LockEntryfmt); DBCStorage <MailTemplateEntry> sMailTemplateStore(MailTemplateEntryfmt); diff --git a/src/server/game/DataStores/DBCStores.h b/src/server/game/DataStores/DBCStores.h index 713bf5cf65c..367746616d1 100755 --- a/src/server/game/DataStores/DBCStores.h +++ b/src/server/game/DataStores/DBCStores.h @@ -118,6 +118,7 @@ extern DBCStorage <ItemRandomPropertiesEntry> sItemRandomPropertiesStore; extern DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore; extern DBCStorage <ItemSetEntry> sItemSetStore; extern DBCStorage <LFGDungeonEntry> sLFGDungeonStore; +//extern DBCStorage <LiquidTypeEntry> sLiquidTypeStore; extern DBCStorage <LockEntry> sLockStore; extern DBCStorage <MailTemplateEntry> sMailTemplateStore; extern DBCStorage <MapEntry> sMapStore; diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h index a45bafe8a2e..ff91964230a 100755 --- a/src/server/game/DataStores/DBCStructure.h +++ b/src/server/game/DataStores/DBCStructure.h @@ -1186,6 +1186,28 @@ struct LFGDungeonEntry uint32 Entry() const { return ID + (type << 24); } }; +/* +struct LiquidTypeEntry +{ + uint32 ID; // 0 + char* name; // 1 + uint32 flags; // 2 Water: 1|2|4|8, Magma: 8|16|32|64, Slime: 2|64|256, WMO Ocean: 1|2|4|8|512 + uint32 type; // 3 0: Water, 1: Ocean, 2: Magma, 3: Slime + uint32 soundid; // 4 Reference to SoundEntries.dbc + uint32 spellID; // 5 Reference to Spell.dbc + float unk0[4]; // 6-9 + uint32 unk1; // 10 Light? + float particleScale // 11 0: Slime, 1: Water/Ocean, 4: Magma + uint32 particleMovement; // 12 + uint32 unk2 // 13 + uint32 LiquidMaterialID // 14 Reference to LiquidMaterial.dbc + char* texture[6]; // 15-20 + uint32 unk3[2] // 21-22 + float unk4[18]; // 23-40 + uint32 unk5[4] // 41-44 +}; +*/ + #define MAX_LOCK_CASE 8 struct LockEntry diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h index 0728a2f838e..5d33a3011ab 100755 --- a/src/server/game/DataStores/DBCfmt.h +++ b/src/server/game/DataStores/DBCfmt.h @@ -77,6 +77,7 @@ const char ItemRandomPropertiesfmt[]="nxiiixxssssssssssssssssx"; const char ItemRandomSuffixfmt[]="nssssssssssssssssxxiiixxiiixx"; const char ItemSetEntryfmt[]="dssssssssssssssssxiiiiiiiiiixxxxxxxiiiiiiiiiiiiiiiiii"; const char LFGDungeonEntryfmt[]="nxxxxxxxxxxxxxxxxxiiiiiiixixxixixxxxxxxxxxxxxxxxx"; +//const char LiquidTypeEntryfmt[]="nsiiiiffffifiiisssssiiffffffffffffffffffiiii"; const char LockEntryfmt[]="niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx"; const char MailTemplateEntryfmt[]="nxxxxxxxxxxxxxxxxxssssssssssssssssx"; const char MapEntryfmt[]="nxixxssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixiffxiix"; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ca5c3f2f132..008ceae78ca 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2326,6 +2326,9 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati bool Player::TeleportToBGEntryPoint() { + if (m_bgData.joinPos.m_mapId == MAPID_INVALID) + return false; + ScheduleDelayedOperation(DELAYED_BG_MOUNT_RESTORE); ScheduleDelayedOperation(DELAYED_BG_TAXI_RESTORE); return TeleportTo(m_bgData.joinPos); @@ -20961,7 +20964,6 @@ void Player::SetBattlegroundEntryPoint() // On taxi we don't need check for dungeon m_bgData.joinPos = WorldLocation(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); - return; } else { @@ -20981,23 +20983,17 @@ void Player::SetBattlegroundEntryPoint() if (GetMap()->IsDungeon()) { if (const WorldSafeLocsEntry* entry = sObjectMgr->GetClosestGraveYard(GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeam())) - { m_bgData.joinPos = WorldLocation(entry->map_id, entry->x, entry->y, entry->z, 0.0f); - return; - } else sLog->outError("SetBattlegroundEntryPoint: Dungeon map %u has no linked graveyard, setting home location as entry point.", GetMapId()); } // If new entry point is not BG or arena set it else if (!GetMap()->IsBattlegroundOrArena()) - { m_bgData.joinPos = WorldLocation(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); - return; - } } - // In error cases use homebind position - m_bgData.joinPos = WorldLocation(m_homebindMapId, m_homebindX, m_homebindY, m_homebindZ, 0.0f); + if (m_bgData.joinPos.m_mapId == MAPID_INVALID) // In error cases use homebind position + m_bgData.joinPos = WorldLocation(m_homebindMapId, m_homebindX, m_homebindY, m_homebindZ, 0.0f); } void Player::LeaveBattleground(bool teleportToEntryPoint) @@ -24144,23 +24140,20 @@ void Player::_SaveBGData(SQLTransaction& trans) PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_BGDATA); stmt->setUInt32(0, GetGUIDLow()); trans->Append(stmt); - if (m_bgData.bgInstanceID) - { - /* guid, bgInstanceID, bgTeam, x, y, z, o, map, taxi[0], taxi[1], mountSpell */ - stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_PLAYER_BGDATA); - stmt->setUInt32(0, GetGUIDLow()); - stmt->setUInt32(1, m_bgData.bgInstanceID); - stmt->setUInt16(2, m_bgData.bgTeam); - stmt->setFloat (3, m_bgData.joinPos.GetPositionX()); - stmt->setFloat (4, m_bgData.joinPos.GetPositionY()); - stmt->setFloat (5, m_bgData.joinPos.GetPositionZ()); - stmt->setFloat (6, m_bgData.joinPos.GetOrientation()); - stmt->setUInt16(7, m_bgData.joinPos.GetMapId()); - stmt->setUInt16(8, m_bgData.taxiPath[0]); - stmt->setUInt16(9, m_bgData.taxiPath[1]); - stmt->setUInt16(10, m_bgData.mountSpell); - trans->Append(stmt); - } + /* guid, bgInstanceID, bgTeam, x, y, z, o, map, taxi[0], taxi[1], mountSpell */ + stmt = CharacterDatabase.GetPreparedStatement(CHAR_ADD_PLAYER_BGDATA); + stmt->setUInt32(0, GetGUIDLow()); + stmt->setUInt32(1, m_bgData.bgInstanceID); + stmt->setUInt16(2, m_bgData.bgTeam); + stmt->setFloat (3, m_bgData.joinPos.GetPositionX()); + stmt->setFloat (4, m_bgData.joinPos.GetPositionY()); + stmt->setFloat (5, m_bgData.joinPos.GetPositionZ()); + stmt->setFloat (6, m_bgData.joinPos.GetOrientation()); + stmt->setUInt16(7, m_bgData.joinPos.GetMapId()); + stmt->setUInt16(8, m_bgData.taxiPath[0]); + stmt->setUInt16(9, m_bgData.taxiPath[1]); + stmt->setUInt16(10, m_bgData.mountSpell); + trans->Append(stmt); } void Player::DeleteEquipmentSet(uint64 setGuid) diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index 4ee91aaae19..da6edc34832 100755 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -922,9 +922,11 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) return; // Check if we are in LfgGroup and trying to get out the dungeon + bool teleported = false; if (GetPlayer()->GetGroup() && GetPlayer()->GetGroup()->isLFGGroup() && GetPlayer()->GetMap()->IsDungeon() && at->target_mapId != GetPlayer()->GetMapId()) - GetPlayer()->TeleportToBGEntryPoint(); - else + teleported = GetPlayer()->TeleportToBGEntryPoint(); + + if (!teleported) GetPlayer()->TeleportTo(at->target_mapId, at->target_X, at->target_Y, at->target_Z, at->target_Orientation, TELE_TO_NOT_LEAVE_TRANSPORT); } diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 74198aa0dfd..a318599076a 100755 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -230,7 +230,7 @@ class Spell void EffectDistract(SpellEffIndex effIndex); void EffectPull(SpellEffIndex effIndex); void EffectSchoolDMG(SpellEffIndex effIndex); - void EffectEnvirinmentalDMG(SpellEffIndex effIndex); + void EffectEnvironmentalDMG(SpellEffIndex effIndex); void EffectInstaKill(SpellEffIndex effIndex); void EffectDummy(SpellEffIndex effIndex); void EffectTeleportUnits(SpellEffIndex effIndex); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 2642ed6a7ed..bbdf8931bff 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -72,7 +72,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectUnused, // 4 SPELL_EFFECT_PORTAL_TELEPORT unused &Spell::EffectTeleportUnits, // 5 SPELL_EFFECT_TELEPORT_UNITS &Spell::EffectApplyAura, // 6 SPELL_EFFECT_APPLY_AURA - &Spell::EffectEnvirinmentalDMG, // 7 SPELL_EFFECT_ENVIRONMENTAL_DAMAGE + &Spell::EffectEnvironmentalDMG, // 7 SPELL_EFFECT_ENVIRONMENTAL_DAMAGE &Spell::EffectPowerDrain, // 8 SPELL_EFFECT_POWER_DRAIN &Spell::EffectHealthLeech, // 9 SPELL_EFFECT_HEALTH_LEECH &Spell::EffectHeal, // 10 SPELL_EFFECT_HEAL @@ -282,7 +282,7 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/) m_caster->DealDamage(unitTarget, unitTarget->GetHealth(), NULL, NODAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } -void Spell::EffectEnvirinmentalDMG(SpellEffIndex /*effIndex*/) +void Spell::EffectEnvironmentalDMG(SpellEffIndex /*effIndex*/) { if (!unitTarget || !unitTarget->isAlive()) return; diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index ece4bd36da1..c50aa7cc14f 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1973,7 +1973,7 @@ void SpellMgr::LoadSpellThreats() ste.apPctMod = fields[3].GetFloat(); mSpellThreatMap[entry] = ste; - count++; + ++count; } while (result->NextRow()); sLog->outString(">> Loaded %u SpellThreatEntries in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); @@ -1988,7 +1988,7 @@ void SpellMgr::LoadSkillLineAbilityMap() uint32 count = 0; - for (uint32 i = 0; i < sSpellMgr->GetSpellInfoStoreSize(); ++i) + for (uint32 i = 0; i < sSkillLineAbilityStore.GetNumRows(); ++i) { SkillLineAbilityEntry const* SkillInfo = sSkillLineAbilityStore.LookupEntry(i); if (!SkillInfo) diff --git a/src/server/scripts/Commands/cs_account.cpp b/src/server/scripts/Commands/cs_account.cpp index 11238850958..e1e5b4b8188 100644 --- a/src/server/scripts/Commands/cs_account.cpp +++ b/src/server/scripts/Commands/cs_account.cpp @@ -222,7 +222,9 @@ public: { Field *fieldsLogin = resultLogin->Fetch(); handler->PSendSysMessage(LANG_ACCOUNT_LIST_LINE, - fieldsLogin[0].GetCString(), name.c_str(), fieldsLogin[1].GetCString(), fieldsDB[2].GetUInt16(), fieldsDB[3].GetUInt16(), fieldsLogin[3].GetUInt32(), fieldsLogin[2].GetUInt32()); + fieldsLogin[0].GetCString(), name.c_str(), fieldsLogin[1].GetCString(), + fieldsDB[2].GetUInt16(), fieldsDB[3].GetUInt16(), fieldsLogin[3].GetUInt32(), + fieldsLogin[2].GetUInt32()); } else handler->PSendSysMessage(LANG_ACCOUNT_LIST_ERROR, name.c_str()); diff --git a/src/server/scripts/Commands/cs_gm.cpp b/src/server/scripts/Commands/cs_gm.cpp index 780b4e549a9..c8cf0819fd4 100644 --- a/src/server/scripts/Commands/cs_gm.cpp +++ b/src/server/scripts/Commands/cs_gm.cpp @@ -155,7 +155,7 @@ public: static bool HandleGMListFullCommand(ChatHandler* handler, const char* /*args*/) { ///- Get the accounts with GM Level >0 - QueryResult result = LoginDatabase.Query("SELECT a.username, aa.gmlevel FROM account a, account_access aa WHERE a.id=aa.id AND aa.gmlevel > 0"); + QueryResult result = LoginDatabase.PQuery("SELECT a.username, aa.gmlevel FROM account a, account_access aa WHERE a.id=aa.id AND aa.gmlevel >= %u", SEC_MODERATOR); if (result) { handler->SendSysMessage(LANG_GMLIST); diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp index fcdd30402e6..b8b39b18206 100644 --- a/src/server/scripts/Commands/cs_reload.cpp +++ b/src/server/scripts/Commands/cs_reload.cpp @@ -375,7 +375,7 @@ public: static bool HandleReloadAutobroadcastCommand(ChatHandler* handler, const char* /*args*/) { - sLog->outString("Re-Loading Autobroadcast..."); + sLog->outString("Re-Loading Autobroadcasts..."); sWorld->LoadAutobroadcasts(); handler->SendGlobalGMSysMessage("DB table `autobroadcast` reloaded."); return true; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp index 3c8b62bf64a..a6f67c6f970 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp @@ -900,7 +900,7 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader { if (Unit* caster = GetCaster()) { - if (InstanceScript* instance = GetCaster()->GetInstanceScript()) + if (InstanceScript* instance = caster->GetInstanceScript()) { if (Unit* toyPile = ObjectAccessor::GetUnit(*caster, instance->GetData64(DATA_TOY_PILE_0 + urand(0, 3)))) { diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index 16d147a4000..3613b97ec5c 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -76,7 +76,7 @@ public: Unit* caster = GetCaster(); if (caster->ToPlayer()) - if (Pet* pet = caster->ToPlayer()->GetPet()) + if (caster->ToPlayer()->GetPet()) caster->CastSpell(caster, HUNTER_SPELL_ASPECT_OF_THE_BEAST_PET, true); } diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index d9ce9ee223f..75020b7e7bd 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2156,8 +2156,10 @@ Rate.MoveSpeed = 1 # # Rate.InstanceResetTime -# Description: Multiplier for the number of days in between global raid/heroic instance -# resets. +# Description: Multiplier for the rate between global raid/heroic instance resets +# (dbc value). Higher value increases the time between resets, +# lower value lowers the time, you need clean instance_reset in +# characters db in order to let new values work. # Default: 1 Rate.InstanceResetTime = 1 |