diff options
-rw-r--r-- | src/game/Transports.cpp | 23 | ||||
-rw-r--r-- | src/game/Transports.h | 3 | ||||
-rw-r--r-- | src/game/Unit.cpp | 11 |
3 files changed, 36 insertions, 1 deletions
diff --git a/src/game/Transports.cpp b/src/game/Transports.cpp index 2125fcf0567..21d3d3b1f27 100644 --- a/src/game/Transports.cpp +++ b/src/game/Transports.cpp @@ -400,6 +400,9 @@ bool Transport::GenerateWaypoints(uint32 pathid, std::set<uint32> &mapids) // sLog.outString("T: %d, x: %f, y: %f, z: %f, t:%d", t, pos.x, pos.y, pos.z, teleport); + if(keyFrames[i+1].delay > 5) + pos.delayed = true; + //if (teleport) m_WayPoints[t] = pos; @@ -504,6 +507,26 @@ void Transport::Update(uint32 /*p_time*/) Relocate(m_curr->second.x, m_curr->second.y, m_curr->second.z); } + if(m_curr->second.delayed) + { + switch (GetEntry()) + { + case 176495: + case 164871: + case 175080: + SendPlaySound(11804, false); break; // ZeppelinDocked + case 20808: + case 181646: + case 176231: + case 176244: + case 176310: + case 177233: + SendPlaySound(5495, false);break; // BoatDockingWarning + default: + SendPlaySound(5154, false); break; // ShipDocked + } + } + /* for(PlayerSet::iterator itr = m_passengers.begin(); itr != m_passengers.end();) { diff --git a/src/game/Transports.h b/src/game/Transports.h index 482ec16352a..0e39d57c089 100644 --- a/src/game/Transports.h +++ b/src/game/Transports.h @@ -88,12 +88,13 @@ class Transport : private GameObject { WayPoint() : mapid(0), x(0), y(0), z(0), teleport(false) {} WayPoint(uint32 _mapid, float _x, float _y, float _z, bool _teleport) : - mapid(_mapid), x(_x), y(_y), z(_z), teleport(_teleport) {} + mapid(_mapid), x(_x), y(_y), z(_z), teleport(_teleport), delayed(false) {} uint32 mapid; float x; float y; float z; bool teleport; + bool delayed; }; typedef std::map<uint32, WayPoint> WayPointMap; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 81e6fa521b0..9e5da761bcc 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8600,6 +8600,17 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 switch(spellProto->SpellFamilyName) { + case SPELLFAMILY_GENERIC: + // Siphon Essence - 0% + if(spellProto->AttributesEx == 268435456 && spellProto->SpellIconID == 2027) + { + CastingTime = 0; + } + // Goblin Rocket Launcher - 0% + else if (spellProto->SpellIconID == 184 && spellProto->Attributes == 4259840) + { + CastingTime = 0; + } case SPELLFAMILY_MAGE: // Ignite - do not modify, it is (8*Rank)% damage of procing Spell if(spellProto->Id==12654) |