// TMW2 scripts. // Authors: // Pyndragon // Jesusalva // Description: // Hand Teleporter (also saves coordinates - @memo) - script LoF Teleporter NPC_HIDDEN,{ close; // Checks if you can warp function loftel_check { getmapxy(.@m$, .@x, .@y, 0); .@is_hurt=(readparam(Hp) < readparam(MaxHp)*9/10); // <90% hp .@is_town=(getmapflag(.@m$, mf_town)); return (.@is_hurt && !.@is_town); } L_Cooldown: mesn; mesc l("This teleporter is currently recharging."); mesc l("You can use it again in @@.", FuzzyTime(TELEPORTER_TIME)); close; OnUse: if (TELEPORTER_TIME > gettimetick(2)) goto L_Cooldown; if (readparam(Hp) < readparam(MaxHp)) { dispbottom l("You are hurt, and cannot use this."); end; } if (BaseLevel < 20) { dispbottom l("This is too powerful to you. Get level 20 before attempting to use."); end; } mesn; mesc l("Ozthokk, a great sage from the Land Of Fire, holds secrets of time and space travel."); mesc l("This is not magic, it is science!"); mes ""; mesc l("PS. Additional reagents may be required for warps."); next; .@x=reputation("LoF")+countitem(TimeFlask)-1; menu l("Don't warp"), -, l("Land Of Fire Village (@@m)", 50-.@x), L_LoF, l("Save Point (@@m)", 30-.@x), L_Save; close; L_Save: if (loftel_check()) { dispbottom l("You are hurt, and cannot use this."); } else { doevent "shake::OnGM"; warp "Save", 0, 0; TELEPORTER_TIME=gettimetick(2)+max((60*30)-(.@x*60), 30); } closedialog; end; L_LoF: if (loftel_check()) { dispbottom l("You are hurt, and cannot use this."); } else { doevent "shake::OnGM"; warp "017-1", 120, 89; TELEPORTER_TIME=gettimetick(2)+max((60*50)-(.@x*60), 30); } closedialog; end; }