void HandleQuestgiverHello(QuestGiverHello packet) { Creature creature = GetPlayer().GetNPCIfCanInteractWith(packet.QuestGiverGUID, NPCFlags.QuestGiver, NPCFlags2.None); if (creature == null) { Log.outDebug(LogFilter.Network, "WORLD: HandleQuestgiverHello - {0} not found or you can't interact with him.", packet.QuestGiverGUID.ToString()); return; } // remove fake death if (GetPlayer().HasUnitState(UnitState.Died)) { GetPlayer().RemoveAurasByType(AuraType.FeignDeath); } // Stop the npc if moving creature.PauseMovement(WorldConfig.GetUIntValue(WorldCfg.CreatureStopForPlayer)); creature.SetHomePosition(creature.GetPosition()); _player.PlayerTalkClass.ClearMenus(); if (creature.GetAI().GossipHello(_player)) { return; } GetPlayer().PrepareGossipMenu(creature, creature.GetCreatureTemplate().GossipMenuId, true); GetPlayer().SendPreparedGossip(creature); }
void HandleQuestgiverHello(QuestGiverHello packet) { Creature creature = GetPlayer().GetNPCIfCanInteractWith(packet.QuestGiverGUID, NPCFlags.QuestGiver, NPCFlags2.None); if (creature == null) { Log.outDebug(LogFilter.Network, "WORLD: HandleQuestgiverHello - {0} not found or you can't interact with him.", packet.QuestGiverGUID.ToString()); return; } // remove fake death if (GetPlayer().HasUnitState(UnitState.Died)) { GetPlayer().RemoveAurasByType(AuraType.FeignDeath); } // Stop the npc if moving creature.StopMoving(); if (Global.ScriptMgr.OnGossipHello(GetPlayer(), creature)) { return; } GetPlayer().PrepareGossipMenu(creature, creature.GetCreatureTemplate().GossipMenuId, true); GetPlayer().SendPreparedGossip(creature); creature.GetAI().GossipHello(GetPlayer()); }