From ffb28c06a7719b7a1f908aa4d7d20954d990a82f Mon Sep 17 00:00:00 2001 From: maximius Date: Mon, 2 Nov 2009 20:30:25 -0800 Subject: [PATCH] * Better solution to No Fly zones by Spp, closes #4 --HG-- branch : trunk --- sql/FULL/world_trinity_string_full.sql | 2 +- sql/updates/6173_world_trinity_string.sql | 4 ++++ src/game/MovementHandler.cpp | 3 --- src/game/OutdoorPvPNR.cpp | 1 + src/game/Player.cpp | 1 + src/game/SpellAuras.cpp | 2 +- src/game/Wintergrasp.cpp | 1 + 7 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 sql/updates/6173_world_trinity_string.sql diff --git a/sql/FULL/world_trinity_string_full.sql b/sql/FULL/world_trinity_string_full.sql index 30396a6d24..fd0b34c725 100644 --- a/sql/FULL/world_trinity_string_full.sql +++ b/sql/FULL/world_trinity_string_full.sql @@ -628,7 +628,7 @@ INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `conte (813, 'Veteran', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (814, 'Member', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (815, 'Initiate', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(816, 'You have entered a No-Fly Zone and are about to be dismounted.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(816, 'Warning: You''ve entered a no-fly zone and are about to be dismounted!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (1000, 'Exiting daemon...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (1001, 'Account deleted: %s', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), (1002, 'Account %s NOT deleted (probably sql file format was updated)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), diff --git a/sql/updates/6173_world_trinity_string.sql b/sql/updates/6173_world_trinity_string.sql new file mode 100644 index 0000000000..3fc5debb75 --- /dev/null +++ b/sql/updates/6173_world_trinity_string.sql @@ -0,0 +1,4 @@ + +DELETE FROM `trinity_string` WHERE `entry`=816; +INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES +(816, 'Warning: You''ve entered a no-fly zone and are about to be dismounted!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 6958326301..02a41d4392 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -307,10 +307,7 @@ void WorldSession::HandleMovementOpcodes( WorldPacket & recv_data ) // fall damage generation (ignore in flight case that can be triggered also at lags in moment teleportation to another map). if (opcode == MSG_MOVE_FALL_LAND && plMover && !plMover->isInFlight()) - { plMover->HandleFall(movementInfo); - _player->RemoveAurasByType(SPELL_AURA_FEATHER_FALL); - } if (plMover && ((movementInfo.flags & MOVEMENTFLAG_SWIMMING) != 0) != plMover->IsInWater()) { diff --git a/src/game/OutdoorPvPNR.cpp b/src/game/OutdoorPvPNR.cpp index 4f16e407b2..fbcca4bdef 100644 --- a/src/game/OutdoorPvPNR.cpp +++ b/src/game/OutdoorPvPNR.cpp @@ -37,6 +37,7 @@ void OutdoorPvPNR::HandlePlayerEnterZone(Player * plr, uint32 zone) { plr->CastSpell(plr, SPELL_NOFLYZONE, true); ChatHandler(plr).PSendSysMessage(LANG_ZONE_NOFLYZONE); + plr->GetSession()->SendNotification(LANG_ZONE_NOFLYZONE); } OutdoorPvP::HandlePlayerEnterZone(plr, zone); } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 8f5ae3ac75..30b83e41dc 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -21177,6 +21177,7 @@ void Player::HandleFall(MovementInfo const& movementInfo) DEBUG_LOG("FALLDAMAGE z=%f sz=%f pZ=%f FallTime=%d mZ=%f damage=%d SF=%d" , movementInfo.z, height, GetPositionZ(), movementInfo.fallTime, height, damage, safe_fall); } } + RemoveAura(61243); // No fly zone - Parachute } void Player::UpdateAchievementCriteria( AchievementCriteriaTypes type, uint32 miscvalue1/*=0*/, uint32 miscvalue2/*=0*/, Unit *unit/*=NULL*/, uint32 time/*=0*/ ) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 587dae3ed4..e60717ac99 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3350,7 +3350,7 @@ void AuraEffect::HandleAuraFeatherFall(bool apply, bool Real, bool /*changeAmoun float ground_Z = caster->GetMap()->GetVmapHeight(x, y, z, true); if (fabs(ground_Z - z) < 0.1f) { - m_target->RemoveAurasByType(SPELL_AURA_FEATHER_FALL); + m_target->RemoveAura(GetId()); return; } } diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp index ec989a8123..7498646754 100644 --- a/src/game/Wintergrasp.cpp +++ b/src/game/Wintergrasp.cpp @@ -955,6 +955,7 @@ void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone) { plr->CastSpell(plr, SPELL_NOFLYZONE_WG, true); ChatHandler(plr).PSendSysMessage(LANG_ZONE_NOFLYZONE); + plr->GetSession()->SendNotification(LANG_ZONE_NOFLYZONE); } if (!isWarTime())