Tak si byl rychlejší ale stejně to sem dám kdyby měl někdo stejnej problém
1.) Stáhneme si revizi MaNGOSu
2.) Složku přejmenujeme třeba na >MaNGOS< (bez ><)
2.) Spustíme Microsoft Visual Studio
3.) Otevřeme MaNGOS projekt
-> File->Open->Project/Solution... MaNGOS/win/mangosdVC90
4.) V horním panelu přehodíme >Debug< na >Release<, ve vedlejším okénku nastavíme zda bude kompilace pro 32b, či 64b systém
5.) Spustíme kompilaci
-> Build->Build solution
--> počkáme, dokud se kompilace nedokončí
---> Bez chyb: ( ========== Build: 13 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== )
Potom to udělej takhle: Udělej soubor Teleporter.cpp a do něj vlož
#include "precompiled.h"
//buffs
#define SPELL_BUFF1 48161 //Fortitude
#define SPELL_BUFF2 48073 //Divine spirit
#define SPELL_BUFF3 48469 //Mark of the wild
#define SPELL_BUFF4 53307 //Thorns
#define SPELL_BUFF5 42995 //Arcane Intellect
#define SPELL_BUFF6 58453 //Armor
#define SPELL_BUFF7 48441 //Heal
bool GossipHello_Penguino(Player *player, Creature *_Creature)
{
if ( player->GetTeam() == ALLIANCE ) //if alliance
{
player->ADD_GOSSIP_ITEM( 7, "Alliance Cities" , GOSSIP_SENDER_MAIN, 1001);
player->ADD_GOSSIP_ITEM( 7, "Gurubashi Arena PvP" , GOSSIP_SENDER_MAIN, 10020);
}
else //if horde
{
player->ADD_GOSSIP_ITEM( 7, "Horde Cities" , GOSSIP_SENDER_MAIN, 1002);
player->ADD_GOSSIP_ITEM( 7, "Gurubashi Arena PvP" , GOSSIP_SENDER_MAIN, 10021);
}
player->ADD_GOSSIP_ITEM( 7, "WotLK Dungeons" , GOSSIP_SENDER_MAIN, 30000);
player->ADD_GOSSIP_ITEM( 7, "WotLK Raids" , GOSSIP_SENDER_MAIN, 30001);
player->ADD_GOSSIP_ITEM( 7, "Buffy" , GOSSIP_SENDER_MAIN, 2000);
player->ADD_GOSSIP_ITEM( 7, "Healni me" , GOSSIP_SENDER_MAIN, 2006);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
return true;
}
void SendDefaultMenu_Penguino(Player *player, Creature *_Creature, uint32 action )
{
switch(action)
{
case 1001: //Alliance Cities
player->ADD_GOSSIP_ITEM( 5, "Stormwind" , GOSSIP_SENDER_MAIN, 1004);
player->ADD_GOSSIP_ITEM( 5, "Ironforge" , GOSSIP_SENDER_MAIN, 1005);
player->ADD_GOSSIP_ITEM( 5, "Darnassus" , GOSSIP_SENDER_MAIN, 1006);
player->ADD_GOSSIP_ITEM( 5, "Exodar" , GOSSIP_SENDER_MAIN, 1007);
player->ADD_GOSSIP_ITEM( 5, "Dark Portal" , GOSSIP_SENDER_MAIN, 1012);
player->ADD_GOSSIP_ITEM( 5, "Dalaran" , GOSSIP_SENDER_MAIN, 1013);
player->ADD_GOSSIP_ITEM( 7, "<- [Zpet do MENU]" , GOSSIP_SENDER_MAIN, 5000);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
break;
case 1002: //Horde Cities
player->ADD_GOSSIP_ITEM( 5, "Orgrimmar" , GOSSIP_SENDER_MAIN, 1008);
player->ADD_GOSSIP_ITEM( 5, "Thunderbluff" , GOSSIP_SENDER_MAIN, 1009);
player->ADD_GOSSIP_ITEM( 5, "Undercity" , GOSSIP_SENDER_MAIN, 1010);
player->ADD_GOSSIP_ITEM( 5, "Silvermoon City" , GOSSIP_SENDER_MAIN, 1011);
player->ADD_GOSSIP_ITEM( 5, "Dark Portal" , GOSSIP_SENDER_MAIN, 1014);
player->ADD_GOSSIP_ITEM( 5, "Dalaran" , GOSSIP_SENDER_MAIN, 1015);
player->ADD_GOSSIP_ITEM( 7, "<- [Zpet do MENU]" , GOSSIP_SENDER_MAIN, 5000);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
break;
case 30000: //Dungeons
player->ADD_GOSSIP_ITEM( 5, "Utgarde Keep" , GOSSIP_SENDER_MAIN, 40000);
player->ADD_GOSSIP_ITEM( 5, "Utgarde Pinnacle" , GOSSIP_SENDER_MAIN, 40001);
player->ADD_GOSSIP_ITEM( 5, "The Nexus" , GOSSIP_SENDER_MAIN, 40002);
player->ADD_GOSSIP_ITEM( 5, "The Oculus" , GOSSIP_SENDER_MAIN, 40003);
player->ADD_GOSSIP_ITEM( 5, "Culling of Stratholme" , GOSSIP_SENDER_MAIN, 40004);
player->ADD_GOSSIP_ITEM( 5, "Gundrak" , GOSSIP_SENDER_MAIN, 40005);
player->ADD_GOSSIP_ITEM( 5, "Azjol'Nerub" , GOSSIP_SENDER_MAIN, 40006);
player->ADD_GOSSIP_ITEM( 5, "Ahn'kahet" , GOSSIP_SENDER_MAIN, 40007);
player->ADD_GOSSIP_ITEM( 5, "Violet Hold" , GOSSIP_SENDER_MAIN, 40008);
player->ADD_GOSSIP_ITEM( 5, "Halls of Stone" , GOSSIP_SENDER_MAIN, 40009);
player->ADD_GOSSIP_ITEM( 5, "Halls of Lightning" , GOSSIP_SENDER_MAIN, 40010);
player->ADD_GOSSIP_ITEM( 7, "<- [Zpet do MENU]" , GOSSIP_SENDER_MAIN, 5000);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
break;
case 30001: //raids
player->ADD_GOSSIP_ITEM( 5, "Naxxramas" , GOSSIP_SENDER_MAIN, 50000);
player->ADD_GOSSIP_ITEM( 5, "Ulduar" , GOSSIP_SENDER_MAIN, 50001);
player->ADD_GOSSIP_ITEM( 5, "Obsidian Sanctum" , GOSSIP_SENDER_MAIN, 50002);
player->ADD_GOSSIP_ITEM( 5, "The Eye of Ethernity" , GOSSIP_SENDER_MAIN, 50003);
player->ADD_GOSSIP_ITEM( 5, "Onyxia's Lair" , GOSSIP_SENDER_MAIN, 50004);
player->ADD_GOSSIP_ITEM( 5, "Vault of Archavon" , GOSSIP_SENDER_MAIN, 50005);
player->ADD_GOSSIP_ITEM( 5, "Trial of the Crusader" , GOSSIP_SENDER_MAIN, 50006);
player->ADD_GOSSIP_ITEM( 5, "Icecrown Citadel" , GOSSIP_SENDER_MAIN, 50007);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
break;
case 10020: //Gurubashi Arena
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -13272.562344f, 166.661591f, 37.025265f, 4.228953f);
break;
case 10021: //Gurubashi Arena
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -13272.562344f, 166.661591f, 37.025265f, 4.228953f);
break;
case 1004: //Stormwind
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -8832.945313f, 623.305908f, 93.756119f, 0.704069f);
break;
case 1005: //Ironforge
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -4920.960449f, -955.293030f, 501.755096f, 2.258313f);
break;
case 1006: //Darnassus
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, 9949.559570f, 2284.209961f, 1341.394165f, 1.525185f);
break;
case 1007: //Exodar
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, -3965.699951f, -11653.599609f, -138.843994f, 6.192861f);
break;
case 1008: //Orgrimmar
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, 1629.601440f, -4373.439453f, 31.293652f, 3.528754f);
break;
case 1009: //Thunder Bluff
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -1277.369995f, 124.804001f, 131.287003f, 5.222740f);
break;
case 1010: //Undercity
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, 1584.069946f, 241.987000f, -52.153400f, 0.049647f);
break;
case 1011: //Silvermoon City
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, 9487.690430f, -7279.200195f, 14.286600f, 6.164780f);
break;
case 1013: //Dalaran
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 5807.860332f, 588.230591f, 661.373230f, 1.667496f);
break;
case 1015: //Dalaran
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 5807.860332f, 588.230591f, 661.373230f, 1.667496f);
break;
case 1012: //darkportal
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, -248.317017f, 968.226135f, 86.430534f, 1.566246f);
break;
case 1014: //darkportal
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, -248.317017f, 968.226135f, 86.430534f, 1.566246f);
break;
case 40000: //UK
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 1219.664917f, -4865.193848f, 41.535000f, 0.314811f);
break;
case 40001: //UP
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 1255.446289f, -4853.176270f, 216.074661f, 3.454866f);
break;
case 40002: //Nexus
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3892.317627f, 6985.265137f, 69.725945f, 0.024484f);
break;
case 40003: //Oculus
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3878.909912f, 6984.500000f, 107.511551f, 3.140943f);
break;
case 40004: //CoS
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -8669.932617f, -4397.125977f, -205.574234f, 3.436879f);
break;
case 40005: //Gundrak
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 6959.186035f, -4416.407715f, 451.506042f, 0.813021f);
break;
case 40006: //Azjol
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3687.002197f, 2160.152344f, 37.126099f, 2.430617f);
break;
case 40007: //Ahn
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3642.264648f, 2034.362915f, 3.232100f, 4.319561f);
break;
case 40008: //VH
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 5693.281250f, 502.955627f, 654.702993f, 4.051087f);
break;
case 40009: //HoS
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 8921.278320f, -982.728149f, 1040.540405f, 1.545117f);
break;
case 40010: //HoL
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 9183.506836f, -1385.304199f, 1112.875489f, 5.517610f);
break;
case 50000: //Naxx
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3669.402344f, -1259.975586f, 244.001587f, 4.232424f);
break;
case 50001: //Ulduar
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 9332.218750f, -1136.00317f, 1247.385498f, 1.572278f);
break;
case 50002: //OS
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3476.185303f, 281.722626f, -119.043976f, 4.727457f);
break;
case 50003: //Eye
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 3859.283447f, 6988.659180f, 152.742264f, 5.664299f);
break;
case 50004: //Onyx
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -4694.693848f, -3701.385742f, 47.805836f, 4.402122f);
break;
case 50005: //VoA
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 5467.609375f, 2827.439941f, 419.949188f, 0.968485f);
break;
case 50006: //TotC
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 8517.248047f, 721.388428f, 559.179016f, 1.606136f);
break;
case 50007: //ICC
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(571, 5867.302734f, 2101.300293f, 636.510193f, 2.199108f);
break;
case 2000:
player->ADD_GOSSIP_ITEM( 5, "Fortitude" , GOSSIP_SENDER_MAIN, 2001);
player->ADD_GOSSIP_ITEM( 5, "Divine Spirit" , GOSSIP_SENDER_MAIN, 2002);
player->ADD_GOSSIP_ITEM( 5, "Mark of the Wild" , GOSSIP_SENDER_MAIN, 2003);
player->ADD_GOSSIP_ITEM( 5, "Thorns" , GOSSIP_SENDER_MAIN, 2004);
player->ADD_GOSSIP_ITEM( 5, "Arcane Intellect" , GOSSIP_SENDER_MAIN, 2005);
player->ADD_GOSSIP_ITEM( 5, "Armor" , GOSSIP_SENDER_MAIN, 2007);
player->ADD_GOSSIP_ITEM( 7, "<- [Main Menu]" , GOSSIP_SENDER_MAIN, 5000);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());
break;
case 2001: //cast Fortitude
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF1,false);
break;
case 2002: //cast Divine Spirit
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF2,false);
break;
case 2003: //cast Mark of the Wild
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF3,false);
break;
case 2004: //cast Thorns
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF4,false);
break;
case 2005: //cast Arcane Intellect
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF5,false);
break;
case 2007: //cast Armor
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF6,false);
break;
case 2006: //cast Heal
player->CLOSE_GOSSIP_MENU();
_Creature->CastSpell(player,SPELL_BUFF7,false);
break;
case 5000: // <- [Main Menu]
GossipHello_Penguino(player, _Creature);
break;
}
}
bool GossipSelect_Penguino(Player *player, Creature *_Creature, uint32 sender, uint32 action)
{
// Main menu
if (sender == GOSSIP_SENDER_MAIN)
SendDefaultMenu_Penguino( player, _Creature, action );
return true;
}
void AddSC_Penguino()
{
Script *newscript;
newscript = new Script;
newscript->Name="Penguino";
newscript->pGossipHello = &GossipHello_Penguino;
newscript->pGossipSelect = &GossipSelect_Penguino;
newscript->pItemHello = NULL;
newscript->pGOHello = NULL;
newscript->pAreaTrigger = NULL;
newscript->pItemQuestAccept = NULL;
newscript->pGOQuestAccept = NULL;
newscript->pGOChooseReward = NULL;
newscript->RegisterSelf();
}
1.) Stáhneme si kompatabilní revizi ScriptDev2 k Vaší revizi a složku pojmenujeme >ScriptDev2< (bez ><)
2.) Složku vložíme do MaNGOS/src/bindings/
Otevři Visual studio ----> File ----> Open ------> File... -----> najdi složku scriptdev2 -----> otevři Makefile
pod řádek
include/sc_instance.h \
vložíme
scripts/custom/teleporter.cpp \
A zase : ----> File ----> Open ------> File... -----> najdi složku scriptdev2 -----> otevři složku System ----> ScriptLoader.cpp
pod řádek
//custom
vložíme
extern void AddSC_Penguino();
Vtom samém souboru, si najdeme ještě v oddělení void AddScripts()
zase řádek
//custom
a pod něj vložíme
AddSC_Penguino();
Teleporter.cpp dáme do Binárek: ScriptDev2/Scripts/Custom
Otevřeme project ScriptDev2 a najdeme si v něm složku Scripts/Custom
- teleporter.cpp v něm nenajdete, je třeba ještě udělat poslední věc a to tuto:
• Klikneme pravým na složku Custom
- dáme ADD -> Exiting item... a najdeme si teleporter.cpp, otevřeme...
-> nyní by měl být ke kompilaci přiřazen i teleporter.cpp
Zkompilujeme -> ! MUSÍ BÝT NASTAVENO STEJNĚ JAKO KOMPILACE MANGOSU ! ( V horním panelu přehodíme >Debug< na >Release<, ve vedlejším okénku nastavíme zda bude kompilace pro 32b, či 64b systém)
-> File->Open->Project/Solution... MaNGOS/src/bindings/ScriptDev2/scriptVC90
5.) V horním panelu přehodíme >Debug< na >Release<, ve vedlejším okénku nastavíme zda bude kompilace pro 32b, či 64b systém
-> ! MUSÍ BÝT NASTAVENO STEJNĚ JAKO KOMPILACE MANGOSU !
6.) Spustíme kompilaci
-> Build->Build solution
--> počkáme, dokud se kompilace nedokončí
---> Bez chyb: ( ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== )
----> Pokud se v kompilaci objeví Warning's (v čisté revizi) nic se neděje, pokud se projekt nepodaří, nakonci se to dočtete v "Failed"
-----> příklad nezdařené kompilace ( ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== )
Naši kompilaci najdeme v:
-> 32b: MaNGOS/bin/WIN32_Release
-> 64b: MaNGOS/bin/WIN64_Release
Vytvoříme si novou složku do které ze složky (kde máme zkompilovaný MaNGOS) přesuneme všechny soubory...
Nyní jsou třeba ještě tyto soubory/složky:
SQL složky (core & scripty)
• MaNGOS/sql - přesuneme celou složku >sql<
• MaNGOS/src/bindings/scriptdev2/sql - složku >sql< přejmenujeme třeba na sql_sd2 a přesuneme také (přejmenujeme proto, aby se nepřepsala s mangos sql
Configy (mangosd, realmd, scriptdev2)
• MaNGOS/src/mangosd/mangosd.conf.dist.in
• MaNGOS/src/realmd/realmd.conf.dist.in
• MaNGOS/src/bindings/ScriptDev2/scriptdev2.conf.dist.in
-> tyto soubory musíme uložit jako .CONF, jednoduše to uděláme tak, že na ně klikneme pravým, dáme přejmenovat... umažeme .dist.in a potvrdíme ENTER
-> přesuneme k naší kompilaci
Vyextrahuj dbc, mapy a vmapy..
Nahraj databázy do Mysql...
a do databáze mangos nahraj toto:
REPLACE INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid_A`, `modelid_A2`, `modelid_H`, `modelid_H2`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `minhealth`, `maxhealth`, `minmana`, `maxmana`, `armor`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `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`, `PetSpellDataId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `unk16`, `unk17`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`) VALUES (100000, 0, 0, 0, 0, 0, 21630, 21630, 21630, 21630, 'Deda Vseveda', 'Rad Sevalu', '', 0, 1, 1, 1, 1, 1, 1, 0, 35, 35, 1, 1, 1.14286, 0.5, 3, 1, 1, 0, 0, 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, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 'Penguino');
Restartujeme server a Teleporter je nyní plně funkční.
Vyvoláme ho příkazem:
.npc add 100000
Návod by Necrovision