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:  
Sign in to follow this  
...::StyX::...

Trial of the Champion

Recommended Posts

Zdravím,

pomohl by mi někdo to upravit/opravit aby to šlo skompilovat?

 

 

trial_of_the_champion.cpp

 

#include "trial_of_the_champion.h"

#define GOSSIP_START_EVENT     "Im ready for the next challenge."

/*######
## npc_toc5_announcer
######*/

struct MANGOS_DLL_DECL npc_toc5_announcerAI : public ScriptedAI
{
   npc_toc5_announcerAI(Creature* pCreature) : ScriptedAI(pCreature)
   {
       m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
       Reset();
   }

   ScriptedInstance* m_pInstance;

   void Reset()
   {
   }

void StartEvent(Player* pPlayer)
   {
	if (!m_pInstance)
		return;
	if (m_pInstance->GetData(TYPE_GRAND_CHAMPIONS) == NOT_STARTED)
	{
		m_pInstance->SetData(DATA_TOC5_ANNOUNCER, m_creature->GetGUID());
		if (m_pInstance->GetData(DATA_TOC5_ANNOUNCER) == m_pInstance->GetData(DATA_ARELAS))
		{
			m_pInstance->SetData(DATA_BLACK_KNIGHT_MINION, 35564);
			switch(urand(0, 4))
			{
				case 0:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 35572);
				break;
				case 1:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 35569);
				break;
				case 2:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 35571);
				break;
				case 3:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 35570);
				break;
				case 4:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 35617);
				break;
			}
			do{
				switch(urand(0, 4))
				{
					case 0:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 35572);
					break;
					case 1:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 35569);
					break;
					case 2:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 35571);
					break;
					case 3:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 35570);
					break;
					case 4:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 35617);
					break;
				}
			} while(m_pInstance->GetData(DATA_CHAMPIONID_1) == m_pInstance->GetData(DATA_CHAMPIONID_2));
			do{
				switch(urand(0, 4))
				{
					case 0:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 35572);
					break;
					case 1:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 35569);
					break;
					case 2:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 35571);
					break;
					case 3:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 35570);
					break;
					case 4:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 35617);
					break;
				}
			} while(m_pInstance->GetData(DATA_CHAMPIONID_1) == m_pInstance->GetData(DATA_CHAMPIONID_3) || m_pInstance->GetData(DATA_CHAMPIONID_2) == m_pInstance->GetData(DATA_CHAMPIONID_3));
		}
		if (m_pInstance->GetData(DATA_TOC5_ANNOUNCER) == m_pInstance->GetData(DATA_JAEREN))
		{
			m_pInstance->SetData(DATA_BLACK_KNIGHT_MINION, 123);
			switch(urand(0, 4))
			{
				case 0:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 34705);
				break;
				case 1:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 34702);
				break;
				case 2:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 34701);
				break;
				case 3:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 34657);
				break;
				case 4:
					m_pInstance->SetData(DATA_CHAMPIONID_1, 34703);
				break;
			}
			do{
				switch(urand(0, 4))
				{
					case 0:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 34705);
					break;
					case 1:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 34702);
					break;
					case 2:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 34701);
					break;
					case 3:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 34657);
					break;
					case 4:
						m_pInstance->SetData(DATA_CHAMPIONID_2, 34703);
					break;
				}
			} while(m_pInstance->GetData(DATA_CHAMPIONID_1) == m_pInstance->GetData(DATA_CHAMPIONID_2));
			do{
				switch(urand(0, 4))
				{
					case 0:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 34705);
					break;
					case 1:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 34702);
					break;
					case 2:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 34701);
					break;
					case 3:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 34657);
					break;
					case 4:
						m_pInstance->SetData(DATA_CHAMPIONID_3, 34703);
					break;
				}
			} while(m_pInstance->GetData(DATA_CHAMPIONID_1) == m_pInstance->GetData(DATA_CHAMPIONID_3) || m_pInstance->GetData(DATA_CHAMPIONID_2) == m_pInstance->GetData(DATA_CHAMPIONID_3));
		}
		m_pInstance->SetData(TYPE_GRAND_CHAMPIONS, FAIL);
	}
	if (m_pInstance->GetData(TYPE_GRAND_CHAMPIONS) == FAIL)
	{
		m_creature->SummonCreature(m_pInstance->GetData(DATA_CHAMPIONID_1), 738.665771, 661.031433, 412.394623, 4.698702, TEMPSUMMON_MANUAL_DESPAWN, 0);
		m_creature->SummonCreature(m_pInstance->GetData(DATA_CHAMPIONID_2), 746.864441, 660.918762, 411.695465, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
		m_creature->SummonCreature(m_pInstance->GetData(DATA_CHAMPIONID_3), 754.360779, 660.816162, 412.395996, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
		m_pInstance->SetData(TYPE_GRAND_CHAMPIONS, IN_PROGRESS);
	}
	if (m_pInstance->GetData(TYPE_GRAND_CHAMPIONS) == DONE)
	{
		if (m_pInstance->GetData(TYPE_ARGENT_CHALLENGE) == NOT_STARTED)
		{
			switch(urand(0, 1))
			{
				case 0:
					m_pInstance->SetData(DATA_ARGENT_CHALLENGER, 35119);
				break;
				case 1:
					m_pInstance->SetData(DATA_ARGENT_CHALLENGER, 34928);
				break;
			}
			m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, FAIL);
		}
		if (m_pInstance->GetData(TYPE_ARGENT_CHALLENGE) == FAIL)
		{
			m_creature->SummonCreature(m_pInstance->GetData(DATA_ARGENT_CHALLENGER), 746.864441, 660.918762, 411.695465, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
			m_pInstance->SetData(TYPE_ARGENT_CHALLENGE, IN_PROGRESS);
		}
		if (m_pInstance->GetData(TYPE_ARGENT_CHALLENGE) == DONE)
		{
			if (m_pInstance->GetData(TYPE_BLACK_KNIGHT) == DONE)
				m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
			else
			{
				m_creature->SummonCreature(35451, 746.864441, 660.918762, 411.695465, 4.698700, TEMPSUMMON_MANUAL_DESPAWN, 0);
				m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
			}
		}
	}
   }

   void UpdateAI(const uint32 diff)
   {
       if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return;

	if (!m_pInstance)
           return;
   }
}

CreatureAI* GetAI_npc_toc5_announcer(Creature* pCreature)
{
   return new npc_toc5_announcerAI(pCreature);
}

bool GossipHello_npc_toc5_announcer(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);

   pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
   return true;
}

bool GossipSelect_npc_toc5_announcer(Player *player, Creature *_creature, uint32 sender, uint32 action)
{
   if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
   {
       pPlayer->CLOSE_GOSSIP_MENU();
	((npc_toc5_announcerAI*)pCreature->AI())->StartEvent(pPlayer);
   }

   return true;
}

void AddSC_trial_of_the_champion()
{
   Script* NewScript;

   NewScript = new Script;
   NewScript->Name = "npc_toc5_announcer";
NewScript->GetAI = &GetAI_npc_toc5_announcer;
   NewScript->pGossipHello = &GossipHello_npc_toc5_announcer;
   NewScript->pGossipSelect = &GossipSelect_npc_toc5_announcer;
   NewScript->RegisterSelf();
}

 

 

 

 

instance_trial_of_the_champion.cpp

 

#include "ScriptPCH.h"
#include "trial_of_the_champion.h"

struct MANGOS_DLL_DECL instance_trial_of_the_champion : public ScriptedInstance
{
   instance_trial_of_the_champion(Map* pMap) : ScriptedInstance(pMap) { Initialize(); }

   uint32 m_auiEncounter[MAX_ENCOUNTER];
   std::string m_strInstData;

   uint64 m_uiJacobGUID;
   uint64 m_uiAmbroseGUID;
   uint64 m_uiColososGUID;
   uint64 m_uiJaelyneGUID;
   uint64 m_uiLanaGUID;
   uint64 m_uiMokraGUID;
   uint64 m_uiEresseaGUID;
   uint64 m_uiRunokGUID;
   uint64 m_uiZultoreGUID;
   uint64 m_uiVisceriGUID;
uint64 m_uiChampionsLootGUID;
   uint64 m_uiEadricGUID;
uint64 m_uiEadricLootGUID;
   uint64 m_uiPaletressGUID;
uint64 m_uiPaletressLootGUID;
   uint64 m_uiBlackKnightGUID;
uint64 m_uiJaerenGUID;
uint64 m_uiArelasGUID;
uint64 m_uiAnnouncerGUID;
uint32 m_uiChampionId1;
uint32 m_uiChampionId2;
uint32 m_uiChampionId3;
uint64 m_uiChampion1;
uint64 m_uiChampion2;
uint64 m_uiChampion3;
uint64 m_uiBlackKnightMinionGUID;
uint64 m_uiArgentChallenger;
uint64 m_uiArgentChallengerID;
uint64 m_uiMemoryGUID;

   void Initialize()
   {
	m_uiJacobGUID			= 0;
	m_uiAmbroseGUID			= 0;
	m_uiColososGUID			= 0;
	m_uiJaelyneGUID			= 0;
	m_uiLanaGUID			= 0;
	m_uiMokraGUID			= 0;
	m_uiEresseaGUID			= 0;
	m_uiRunokGUID			= 0;
	m_uiZultoreGUID			= 0;
	m_uiVisceriGUID			= 0;
	m_uiChampionsLootGUID	= 0;
	m_uiEadricGUID			= 0;
	m_uiEadricLootGUID		= 0;
	m_uiPaletressGUID		= 0;
	m_uiPaletressLootGUID	= 0;
	m_uiBlackKnightGUID		= 0;
	m_uiJaerenGUID			= 0;
	m_uiArelasGUID			= 0;
	m_uiAnnouncerGUID		= 0;
	m_uiBlackKnightMinionGUID = 0;
	m_uiChampionId1			= 0;
	m_uiChampionId2			= 0;
	m_uiChampionId3			= 0;
	m_uiChampion1			= 0;
	m_uiChampion2			= 0;
	m_uiChampion3			= 0;
	m_uiArgentChallenger	= 0;
	m_uiMemoryGUID			= 0;
	m_uiArgentChallengerID  = 0;

       memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
   }

   bool IsEncounterInProgress() const
   {
       for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
       {
           if (m_auiEncounter[i] == IN_PROGRESS)
               return true;
       }

       return false;
   }

   void OnCreatureCreate(Creature* pCreature)
   {
       switch(pCreature->GetEntry())
       {
		// Champions of the Alliance
           case NPC_JACOB:
               m_uiJacobGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_AMBROSE:
               m_uiAmbroseGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
		case NPC_COLOSOS:
               m_uiColososGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_JAELYNE:
               m_uiJaelyneGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_LANA:
               m_uiLanaGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;

           // Champions of the Horde
           case NPC_MOKRA:
               m_uiMokraGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_ERESSEA:
               m_uiEresseaGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_RUNOK:
               m_uiRunokGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
           case NPC_ZULTORE:
               m_uiZultoreGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;
		case NPC_VISCERI:
               m_uiVisceriGUID = pCreature->GetGUID();
			if (m_uiChampion1 == 0)
				m_uiChampion1 = pCreature->GetGUID();
			else
				if (m_uiChampion2 == 0)
					m_uiChampion2 = pCreature->GetGUID();
				else
					if (m_uiChampion3 == 0)
						m_uiChampion3 = pCreature->GetGUID();
               break;

           // Argent Challenge
		case NPC_EADRIC:
               m_uiEadricGUID = pCreature->GetGUID();
			m_uiArgentChallenger = pCreature->GetGUID();
               break;
           case NPC_PALETRESS:
               m_uiPaletressGUID = pCreature->GetGUID();
			m_uiArgentChallenger = pCreature->GetGUID();
               break;

		// Black Knight
           case NPC_BLACK_KNIGHT:
               m_uiBlackKnightGUID = pCreature->GetGUID();
               break;
		case NPC_RISEN_JAEREN:
               m_uiBlackKnightMinionGUID = pCreature->GetGUID();
               break;
           case NPC_RISEN_ARELAS:
               m_uiBlackKnightMinionGUID = pCreature->GetGUID();
               break;

		// Coliseum Announcers
           case NPC_JAEREN:
               m_uiJaerenGUID = pCreature->GetGUID();
               break;
           case NPC_ARELAS:
               m_uiArelasGUID = pCreature->GetGUID();
               break;

		// memories
		case MEMORY_ALGALON:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_ARCHIMONDE:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_CHROMAGGUS:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_CYANIGOSA:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_DELRISSA:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_ECK:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_ENTROPIUS:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_GRUUL:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_HAKKAR:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_HEIGAN:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_HEROD:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_HOGGER:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_IGNIS:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_ILLIDAN:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_INGVAR:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_KALITHRESH:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_LUCIFRON:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_MALCHEZAAR:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_MUTANUS:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_ONYXIA:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_THUNDERAAN:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_VANCLEEF:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_VASHJ:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_VEKNILASH:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
		case MEMORY_VEZAX:
			m_uiMemoryGUID = pCreature->GetGUID();
			break;
       }
   }

   void OnObjectCreate(GameObject *pGo)
   {
	switch(pGo->GetEntry())
       {
		case GO_CHAMPIONS_LOOT:
			m_uiChampionsLootGUID = pGo->GetGUID();
			break;
		case GO_EADRIC_LOOT:
			m_uiEadricLootGUID = pGo->GetGUID();
			break;
		case GO_PALETRESS_LOOT:
			m_uiPaletressLootGUID = pGo->GetGUID();
			break;
		case GO_CHAMPIONS_LOOT_H:
			m_uiChampionsLootGUID = pGo->GetGUID();
			break;
		case GO_EADRIC_LOOT_H:
			m_uiEadricLootGUID = pGo->GetGUID();
			break;
		case GO_PALETRESS_LOOT_H:
			m_uiPaletressLootGUID = pGo->GetGUID();
			break;
	}
   }

   void SetData(uint32 uiType, uint32 uiData)
   {
       switch(uiType)
       {
		case DATA_TOC5_ANNOUNCER:
			m_uiAnnouncerGUID = uiData;
		break;
		case DATA_CHAMPIONID_1:
			m_uiChampionId1 = uiData;
		break;
		case DATA_CHAMPIONID_2:
			m_uiChampionId2 = uiData;
		break;
		case DATA_CHAMPIONID_3:
			m_uiChampionId3 = uiData;
		break;
		case DATA_ARGENT_CHALLENGER:
			m_uiArgentChallengerID = uiData;
		break;
		case DATA_BLACK_KNIGHT_MINION:
			m_uiBlackKnightMinionGUID = uiData;
		break;
           case TYPE_GRAND_CHAMPIONS:
			m_auiEncounter[0] = uiData;
			if (uiData == DONE)
               {
                   if (GameObject* pChest = instance->GetGameObject(m_uiChampionsLootGUID))
                       if (pChest && !pChest->isSpawned())
                           pChest->SetRespawnTime(350000000);
               }
               break;
           case TYPE_ARGENT_CHALLENGE:
			m_auiEncounter[1] = uiData;
			if (uiData == DONE)
               {
				if (m_uiArgentChallenger == m_uiEadricGUID)
					if (GameObject* pChest = instance->GetGameObject(m_uiEadricLootGUID))
						if (pChest && !pChest->isSpawned())
							pChest->SetRespawnTime(350000000);
				if (m_uiArgentChallenger == m_uiPaletressGUID)
					if (GameObject* pChest = instance->GetGameObject(m_uiPaletressLootGUID))
						if (pChest && !pChest->isSpawned())
							pChest->SetRespawnTime(350000000);
               }
               break;
           case TYPE_BLACK_KNIGHT:
			m_auiEncounter[2] = uiData;
               break;
       }

       if (uiData == DONE)
       {
           OUT_SAVE_INST_DATA;

           std::ostringstream saveStream;

           for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
               saveStream << m_auiEncounter[i] << " ";

           m_strInstData = saveStream.str();

           SaveToDB();
           OUT_SAVE_INST_DATA_COMPLETE;
       }
   }

uint64 GetData64(uint32 uiData)
   {
       switch(uiData)
       {
           case DATA_CHAMPION_1:
			return m_uiChampion1;
		case DATA_CHAMPION_2:
			return m_uiChampion2;
		case DATA_CHAMPION_3:
			return m_uiChampion3;
		case DATA_MEMORY:
			return m_uiMemoryGUID;
		case DATA_BLACK_KNIGHT:
               return m_uiBlackKnightGUID;
       }

       return 0;
   }

   uint32 GetData(uint32 uiType)
   {
       switch(uiType)
       {
		case DATA_CHAMPIONID_1:
			return m_uiChampionId1;
		case DATA_CHAMPIONID_2:
			return m_uiChampionId2;
		case DATA_CHAMPIONID_3:
			return m_uiChampionId3;
		case DATA_ARGENT_CHALLENGER:
			return m_uiArgentChallengerID;
		case DATA_BLACK_KNIGHT_MINION:
			return m_uiBlackKnightMinionGUID;
		case DATA_TOC5_ANNOUNCER:
			return m_uiAnnouncerGUID;
		case DATA_JAEREN:
			return m_uiJaerenGUID;
		case DATA_ARELAS:
			return m_uiArelasGUID;
           case TYPE_GRAND_CHAMPIONS:
           case TYPE_ARGENT_CHALLENGE:
           case TYPE_BLACK_KNIGHT:
			return m_auiEncounter[uiType];
       }

       return 0;
   }

   const char* Save()
   {
       return m_strInstData.c_str();
   }

   void Load(const char* strIn)
   {
       if (!strIn)
       {
           OUT_LOAD_INST_DATA_FAIL;
           return;
       }

       OUT_LOAD_INST_DATA(strIn);

       std::istringstream loadStream(strIn);

       for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
       {
           loadStream >> m_auiEncounter[i];

           if (m_auiEncounter[i] == IN_PROGRESS)
               m_auiEncounter[i] = NOT_STARTED;
       }

       OUT_LOAD_INST_DATA_COMPLETE;
   }
};

InstanceData* GetInstanceData_instance_trial_of_the_champion(Map* pMap)
{
   return new instance_trial_of_the_champion(pMap);
}

void AddSC_instance_trial_of_the_champion()
{
   Script *newscript;
   newscript = new Script;
   newscript->Name = "instance_trial_of_the_champion";
   newscript->GetInstanceData = &GetInstanceData_instance_trial_of_the_champion;
   newscript->RegisterSelf();
}

 

 

 

 

 

trial_of_the_champion.h

 

#ifndef DEF_TOC_H
#define DEF_TOC_H

enum
{
   MAX_ENCOUNTER               = 3,

   TYPE_GRAND_CHAMPIONS        = 0,
   TYPE_ARGENT_CHALLENGE       = 1,
   TYPE_BLACK_KNIGHT           = 2,

DATA_CHAMPION_1             = 3,
   DATA_CHAMPION_2             = 4,
   DATA_CHAMPION_3             = 5,
   DATA_BLACK_KNIGHT           = 6,
   DATA_BLACK_KNIGHT_MINION    = 7,
DATA_TOC5_ANNOUNCER         = 8,
DATA_JAEREN                 = 9,
DATA_ARELAS                 = 10,
DATA_CHAMPIONID_1           = 11,
   DATA_CHAMPIONID_2           = 12,
   DATA_CHAMPIONID_3           = 13,
DATA_MEMORY					= 14,
DATA_ARGENT_CHALLENGER	    = 15,

   NPC_JACOB                   = 34705,
   NPC_AMBROSE                 = 34702,
   NPC_COLOSOS                 = 34701,
   NPC_JAELYNE                 = 34657,
   NPC_LANA                    = 34703,
   NPC_MOKRA                   = 35572,
   NPC_ERESSEA                 = 35569,
   NPC_RUNOK                   = 35571,
   NPC_ZULTORE                 = 35570,
   NPC_VISCERI                 = 35617,
   NPC_EADRIC                  = 35119,
   NPC_PALETRESS               = 34928,
   NPC_BLACK_KNIGHT            = 35451,
   NPC_RISEN_JAEREN            = 35545,
   NPC_RISEN_ARELAS            = 35564,
   NPC_JAEREN                  = 35004,
NPC_ARELAS                  = 35005,
MEMORY_ALGALON				= 35052,
MEMORY_ARCHIMONDE			= 35041,
MEMORY_CHROMAGGUS			= 35033,
MEMORY_CYANIGOSA			= 35046,
MEMORY_DELRISSA				= 35043,
MEMORY_ECK					= 35047,
MEMORY_ENTROPIUS			= 35044,
MEMORY_GRUUL				= 35039,
MEMORY_HAKKAR				= 35034,
MEMORY_HEIGAN				= 35049,
MEMORY_HEROD				= 35030,
MEMORY_HOGGER				= 34942,
MEMORY_IGNIS				= 35050,
MEMORY_ILLIDAN				= 35042,
MEMORY_INGVAR				= 35045,
MEMORY_KALITHRESH			= 35037,
MEMORY_LUCIFRON				= 35031,
MEMORY_MALCHEZAAR			= 35038,
MEMORY_MUTANUS				= 35029,
MEMORY_ONYXIA				= 35048,
MEMORY_THUNDERAAN			= 35032,
MEMORY_VANCLEEF				= 35028,
MEMORY_VASHJ				= 35040,
MEMORY_VEKNILASH			= 35036,
MEMORY_VEZAX				= 35051,

GO_CHAMPIONS_LOOT           = 195709,
GO_CHAMPIONS_LOOT_H			= 195710,
GO_EADRIC_LOOT              = 195374,
GO_EADRIC_LOOT_H			= 195375,
GO_PALETRESS_LOOT           = 195323,
GO_PALETRESS_LOOT_H			= 195324
};

#endif

 

 

 

 

 

 

Error´s

 

/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:37: error: function definition does not declare parameters
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp: In function 'CreatureAI* GetAI_npc_toc5_announcer(Creature*)':
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:235: error: expected type-specifier before 'npc_toc5_announcerAI'
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:235: error: cannot convert 'int*' to 'CreatureAI*' in return
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:235: error: expected ';' before 'npc_toc5_announcerAI'
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:235: error: 'npc_toc5_announcerAI' was not declared in this scope
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp: In function 'bool GossipSelect_npc_toc5_announcer(Player*, Creature*, uint32, uint32)':
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:248: error: 'uiAction' was not declared in this scope
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:250: error: 'pPlayer' was not declared in this scope
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:251: error: 'npc_toc5_announcerAI' was not declared in this scope
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:251: error: expected primary-expression before ')' token
/opt/trinitycore/src/server/scripts/Custom/ToC/trial_of_the_champion.cpp:251: error: expected `)' before 'pCreature'

 

Edited by ...::StyX::...

Share this post


Link to post
Share on other sites

Prepac ale nevis Cist ? Protoze v Erroroch se pise o trail_of_the_champion.cpp a o nicom inom nic . Vim ze kdys to nevim opravit (Naki Bordel v tom je aspon pre mna :D ) Tak by som sa nemal ozivat ale tak ...

 

EDIT by Aristo: Citace se používají k reakci na STARŠÍ příspěvky které už jsou zaspamované, ne na reakci k poslednímu příspěvku a ještě k tomu takhle velkého obsahu!

Edited by Aristo

Share this post


Link to post
Share on other sites

proc pouzivas scripty od mangosu?...TC podporuje Trial of the Champion vlastnim scriptem...

Share this post


Link to post
Share on other sites

Scripty co jsou v originále TC stojí za pěknou bačkoru, a brát je od MaNGosu je ještě větší kravina. Musel by si přepsat hodně kódu, to už si to raději člověk napíše sám :D

Edited by Keany

Share this post


Link to post
Share on other sites

jestli to chces predelat , nebo upravit tak to ti drzim palce , pokud chces nejak zacit , predelej vsude kde najde "m_creature" na "me"

Share this post


Link to post
Share on other sites

Stáhl jsem novou revizi a funguje to. Ale nevím proč se mi po zahájení eventu neobjeví bossové. Pouze přiběhnou mounti a to je vše.

 

tenhle problem je na TC uz delsi dobu...nechapu proc neco delaji a stejne to nedodelaji ... to same ulduar, zacli par zakladnich veci a prdi na to ...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×