Como você esta fazendo um downgrade, basta ir no arquivo (IllusionTemple.cpp) do próprio evento e mudar para onde o player vai ser teleportado !
Código:
void CIllusionTemple::ClearUser(ILLUSION_TEMPLE_LEVEL* lpLevel) // OK
{
for(int n=0;n < MAX_IT_USER;n++)
{
if(OBJECT_RANGE(lpLevel->User[n].Index) == 0)
{
continue;
}
if(gObj[lpLevel->User[n].Index].Change >= 0)
{
gObj[lpLevel->User[n].Index].Change = -1;
gObjViewportListProtocolCreate(&gObj[lpLevel->User[n].Index]);
}
gObjMoveGate(lpLevel->User[n].Index,267); // -> Modificar o gate
lpLevel->User[n].Index = -1;
lpLevel->User[n].Team = IT_TEAM_NONE;
lpLevel->User[n].Point = 0;
lpLevel->User[n].Score = 0;
lpLevel->User[n].RewardExperience = 0;
}
}
Código:
bool CIllusionTemple::GetUserRespawnLocation(LPOBJ lpObj,int* gate,int* map,int* x,int* y,int* dir,int* level) // OK
{
int IllusionTempleLevel = GET_IT_LEVEL(lpObj->Map);
if(IT_LEVEL_RANGE(IllusionTempleLevel) == 0)
{
return 0;
}
ILLUSION_TEMPLE_USER* lpUser = this->GetUser(&this->m_IllusionTempleLevel[IllusionTempleLevel],lpObj->Index);
if(lpUser != 0 && lpUser->Team != IT_TEAM_NONE)
{
if(gGate.GetGate(((148+(lpUser->Team*6))+IllusionTempleLevel),gate,map,x,y,dir,level) == 0)
{
return 0;
}
}
else
{
if(gGate.GetGate(267,gate,map,x,y,dir,level) == 0) // -> Modificar o gate
{
return 0;
}
}
return 1;
}