aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.cpp2
-rwxr-xr-xsrc/server/game/DataStores/DBCStores.h1
-rwxr-xr-xsrc/server/game/DataStores/DBCStructure.h22
-rwxr-xr-xsrc/server/game/DataStores/DBCfmt.h1
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp45
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/MiscHandler.cpp6
-rwxr-xr-xsrc/server/game/Spells/Spell.h2
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp4
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp4
-rw-r--r--src/server/scripts/Commands/cs_account.cpp4
-rw-r--r--src/server/scripts/Commands/cs_gm.cpp2
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp2
-rw-r--r--src/server/scripts/Spells/spell_hunter.cpp2
-rw-r--r--src/server/worldserver/worldserver.conf.dist6
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