Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- House System v4.17
- Made by Nathan
- Updated and edited by Loud21
- */
- #include "ScriptPCH.h"
- #include "Chat.h"
- #include "ObjectMgr.h"
- #include "Group.h"
- enum eEnums
- {
- GAMEOBJECT_SPAWN_LIMIT = 20,
- NPC_SPAWN_LIMIT = 10,
- SAY_NOT_INTERESTED = -1999922,
- SAY_WRONG = -1999923,
- SAY_CORRECT = -1999924,
- };
- GameObject* GetNearestGob(Player *player)
- {
- GameObject* gObj = nullptr;
- Trinity::NearestGameObjectCheck check(*player);
- Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectCheck> searcher(player, gObj, check);
- player->VisitNearbyGridObject(SIZE_OF_GRIDS, searcher);
- return gObj;
- }
- class npc_player_house : public ItemScript
- {
- public:
- npc_player_house() : ItemScript("npc_player_house") { }
- bool OnUse(Player* player, Item* item, SpellCastTargets const& targets)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- uint32 PlrGUID = player->GetSession()->GetGUIDLow();
- bool SpawnNPC(Player *player, uint32 npcID);
- bool IsInLand(Player *player);
- bool IsLandOwner(Player *player);
- bool HasPackage(uint32 PlrGUID, uint32 package);
- player->PlayerTalkClass->ClearMenus();
- if (player->IsInCombat())
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You can not use this item while in combat!");
- return false;
- }
- if (IsLandOwner(player))
- {
- if (IsInLand(player))
- {
- player->PlayerTalkClass->ClearMenus();
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 1 Objects ", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 500);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 1 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 501);
- if (HasPackage(PlrGUID, 1))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 2 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 502);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 2 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 503);
- }
- if (HasPackage(PlrGUID, 2))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 3 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 504);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 3 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 505);
- }
- if (HasPackage(PlrGUID, 3))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 4 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 506);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 4 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 507);
- }
- if (HasPackage(PlrGUID, 4))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 5 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 508);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 5 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 509);
- }
- AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Delete closest Object", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Delete an NPC", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Summon a Friend!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- //AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Summon Party/Raid!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Scale NPC.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Scale Objects.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
- AddGossipItemFor(player, GOSSIP_ICON_BATTLE, "Kick Intruder!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, item->GetGUID());
- }
- else
- {
- {
- QueryResult result = CharacterDatabase.PQuery("SELECT zone_name FROM player_house_taken WHERE player_guid = %u", PlrGUID);
- uint32 house_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- std::string zone_name = fields[0].GetString();
- if (zone_name == "")
- zone_name = "First House";
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to " + zone_name, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 800 + house_count);
- house_count++;
- } while (result->NextRow());
- }
- }
- }
- }
- else
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You do not own any land!");
- return false;
- }
- player->PlayerTalkClass->SendGossipMenu(1, item->GetGUID());
- return true;
- }
- void OnGossipSelect(Player* player, Item* item, uint32 sender, uint32 action)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- int32 GetGobSpawned(uint32 PlrGUID);
- bool DeleteNearestGOB(Player *player);
- bool IsAllowedGOB(uint32 gobjID);
- bool IsInLand(Player *player);
- bool IsLandOwner(Player *player);
- bool HasPackage(uint32 PlrGUID, uint32 package);
- bool SummonTarget(Player *player);
- bool TeleportToLand(Player *player);
- bool IsAllowedCreature(uint32 npcId);
- int32 GetCreatureSpawned(uint32 PlrGUID);
- bool DeleteNPC(Player *player);
- bool SpawnNPC(Player *player, uint32 npcID);
- bool KickTargetFromLand(Player *plrTarget, uint32 ownerName);
- uint32 PlrGUID = player->GetSession()->GetGUIDLow();
- uint32 distance = 10;
- char MsgNPC[50];
- char MsgGOB[50];
- sprintf(MsgNPC, "You can spawn %i more NPCs.", NPC_SPAWN_LIMIT - GetCreatureSpawned(PlrGUID));
- sprintf(MsgGOB, "You can spawn %i more GameObjects.", GAMEOBJECT_SPAWN_LIMIT - GetGobSpawned(PlrGUID));
- switch (action)
- {
- //GOBJS Package 1
- case GOSSIP_ACTION_INFO_DEF + 500:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=1 && CreatureOrObject=1");
- // Determines that the package is 1 and that its an object. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 object_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 object_id = fields[0].GetUInt64();
- std::string object_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", object_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3000 + object_count);
- object_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No objects found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- //NPC's Package 1
- case GOSSIP_ACTION_INFO_DEF + 501:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=1 && CreatureOrObject=0");
- // Determines that the package is 1 and that its a creature. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 creature_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 creature_id = fields[0].GetUInt64();
- std::string creature_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", creature_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2000 + creature_count);
- creature_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No creatures found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 2 Objects
- case GOSSIP_ACTION_INFO_DEF + 502:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=2 && CreatureOrObject=1");
- // Determines that the package is 2 and that its an object. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 object_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 object_id = fields[0].GetUInt64();
- std::string object_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", object_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3100 + object_count);
- object_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No objects found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 2 NPC
- case GOSSIP_ACTION_INFO_DEF + 503:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=2 && CreatureOrObject=0");
- // Determines that the package is 2 and that its a creature. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 creature_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 creature_id = fields[0].GetUInt64();
- std::string creature_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", creature_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2100 + creature_count);
- creature_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No creatures found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 3 Objects
- case GOSSIP_ACTION_INFO_DEF + 504:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=3 && CreatureOrObject=1");
- // Determines that the package is 3 and that its an object. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 object_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 object_id = fields[0].GetUInt64();
- std::string object_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", object_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3200 + object_count);
- object_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No objects found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 3 NPC
- case GOSSIP_ACTION_INFO_DEF + 505:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=3 && CreatureOrObject=0");
- // Determines that the package is 3 and that its a creature. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 creature_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 creature_id = fields[0].GetUInt64();
- std::string creature_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", creature_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2200 + creature_count);
- creature_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No creatures found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 4 Objects
- case GOSSIP_ACTION_INFO_DEF + 506:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=4 && CreatureOrObject=1");
- // Determines that the package is 4 and that its an object. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 object_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 object_id = fields[0].GetUInt64();
- std::string object_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", object_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3300 + object_count);
- object_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No objects found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 4 NPC
- case GOSSIP_ACTION_INFO_DEF + 507:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=4 && CreatureOrObject=0");
- // Determines that the package is 4 and that its a creature. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 creature_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 creature_id = fields[0].GetUInt64();
- std::string creature_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", creature_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2300 + creature_count);
- creature_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No creatures found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // package 5 Object
- case GOSSIP_ACTION_INFO_DEF + 508:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=5 && CreatureOrObject=1");
- // Determines that the package is 5 and that its an object. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 object_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 object_id = fields[0].GetUInt64();
- std::string object_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", object_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3400 + object_count);
- object_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No objects found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- // Package 5 NPC
- case GOSSIP_ACTION_INFO_DEF + 509:
- {
- player->PlayerTalkClass->ClearMenus();
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId, CreaOrObjName FROM player_house_spawns WHERE package=5 && CreatureOrObject=0");
- // Determines that the package is 5 and that its a creature. When the value in CreatureOrObject is equal to 1 its an object, when its equal to 0 its a creature.
- uint32 creature_count = 1;
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- uint64 creature_id = fields[0].GetUInt64();
- std::string creature_name = fields[1].GetString();
- AddGossipItemFor(player, GOSSIP_ICON_CHAT, ("%s ", creature_name), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2400 + creature_count);
- creature_count++;
- } while (result->NextRow());
- AddGossipItemFor(player, 0, "Main Menu", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 999);
- player->PlayerTalkClass->SendGossipMenu(9000, item->GetGUID());
- }
- else
- {
- player->GetSession()->SendNotification("No creatures found.");
- CloseGossipMenuFor(player);
- }
- }
- break;
- //main menu
- case GOSSIP_ACTION_INFO_DEF + 999:
- player->PlayerTalkClass->ClearMenus();
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 1 Objects ", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 500);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 1 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 501);
- if (HasPackage(PlrGUID, 1))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 2 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 502);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 2 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 503);
- }
- if (HasPackage(PlrGUID, 2))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 3 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 504);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 3 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 505);
- }
- if (HasPackage(PlrGUID, 3))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 4 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 506);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 4 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 507);
- }
- if (HasPackage(PlrGUID, 4))
- {
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 5 Objects", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 508);
- AddGossipItemFor(player, GOSSIP_ICON_TRAINER, "Package 5 NPCs", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 509);
- }
- AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Delete closest Object", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- AddGossipItemFor(player, GOSSIP_ICON_INTERACT_1, "Delete an NPC", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Summon a Friend!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- //AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Summon Party/Raid!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Scale NPC.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
- AddGossipItemFor(player, GOSSIP_ICON_TAXI, "Scale Objects.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
- AddGossipItemFor(player, GOSSIP_ICON_BATTLE, "Kick Intruder!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, item->GetGUID());
- break;
- //delete gobj
- case GOSSIP_ACTION_INFO_DEF + 2:
- DeleteNearestGOB(player);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 999);
- break;
- //delete NPC
- case GOSSIP_ACTION_INFO_DEF + 6:
- DeleteNPC(player);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 999);
- break;
- //teleport to house
- case GOSSIP_ACTION_INFO_DEF + 3:
- CloseGossipMenuFor(player);
- TeleportToLand(player);
- break;
- //summon friend
- case GOSSIP_ACTION_INFO_DEF + 4:
- SummonTarget(player);
- CloseGossipMenuFor(player);
- break;
- //kickplr
- case GOSSIP_ACTION_INFO_DEF + 7:
- {
- player->PlayerTalkClass->SendCloseGossip();
- Group* grp = player->GetGroup();
- if (!grp)
- break;
- GroupReference* grpRef = grp->GetFirstMember();
- if (!grpRef)
- break;
- for (grpRef; grpRef != NULL; grpRef = grpRef->next())
- {
- Player* groupMember = grpRef->GetSource();
- ChatHandler(player->GetSession()).PSendSysMessage("Sending summon request to...");
- if (!groupMember)
- continue;
- else
- break;
- if (groupMember == player)
- break;
- player->SetSelection(groupMember->GetGUID());
- player->CastSpell(groupMember, 7720, true);
- ChatHandler(player->GetSession()).PSendSysMessage("%s", groupMember->GetName());
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 8:
- player->PlayerTalkClass->ClearMenus();
- AddGossipItemFor(player, 10, "Set Scale 0.25", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
- AddGossipItemFor(player, 10, "Set Scale 0.50", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
- AddGossipItemFor(player, 10, "Set Scale 1.00", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
- AddGossipItemFor(player, 10, "Set Scale 1.50", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
- AddGossipItemFor(player, 10, "Set Scale 1.75", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
- player->PlayerTalkClass->SendGossipMenu(1, item->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 9:
- {
- if (IsInLand(player))
- {
- Unit* unit = player->GetSelectedUnit();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return;
- }
- Creature* target = unit->ToCreature();
- /*if (!target || !target->GetTypeId() == TYPEID_UNIT || !IsAllowedCreature(target->GetEntry()))
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Please select a valid creature within your land area.");
- player->PlayerTalkClass->SendCloseGossip();
- return false;
- }*/
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.25);
- target->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 0.25", target->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- //return true;
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 10:
- {
- if (IsInLand(player))
- {
- Unit* unit = player->GetSelectedUnit();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return;
- }
- Creature* target = unit->ToCreature();
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.50);
- target->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 0.50", target->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- //return true;
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 11:
- {
- if (IsInLand(player))
- {
- Unit* unit = player->GetSelectedUnit();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return;
- }
- Creature* target = unit->ToCreature();
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.00);
- target->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.00", target->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 12:
- {
- if (IsInLand(player))
- {
- Unit* unit = player->GetSelectedUnit();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return;
- }
- Creature* target = unit->ToCreature();
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.50);
- target->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.50", target->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 13:
- {
- if (IsInLand(player))
- {
- Unit* unit = player->GetSelectedUnit();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return;
- }
- Creature* target = unit->ToCreature();
- target->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.75);
- target->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.75", target->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 14:
- player->PlayerTalkClass->ClearMenus();
- AddGossipItemFor(player, 10, "Set Scale 0.25", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
- AddGossipItemFor(player, 10, "Set Scale 0.50", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16);
- AddGossipItemFor(player, 10, "Set Scale 1.00", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17);
- AddGossipItemFor(player, 10, "Set Scale 1.50", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18);
- AddGossipItemFor(player, 10, "Set Scale 1.75", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19);
- player->PlayerTalkClass->SendGossipMenu(1, item->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF + 15:
- {
- if (IsInLand(player))
- {
- GameObject* object = GetNearestGob(player);
- if (!object)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return;
- }
- if (object->GetDistance(player) > distance)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return;
- }
- object->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.25);
- object->DestroyForNearbyPlayers();
- object->UpdateObjectVisibility();
- object->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 0.25", object->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 16:
- {
- if (IsInLand(player))
- {
- GameObject* object = GetNearestGob(player);
- if (!object)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return;
- }
- if (object->GetDistance(player) > distance)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return;
- }
- object->SetFloatValue(OBJECT_FIELD_SCALE_X, 0.50);
- object->DestroyForNearbyPlayers();
- object->UpdateObjectVisibility();
- object->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 0.50", object->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 17:
- {
- if (IsInLand(player))
- {
- GameObject* object = GetNearestGob(player);
- if (!object)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return;
- }
- if (object->GetDistance(player) > distance)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return;
- }
- object->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.00);
- object->DestroyForNearbyPlayers();
- object->UpdateObjectVisibility();
- object->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.00", object->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 18:
- {
- if (IsInLand(player))
- {
- GameObject* object = GetNearestGob(player);
- if (!object)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return;
- }
- if (object->GetDistance(player) > distance)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return;
- }
- object->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.50);
- object->DestroyForNearbyPlayers();
- object->UpdateObjectVisibility();
- object->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.50", object->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 19:
- {
- if (IsInLand(player))
- {
- GameObject* object = GetNearestGob(player);
- if (!object)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return;
- }
- if (object->GetDistance(player) > distance)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return;
- }
- object->SetFloatValue(OBJECT_FIELD_SCALE_X, 1.75);
- object->DestroyForNearbyPlayers();
- object->UpdateObjectVisibility();
- object->SaveToDB();
- ChatHandler(player->GetSession()).PSendSysMessage("You have modified %s, and changed the size to: 1.75", object->GetName());
- player->PlayerTalkClass->SendCloseGossip();
- return;
- }
- else
- {
- TeleportToLand(player);
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 5:
- {
- player->PlayerTalkClass->SendCloseGossip();
- Player* selPlr = player->GetSelectedPlayer();
- if (!selPlr)
- break;
- if (selPlr != player)
- {
- ChatHandler(selPlr->GetSession()).PSendSysMessage("You have been kicked off %s land!", player->GetName());
- KickTargetFromLand(selPlr, player->GetSession()->GetGUIDLow());
- }
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 801:
- teleportToHouse(player, 1);
- break;
- case GOSSIP_ACTION_INFO_DEF + 802:
- teleportToHouse(player, 2);
- break;
- case GOSSIP_ACTION_INFO_DEF + 803:
- teleportToHouse(player, 3);
- break;
- case GOSSIP_ACTION_INFO_DEF + 804:
- teleportToHouse(player, 4);
- break;
- case GOSSIP_ACTION_INFO_DEF + 805:
- teleportToHouse(player, 5);
- break;
- case GOSSIP_ACTION_INFO_DEF + 806:
- teleportToHouse(player, 6);
- break;
- case GOSSIP_ACTION_INFO_DEF + 807:
- teleportToHouse(player, 7);
- break;
- case GOSSIP_ACTION_INFO_DEF + 808:
- teleportToHouse(player, 8);
- break;
- case GOSSIP_ACTION_INFO_DEF + 809:
- teleportToHouse(player, 9);
- break;
- case GOSSIP_ACTION_INFO_DEF + 810:
- teleportToHouse(player, 10);
- break;
- // Spawning creatures package 1
- case GOSSIP_ACTION_INFO_DEF + 2001:
- SpawnCreaturePackage1(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2002:
- SpawnCreaturePackage1(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2003:
- SpawnCreaturePackage1(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2004:
- SpawnCreaturePackage1(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2005:
- SpawnCreaturePackage1(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2006:
- SpawnCreaturePackage1(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2007:
- SpawnCreaturePackage1(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2008:
- SpawnCreaturePackage1(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2009:
- SpawnCreaturePackage1(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2010:
- SpawnCreaturePackage1(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2011:
- SpawnCreaturePackage1(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2012:
- SpawnCreaturePackage1(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2013:
- SpawnCreaturePackage1(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2014:
- SpawnCreaturePackage1(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2015:
- SpawnCreaturePackage1(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 501);
- break;
- // Spawning creatures package 2
- case GOSSIP_ACTION_INFO_DEF + 2101:
- SpawnCreaturePackage2(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2102:
- SpawnCreaturePackage2(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2103:
- SpawnCreaturePackage2(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2104:
- SpawnCreaturePackage2(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2105:
- SpawnCreaturePackage2(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2106:
- SpawnCreaturePackage2(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2107:
- SpawnCreaturePackage2(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2108:
- SpawnCreaturePackage2(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2109:
- SpawnCreaturePackage2(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2110:
- SpawnCreaturePackage2(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2111:
- SpawnCreaturePackage2(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2112:
- SpawnCreaturePackage2(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2113:
- SpawnCreaturePackage2(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2114:
- SpawnCreaturePackage2(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2115:
- SpawnCreaturePackage2(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 503);
- break;
- // Spawning creatures package 3
- case GOSSIP_ACTION_INFO_DEF + 2201:
- SpawnCreaturePackage3(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2202:
- SpawnCreaturePackage3(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2203:
- SpawnCreaturePackage3(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2204:
- SpawnCreaturePackage3(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2205:
- SpawnCreaturePackage3(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2206:
- SpawnCreaturePackage3(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2207:
- SpawnCreaturePackage3(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2208:
- SpawnCreaturePackage3(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2209:
- SpawnCreaturePackage3(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2210:
- SpawnCreaturePackage3(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2211:
- SpawnCreaturePackage3(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2212:
- SpawnCreaturePackage3(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2213:
- SpawnCreaturePackage3(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2214:
- SpawnCreaturePackage3(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2215:
- SpawnCreaturePackage3(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 505);
- break;
- // Spawning creatures package 4
- case GOSSIP_ACTION_INFO_DEF + 2301:
- SpawnCreaturePackage4(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2302:
- SpawnCreaturePackage4(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2303:
- SpawnCreaturePackage4(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2304:
- SpawnCreaturePackage4(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2305:
- SpawnCreaturePackage4(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2306:
- SpawnCreaturePackage4(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2307:
- SpawnCreaturePackage4(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2308:
- SpawnCreaturePackage4(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2309:
- SpawnCreaturePackage4(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2310:
- SpawnCreaturePackage4(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2311:
- SpawnCreaturePackage4(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2312:
- SpawnCreaturePackage4(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2313:
- SpawnCreaturePackage4(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2314:
- SpawnCreaturePackage4(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2315:
- SpawnCreaturePackage4(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 507);
- break;
- // Spawning creatures package 5
- case GOSSIP_ACTION_INFO_DEF + 2401:
- SpawnCreaturePackage5(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2402:
- SpawnCreaturePackage5(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2403:
- SpawnCreaturePackage5(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2404:
- SpawnCreaturePackage5(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2405:
- SpawnCreaturePackage5(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2406:
- SpawnCreaturePackage5(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2407:
- SpawnCreaturePackage5(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2408:
- SpawnCreaturePackage5(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2409:
- SpawnCreaturePackage5(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2410:
- SpawnCreaturePackage5(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2411:
- SpawnCreaturePackage5(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2412:
- SpawnCreaturePackage5(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2413:
- SpawnCreaturePackage5(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2414:
- SpawnCreaturePackage5(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- case GOSSIP_ACTION_INFO_DEF + 2415:
- SpawnCreaturePackage5(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 509);
- break;
- // Spawning Objects Package 1
- case GOSSIP_ACTION_INFO_DEF + 3001:
- SpawnObjectPackage1(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3002:
- SpawnObjectPackage1(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3003:
- SpawnObjectPackage1(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3004:
- SpawnObjectPackage1(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3005:
- SpawnObjectPackage1(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3006:
- SpawnObjectPackage1(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3007:
- SpawnObjectPackage1(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3008:
- SpawnObjectPackage1(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3009:
- SpawnObjectPackage1(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3010:
- SpawnObjectPackage1(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3011:
- SpawnObjectPackage1(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3012:
- SpawnObjectPackage1(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3013:
- SpawnObjectPackage1(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3014:
- SpawnObjectPackage1(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3015:
- SpawnObjectPackage1(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 500);
- break;
- // second package
- case GOSSIP_ACTION_INFO_DEF + 3101:
- SpawnObjectPackage2(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3102:
- SpawnObjectPackage2(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3103:
- SpawnObjectPackage2(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3104:
- SpawnObjectPackage2(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3105:
- SpawnObjectPackage2(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3106:
- SpawnObjectPackage2(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3107:
- SpawnObjectPackage2(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3108:
- SpawnObjectPackage2(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3109:
- SpawnObjectPackage2(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3110:
- SpawnObjectPackage2(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3111:
- SpawnObjectPackage2(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3112:
- SpawnObjectPackage2(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3113:
- SpawnObjectPackage2(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3114:
- SpawnObjectPackage2(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3115:
- SpawnObjectPackage2(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 502);
- break;
- // third package
- case GOSSIP_ACTION_INFO_DEF + 3201:
- SpawnObjectPackage3(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3202:
- SpawnObjectPackage3(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3203:
- SpawnObjectPackage3(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3204:
- SpawnObjectPackage3(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3205:
- SpawnObjectPackage3(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3206:
- SpawnObjectPackage3(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3207:
- SpawnObjectPackage3(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3208:
- SpawnObjectPackage3(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3209:
- SpawnObjectPackage3(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3210:
- SpawnObjectPackage3(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3211:
- SpawnObjectPackage3(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3212:
- SpawnObjectPackage3(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3213:
- SpawnObjectPackage3(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3214:
- SpawnObjectPackage3(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3215:
- SpawnObjectPackage3(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 504);
- break;
- // package 4
- case GOSSIP_ACTION_INFO_DEF + 3301:
- SpawnObjectPackage4(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3302:
- SpawnObjectPackage4(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3303:
- SpawnObjectPackage4(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3304:
- SpawnObjectPackage4(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3305:
- SpawnObjectPackage4(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3306:
- SpawnObjectPackage4(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3307:
- SpawnObjectPackage4(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3308:
- SpawnObjectPackage4(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3309:
- SpawnObjectPackage4(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3310:
- SpawnObjectPackage4(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3311:
- SpawnObjectPackage4(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3312:
- SpawnObjectPackage4(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3313:
- SpawnObjectPackage4(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3314:
- SpawnObjectPackage4(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3315:
- SpawnObjectPackage4(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 506);
- break;
- // package 5
- case GOSSIP_ACTION_INFO_DEF + 3401:
- SpawnObjectPackage5(player, 1);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3402:
- SpawnObjectPackage5(player, 2);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3403:
- SpawnObjectPackage5(player, 3);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3404:
- SpawnObjectPackage5(player, 4);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3405:
- SpawnObjectPackage5(player, 5);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3406:
- SpawnObjectPackage5(player, 6);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3407:
- SpawnObjectPackage5(player, 7);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3408:
- SpawnObjectPackage5(player, 8);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3409:
- SpawnObjectPackage5(player, 9);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3410:
- SpawnObjectPackage5(player, 10);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3411:
- SpawnObjectPackage5(player, 11);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3412:
- SpawnObjectPackage5(player, 12);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3413:
- SpawnObjectPackage5(player, 13);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3414:
- SpawnObjectPackage5(player, 14);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- case GOSSIP_ACTION_INFO_DEF + 3415:
- SpawnObjectPackage5(player, 15);
- OnGossipSelect(player, item, item->GetGUID(), GOSSIP_ACTION_INFO_DEF + 508);
- break;
- }
- return;
- }
- bool teleportToHouse(Player* player, uint32 selection)
- {
- if (player->IsInCombat() || player->GetMap()->IsBattlegroundOrArena() || player->GetMap()->IsDungeon())
- {
- return false;
- }
- QueryResult result = CharacterDatabase.PQuery("SELECT map_id, spawn_x, spawn_y, spawn_z, spawn_o FROM player_house_taken WHERE player_guid = %u", player->GetSession()->GetGUIDLow());
- uint32 house_count = 1;
- do
- {
- if (house_count == selection)
- {
- Field *fields = result->Fetch();
- player->TeleportTo(fields[0].GetUInt32(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat(), fields[4].GetFloat());
- ChatHandler(player->GetSession()).SendSysMessage("Welcome Home!");
- return true;
- }
- house_count++;
- } while (result->NextRow());
- return false;
- }
- // First package
- bool SpawnObjectPackage1(Player* player, uint32 selection)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=1 and CreatureOrObject=1 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 ObjId = fields[0].GetUInt64();
- SpawnGOB(player, ObjId);
- }
- while (result->NextRow());
- return false;
- }
- bool SpawnCreaturePackage1(Player* player, uint32 selection)
- {
- bool SpawnNPC(Player *player, uint32 npcID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=1 and CreatureOrObject=0 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 CreaId = fields[0].GetUInt64();
- SpawnNPC(player, CreaId);
- } while (result->NextRow());
- return false;
- }
- // second package
- bool SpawnObjectPackage2(Player* player, uint32 selection)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=2 and CreatureOrObject=1 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 ObjId = fields[0].GetUInt64();
- SpawnGOB(player, ObjId);
- } while (result->NextRow());
- return false;
- }
- bool SpawnCreaturePackage2(Player* player, uint32 selection)
- {
- bool SpawnNPC(Player *player, uint32 npcID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=2 and CreatureOrObject=0 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 CreaId = fields[0].GetUInt64();
- SpawnNPC(player, CreaId);
- } while (result->NextRow());
- return false;
- }
- // third package
- bool SpawnObjectPackage3(Player* player, uint32 selection)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=3 and CreatureOrObject=1 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 ObjId = fields[0].GetUInt64();
- SpawnGOB(player, ObjId);
- } while (result->NextRow());
- return false;
- }
- bool SpawnCreaturePackage3(Player* player, uint32 selection)
- {
- bool SpawnNPC(Player *player, uint32 npcID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=3 and CreatureOrObject=0 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 CreaId = fields[0].GetUInt64();
- SpawnNPC(player, CreaId);
- } while (result->NextRow());
- return false;
- }
- // forth package
- bool SpawnObjectPackage4(Player* player, uint32 selection)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=4 and CreatureOrObject=1 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 ObjId = fields[0].GetUInt64();
- SpawnGOB(player, ObjId);
- } while (result->NextRow());
- return false;
- }
- bool SpawnCreaturePackage4(Player* player, uint32 selection)
- {
- bool SpawnNPC(Player *player, uint32 npcID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=4 and CreatureOrObject=0 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 CreaId = fields[0].GetUInt64();
- SpawnNPC(player, CreaId);
- } while (result->NextRow());
- return false;
- }
- //fith package
- bool SpawnObjectPackage5(Player* player, uint32 selection)
- {
- bool SpawnGOB(Player *player, uint32 itemID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=5 and CreatureOrObject=1 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 ObjId = fields[0].GetUInt64();
- SpawnGOB(player, ObjId);
- } while (result->NextRow());
- return false;
- }
- bool SpawnCreaturePackage5(Player* player, uint32 selection)
- {
- bool SpawnNPC(Player *player, uint32 npcID);
- QueryResult result = CharacterDatabase.PQuery("SELECT CreaOrObjId FROM player_house_spawns WHERE package=5 and CreatureOrObject=0 and id=%u", selection);
- if (result)
- do
- {
- Field *fields = result->Fetch();
- uint64 CreaId = fields[0].GetUInt64();
- SpawnNPC(player, CreaId);
- } while (result->NextRow());
- return false;
- }
- };
- bool SummonTarget(Player *player)
- {
- Player *plrFriend = player->GetSelectedPlayer();
- if (plrFriend)
- {
- if (plrFriend->IsInCombat())
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Your friend is in combat!");
- return false;
- }
- if (plrFriend->GetMap()->IsBattlegroundOrArena())
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Your friend is in a battleground!");
- return false;
- }
- if (plrFriend->GetMap()->IsDungeon())
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Your friend is in a dungeon!");
- return false;
- }
- if (plrFriend->IsBeingTeleported())
- return false;
- if (plrFriend->isDead())
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Your friend is dead :c");
- return false;
- }
- if (player->IsInPartyWith(plrFriend) || player->IsInRaidWith(plrFriend))
- {
- player->CastSpell(plrFriend, 7720, true);
- ChatHandler(player->GetSession()).PSendSysMessage("Summon request sent!");
- return true;
- }
- else
- ChatHandler(player->GetSession()).PSendSysMessage("You must invite this person to your party first!");
- }
- else
- ChatHandler(player->GetSession()).PSendSysMessage("Your target must be in party and on the same map as you.");
- return false;
- }
- bool IsInLand(Player *player)
- {
- float playerx = player->GetPositionX();
- float playery = player->GetPositionY();
- uint32 mapid_multi = player->GetMap()->GetId();
- float top_x;
- float bottom_x;
- float left_y;
- float right_y;
- int mapid;
- bool LandOwner;
- QueryResult result = CharacterDatabase.PQuery("SELECT map_id, bottom_x, top_x, left_y, right_y FROM player_house_taken WHERE player_guid = %u AND map_id=%u", player->GetSession()->GetGUIDLow(), mapid_multi);
- if (!result)
- return false;
- do
- {
- Field *fields = result->Fetch();
- mapid = fields[0].GetInt32();
- bottom_x = fields[1].GetFloat();
- top_x = fields[2].GetFloat();
- left_y = fields[3].GetFloat();
- right_y = fields[4].GetFloat();
- if ((playerx < bottom_x) && (playerx > top_x) && (playery < left_y) && (playery > right_y))
- {
- LandOwner = true;
- return true;
- }
- } while (result->NextRow());
- return false;
- }
- bool KickTargetFromLand(Player *plrTarget, uint32 ownerName)
- {
- if (plrTarget)
- {
- float playerx = plrTarget->GetPositionX();
- float playery = plrTarget->GetPositionY();
- uint32 mapid_multi = plrTarget->GetMap()->GetId();
- float top_x;
- float bottom_x;
- float left_y;
- float right_y;
- int mapid;
- QueryResult result = CharacterDatabase.PQuery("SELECT map_id, bottom_x, top_x, left_y, right_y FROM player_house_taken WHERE player_guid = %u AND map_id=%u", ownerName, mapid_multi);
- do
- {
- Field *fields = result->Fetch();
- mapid = fields[0].GetInt32();
- bottom_x = fields[1].GetFloat();
- top_x = fields[2].GetFloat();
- left_y = fields[3].GetFloat();
- right_y = fields[4].GetFloat();
- if (playerx < bottom_x && playerx > top_x && playery < left_y && playery > right_y)
- {
- if (plrTarget)
- {
- plrTarget->TeleportTo(571, 5807.841309f, 588.128540f, 660.939392f, 1.678679f);
- }
- return true;
- }
- else
- {
- ChatHandler(plrTarget->GetSession()).PSendSysMessage("%s is not located on your land!", plrTarget->GetName());
- }
- } while (result->NextRow());
- }
- return false;
- }
- bool IsLandOwner(Player *player)
- {
- bool LandOwner = false;
- QueryResult result;
- if (!LandOwner)
- {
- result = CharacterDatabase.PQuery("SELECT * FROM player_house_taken WHERE player_guid = %u", player->GetSession()->GetGUIDLow());
- if (result)
- LandOwner = true;
- }
- return LandOwner;
- }
- bool TeleportToLand(Player *player)
- {
- if (player->IsInCombat() || player->GetMap()->IsBattlegroundOrArena() || player->GetMap()->IsDungeon())
- {
- return false;
- }
- QueryResult spawnresult;
- spawnresult = CharacterDatabase.PQuery("SELECT map_id, spawn_x, spawn_y, spawn_z, spawn_o FROM player_house_taken WHERE player_guid = %u", player->GetSession()->GetGUIDLow());
- if (spawnresult)
- {
- Field *fields = spawnresult->Fetch();
- player->TeleportTo(fields[0].GetUInt32(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat(), fields[4].GetFloat());
- ChatHandler(player->GetSession()).SendSysMessage("Welcome Home!");
- CloseGossipMenuFor(player);
- return true;
- }
- else
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not locate your spawn! Please contact a GM!");
- }
- return false;
- }
- /*
- *****
- GAMEOBJECT METHODS
- *****
- */
- bool IsAllowedGOB(uint32 gobjID)
- {
- QueryResult result;
- result = CharacterDatabase.PQuery("SELECT * FROM player_house_objects where gobjID = %u", gobjID);
- if (result)
- return true;
- return false;
- }
- bool DeleteNearestGOB(Player *player)
- {
- int32 GetGobSpawned(uint32 PlrGUID);
- if (!IsInLand(player))
- {
- TeleportToLand(player);
- return false;
- }
- /*if(!IsAllowedGOB(gameentry))
- {
- ChatHandler(player->GetSession()).PSendSysMessage("That object is not able to be deleted. Contact an administrator to get it removed.");
- return false;
- }*/
- GameObject* gObj = GetNearestGob(player);
- if (!gObj)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Could not find gameobject.");
- return false;
- }
- if (gObj->GetDistance(player) > 10)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("No GameObject found within 10 yards. Try moving closer to the object");
- return true;
- }
- ChatHandler(player->GetSession()).PSendSysMessage("%s was deleted!", gObj->GetName());
- gObj->SetRespawnTime(0);
- gObj->Delete();
- gObj->DeleteFromDB();
- if (GetGobSpawned(player->GetSession()->GetGUIDLow()) > 0)
- CharacterDatabase.PExecute("UPDATE player_house SET items_spawned = items_spawned - 1 WHERE player_guid = %u", player->GetSession()->GetGUIDLow());
- return true;
- }
- bool HasPackage(uint32 PlrGUID, uint32 package)
- {
- QueryResult result = CharacterDatabase.PQuery("SELECT * FROM player_house WHERE package%u = 1 AND player_guid = %u", package, PlrGUID);
- if (result)
- return true;
- return false;
- }
- bool SpawnGOB(Player *player, uint32 itemID)
- {
- int32 GetGobSpawned(uint32 PlrGUID);
- if (IsInLand(player))
- {
- if (GetGobSpawned(player->GetSession()->GetGUIDLow()) < GAMEOBJECT_SPAWN_LIMIT)
- {
- Map *map = player->GetMap();
- GameObject* object = new GameObject();
- ObjectGuid::LowType guidLow = map->GenerateLowGuid<HighGuid::GameObject>();
- G3D::Quat rot = G3D::Matrix3::fromEulerAnglesZYX(player->GetOrientation(), 0.f, 0.f);
- if (!object->Create(guidLow, itemID, map, player->GetPhaseMaskForSpawn(), *player, rot, 255, GO_STATE_READY))
- {
- delete object;
- return false;
- }
- // fill the gameobject data and save to the db
- object->SaveToDB(map->GetId(), (1 << map->GetSpawnMode()), player->GetPhaseMaskForSpawn());
- guidLow = object->GetSpawnId();
- // delete the old object and do a clean load from DB with a fresh new GameObject instance.
- // this is required to avoid weird behavior and memory leaks
- delete object;
- object = new GameObject();
- // this will generate a new guid if the object is in an instance
- if (!object->LoadGameObjectFromDB(guidLow, map))
- {
- delete object;
- return false;
- }
- /// @todo is it really necessary to add both the real and DB table guid here ?
- sObjectMgr->AddGameobjectToGrid(guidLow, sObjectMgr->GetGOData(guidLow));
- CharacterDatabase.PExecute("UPDATE player_house SET items_spawned = items_spawned + 1 WHERE player_guid = %u", player->GetSession()->GetGUIDLow());
- }
- else
- {
- ChatHandler(player->GetSession()).PSendSysMessage("GameObject spawn limit reached!");
- }
- }
- else
- {
- TeleportToLand(player);
- }
- return true;
- }
- int32 GetGobSpawned(uint32 PlrGUID)
- {
- int32 SpawnCount = 0;
- QueryResult result = CharacterDatabase.PQuery("SELECT items_spawned - items_bonus FROM player_house WHERE player_guid = %u", PlrGUID);
- if (result)
- SpawnCount = (*result)[0].GetInt32();
- return SpawnCount;
- }
- /*
- -------
- END GAMEOBJECT METHODS
- -----
- */
- /*
- -----
- ADD NPC METHODS
- ------
- */
- bool IsAllowedCreature(uint32 npcId)
- {
- QueryResult result;
- result = CharacterDatabase.PQuery("SELECT * FROM player_house_npcs where npcId = %u", npcId);
- if (result)
- return true;
- return false;
- }
- int32 GetCreatureSpawned(uint32 PlrGUID)
- {
- int32 NPC_Count = 0;
- QueryResult result = CharacterDatabase.PQuery("SELECT npcs_spawned - npcs_bonus FROM player_house WHERE player_guid = %u", PlrGUID);
- if (result)
- NPC_Count = (*result)[0].GetInt32();
- return NPC_Count;
- }
- bool SpawnNPC(Player *player, uint32 npcID)
- {
- uint32 PlrGUID = player->GetSession()->GetGUIDLow();
- if (IsInLand(player))
- {
- if (GetCreatureSpawned(PlrGUID) < NPC_SPAWN_LIMIT)
- {
- Map* map = player->GetMap();
- Creature* creature = new Creature();
- if (!creature->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, player->GetPhaseMaskForSpawn(), npcID, player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation()))
- {
- delete creature;
- return true;
- }
- creature->SaveToDB(player->GetMapId(), (1 << map->GetSpawnMode()), player->GetPhaseMaskForSpawn());
- ObjectGuid::LowType db_guid = creature->GetSpawnId();
- creature->CleanupsBeforeDelete();
- delete creature;
- creature = new Creature();
- if (!creature->LoadCreatureFromDB(db_guid, map))
- {
- delete creature;
- return true;
- }
- sObjectMgr->AddCreatureToGrid(db_guid, sObjectMgr->GetCreatureData(db_guid));
- CharacterDatabase.PExecute("UPDATE player_house SET npcs_spawned = npcs_spawned + 1 WHERE player_guid = %u", PlrGUID);
- }
- else
- {
- ChatHandler(player->GetSession()).PSendSysMessage("NPC spawn limit reached!");
- }
- }
- else
- {
- TeleportToLand(player);
- }
- return true;
- }
- bool DeleteNPC(Player *player)
- {
- // Creature* creep = player->GetSelectedUnit()->ToCreature();
- Unit* unit = player->GetSelectedUnit();
- uint32 PlrGUID = player->GetSession()->GetGUIDLow();
- if (!unit || unit->GetTypeId() != TYPEID_UNIT)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("You need to select an NPC.");
- return false;
- }
- Creature* creep = unit->ToCreature();
- if (!creep)
- return false;
- if (creep->IsPet() || creep->IsHunterPet() || creep->IsControlledByPlayer() || creep->IsSpiritHealer() || creep->IsSummon())
- return false;
- /*if(!IsAllowedCreature(creep->GetEntry()))
- {
- ChatHandler(player->GetSession()).PSendSysMessage("Your not allowed to delete that creature.");
- return false;
- }*/
- float playerx = creep->GetPositionX();
- float playery = creep->GetPositionY();
- float top_x;
- float bottom_x;
- float left_y;
- float right_y;
- QueryResult result = CharacterDatabase.PQuery("SELECT bottom_x, top_x, left_y, right_y FROM player_house_taken WHERE player_guid = %u AND map_id=%u", PlrGUID, player->GetMap()->GetId());
- do
- {
- Field *fields = result->Fetch();
- bottom_x = fields[0].GetFloat();
- top_x = fields[1].GetFloat();
- left_y = fields[2].GetFloat();
- right_y = fields[3].GetFloat();
- if (playerx < bottom_x && playerx > top_x && playery < left_y && playery > right_y)
- {
- ChatHandler(player->GetSession()).PSendSysMessage("%s has been deleted!", creep->GetName());
- creep->CombatStop();
- creep->DeleteFromDB();
- creep->AddObjectToRemoveList();
- CharacterDatabase.PExecute("UPDATE player_house SET npcs_spawned = npcs_spawned - 1 WHERE player_guid = %u", PlrGUID);
- return true;
- }
- }
- while (result->NextRow());
- ChatHandler(player->GetSession()).PSendSysMessage("%s is not located on your land!", creep->GetName());
- return false;
- }
- class playerhouse_commandscript : public CommandScript
- {
- public:
- playerhouse_commandscript() : CommandScript("playerhouse_commandscript") { }
- std::vector<ChatCommand> GetCommands() const override
- {
- static std::vector<ChatCommand> playerhouseCommandTable =
- {
- { "add", rbac::RBAC_PERM_COMMAND_GOBJECT, false, &HandleAddPlayerHouse, "" },
- { "fix", rbac::RBAC_PERM_COMMAND_GOBJECT, false, &HandleFixPlayerHouse, "" }
- };
- static std::vector<ChatCommand> commandTable =
- {
- { "house", rbac::RBAC_PERM_COMMAND_GOBJECT, false, NULL, "", playerhouseCommandTable }
- };
- return commandTable;
- }
- static bool HandleFixPlayerHouse(ChatHandler* handler, const char* /*args*/)
- {
- Player* player = handler->GetSession()->GetPlayer();
- if (player->GetSession()->GetSecurity() == SEC_ADMINISTRATOR)
- {
- CharacterDatabase.PExecute("ALTER TABLE player_house_available DROP id");
- CharacterDatabase.PExecute("ALTER TABLE player_house_available AUTO_INCREMENT = 1");
- CharacterDatabase.PExecute("ALTER TABLE player_house_available ADD id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
- handler->PSendSysMessage("Houses are now set in order!");
- }
- else
- {
- handler->PSendSysMessage("Only rank 10 people can use this command.");
- return false;
- }
- return true;
- }
- static bool HandleAddPlayerHouse(ChatHandler* handler, char const* args)
- {
- if (!*args)
- return false;
- char* tailStr = *args != '"' ? strtok(NULL, "") : (char*)args;
- if (!tailStr)
- return false;
- char* nameStr = handler->extractQuotedArg(tailStr);
- if (!nameStr)
- return false;
- std::string HouseName = nameStr;
- char* _price = strtok(NULL, " ");
- uint32 price;
- if (!_price)
- price = 10;
- else
- price = atoi(_price);
- if (!price || price == NULL || price <= 0)
- price = 10;
- //Check to see how many locations are in the DB (10max)
- QueryResult result = CharacterDatabase.PQuery("SELECT * FROM player_house_available");
- if (result)
- {
- if (result->GetRowCount() >= 20)
- {
- handler->PSendSysMessage("You can only have 20 active locations at a time!");
- return true;
- }
- }
- //Cordinates for available house
- float top_x = 0;
- float bottom_x = 0;
- float left_y = 0;
- float right_y = 0;
- //Varibles used throughout code
- Player* player = handler->GetSession()->GetPlayer();
- float player_x = player->GetPositionX();
- float player_y = player->GetPositionY();
- float player_z = player->GetPositionZ();
- uint32 mapid = player->GetMapId();
- Map* map = player->GetMap();
- //Check to see if you are to close to available players land
- result = CharacterDatabase.PQuery("SELECT bottom_x, top_x, left_y, right_y FROM player_house_available WHERE map_id= '%u'", mapid);
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- bottom_x = fields[0].GetFloat() - 40.0;
- top_x = fields[1].GetFloat() + 40.0;
- left_y = fields[2].GetFloat() - 40.0;
- right_y = fields[3].GetFloat() + 40.0;
- if (player_x > bottom_x && player_x < top_x && player_y > left_y && player_y < right_y)
- {
- handler->PSendSysMessage("You are to close to another players reserved land! Please move further away and try again.");
- return true;
- }
- } while (result->NextRow());
- }
- //Check to see if occupied land is close to where youre located.
- result = CharacterDatabase.PQuery("SELECT bottom_x, top_x, left_y, right_y FROM player_house_taken WHERE map_id= '%u'", mapid);
- if (result)
- {
- do
- {
- Field *fields = result->Fetch();
- bottom_x = fields[0].GetFloat() - 40.0;
- top_x = fields[1].GetFloat() + 40.0;
- left_y = fields[2].GetFloat() - 40.0;
- right_y = fields[3].GetFloat() + 40.0;
- if (player_x > bottom_x && player_x < top_x && player_y > left_y && player_y < right_y)
- {
- handler->PSendSysMessage("You are to close to another players land! Please move further away and try again.");
- return true;
- }
- } while (result->NextRow());
- }
- //Set bottom_x, left_y as highest value
- if ((player_x - 23) >(player_x + 23))
- {
- bottom_x = player_x - 23;
- top_x = player_x + 23;
- }
- else
- {
- bottom_x = player_x + 23;
- top_x = player_x - 23;
- }
- if ((player_y + 23) > (player_y - 23))
- {
- left_y = player_y + 23;
- right_y = player_y - 23;
- }
- else
- {
- left_y = player_y - 23;
- right_y = player_y + 23;
- }
- Creature* creature = new Creature();
- if (!creature->Create(map->GenerateLowGuid<HighGuid::Unit>(), map, player->GetPhaseMaskForSpawn(), 555555, player_x, player_y, player_z + 3, 0))
- {
- delete creature;
- return false;
- }
- creature->SaveToDB(mapid, (1 << map->GetSpawnMode()), player->GetPhaseMaskForSpawn());
- ObjectGuid::LowType db_guid = creature->GetSpawnId();
- // To call _LoadGoods(); _LoadQuests(); CreateTrainerSpells()
- // current "creature" variable is deleted and created fresh new, otherwise old values might trigger asserts or cause undefined behavior
- creature->CleanupsBeforeDelete();
- delete creature;
- creature = new Creature();
- if (!creature->LoadCreatureFromDB(db_guid, map))
- {
- delete creature;
- return false;
- }
- sObjectMgr->AddCreatureToGrid(db_guid, sObjectMgr->GetCreatureData(db_guid));
- CharacterDatabase.EscapeString(HouseName);
- //Insert data into available houses
- CharacterDatabase.PExecute("INSERT INTO player_house_available (zone_name, price, map_id, bottom_x, top_x, left_y, right_y, spawn_x, spawn_y, spawn_z, spawn_o, c_guid) VALUES (\"%s\", %u, %u, %f, %f, %f, %f, %f, %f, %f, %f, %u)",
- HouseName.c_str(), price, mapid, bottom_x, top_x,
- left_y, right_y, player_x, player_y,
- player->GetPositionZ(), player->GetOrientation(), db_guid);
- handler->PSendSysMessage("Success! %s has been added for %u tokens to the database as possible land!", HouseName, price);
- return true;
- }
- };
- /*
- -----
- END NPC METHODS
- ---
- */
- void AddSC_npc_player_house()
- {
- new npc_player_house();
- new playerhouse_commandscript();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement