Jump to content

Respawn trigger event


oserra
 Share

Recommended Posts

Olá, resolvi adicionar este trigger há uns tempos, pode dar jeito a alguém então fica aqui. O trigger é ativado quando o jogador clica no "recomeçar aqui".

Tutorial:

Spoiler

quest.h:

Spoiler

Procurar:



QUEST_ITEM_INFORMER_EVENT,

em baixo:



QUEST_RESPAWN_EVENT,

 

questmanager.cpp:

Spoiler

Procurar:



m_mapEventName.insert(TEventNameMap::value_type("item_informer", QUEST_ITEM_INFORMER_EVENT));

por baixo:



m_mapEventName.insert(TEventNameMap::value_type("respawn", QUEST_RESPAWN_EVENT));

Procurar:



void CQuestManager::Login(unsigned int pc, const char * c_pszQuest)

por baixo da função inteira:

Spoiler



void CQuestManager::Respawn(unsigned int pc)
	{
		PC * pPC;
	 
		//sys_log(0, "CQuestManager::OnRespawn QUEST_RESPAWN_EVENT (pc=%d, npc=%d)", pc, npc);
	 
		if ((pPC = GetPC(pc)))
		{
			if (!CheckQuestLoaded(pPC))
				return;
			
			m_mapNPC[QUEST_NO_NPC].OnRespawn(*pPC);
	 
			//if (m_mapNPC[QUEST_NO_NPC].OnRespawn(*pPC))
				//return;
		}
		else
			sys_err("QUEST: no such pc id : %d", pc);
	}

 

 

questmanager.h:

Spoiler

Procurar:



void		Login(unsigned int pc, const char * c_pszQuestName = NULL);

por baixo:



void		Respawn(unsigned int pc);

 

questnpc.cpp:

Spoiler

Procurar:



bool NPC::OnLogin(PC& pc, const char * c_pszQuestName)

por baixo da função inteira:



bool NPC::OnRespawn(PC& pc)
	{
		return HandleReceiveAllEvent(pc, QUEST_RESPAWN_EVENT);
	}

 

questnpc.h:

Spoiler

Procurar:



bool	OnLogin(PC& pc, const char * c_pszQuestName = NULL);

por baixo:



bool	OnRespawn(PC& pc);

 

cmd_general.cpp:

Spoiler

Procurar:



ACMD(do_restart)

procurar na função:



case SCMD_RESTART_HERE:

depois da segunda ocorrência, colocar ANTES do break:



quest::CQuestManager::instance().Respawn(ch->GetPlayerID());

 

 

Dúvidas? Correções? Maneiras de melhorar o código? Coloquem nos comentários.

Síntaxe:

when respawn begin
	chat("You just respawned!")
end

 

1028_013541.jpg

Edited by oserra
Link to comment
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
 Share

×
×
  • Create New...