StickyIcky
25-07-08, 02:37 AM
This is a Portable Teleporter.(An item that will teleport you places)
/****Made by WigSplitta****/
#include "StdAfx.h"
#ifdef WIN32
#pragma warning(disable:4305) // warning C4305: 'argument' : truncation from 'double' to 'float'
#endif
class SCRIPT_DECL Pwarper : public GossipScript
{
public:
void GossipHello(Object * pObject, Player* plr, bool AutoSend);
void GossipSelectOption(Object * pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code);
void GossipEnd(Object * pObject, Player* plr);
void Destroy()
{
delete this;
}
};
void Pwarper::GossipHello(Object* pObject, Player * plr, bool AutoSend)
{
if(plr->CombatStatus.IsInCombat())
{
plr->BroadcastMessage("You are in combat!");
}
if(!plr->CombatStatus.IsInCombat())
{
GossipMenu *Menu;
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, plr);
if (Plr->GetTeam() > 0)
{
//Horde Locations
Menu->AddItem(0, "Orgrimar", 5);
Menu->AddItem(0, "Thunder Bluff", 6);
Menu->AddItem(0, "Silvermoon City", 7);
Menu->AddItem(0, "Undercity", 8);
}
else
{
//Alliance Locations
Menu->AddItem(0, "Stormwind", 1);
Menu->AddItem(0, "Ironforge", 2);
Menu->AddItem(0, "Exodar", 3);
Menu->AddItem(0, "Darnassus", 4);
}
if(Plr->getLevel() > 58)
{
Menu->AddItem(0, "Shattrath", 9);
}
if(AutoSend)
Menu->SendTo(plr);
}
};
//Defining Cases
void Pwarper::GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code)
{
GossipMenu * Menu;
switch(IntId)
{
case 1: //Stormwind
{
plr->SafeTeleport(0, 0, -8831.61, 622.666, 93.7787, 0);
plr->Gossip_Complete();
}break;
case 2: //Ironforge
{
plr->SafeTeleport(0, 0, -4804.45, -1101.14, 498.807, 0);
plr->Gossip_Complete();
}break;
case 3: //Exodar
{
plr->SafeTeleport(530, 0, -3796.24, -11710.9, -105.45, 0);
plr->Gossip_Complete();
}break;
case 4: //Darnassus
{
plr->SafeTeleport(1, 0, 9952.07, 2278.46, 1341.39, 0);
plr->Gossip_Complete();
}break;
case 5: //Orgrimmar
{
plr->SafeTeleport(1, 0, 1499.55, -4406.91, 23.1642, 0);
plr->Gossip_Complete();
}break;
case 6: //Thunder Bluff
{
plr->SafeTeleport(1, 0, -1195.88, -56.5582, 160.034, 0);
plr->Gossip_Complete();
}break;
case 7: //Silvermoon City
{
plr->SafeTeleport(530, 0, 9492.45, -7279.12, 14.3036, 0);
plr->Gossip_Complete();
}break;
case 8: //Undercity
{
plr->SafeTeleport(0, 0, 1615.1, 239.786, -62.0774, 0);
plr->Gossip_Complete();
}break;
case 9: //Shattrath
{
plr->SafeTeleport(530, 0, -1852, 5432, -11, 0);
plr->Gossip_Complete();
}break;
}
};
void Pwarper::GossipEnd(Object * pObject, Player* plr)
{
GossipScript::GossipEnd(pObject, plr);
}
void SetupPwarper(ScriptMgr * mgr)
{
GossipScript * gs = (GossipScript*) new Pwarper();
mgr->register_item_gossip_script(60001,gs);
}
INSERT INTO `items` (`class`, `subclass`, `name1`, `name2`, `name3`, `name4`, `displayid`, `quality`, `buyprice`, `sellprice`, `itemlevel`, `ContainerSlots`, `unique`, `maxcount`, `bonding`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `delay`, `range`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `armor`, `block`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `allowableclass`, `allowablerace`, `RequiredSkill`, `RequiredSkillRank`, `RequiredSkillSubRank`, `RequiredFaction`, `RequiredFactionStanding`, `requiredlevel`, `inventorytype`, `quest_id`, `sheathID`, `itemset`, `MaxDurability`, `Description`, `socket_color_1`, `socket_color_2`, `socket_color_3`, `socket_bonus`, `entry`) VALUES ('8', '-1', 'Portable Teleporter', '', '', '', '42629', '1', '0', '0', '0', '0', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '33208', '0', '579', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1503', '1791', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '', '0', '0', '0', '0', '60001');
/****Made by WigSplitta****/
#include "StdAfx.h"
#ifdef WIN32
#pragma warning(disable:4305) // warning C4305: 'argument' : truncation from 'double' to 'float'
#endif
class SCRIPT_DECL Pwarper : public GossipScript
{
public:
void GossipHello(Object * pObject, Player* plr, bool AutoSend);
void GossipSelectOption(Object * pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code);
void GossipEnd(Object * pObject, Player* plr);
void Destroy()
{
delete this;
}
};
void Pwarper::GossipHello(Object* pObject, Player * plr, bool AutoSend)
{
if(plr->CombatStatus.IsInCombat())
{
plr->BroadcastMessage("You are in combat!");
}
if(!plr->CombatStatus.IsInCombat())
{
GossipMenu *Menu;
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, plr);
if (Plr->GetTeam() > 0)
{
//Horde Locations
Menu->AddItem(0, "Orgrimar", 5);
Menu->AddItem(0, "Thunder Bluff", 6);
Menu->AddItem(0, "Silvermoon City", 7);
Menu->AddItem(0, "Undercity", 8);
}
else
{
//Alliance Locations
Menu->AddItem(0, "Stormwind", 1);
Menu->AddItem(0, "Ironforge", 2);
Menu->AddItem(0, "Exodar", 3);
Menu->AddItem(0, "Darnassus", 4);
}
if(Plr->getLevel() > 58)
{
Menu->AddItem(0, "Shattrath", 9);
}
if(AutoSend)
Menu->SendTo(plr);
}
};
//Defining Cases
void Pwarper::GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char * Code)
{
GossipMenu * Menu;
switch(IntId)
{
case 1: //Stormwind
{
plr->SafeTeleport(0, 0, -8831.61, 622.666, 93.7787, 0);
plr->Gossip_Complete();
}break;
case 2: //Ironforge
{
plr->SafeTeleport(0, 0, -4804.45, -1101.14, 498.807, 0);
plr->Gossip_Complete();
}break;
case 3: //Exodar
{
plr->SafeTeleport(530, 0, -3796.24, -11710.9, -105.45, 0);
plr->Gossip_Complete();
}break;
case 4: //Darnassus
{
plr->SafeTeleport(1, 0, 9952.07, 2278.46, 1341.39, 0);
plr->Gossip_Complete();
}break;
case 5: //Orgrimmar
{
plr->SafeTeleport(1, 0, 1499.55, -4406.91, 23.1642, 0);
plr->Gossip_Complete();
}break;
case 6: //Thunder Bluff
{
plr->SafeTeleport(1, 0, -1195.88, -56.5582, 160.034, 0);
plr->Gossip_Complete();
}break;
case 7: //Silvermoon City
{
plr->SafeTeleport(530, 0, 9492.45, -7279.12, 14.3036, 0);
plr->Gossip_Complete();
}break;
case 8: //Undercity
{
plr->SafeTeleport(0, 0, 1615.1, 239.786, -62.0774, 0);
plr->Gossip_Complete();
}break;
case 9: //Shattrath
{
plr->SafeTeleport(530, 0, -1852, 5432, -11, 0);
plr->Gossip_Complete();
}break;
}
};
void Pwarper::GossipEnd(Object * pObject, Player* plr)
{
GossipScript::GossipEnd(pObject, plr);
}
void SetupPwarper(ScriptMgr * mgr)
{
GossipScript * gs = (GossipScript*) new Pwarper();
mgr->register_item_gossip_script(60001,gs);
}
INSERT INTO `items` (`class`, `subclass`, `name1`, `name2`, `name3`, `name4`, `displayid`, `quality`, `buyprice`, `sellprice`, `itemlevel`, `ContainerSlots`, `unique`, `maxcount`, `bonding`, `stat_type1`, `stat_value1`, `stat_type2`, `stat_value2`, `stat_type3`, `stat_value3`, `stat_type4`, `stat_value4`, `stat_type5`, `stat_value5`, `stat_type6`, `stat_value6`, `stat_type7`, `stat_value7`, `stat_type8`, `stat_value8`, `dmg_min1`, `dmg_max1`, `dmg_type1`, `dmg_min2`, `dmg_max2`, `dmg_type2`, `dmg_min3`, `dmg_max3`, `dmg_type3`, `dmg_min4`, `dmg_max4`, `dmg_type4`, `dmg_min5`, `dmg_max5`, `dmg_type5`, `delay`, `range`, `holy_res`, `fire_res`, `nature_res`, `frost_res`, `shadow_res`, `arcane_res`, `armor`, `block`, `spellid_1`, `spelltrigger_1`, `spellcharges_1`, `spellcooldown_1`, `spellcategory_1`, `spellcategorycooldown_1`, `spellid_2`, `spelltrigger_2`, `spellcharges_2`, `spellcooldown_2`, `spellcategory_2`, `spellcategorycooldown_2`, `spellid_3`, `spelltrigger_3`, `spellcharges_3`, `spellcooldown_3`, `spellcategory_3`, `spellcategorycooldown_3`, `spellid_4`, `spelltrigger_4`, `spellcharges_4`, `spellcooldown_4`, `spellcategory_4`, `spellcategorycooldown_4`, `spellid_5`, `spelltrigger_5`, `spellcharges_5`, `spellcooldown_5`, `spellcategory_5`, `spellcategorycooldown_5`, `allowableclass`, `allowablerace`, `RequiredSkill`, `RequiredSkillRank`, `RequiredSkillSubRank`, `RequiredFaction`, `RequiredFactionStanding`, `requiredlevel`, `inventorytype`, `quest_id`, `sheathID`, `itemset`, `MaxDurability`, `Description`, `socket_color_1`, `socket_color_2`, `socket_color_3`, `socket_bonus`, `entry`) VALUES ('8', '-1', 'Portable Teleporter', '', '', '', '42629', '1', '0', '0', '0', '0', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '33208', '0', '579', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1503', '1791', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '', '0', '0', '0', '0', '60001');