Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  

Funner

Members
  • Content count

    756
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by Funner


  1. Cena účtu 0 kč, 0% jistota toho že to nelohneš třeba za rok, navíc při ceně všech wowek dohromady kdy výjdou cca na +-1200 kč. A každý kdo si koupí nový účet si může jakoukoliv postavu boostnout na 90 zdarma. Plus má 30 dní herního času což je cca 300kč.

    • Upvote 1

  2. Psal jsem to na TC asi před půl rokem, takže to bude chtít teď trochu úprav.

     

    Chat VIP

    #include "ScriptMgr.h"
    #include "Chat.h"
    using std::string;
    #define COMMAND_SCRIPT  "chat_vip"
    #define ERROR_MESSAGE  "Prikaz nemuzete pouzit, protoze nemate aktivni VIP"
    #define MESSAGE_COMBAT  "Prikaz nemuzete pouzit, jste pod utokem"
    #define MESSAGE_SAVE  "Vase postava byl uspesne ulozena"
    #define MESSAGE_COOLDOWN "Vasi postave byly resetovany cooldowny"
    #define MESSAGE_PVP   "Prikaz nemuzete pouzivat v PVP oblastech"
    #define SPELL_EFFECT  61456
    class chat_vip : public CommandScript
    {
    public:
    chat_vip();
    ~chat_vip();
    static string getNameLink(Player *player);
    static bool HandleWorldChatCommand(ChatHandler* handler, const char* args);
    static bool VipSave(ChatHandler* handler, const char* args);
    static bool VipCd(ChatHandler* handler, const char* args);
    static bool VipTime(ChatHandler* handler, const char* args);
    static bool isVip(uint32 accountId);
    ChatCommand * GetCommands() const;
    };
    chat_vip::chat_vip() : CommandScript(COMMAND_SCRIPT){}
    chat_vip::~chat_vip(){}
    string chat_vip::getNameLink(Player *player)
    {
    string name = player->GetName();
    string color = "|cffFAEB00";
    return "|Hplayer:"+name+"|h|cffFAEB00["+color+name+"]|cffFFFFFF|h|r";
    }
    bool chat_vip::HandleWorldChatCommand(ChatHandler* handler, const char* args)
    {
    string message = "";
    string tempArgs = args;
    Player *player = handler->GetSession()->GetPlayer();
    if(isVip(player->GetSession()->GetAccountId()))
    {
     message += "|cffFF0000[VIP]";
     message += getNameLink(player);
     message += "|cffFFFFFF";
    }
    else
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE);
     return false;
    }
    if(!handler->GetSession()->GetPlayer()->CanSpeak())
     return false;
    if(!args || args == NULL || tempArgs == "" || tempArgs == " " || !tempArgs.length())
    {
     ChatHandler(player->GetSession()).PSendSysMessage("|cffFF0000.vsay|r |cffFAEB00   Prikaz napise zpravu celemu serveru|r", player->GetName());
     ChatHandler(player->GetSession()).PSendSysMessage("|cffFF0000.vsave|r |cffFAEB00 Prikaz ulozi vasi postavu|r", player->GetName());
     ChatHandler(player->GetSession()).PSendSysMessage("|cffFF0000.vcd|r |cffFAEB00    Prikaz resetuje cooldowny|r", player->GetName());
     ChatHandler(player->GetSession()).PSendSysMessage("|cffFF0000.vtime|r |cffFAEB00  Prikaz ukaze datum expirace VIP uctu (rok-mesic-den)|r", player->GetName());
     return false;
    }
    if(player->InArena() || player->InBattleground())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_PVP);
     return false;
    }
    message += tempArgs;
    sWorld->SendServerMessage(SERVER_MSG_STRING, message.c_str(), 0); 
    return true;
    }
    ChatCommand * chat_vip::GetCommands() const
    {
    static ChatCommand WorldChatCommandTable[] =
    {
     {"vsay",	    SEC_PLAYER,			 true,		   &HandleWorldChatCommand,	    "", NULL},
     {"vsave",	    SEC_PLAYER,			 true,		   &VipSave,	    "", NULL},
     {"vcd",	    SEC_PLAYER,			 true,		   &VipCd,	    "", NULL},
     {"vtime",	    SEC_PLAYER,			 true,		   &VipTime,	    "", NULL},
     {NULL,		  0,					  false,		  NULL,						   "", NULL}
    };
    return WorldChatCommandTable;
    }
    bool chat_vip::VipSave(ChatHandler* handler, const char* args)
    {
    Player *player = handler->GetSession()->GetPlayer();
    if(player == NULL)
     return false;
    if(!isVip(player->GetSession()->GetAccountId()))
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE);
     return false;
    }
    if(player->isInCombat())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_COMBAT);
     return false;
    }
    if(player->InArena() || player->InBattleground())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_PVP);
     return false;
    }
    player->SaveToDB();
    player->GetSession()->SendAreaTriggerMessage(MESSAGE_SAVE);
    return true;
    }
    bool chat_vip::VipCd(ChatHandler* handler, const char* args)
    {
    Player *player = handler->GetSession()->GetPlayer();
    if(player == NULL)
     return false;
    if(!isVip(player->GetSession()->GetAccountId()))
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE);
     return false;
    }
    if(player->isInCombat())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_COMBAT);
     return false;
    }
    if(player->InArena() || player->InBattleground())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_PVP);
     return false;
    }
    player->RemoveAllSpellCooldown();
    player->CastSpell(player, SPELL_EFFECT, false);
    player->GetSession()->SendAreaTriggerMessage(MESSAGE_COOLDOWN);
    return true;
    }
    bool chat_vip::VipTime(ChatHandler* handler, const char* args)
    {
    Player *player = handler->GetSession()->GetPlayer();
    if(player == NULL)
     return false;
    if(!isVip(player->GetSession()->GetAccountId()))
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE);
     return false;
    }
    if(player->isInCombat())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_COMBAT);
     return false;
    }
    
    if(player->InArena() || player->InBattleground())
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_PVP);
     return false;
    }
    QueryResult getDate = LoginDatabase.PQuery("SELECT expirace FROM vip WHERE account_id='%i'", player->GetSession()->GetAccountId());
    
    if(!getDate)
     return false;
    Field *field = getDate->Fetch();
    const char * date = field[0].GetCString();
    string msg = date;
    string temp = "Vip ucet expiruje: "+msg;
    player->GetSession()->SendAreaTriggerMessage(temp.c_str());
    return true;
    }
    bool chat_vip::isVip(uint32 accountId)
    {
    int bufferSize = 20;
    char * timeField = new char[bufferSize];
    time_t now = time(NULL);
    strftime(timeField, bufferSize, "%Y-%m-%d", localtime(&now));
    QueryResult getDate = LoginDatabase.PQuery("SELECT expirace FROM vip WHERE account_id='%i'", accountId);
    
    if(!getDate)
    {
     delete timeField;
     return false;
    }
    Field *field = getDate->Fetch();
    const char * date = field[0].GetCString();
    std::string stringLocal = timeField;
    std::string stringDb = date;
    stringLocal.erase(4,1);
    stringLocal.erase(6,1);
    stringDb.erase(4,1);
    stringDb.erase(6,1);
    uint32 localTime = atoi(stringLocal.c_str());
    uint32 dbTime = atoi(stringDb.c_str());
    if(localTime < dbTime)
    {
     delete timeField;
     return true;
    }
    else
    {
     delete timeField;
     return false;
    }
    }
    void AddSC_chat_vip()
    {
        new chat_vip();
    }
    

     

    NPC VIP

    #include "ScriptMgr.h"
    #define NPC_SCRIPTNAME   "npc_vip"
    #define SPELL_EFFECT   61456
    #define ERROR_MESSAGE_COMBAT "Jste pod utokem"
    #define ERROR_MESSAGE   "Bohuzel nemate aktivovane VIP"
    #define ERROR_MESSAGE_GOLD  "Bohuzel nemate dostatek goldu"
    #define MESSAGE_EXPERIENCE  "Vase postava obdrzela %i zkusenosti"
    #define MESSAGE_ITEMS   "Vase postava obdrzela startovaci itemy"
    #define MESSAGE_REP    "Vase postava obdrzela vybranou reputaci"
    #define ERROR_MESSAGE_KNIHA  "Muzete vlastnit pouze jeden predmet"
    #define MESSAGE_COOLDOWN  "Vasi postave byly resetovany cooldowny"
    #define EXALTED	 90999
    #define ITEM_COUNT    1
    #define ITEM_KNIHA    1002
    enum items
    {
    ITEM_1_SHOULDER = 42949,
    ITEM_1_CHEST = 48685,
    ITEM_1_FINGER = 50255,
    ITEM_1_TRINKET1_HORDE = 44097,
    ITEM_1_TRINKET1_ALLIANCE = 44098,
    ITEM_1_TRINKET2 = 42991,
    ITEM_1_TWOHAND = 44092,
    ITEM_1_RANGED = 42946,
    ITEM_2_SHOULDER = 42985,
    ITEM_2_CHEST = 48691,
    ITEM_2_FINGER = 50255,
    ITEM_2_TRINKET1_HORDE = 44097,
    ITEM_2_TRINKET1_ALLIANCE = 44098,
    ITEM_2_TRINKET2 = 42992,
    ITEM_2_TWOHAND = 42947,
    ITEM_3_SHOULDER = 42952,
    ITEM_3_CHEST = 48689,
    ITEM_3_FINGER = 50255,
    ITEM_3_TRINKET1_HORDE = 44097,
    ITEM_3_TRINKET1_ALLIANCE = 44098,
    ITEM_3_TRINKET2 = 42991,
    ITEM_3_TWOHAND = 48718,
    ITEM_3_ONEHAND1 = 42944,
    ITEM_3_ONEHAND2 = 44096,
    ITEM_3_RANGED = 42946,
    ITEM_4_SHOULDER = 42985,
    ITEM_4_CHEST = 48691,
    ITEM_4_FINGER = 50255,
    ITEM_4_TRINKET1_HORDE = 44097,
    ITEM_4_TRINKET1_ALLIANCE = 44098,
    ITEM_4_TRINKET2 = 42991,
    ITEM_4_TWOHAND = 48718,
    ITEM_4_ONEHAND1 = 48716,
    ITEM_4_ONEHAND2 = 48716,
    ITEM_4_RANGED = 42946
    };
    enum golds_exp
    {
    GOLD_15 = 150000,
    GOLD_100 = 1000000,
    GOLD_250 = 2500000,
    GOLD_400 = 4000000,
    GOLD_1000 = 10000000,
    GOLD_1500 = 15000000,
    GOLD_10000 = 100000000
    };
    enum golds_rep
    {
    GOLD_REP_1000 = 10000000,
    GOLD_REP_2000 = 20000000,
    GOLD_REP_3000 = 30000000
    };
    enum experience
    {
    EXPERIENCE_1000 = 1000,
    EXPERIENCE_10000 = 10000,
    EXPERIENCE_50000 = 50000,
    EXPERIENCE_100000 = 100000,
    EXPERIENCE_500000 = 500000,
    EXPERIENCE_1000000 = 1000000,
    EXPERIENCE_10000000 = 10000000
    };
    const uint32 allianceMainCities[] = {47, 54, 69, 72, -1};
    const uint32 allianceOtherFactions[] = {509, 589, 730, 890, 946, 978, 1037, 1050, 1068, 1094, 1126, -1};
    const uint32 hordeMainCities[] = {68, 76, 530, 911, -1};
    const uint32 hordeOtherFactions[] = {81, 510, 729, 889, 922, 941, 947, 1052, 1064, 1067, 1085, 1124, -1};
    const uint32 neutralFactions[] = {21, 59, 70, 87, 92, 93, 270, 349, 369, 470, 529, 576, 577, 609, 749, 809, 909, 910, 932, 933, 934, 935, 942,
    967, 970, 989, 990, 1011, 1012, 1015, 1031, 1038, 1073, 1077, 1090, 1091, 1098, 1104, 1105, 1106, 1119, -1};
    class npc_vip : public CreatureScript
    {
    public:
    npc_vip();
    ~npc_vip();
    bool OnGossipHello(Player *player, Creature *creature);
    bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action);
    bool isVip(uint32 accountId);
    };
    npc_vip::npc_vip() : CreatureScript(NPC_SCRIPTNAME){}
    npc_vip::~npc_vip(){}
    bool npc_vip::OnGossipHello(Player *player, Creature *creature)
    {
    if(player == NULL)
     return false;
    if(!isVip(player->GetSession()->GetAccountId()))
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE);
     return false;
    }
    if(player->isInCombat())
    {
     player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_COMBAT);
     return false;
    }
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Startovaci itemy", GOSSIP_SENDER_MAIN, 0);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportovaci kniha", GOSSIP_SENDER_MAIN, 1);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Koupit zkusenosti za goldy", GOSSIP_SENDER_MAIN, 2);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Naucit reputace za goldy", GOSSIP_SENDER_MAIN, 12);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Resetovat cooldowny", GOSSIP_SENDER_MAIN, 18);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zavrit", GOSSIP_SENDER_MAIN, 10);
    player->SEND_GOSSIP_MENU(1, creature->GetGUID());
    return true;
    }
    bool npc_vip::OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action)
    {
    if(player == NULL)
     return false;
    if(sender != GOSSIP_SENDER_MAIN)
     return false;
    player->PlayerTalkClass->ClearMenus();
    switch(action)
    {
    case 0:
     if(player->getClass() == CLASS_WARRIOR || player->getClass() == CLASS_PALADIN || player->getClass() == CLASS_DEATH_KNIGHT)
     {
      player->AddItem(ITEM_1_SHOULDER, ITEM_COUNT);
      player->AddItem(ITEM_1_CHEST, ITEM_COUNT);
      player->AddItem(ITEM_1_FINGER, ITEM_COUNT);
      if(player->GetTeam() == HORDE)
       player->AddItem(ITEM_1_TRINKET1_HORDE, ITEM_COUNT);
      else
       player->AddItem(ITEM_1_TRINKET1_ALLIANCE, ITEM_COUNT);
      player->AddItem(ITEM_1_TRINKET2, ITEM_COUNT);
      player->AddItem(ITEM_1_TWOHAND, ITEM_COUNT);
      player->AddItem(ITEM_1_RANGED, ITEM_COUNT);
     }
     else if(player->getClass() == CLASS_PRIEST || player->getClass() == CLASS_MAGE || player->getClass() == CLASS_WARLOCK)
     {
      player->AddItem(ITEM_2_SHOULDER, ITEM_COUNT);
      player->AddItem(ITEM_2_CHEST, ITEM_COUNT);
      player->AddItem(ITEM_2_FINGER, ITEM_COUNT);
      if(player->GetTeam() == HORDE)
       player->AddItem(ITEM_1_TRINKET1_HORDE, ITEM_COUNT);
      else
       player->AddItem(ITEM_1_TRINKET1_ALLIANCE, ITEM_COUNT);
      player->AddItem(ITEM_2_TRINKET2, ITEM_COUNT);
      player->AddItem(ITEM_2_TWOHAND, ITEM_COUNT);
     }
     else if(player->getClass() == CLASS_ROGUE || player->getClass() == CLASS_DRUID)
     {
      player->AddItem(ITEM_3_SHOULDER, ITEM_COUNT);
      player->AddItem(ITEM_3_CHEST, ITEM_COUNT);
      player->AddItem(ITEM_3_FINGER, ITEM_COUNT);
      if(player->GetTeam() == HORDE)
       player->AddItem(ITEM_1_TRINKET1_HORDE, ITEM_COUNT);
      else
       player->AddItem(ITEM_1_TRINKET1_ALLIANCE, ITEM_COUNT);
      player->AddItem(ITEM_3_TRINKET2, ITEM_COUNT);
      player->AddItem(ITEM_3_TWOHAND, ITEM_COUNT);
      player->AddItem(ITEM_3_ONEHAND1, ITEM_COUNT);
      player->AddItem(ITEM_3_ONEHAND2, ITEM_COUNT);
      player->AddItem(ITEM_3_RANGED, ITEM_COUNT);
     }
     else if(player->getClass() == CLASS_SHAMAN || player->getClass() == CLASS_HUNTER)
     {
      player->AddItem(ITEM_4_SHOULDER, ITEM_COUNT);
      player->AddItem(ITEM_4_CHEST, ITEM_COUNT);
      player->AddItem(ITEM_4_FINGER, ITEM_COUNT);
      if(player->GetTeam() == HORDE)
       player->AddItem(ITEM_1_TRINKET1_HORDE, ITEM_COUNT);
      else
       player->AddItem(ITEM_1_TRINKET1_ALLIANCE, ITEM_COUNT);
      player->AddItem(ITEM_4_TRINKET2, ITEM_COUNT);
      player->AddItem(ITEM_4_TWOHAND, ITEM_COUNT);
      player->AddItem(ITEM_4_ONEHAND1, ITEM_COUNT);
      player->AddItem(ITEM_4_ONEHAND2, ITEM_COUNT);
      player->AddItem(ITEM_4_RANGED, ITEM_COUNT);
     }
     player->CastSpell(player,SPELL_EFFECT,false);
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_ITEMS);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 1:
     if(player->HasItemCount(ITEM_KNIHA, ITEM_COUNT, true))
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_KNIHA);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
     player->AddItem(ITEM_KNIHA, ITEM_COUNT);
     player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 2:
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"1000 zkusenosti - 15 goldu", GOSSIP_SENDER_MAIN, 3);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"10000 zkusenosti - 100 goldu", GOSSIP_SENDER_MAIN, 4);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"50000 zkusenosti - 250 goldu", GOSSIP_SENDER_MAIN, 5);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"100000 zkusenosti - 400 goldu", GOSSIP_SENDER_MAIN, 6);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"500000 zkusenosti - 1000 goldu", GOSSIP_SENDER_MAIN, 7);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"1000000 zkusenosti - 1500 goldu", GOSSIP_SENDER_MAIN, 8);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"10000000 zkusenosti - 10000 goldu", GOSSIP_SENDER_MAIN, 9);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zpet", GOSSIP_SENDER_MAIN, 11);
     player->SEND_GOSSIP_MENU(1, creature->GetGUID());
     break;
    case 3:
     if(player->GetMoney() < GOLD_15)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_15);
      player->GiveXP(EXPERIENCE_1000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_1000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 4:
     if(player->GetMoney() < GOLD_100)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_100);
      player->GiveXP(EXPERIENCE_10000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_10000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 5:
     if(player->GetMoney() < GOLD_250)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_250);
      player->GiveXP(EXPERIENCE_50000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_50000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 6:
     if(player->GetMoney() < GOLD_400)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_400);
      player->GiveXP(EXPERIENCE_100000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_100000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 7:
     if(player->GetMoney() < GOLD_1000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_1000);
      player->GiveXP(EXPERIENCE_500000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_500000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 8:
     if(player->GetMoney() < GOLD_1500)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_1500);
      player->GiveXP(EXPERIENCE_1000000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_1000000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 9:
     if(player->GetMoney() < GOLD_10000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->ModifyMoney(-GOLD_10000);
      player->GiveXP(EXPERIENCE_10000000, player);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_EXPERIENCE, EXPERIENCE_10000000);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 10:
     player->CLOSE_GOSSIP_MENU();
     break;
    case 11:
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Startovaci itemy", GOSSIP_SENDER_MAIN, 0);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportovaci kniha", GOSSIP_SENDER_MAIN, 1);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Koupit zkusenosti za goldy", GOSSIP_SENDER_MAIN, 2);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Naucit reputace za goldy", GOSSIP_SENDER_MAIN, 12);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Resetovat cooldowny", GOSSIP_SENDER_MAIN, 18);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zavrit", GOSSIP_SENDER_MAIN, 10);
     player->SEND_GOSSIP_MENU(1, creature->GetGUID());
     break;
    case 12:
     if(player->GetTeam() == HORDE)
     {
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Hlavni mesta - 1000g", GOSSIP_SENDER_MAIN, 13);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Ostatni frakce Hordy - 2000g", GOSSIP_SENDER_MAIN, 14);
     }
     else if(player->GetTeam() == ALLIANCE)
     {
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Hlavni mesta - 1000g", GOSSIP_SENDER_MAIN, 15);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Ostatni frakce Alliance - 2000g", GOSSIP_SENDER_MAIN, 16);
     }
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Neutralni frakce - 3000g", GOSSIP_SENDER_MAIN, 17);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zpet", GOSSIP_SENDER_MAIN, 11);
     player->SEND_GOSSIP_MENU(1, creature->GetGUID());
     break;
    case 13:
     if(player->GetMoney() < GOLD_REP_1000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      for(int i = 0; hordeMainCities[i] != -1; i++)
      {
       player->SetReputation(hordeMainCities[i], EXALTED);
      }
      player->ModifyMoney(-GOLD_REP_1000);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_REP);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 14:
     if(player->GetMoney() < GOLD_REP_2000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      for(int i = 0; hordeOtherFactions[i] != -1; i++)
      {
       player->SetReputation(hordeOtherFactions[i], EXALTED);
      }
      player->ModifyMoney(-GOLD_REP_2000);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_REP);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 15:
     if(player->GetMoney() < GOLD_REP_1000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      for(int i = 0; allianceMainCities[i] != -1; i++)
      {
       player->SetReputation(allianceMainCities[i], EXALTED);
      }
      player->ModifyMoney(-GOLD_REP_1000);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_REP);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 16:
     if(player->GetMoney() < GOLD_REP_2000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      for(int i = 0; allianceOtherFactions[i] != -1; i++)
      {
       player->SetReputation(allianceOtherFactions[i], EXALTED);
      }
      player->ModifyMoney(-GOLD_REP_2000);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_REP);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 17:
     if(player->GetMoney() < GOLD_REP_3000)
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_GOLD);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      for(int i = 0; neutralFactions[i] != -1; i++)
      {
       player->SetReputation(neutralFactions[i], EXALTED);
      }
      player->ModifyMoney(-GOLD_REP_3000);
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_REP);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 18:
      player->RemoveAllSpellCooldown();
      player->CastSpell(player,SPELL_EFFECT,false);
      player->GetSession()->SendAreaTriggerMessage(MESSAGE_COOLDOWN);
      player->CLOSE_GOSSIP_MENU();
     break;
    default:
     break;
    }
    return true;
    }
    bool npc_vip::isVip(uint32 accountId)
    {
    int bufferSize = 20;
    char * timeField = new char[bufferSize];
    time_t now = time(NULL);
    strftime(timeField, bufferSize, "%Y-%m-%d", localtime(&now));
    QueryResult getDate = LoginDatabase.PQuery("SELECT expirace FROM vip WHERE account_id='%i'", accountId);
    
    if(!getDate)
    {
     delete timeField;
     return false;
    }
    Field *field = getDate->Fetch();
    const char * date = field[0].GetCString();
    std::string stringLocal = timeField;
    std::string stringDb = date;
    stringLocal.erase(4,1);
    stringLocal.erase(6,1);
    stringDb.erase(4,1);
    stringDb.erase(6,1);
    uint32 localTime = atoi(stringLocal.c_str());
    uint32 dbTime = atoi(stringDb.c_str());
    if(localTime < dbTime)
    {
     delete timeField;
     return true;
    }
    else
    {
     delete timeField;
     return false;
    }
    }
    void AddSC_npc_vip()
    {
    new npc_vip;
    }
    

     

    Teleporter NPC

    #include "ScriptMgr.h"
    #define CREATURE_SCRIPT_NAME    "npc_teleporter"
    #define ERROR_MESSAGE_1	  "Tvoje postava musi mit alespon level 58!"
    #define ERROR_MESSAGE_2	  "Tvoje postava musi mit alespon level 68!"
    #define BUFF_MESSAGE	  "Tvoje postava obdrzela buffy"
    #define MAXSKILL_MESSAGE	 "Tvoje postava ziskala maximalni skill"
    #define WEAPON_MESSAGE	  "Tvoje postava se naucila vsechny zbrane"
    #define RESTORE_MESSAGE	  "Tve postave bylo obnoveno zdravi a mana"
    #define SPELL_EFFECT	  61456
    #define ORGRIMMAR_MAPID	  1
    #define ORGRIMMAR_X	   1629.36
    #define ORGRIMMAR_Y	   -4373.39
    #define ORGRIMMAR_Z	   31.2564
    #define ORGRIMMAR_ORIENTATION    3.54839
    #define ORGRIMMAR_OPTIONS	 0
    #define ORGRIMMAR_MESSAGE	 "Byl jsi teleportovan do Orgrimmaru"
    #define SILVERMOONCITY_MAPID    530
    #define SILVERMOONCITY_X	 9487.69
    #define SILVERMOONCITY_Y	 -7279.2
    #define SILVERMOONCITY_Z	 14.2866
    #define SILVERMOONCITY_ORIENTATION   6.16478
    #define SILVERMOONCITY_OPTIONS    0
    #define SILVERMOONCITY_MESSAGE    "Byl jsi teleportovan do Silvermoon City"
    #define UNDERCITY_MAPID	  0
    #define UNDERCITY_X	   1584.07
    #define UNDERCITY_Y	   241.987
    #define UNDERCITY_Z	   -52.1534
    #define UNDERCITY_ORIENTATION    0.049647
    #define UNDERCITY_OPTIONS	 0
    #define UNDERCITY_MESSAGE	 "Byl jsi teleportovan do Undercity"
    #define THUNDERBLUFF_MAPID	 1
    #define THUNDERBLUFF_X	  -1277.34
    #define THUNDERBLUFF_Y	  124.804
    #define THUNDERBLUFF_Z	  131.287
    #define THUNDERBLUFF_ORIENTATION   5.22274
    #define THUNDERBLUFF_OPTIONS    0
    #define THUNDERBLUFF_MESSAGE    "Byl jsi teleportovan do Thunder Bluffu"
    #define STORMWINDCITY_MAPID	 0
    #define STORMWINDCITY_X	  -8833.38
    #define STORMWINDCITY_Y	  628.628
    #define STORMWINDCITY_Z	  94.0066
    #define STORMWINDCITY_ORIENTATION   1.06535
    #define STORMWINDCITY_OPTIONS    0
    #define STORMWINDCITY_MESSAGE    "Byl jsi teleportovan do Stormwind City"
    #define DARNASSUS_MAPID	  1
    #define DARNASSUS_X	   9949.56
    #define DARNASSUS_Y	   2284.21
    #define DARNASSUS_Z	   1341.4
    #define DARNASSUS_ORIENTATION    1.59587
    #define DARNASSUS_OPTIONS	 0
    #define DARNASSUS_MESSAGE	 "Byl jsi teleportovan do Darnassusu"
    #define EXODAR_MAPID	  530
    #define EXODAR_X	   -3965.7
    #define EXODAR_Y	   -11653.6
    #define EXODAR_Z	   -138.844
    #define EXODAR_ORIENTATION	 0.852154
    #define EXODAR_OPTIONS	  0
    #define EXODAR_MESSAGE	  "Byl jsi teleportovan do Exodaru"
    #define IRONFORGE_MAPID	  0
    #define IRONFORGE_X	   -4918.88
    #define IRONFORGE_Y	   -940.406
    #define IRONFORGE_Z	   501.564
    #define IRONFORGE_ORIENTATION    5.42347
    #define IRONFORGE_OPTIONS	 0
    #define IRONFORGE_MESSAGE	 "Byl jsi teleportovan do Ironforge"
    #define DARKPORTAL_MAPID	 0
    #define DARKPORTAL_X	  -11840.1
    #define DARKPORTAL_Y	  -3196.63
    #define DARKPORTAL_Z	  -29.6059
    #define DARKPORTAL_ORIENTATION    3.3391
    #define DARKPORTAL_OPTIONS	 0
    #define DARKPORTAL_MESSAGE	 "Byl jsi teleportovan k Dark Portalu"
    #define SHATTRATH_MAPID	  530
    #define SHATTRATH_X	   -1838.16
    #define SHATTRATH_Y	   5301.79
    #define SHATTRATH_Z	   -12.428
    #define SHATTRATH_ORIENTATION    5.9517
    #define SHATTRATH_OPTIONS	 0
    #define SHATTRATH_MESSAGE	 "Byl jsi teleportovan do Shattrathu"
    #define DALARAN_MAPID	  571
    #define DALARAN_X	   5804.15
    #define DALARAN_Y	   624.771
    #define DALARAN_Z	   647.767
    #define DALARAN_ORIENTATION	 1.64
    #define DALARAN_OPTIONS	  0
    #define DALARAN_MESSAGE	  "Byl jsi teleportovan do Dalaranu"
    #define GURUBASHI_MAPID	  0
    #define GURUBASHI_X	   -13277.4
    #define GURUBASHI_Y	   127.372
    #define GURUBASHI_Z	   26.1418
    #define GURUBASHI_ORIENTATION    1.11878
    #define GURUBASHI_OPTIONS	 0
    #define GURUBASHI_MESSAGE	 "Byl jsi teleportovan do Gurubashi Areny"
    #define RINGOFTRIALS_MAPID	 530
    #define RINGOFTRIALS_X	  -1999.94
    #define RINGOFTRIALS_Y	  6581.71
    #define RINGOFTRIALS_Z	  11.32
    #define RINGOFTRIALS_ORIENTATION   2.36528
    #define RINGOFTRIALS_OPTIONS    0
    #define RINGOFTRIALS_MESSAGE    "Byl jsi teleportovan do Ring of Trials Areny"
    #define CIRCLEOFBLOOD_MAPID	 530
    #define CIRCLEOFBLOOD_X	  2839.44
    #define CIRCLEOFBLOOD_Y	  5930.17
    #define CIRCLEOFBLOOD_Z	  11.1002
    #define CIRCLEOFBLOOD_ORIENTATION   3.16284
    #define CIRCLEOFBLOOD_OPTIONS    0
    #define CIRCLEOFBLOOD_MESSAGE    "Byl jsi teleportovan do Circle of Blood Areny"
    enum buffEnum
    {
    MARKOFTHEWILD = 48469,
    BATTLESHOUT = 47436,
    BLESSINGOFKINGS = 58054,
    ARCANEBRILLIANCE = 43002,
    POWERWORDFORTITUDE = 48161
    };
    enum weaponsEnum
    {
        SPELL_BLOCK = 107,
        SPELL_BOWS = 264,
        SPELL_CROSSBOWS = 5011,
        SPELL_DAGGERS = 1180,
        SPELL_DUAL_WIELD = 674,
        SPELL_FIST_WEAPONS = 15590,
        SPELL_GUNS = 266,
        SPELL_MAIL = 8737,
        SPELL_PLATE = 750,
        SPELL_ONE_HANDED_AXES = 196,
        SPELL_ONE_HANDED_MACES = 198,
        SPELL_ONE_HANDED_SWORDS = 201,
        SPELL_TWO_HANDED_AXES = 197,
        SPELL_TWO_HANDED_MACES = 199,
        SPELL_TWO_HANDED_SWORDS = 202,
        SPELL_STAVES = 227,
        SPELL_THROW = 2764,
        SPELL_THROWN = 2567,
        SPELL_POLEARMS = 200,
        SPELL_RELIC = 52665,
        SPELL_RELIC_2 = 27764,
        SPELL_RELIC_3 = 27762,
        SPELL_RELIC_4 = 27763,
        SPELL_SHIELD = 9116,
        SPELL_SHOOT = 3018,
        SPELL_SHOOT_WANDS = 5019,
        SPELL_WANDS = 5009
    };
    class npc_teleporter : public CreatureScript
    {
    public:
    npc_teleporter();
    ~npc_teleporter();
    bool OnGossipHello(Player *player, Creature *creature);
    bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action);
    };
    npc_teleporter::npc_teleporter() : CreatureScript(CREATURE_SCRIPT_NAME){}
    npc_teleporter::~npc_teleporter(){}
    bool npc_teleporter::OnGossipHello(Player *player, Creature *creature)
    {
    if(player->isInCombat())
    {
     player->GetSession()->SendAreaTriggerMessage("Jste pod utokem");
     return false;
    }
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportace - mesta", GOSSIP_SENDER_MAIN, 0);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportace - pvp", GOSSIP_SENDER_MAIN, 13);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Buffy", GOSSIP_SENDER_MAIN, 18);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Naucit zbrane", GOSSIP_SENDER_MAIN, 19);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Max skill", GOSSIP_SENDER_MAIN, 20);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Reset many a zivotu", GOSSIP_SENDER_MAIN, 21);
    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zavrit", GOSSIP_SENDER_MAIN, 1);
    player->SEND_GOSSIP_MENU(1, creature->GetGUID());
    return true;
    }
    bool npc_teleporter::OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action)
    {
    if(player == NULL)
     return false;
    if(sender != GOSSIP_SENDER_MAIN)
     return false;
    player->PlayerTalkClass->ClearMenus();
    switch(action)
    {
    case 0:
     if(player->GetTeam() == HORDE && !player->isGameMaster())
     {
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Orgrimmaru|r", GOSSIP_SENDER_MAIN, 2);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Silvermoon City|r", GOSSIP_SENDER_MAIN, 3);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Undercity|r", GOSSIP_SENDER_MAIN, 4);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Thunder Bluffu|r", GOSSIP_SENDER_MAIN, 5);
     }
     else if(player->GetTeam() == ALLIANCE && !player->isGameMaster())
     {
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Stormwind City|r", GOSSIP_SENDER_MAIN, 6);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Darnassusu|r", GOSSIP_SENDER_MAIN, 7);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Exodaru|r", GOSSIP_SENDER_MAIN, 8);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Ironforge|r", GOSSIP_SENDER_MAIN, 9);
     }
     else if(player->isGameMaster())
     {
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Orgrimmaru|r", GOSSIP_SENDER_MAIN, 2);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Silvermoon City|r", GOSSIP_SENDER_MAIN, 3);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Undercity|r", GOSSIP_SENDER_MAIN, 4);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Thunder Bluffu|r", GOSSIP_SENDER_MAIN, 5);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Stormwind City|r", GOSSIP_SENDER_MAIN, 6);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Darnassusu|r", GOSSIP_SENDER_MAIN, 7);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Exodaru|r", GOSSIP_SENDER_MAIN, 8);
      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff0000FFTeleportovat do Ironforge|r", GOSSIP_SENDER_MAIN, 9);
     }
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff00FFFFTeleportovat k Dark Portalu|r", GOSSIP_SENDER_MAIN, 10);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff00FFFFTeleportovat do Shattrathu|r", GOSSIP_SENDER_MAIN, 11);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff00FFFFTeleportovat do Dalaranu|r", GOSSIP_SENDER_MAIN, 12);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zpet", GOSSIP_SENDER_MAIN, 17);
     player->SEND_GOSSIP_MENU(2, creature->GetGUID());
     break;
    case 1:
     player->CLOSE_GOSSIP_MENU();
     break;
    case 2:
     player->TeleportTo(ORGRIMMAR_MAPID, ORGRIMMAR_X, ORGRIMMAR_Y, ORGRIMMAR_Z, ORGRIMMAR_ORIENTATION, ORGRIMMAR_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(ORGRIMMAR_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 3:
     player->TeleportTo(SILVERMOONCITY_MAPID, SILVERMOONCITY_X, SILVERMOONCITY_Y, SILVERMOONCITY_Z, SILVERMOONCITY_ORIENTATION, SILVERMOONCITY_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(SILVERMOONCITY_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 4:
     player->TeleportTo(UNDERCITY_MAPID, UNDERCITY_X, UNDERCITY_Y, UNDERCITY_Z, UNDERCITY_ORIENTATION, UNDERCITY_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(UNDERCITY_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 5:
     player->TeleportTo(THUNDERBLUFF_MAPID, THUNDERBLUFF_X, THUNDERBLUFF_Y, THUNDERBLUFF_Z, THUNDERBLUFF_ORIENTATION, THUNDERBLUFF_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(THUNDERBLUFF_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 6:
     player->TeleportTo(STORMWINDCITY_MAPID, STORMWINDCITY_X, STORMWINDCITY_Y, STORMWINDCITY_Z, STORMWINDCITY_ORIENTATION, STORMWINDCITY_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(STORMWINDCITY_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 7:
     player->TeleportTo(DARNASSUS_MAPID, DARNASSUS_X, DARNASSUS_Y, DARNASSUS_Z, DARNASSUS_ORIENTATION, DARNASSUS_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(DARNASSUS_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 8:
     player->TeleportTo(EXODAR_MAPID, EXODAR_X, EXODAR_Y, EXODAR_Z, EXODAR_ORIENTATION, EXODAR_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(EXODAR_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 9:
     player->TeleportTo(IRONFORGE_MAPID, IRONFORGE_X, IRONFORGE_Y, IRONFORGE_Z, IRONFORGE_ORIENTATION, IRONFORGE_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(IRONFORGE_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 10:
     if(player->getLevel() >= 58)
     {
      player->TeleportTo(DARKPORTAL_MAPID, DARKPORTAL_X, DARKPORTAL_Y, DARKPORTAL_Z, DARKPORTAL_ORIENTATION, DARKPORTAL_OPTIONS);
      player->GetSession()->SendAreaTriggerMessage(DARKPORTAL_MESSAGE);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_1);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 11:
     if(player->getLevel() >= 58)
     {
      player->TeleportTo(SHATTRATH_MAPID, SHATTRATH_X, SHATTRATH_Y, SHATTRATH_Z, SHATTRATH_ORIENTATION, SHATTRATH_OPTIONS);
      player->GetSession()->SendAreaTriggerMessage(SHATTRATH_MESSAGE);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_2);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 12:
     if(player->getLevel() >= 68)
     {
      player->TeleportTo(DALARAN_MAPID, DALARAN_X, DALARAN_Y, DALARAN_Z, DALARAN_ORIENTATION, DALARAN_OPTIONS);
      player->GetSession()->SendAreaTriggerMessage(DALARAN_MESSAGE);
      player->CLOSE_GOSSIP_MENU();
     }
     else
     {
      player->GetSession()->SendAreaTriggerMessage(ERROR_MESSAGE_2);
      player->CLOSE_GOSSIP_MENU();
     }
     break;
    case 13:
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Gurubashi Areny|r", GOSSIP_SENDER_MAIN, 14);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Ring of Trials Areny|r", GOSSIP_SENDER_MAIN, 15);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"|cff8B0000Teleportovat do Circle of Blood Areny|r", GOSSIP_SENDER_MAIN, 16);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zpet", GOSSIP_SENDER_MAIN, 17);
     player->SEND_GOSSIP_MENU(3, creature->GetGUID());
     break;
    case 14:
     player->TeleportTo(GURUBASHI_MAPID, GURUBASHI_X, GURUBASHI_Y, GURUBASHI_Z, GURUBASHI_ORIENTATION, GURUBASHI_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(GURUBASHI_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 15:
     player->TeleportTo(RINGOFTRIALS_MAPID, RINGOFTRIALS_X, RINGOFTRIALS_Y, RINGOFTRIALS_Z, RINGOFTRIALS_ORIENTATION, RINGOFTRIALS_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(RINGOFTRIALS_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 16:
     player->TeleportTo(CIRCLEOFBLOOD_MAPID, CIRCLEOFBLOOD_X, CIRCLEOFBLOOD_Y, CIRCLEOFBLOOD_Z, CIRCLEOFBLOOD_ORIENTATION, CIRCLEOFBLOOD_OPTIONS);
     player->GetSession()->SendAreaTriggerMessage(CIRCLEOFBLOOD_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 17:
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportace - mesta", GOSSIP_SENDER_MAIN, 0);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Teleportace - pvp", GOSSIP_SENDER_MAIN, 13);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Buffy", GOSSIP_SENDER_MAIN, 18);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Naucit zbrane", GOSSIP_SENDER_MAIN, 19);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Max skill", GOSSIP_SENDER_MAIN, 20);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Reset many a zivotu", GOSSIP_SENDER_MAIN, 21);
     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT,"Zavrit", GOSSIP_SENDER_MAIN, 1);
     player->SEND_GOSSIP_MENU(4, creature->GetGUID());
     break;
    case 18:
     player->CastSpell(player, MARKOFTHEWILD, true);
     player->CastSpell(player, BATTLESHOUT, true);
     player->CastSpell(player, BLESSINGOFKINGS, true);
     player->CastSpell(player, ARCANEBRILLIANCE, true);
     player->CastSpell(player, POWERWORDFORTITUDE, true);
     player->GetSession()->SendAreaTriggerMessage(BUFF_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 19:
     switch(player->getClass())
     {
     case CLASS_WARRIOR:
      player->learnSpell(SPELL_BLOCK, true);
      player->learnSpell(SPELL_BOWS, true);
      player->learnSpell(SPELL_CROSSBOWS, true);
      player->learnSpell(SPELL_DUAL_WIELD, true);
      player->learnSpell(SPELL_FIST_WEAPONS, true);
      player->learnSpell(SPELL_GUNS, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_PLATE, true);
      player->learnSpell(SPELL_POLEARMS, true);
      player->learnSpell(SPELL_SHIELD, true);
      player->learnSpell(SPELL_SHOOT, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_THROW, true);
      player->learnSpell(SPELL_THROWN, true);
      player->learnSpell(SPELL_TWO_HANDED_AXES, true);
      player->learnSpell(SPELL_TWO_HANDED_MACES, true);
      player->learnSpell(SPELL_TWO_HANDED_SWORDS, true);
      break;
     case CLASS_PALADIN:
      player->learnSpell(SPELL_BLOCK, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_PLATE, true);
      player->learnSpell(SPELL_POLEARMS, true);
      player->learnSpell(SPELL_RELIC_3, true);
      player->learnSpell(SPELL_SHIELD, true);
      player->learnSpell(SPELL_TWO_HANDED_AXES, true);
      player->learnSpell(SPELL_TWO_HANDED_MACES, true);
      player->learnSpell(SPELL_TWO_HANDED_SWORDS, true);
      break;
     case CLASS_HUNTER:
      player->learnSpell(SPELL_BOWS, true);
      player->learnSpell(SPELL_CROSSBOWS, true);
      player->learnSpell(SPELL_DUAL_WIELD, true);
      player->learnSpell(SPELL_FIST_WEAPONS, true);
      player->learnSpell(SPELL_GUNS, true);
      player->learnSpell(SPELL_MAIL, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_POLEARMS, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_TWO_HANDED_AXES, true);
      player->learnSpell(SPELL_TWO_HANDED_SWORDS, true);
      break;
     case CLASS_ROGUE:
      player->learnSpell(SPELL_BOWS, true);
      player->learnSpell(SPELL_CROSSBOWS, true);
      player->learnSpell(SPELL_DUAL_WIELD, true);
      player->learnSpell(SPELL_FIST_WEAPONS, true);
      player->learnSpell(SPELL_GUNS, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_SHOOT, true);
      player->learnSpell(SPELL_THROW, true);
      player->learnSpell(SPELL_THROWN, true);
      break;
     case CLASS_PRIEST:
      player->learnSpell(SPELL_DAGGERS, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_SHOOT_WANDS, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_WANDS, true);
      break;
     case CLASS_DEATH_KNIGHT:
      player->learnSpell(SPELL_DUAL_WIELD, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_PLATE, true);
      player->learnSpell(SPELL_POLEARMS, true);
      player->learnSpell(SPELL_RELIC, true);
      player->learnSpell(SPELL_TWO_HANDED_AXES, true);
      player->learnSpell(SPELL_TWO_HANDED_MACES, true);
      player->learnSpell(SPELL_TWO_HANDED_SWORDS, true);
      break;
     case CLASS_SHAMAN:
      player->learnSpell(SPELL_BLOCK, true);
      player->learnSpell(SPELL_FIST_WEAPONS, true);
      player->learnSpell(SPELL_MAIL, true);
      player->learnSpell(SPELL_ONE_HANDED_AXES, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_RELIC_4, true);
      player->learnSpell(SPELL_SHIELD, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_TWO_HANDED_AXES, true);
      player->learnSpell(SPELL_TWO_HANDED_MACES, true);
      break;
     case CLASS_MAGE:
      player->learnSpell(SPELL_DAGGERS, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_SHOOT_WANDS, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_WANDS, true);
      break;
     case CLASS_WARLOCK:
      player->learnSpell(SPELL_DAGGERS, true);
      player->learnSpell(SPELL_ONE_HANDED_SWORDS, true);
      player->learnSpell(SPELL_SHOOT_WANDS, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_WANDS, true);
      break;
     case CLASS_DRUID:
      player->learnSpell(SPELL_DAGGERS, true);
      player->learnSpell(SPELL_FIST_WEAPONS, true);
      player->learnSpell(SPELL_ONE_HANDED_MACES, true);
      player->learnSpell(SPELL_POLEARMS, true);
      player->learnSpell(SPELL_RELIC_2, true);
      player->learnSpell(SPELL_STAVES, true);
      player->learnSpell(SPELL_TWO_HANDED_MACES, true);
      break;
     default:
      break;
     }
     player->CastSpell(player,SPELL_EFFECT,false);
     player->GetSession()->SendAreaTriggerMessage(WEAPON_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 20:
     player->UpdateSkillsToMaxSkillsForLevel();
     player->CastSpell(player,SPELL_EFFECT,false);
     player->GetSession()->SendAreaTriggerMessage(MAXSKILL_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    case 21:
     player->SetHealth(player->GetMaxHealth());
     player->SetPower(POWER_MANA, player->GetMaxPower(POWER_MANA));
     player->CastSpell(player,SPELL_EFFECT,false);
     player->GetSession()->SendAreaTriggerMessage(RESTORE_MESSAGE);
     player->CLOSE_GOSSIP_MENU();
     break;
    default:
     break;
    }
    return true;
    }
    void AddSC_npc_teleporter()
    {
    new npc_teleporter;
    }
    

     

    Item Teleporter

    #include "ScriptMgr.h"
    #define ITEM_SCRIPT_NAME "item_teleporter"
    #define NPC_ID    60000
    #define SPELL_EFFECT  61456
    #define MESSAGE_VIP   "Predmet bohuzel nemuzete pouzit, nemate aktivni VIP ucet"
    #define MESSAGE_ERROR  "Item nemuzete v tuto chvili pouzit"
    class item_teleporter : public ItemScript
    {
    public:
    item_teleporter();
    ~item_teleporter();
    bool OnUse(Player *player, Item *item, SpellCastTargets const &targets);
    bool isVip(uint32 accountId);
    };
    item_teleporter::item_teleporter() : ItemScript(ITEM_SCRIPT_NAME){}
    item_teleporter::~item_teleporter(){}
    bool item_teleporter::OnUse(Player *player, Item *item, SpellCastTargets const &targets)
    {
    if(!isVip(player->GetSession()->GetAccountId()))
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_VIP);
     return true;
    }
    
    if(player->isInCombat() || player->isMoving() || player->IsMounted() || player == NULL)
    {
     player->GetSession()->SendAreaTriggerMessage(MESSAGE_ERROR);
     return true;
    }
    player->CastSpell(player,SPELL_EFFECT,false);
    player->SummonCreature(NPC_ID,player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(),TEMPSUMMON_TIMED_DESPAWN,60000);
    return false;
    }
    bool item_teleporter::isVip(uint32 accountId)
    {
    int bufferSize = 20;
    char * timeField = new char[bufferSize];
    time_t now = time(NULL);
    strftime(timeField, bufferSize, "%Y-%m-%d", localtime(&now));
    QueryResult getDate = LoginDatabase.PQuery("SELECT expirace FROM vip WHERE account_id='%i'", accountId);
    
    if(!getDate)
    {
     delete timeField;
     return false;
    }
    Field *field = getDate->Fetch();
    const char * date = field[0].GetCString();
    std::string stringLocal = timeField;
    std::string stringDb = date;
    stringLocal.erase(4,1);
    stringLocal.erase(6,1);
    stringDb.erase(4,1);
    stringDb.erase(6,1);
    uint32 localTime = atoi(stringLocal.c_str());
    uint32 dbTime = atoi(stringDb.c_str());
    if(localTime < dbTime)
    {
     delete timeField;
     return true;
    }
    else
    {
     delete timeField;
     return false;
    }
    }
    void AddSC_item_teleporter()
    {
    new item_teleporter;
    }
    

     

    VIP SQL

    CREATE TABLE vip (
    id INT(10) AUTO_INCREMENT PRIMARY KEY,
    account_id INT(10),
    email VARCHAR(255),
    porizeni date,
    expirace date
    )
    

     

    Item Teleporter SQL

    UPDATE `world`.`item_template` SET `entry`='1002', `class`='15', `subclass`='0', `SoundOverrideSubclass`='-1', `name`='Kniha pomoci', `displayid`='1002', `Quality`='5', `Flags`='64', `FlagsExtra`='0', `BuyCount`='1', `BuyPrice`='0', `SellPrice`='0', `InventoryType`='0', `AllowableClass`='-1', `AllowableRace`='-1', `ItemLevel`='1', `RequiredLevel`='0', `RequiredSkill`='0', `RequiredSkillRank`='0', `requiredspell`='0', `requiredhonorrank`='0', `RequiredCityRank`='0', `RequiredReputationFaction`='0', `RequiredReputationRank`='0', `maxcount`='0', `stackable`='1', `ContainerSlots`='0', `stat_type1`='0', `stat_value1`='0', `stat_type2`='0', `stat_value2`='0', `stat_type3`='0', `stat_value3`='0', `stat_type4`='0', `stat_value4`='0', `stat_type5`='0', `stat_value5`='0', `stat_type6`='0', `stat_value6`='0', `stat_type7`='0', `stat_value7`='0', `stat_type8`='0', `stat_value8`='0', `stat_type9`='0', `stat_value9`='0', `stat_type10`='0', `stat_value10`='0', `ScalingStatDistribution`='0', `dmg_min1`='0', `dmg_max1`='0', `dmg_type1`='0', `dmg_min2`='0', `dmg_max2`='0', `dmg_type2`='0', `armor`='0', `holy_res`='0', `fire_res`='0', `nature_res`='0', `frost_res`='0', `shadow_res`='0', `arcane_res`='0', `delay`='0', `ammo_type`='0', `RangedModRange`='0', `spellid_1`='40662', `spelltrigger_1`='0', `spellcharges_1`='0', `spellppmRate_1`='0', `spellcooldown_1`='-1', `spellcategory_1`='0', `spellcategorycooldown_1`='-1', `spellid_2`='0', `spelltrigger_2`='0', `spellcharges_2`='0', `spellppmRate_2`='0', `spellcooldown_2`='-1', `spellcategory_2`='0', `spellcategorycooldown_2`='-1', `spellid_3`='0', `spelltrigger_3`='0', `spellcharges_3`='0', `spellppmRate_3`='0', `spellcooldown_3`='-1', `spellcategory_3`='0', `spellcategorycooldown_3`='-1', `spellid_4`='0', `spelltrigger_4`='0', `spellcharges_4`='0', `spellppmRate_4`='0', `spellcooldown_4`='-1', `spellcategory_4`='0', `spellcategorycooldown_4`='-1', `spellid_5`='0', `spelltrigger_5`='0', `spellcharges_5`='0', `spellppmRate_5`='0', `spellcooldown_5`='-1', `spellcategory_5`='0', `spellcategorycooldown_5`='-1', `bonding`='1', `description`='Pouzijte knihu pro privolani Teleportera', `PageText`='0', `LanguageID`='0', `PageMaterial`='0', `startquest`='0', `lockid`='0', `Material`='-1', `sheath`='0', `RandomProperty`='0', `RandomSuffix`='0', `block`='0', `itemset`='0', `MaxDurability`='0', `area`='0', `Map`='0', `BagFamily`='0', `TotemCategory`='0', `socketColor_1`='0', `socketContent_1`='0', `socketColor_2`='0', `socketContent_2`='0', `socketColor_3`='0', `socketContent_3`='0', `socketBonus`='0', `GemProperties`='0', `RequiredDisenchantSkill`='-1', `ArmorDamageModifier`='0', `duration`='0', `ItemLimitCategory`='0', `HolidayId`='0', `ScriptName`='item_teleporter', `DisenchantID`='0', `FoodType`='0', `minMoneyLoot`='0', `maxMoneyLoot`='0', `flagsCustom`='0', `WDBVerified`='12340' WHERE (`entry`='1002');
    REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`) VALUES (60000, 0, 0, 0, 0, 0, 18, 0, 0, 0, 'Server helper', '', '', 0, 80, 80, 1, 35, 35, 1, 1, 1.14286, 1, 1, 1, 1, 0, 1, 1, 1400, 1600, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 1, 1, 1, 5, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 'npc_teleporter', 12340);
    REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `HoverHeight`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`) VALUES (60001, 0, 0, 0, 0, 0, 790, 0, 0, 0, 'Server VIP', '', '', 0, 80, 80, 1, 35, 35, 1, 1, 1.14286, 1, 1, 1, 1, 0, 1, 1, 1400, 1600, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 1, 1, 1, 5, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 'npc_vip', 12340);
    
    

×