|
| npc_gunship_cannon () |
|
CreatureAI * | GetAI (Creature *creature) const override |
|
virtual bool | OnDummyEffect (Unit *, uint32, SpellEffIndex, Creature *) |
|
virtual bool | OnGossipHello (Player *, Creature *) |
|
virtual bool | OnGossipSelect (Player *, Creature *, uint32, uint32) |
|
virtual bool | OnGossipSelectCode (Player *, Creature *, uint32, uint32, const char *) |
|
virtual bool | OnQuestAccept (Player *, Creature *, Quest const *) |
|
virtual bool | OnQuestSelect (Player *, Creature *, Quest const *) |
|
virtual bool | OnQuestReward (Player *, Creature *, Quest const *, uint32) |
|
virtual uint32 | GetDialogStatus (Player *, Creature *) |
|
virtual void | OnHeal (Unit *, Unit *, uint32 &) |
|
virtual void | OnDamage (Unit *, Unit *, uint32 &) |
|
virtual void | ModifyPeriodicDamageAurasTick (Unit *, Unit *, uint32 &) |
|
virtual void | ModifyMeleeDamage (Unit *, Unit *, uint32 &) |
|
virtual void | ModifySpellDamageTaken (Unit *, Unit *, int32 &) |
|
const std::string & | GetName () const |
|
virtual void | OnUpdate (Creature *, uint32) |
|
This AI only resets MOVEMENTFLAG_ROOT on the vehicle. Currently the core always removes MOVEMENTFLAG_ROOT sent from client packets to prevent cheaters from freezing clients of other players but it actually is a valid flag - needs more research to fix both freezes and keep the flag as is (see WorldSession::ReadMovementInfo)
Example packet: ClientToServer: CMSG_MOVE_FORCE_ROOT_ACK (0x00E9) Length: 67 ConnectionIndex: 0 Time: 03/04/2010 03:57:55.000 Number: 471326 Guid: Movement Counter: 80 Movement Flags: OnTransport, Root (2560) Extra Movement Flags: None (0) Time: 52291611 Position: X: -396.0302 Y: 2482.906 Z: 249.86 Orientation: 1.468665 Transport GUID: Full: 0x1FC0000000000460 Type: MOTransport Low: 1120 Transport Position: X: -6.152398 Y: -23.49037 Z: 21.64464 O: 4.827727 Transport Time: 9926 Transport Seat: 255 Fall Time: 824