Vytvoříme si soubor start_npc.cpp (příklad)
Otevřeme si Visual Studio a vložíme tam toto:
Z toho scriptu by jste si měli odnést jak vytvořit "teleportéra" nebo "buffera" nebo "ItemGivera".
Pro méně chápavé lidi:
#include "ScriptPCH.h" <-- to je základ.
#define STARTMECMELEE <- Libovolný název(bez háčků a čárek) 32838<- ID itemu (toto je off azzinoth)
bool GossipHello_start_npc(Player *pPlayer, Creature *pCreature) <- Příkaz k tomu aby jsme mohli s NPC "mluvit".
if (!pPlayer->isInCombat()) <-- Když hráč není v combatu(nebojuje)
{
pPlayer->ADD_GOSSIP_ITEM(0, "Melee mec pro start", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);<-- 1. V nabídce
bool GossipSelect_start_npc(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action) <- bool
{
switch (action)
{
//Mec
case GOSSIP_ACTION_INFO_DEF + 1: <- tou + 1 ten příkaz přiřadíme k tomu výberu
pCreature->AddItem(pPlayer, STARTMECMELEE, 1); //to 1 je počet a jak jsme si ji říkali STARTMECMELEE je jen definice, takže si tam dejte cokoliv. A ta 1 je počet.
pPlayer->CLOSE_GOSSIP_MENU();
break;
void AddSC_start_npc()
{
Script *newscript;
newscript = new Script;
newscript->Name = "start_npc";
newscript->pGossipHello = &GossipHello_start_npc;
newscript->pGossipSelect = &GossipSelect_start_npc;
newscript->RegisterSelf();
}
TOTO JE NUTNOST!
Zadáme do ScriptLoader.cpp
void AddSC_start_npc
AddSC_start_npc
SQL NPC:
INSERT INTO `creature_template` (`entry`, `heroic_entry`, `modelid_A`, `modelid_A2`, `modelid_H`, `modelid_H2`, `name`, `subname`, `IconName`, `minlevel`, `maxlevel`, `minhealth`, `maxhealth`, `minmana`, `maxmana`, `armor`, `faction_A`, `faction_H`, `npcflag`, `speed`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `baseattacktime`, `rangeattacktime`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `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`, `RacialLeader`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`) VALUES (112000, 0, 17882, 0, 17882, 0, 'StartNPC', '', '', 1, 1, 1, 1, 1, 1, 0, 35, 35, 1, 1, 1, 3, 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, 3, 0, 1, 0, 0, 0, 'start_npc');
Něco málo jsem si našel, protože jsem začátečník a začínám chápat. Tak chci předávat informace cestou jak jsem si to vysvětlil sobě Doufám že nebudete moc kritičtí a že se vám moje práce bude líbit. Když tak opravte chyby