// TMW2 Script // Authors: // Jesusalva // Description: // Dungeon utilities - script #DungeonCore NPC_HIDDEN,{ end; // Main initialization OnInit: setarray .heatmap$, "007-2"; setarray .cursemap$, "006-4", "006-4-1", "025-1"; setarray .sickmap$, "029-5"; end; ///////////////////////////////////////// // Heartbeat for Heat effects OnHeat: // Did you left? .@i=array_find(.heatmap$, getmap()); if (.@i < 0) { @heat$=""; end; } // First time seeing this if (@heat$ != getmap()) { @heat$=getmap(); dispbottom l("This is a hot map, you're suffering damage over time."); } // You are in a HEATMAP$, so suffer damage from heat if (@coolio > gettimetick(2) || Class == Redy) percentheal -1, 0; else percentheal -5, 0; // New tick (dies in 140~180 seconds) addtimer2 rand2(7000, 9000), .name$+"::OnHeat"; end; ///////////////////////////////////////// // Heartbeat for Cursed Land map effects OnCurse: // Did you left? .@i=array_find(.cursemap$, getmap()); if (.@i < 0) { @curse$=""; end; } // First time seeing this if (@curse$ != getmap()) { @curse$=getmap(); dispbottom l("This is a Cursed Lands map, you'll lose mana over time and may also incurr in debuffs if mana is low (may cause death)."); } // You are in a CURSEMAP$, so suffer damage from heat if (@purifio > gettimetick(2) || Class == Savior) heal 0, -1; else percentheal 0, -5; // MP is below 20%, you'll get cursed if (Sp*100 < MaxSp*20) SC_Bonus(15, SC_CURSE, 1); // MP is below 1%, you'll get start losing HP rapidly if (Sp*100 < MaxSp) percentheal -10, 0; // New tick (cycles every 15 seconds in average) addtimer2 rand2(14000, 15000), .name$+"::OnCurse"; end; ///////////////////////////////////////// // Heartbeat for Disease effects OnSick: // Did you left? .@i=array_find(.sickmap$, getmap()); if (.@i < 0) { @sick$=""; end; } // First time seeing this if (@sick$ != getmap()) { @sick$=getmap(); dispbottom l("This map contains poisonous class and may cause diseases."); } // The effect is based on HP if (Hp*10 > MaxHp*7) .@eff = SC_BLOODING; else if (Hp*10 > MaxHp*4) .@eff = SC_POISON; else .@eff = SC_DPOISON; // You are in a SICKMAP$, so suffer damage from disease if (@sickio > gettimetick(2)) { heal -50, 0; } else { heal -rand2(50, 200), 0; SC_Bonus(10, .@eff, 1); } // New tick (10 seconds fixed cycle) addtimer2 10000, .name$+"::OnSick"; end; } ////////////////////////////// 007-2 mapflag nosave 007-1,99,189 006-4 mapflag nosave 006-3,54,36 006-4-1 mapflag nosave 006-3,54,36 029-5 mapflag nosave 029-4,21,97