func void RX_DungeonLoop()
{
if (RavenIsDead && !RX_AD_DemonHumanSpawned && Npc_HasItems(hero, ItMw_BeliarWeapon_Raven) > 0)
{
RX_AD_DemonHumanSpawned = TRUE;
Wld_InsertNpc(Sakkax_Demon_Human, "ST_FINAL_BOSS_01");
};
if (!RXQ_WC_HeroSayDungeon)
{
if (rx_ad_boss5druid_spawned == TRUE) //друид босс вставлен
{
if (Npc_CanSeeNpc(hero, ad_boss5_druid) && RX_IsDruid()) //ГГ видит друида босса
{
rxq_wc_herosaydungeon = TRUE;
Snd_Play3d(hero, "PC_RAVEND_DRUIDFIGHT");
};
};
};
if (RX_AD_TeleportBack > 0)
{
RX_AD_TeleportBack += 1;
};
if (RX_AD_TeleportBack == 3)
{
RX_PlayEffect("spellFX_Fear",hero);
RX_playeffect("FX_EarthQuake", hero);
AI_RemoveWeapon(hero);
AI_PlayAni(hero, "T_INSANE");
Snd_Play("MFX_FEAR_CAST");
RX_PlayEffect("spellFX_Fear", hero);
RX_PlayEffect("SPELLFX_INCOVATION_RED", hero);
Wld_StopEffect("DEMENTOR_FX");
};
if (RX_AD_Boss8_Stage2 && RX_AD_TeleportBack == 6)
{
RX_TeleportAsgalorTemple = TRUE;
RX_AD_TeleportBack = TRUE;
};
if (RXQ_AdLastDialog4 && !RX_AD_DemonSpawnedLast && RX_NotInDialog(hero))
{
RX_AD_DemonSpawnedLast = TRUE;
Wld_InsertNpc(Demon_RavenX, "WP_AD_BOSSLAST_CENTER");
};
if (PC_PsionicQuest_TemplateDialog_264_var && RX_NotInDialog(hero) && !RXQD_GhostTeleported2)
{
RX_PlayEffect("SPELLFX_INCOVATION_RED", AD_OldGhost);
Npc_ExchangeRoutine(AD_OldGhost, "TOT");
AI_Teleport(AD_OldGhost, "TOT");
RXQD_GhostTeleported2 = TRUE;
};
if (RXD_RavenTeleport && RX_NotInDialog(hero))
{
RXD_RavenTeleport = FALSE;
RX_PlayEffect("SPELLFX_INCOVATION_RED", BDT_50011_Addon_Raven);
Npc_ExchangeRoutine(BDT_50011_Addon_Raven, "second");
SetVar2_True(BDT_50011_Addon_Raven, BIT_IGNORE_DAMAGE);
AI_Teleport(BDT_50011_Addon_Raven, "ST_FINAL_BOSS_01");
};
if (RX_Boss6_Dead && !RX_GhostSpawnPreLast)
{
RX_GhostSpawnPreLast = TRUE;
Npc_ExchangeRoutine(AD_OldGhostRiddle1, "Bridge");
AI_Teleport(AD_OldGhostRiddle1, "WP_BOSS_CAUNCIL_01");
};
if (hero.attribute[ATR_HITPOINTS] > 0 && !RX_Debug)
{
if (Npc_HasItems(hero, ItKe_AD_StoneSeal) > 0)
{
RX_AD_CheckTreasureRoom = TRUE;
};
if (!RX_Boss5_Dead)
{
if (Npc_GetDistToWp(hero, "ST_WAY_TO_BLACK_SWORD_01") <= 1200 || Npc_GetDistToWp(hero, "WP_TEMPLEGUARD_01") <= 1200
|| Npc_GetDistToWp(hero, "ST_FINAL_MIRAGE_GOTO_DOOR_01") <= 1800
)
{
//AI_Print("1");
AI_Teleport(hero, "WP_BOSS_04");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// сокровищница
if (!RX_AD_CheckTreasureRoom || !RX_Boss4_Dead)
{
//AI_Print(IntToString(Npc_GetDistToWp(hero, "WP_AD_GOLDROOM")));
if (Npc_GetDistToWp(hero, "WP_AD_GOLDROOM") <= 800)
{
//AI_Print("2");
AI_Teleport(hero, "ST_MIRAGE_WAY_06");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// камень у 1 босса
if (!RX_Boss1_Dead)
{
if (Npc_GetDistToWp(hero, "WP_BOSS1") <= 300)
{
//AI_Print("3");
AI_Teleport(hero, "ST_MIRAGE_WAY_06");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// до разговора с призраком
if (!PC_PsionicQuest_TemplateDialog_261_var || !RX_Boss1_Dead)
{
if (Npc_GetDistToWp(hero, "ST_MIRAGE_WAY_08") <= 800 || Npc_GetDistToWp(hero, "ST_MIRAGE_WAY_08") <= 500 || Npc_GetDistToWp(hero, "ST_MIRAGE_WAY_10") <= 2000)
{
//AI_Print("4");
AI_Teleport(hero, "ST_MIRAGE_WAY_06");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// защита комнаты 4 босса
if (!RX_Boss4_Dead)
{
if (Npc_GetDistToWp(hero, "WP_BOSS4_ROOM") <= 700)
{
//AI_Print("5");
AI_Teleport(hero, "ST_MIRAGE_WAY_20");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// защита левой двери
if (!RX_Boss4_Dead)
{
if (Npc_GetDistToWp(hero, "WP_LEFT_ROOM") <= 600)
{
//AI_Print("6");
AI_Teleport(hero, "ST_MIRAGE_WAY_06");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// защита правой двери
if (!RX_Boss3_Dead)
{
if (Npc_GetDistToWp(hero, "WP_RIGHT_ROOM") <= 800)
{
//AI_Print("7");
AI_Teleport(hero, "ST_MIRAGE_WAY_06");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
// защита комнаты с 4 боссом
if (!RX_AD_ReaperIsDead)
{
if (Npc_GetDistToWp(hero, "ST_SKELET_STAY_07") <= 800)
{
//AI_Print("8");
AI_Teleport(hero, "ST_MIRAGE_WAY_10");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
if (!RX_AD_Quest4_Ok)
{
if (Npc_GetDistToWp(hero, "ST_FINAL_MIRAGE_GOTO_DOOR_02") <= 400)
{
//AI_Print("9");
AI_Teleport(hero, "ST_FINAL_MIRAGE_N_STAY_01");
AI_PrintRed("Nieznana siła cię przeniosła!");
};
};
};