// TMW2 scripts. // Author: // Jesusalva // Description: // PUZZLES and TRAPS submodule - Sagratha's Cave - 015-8 // Uses setq3 - setq1 stage 3 // NPC_FAKIR + NPC_STATUE_FAFA // Chasm at third seal 015-8,120,158,0 script #SaggyPuzzleChasm NPC_HIDDEN,0,4,{ end; OnTouch: do { if (@saggychasmok) { slide 125, 160; closedialog; end; } mesc l("There is a chasm."); select l("Drop a coin to hear how deep it is"), l("Climb on the walls!"), l("Run and try jumping it!"), l("Build a bridge with wooden logs!"), l("Uhh... I'm scared!"); mes ""; switch (@menu) { case 1: if (!Zeny) { mesc l("You don't have money."); } else { Zeny-=1; mesc l("You throw a coin on the chasm."); next; mesc l("... ... ..."); next; mesc l("You don't hear anything. This chasm must be incredibly deep."); next; mesc l("Falling means certain death."); } break; // Let's climb the wall! case 2: if (readparam2(bStr) < 20 || (!countitem(MinerGloves) && !countitem(LeatherGloves))) { mesc l("You don't have proper equipment for it."); } else { mesc l("Taking your sturdy glove, you attempt to walk by the wall! You are betting your life on it!"); next; mesc l("A stone seemed to be loose, but you barely managed to avoid falling!"); next; mesc l("This is difficult, but you are giving your best!!"); next; mesc l("You are close... You are almost there!"); next; // We get a bit more than 50% - we take 60%, so your chances are // higher than jumping... But you need two stats, instead of one! // (Top will be 120 instead of 100 - thus, 720 out of 640) .@ponderate=(readparam2(bStr)+readparam2(bVit))/100*60; if (rand(0,1000) < 640-(.@ponderate*6)) { mesc l("But unfortunately, a loose stone lodges and you fall to your death."), 1; die(); close; } mesc l("You succeed in crossing the chasm!"); @saggychasmok=true; } break; // Let's run it! case 3: if (readparam2(bAgi) < 20 || Weight > 1500) { mesc l("You don't have enough agility / is carrying too much to attempt it."); } else { mesc l("You'll give your best and attempt to run!"); next; mesc l("You take distance and..."); next; mesc l("YOU JUMP FOR ALL IT IS WORTH!!"); // (You can always fall as top is 600 of 640) if (rand(0,1000) < 640-(readparam2(bAgi)*6)) { mesc l("But unfortunately, it was harder than you thought. You are dead."), 1; die(); close; } mesc l("You succeed in crossing the chasm!"); @saggychasmok=true; } break; // Let's make a bridge! case 4: if (countitem(WoodenLog) < 5 || !getskilllv(TMW2_CRAFT)) { mesc l("You don't have enough wood (5 @@) or crafting skills to do it.", getitemlink(WoodenLog)); } else { mesc l("..."); next; mesc l("After hours of hard work..."); next; mesc l("You succeed in crossing the chasm!"); delitem WoodenLog, 5; @saggychasmok=true; } break; default: close; } next; } while (true); close; } 015-8,124,158,0 script #SaggyPuzzleChasmSkip NPC_HIDDEN,0,4,{ end; OnTouch: slide 119, 160; end; } // Controls a chest/mimic on the trap room 015-8,0,0,0 script #SaggyChestCtrl NPC_HIDDEN,{ end; OnDelay: initnpctimer; end; OnTimer180000: stopnpctimer; OnInit: monster "015-8", 119+rand2(-3, 3), 35+rand2(-3, 3), "Treasure Chest", any(BronzeChest,BronzeMimic,SilverChest,SilverMimic), 1, "#SaggyChestCtrl::OnDelay"; end; }