// TMW2 scripts. // Authors: // Jesusalva // Description: // Gemini Sisters Quest - Part B: Storage Room 034-4,45,78,0 script #GeminiPartC NPC_HIDDEN,0,0,{ end; OnTouch: if (instance_id() < 0 || getcharid(1) < 1) end; GeminiCheck(11); .@p=getcharid(1); if ($@VALIA_STATUS[.@p] < 12) { dispbottom l("Uh? I can't pass. I wonder why, maybe I need to wait?"); end; } if (mobcount(getmap(), "all") > 0) { dispbottom l("I should defeat all mobs before passing."); end; } if (mobcount(getmap(), "all") <= 0 && $@VALIA_STATUS[.@p] == 12) { $@VALIA_STATUS[.@p]=13; } if ($@VALIA_STATUS[.@p] >= 13) { slide 83, 58; } end; } 034-4,33,77,0 script #GeminiStorei NPC_HIDDEN,2,2,{ function storageutil; end; OnTouch: if (instance_id() < 0 || getcharid(1) < 1) end; GeminiCheck(11); .@p=getcharid(1); if (strcharinfo(0) != getpartyleader(.@p)) end; if (!.state) { .mp$ = getmap(); .pn$ = getpartyname(getcharid(1)); .pid = getcharid(1); .state = true; /* We now must calculate amount of waves */ /* It is a hack for now, though */ .mto = 5 + (BaseLevel / 30) + getmapusers(.mp$); initnpctimer; killmonsterall(.mp$); // Cancel everything done thus far, incl. showdown } end; OnTimer1000: .luvia = monster(.mp$, 37, 76, "Luvia Gemini", Luvia, 1); immortal(.luvia); setunitdata(.luvia, UDT_MODE, MD_BOSS|MD_PLANT|MD_NOKNOCKBACK); end; OnTimer2500: unittalk(.luvia, "So you aren't made of sugar!"); end; OnTimer6000: unittalk(.luvia, "I was worried you would all have melted on the lobby!"); end; OnTimer9500: unittalk(.luvia, "Hahaha, but this is just the beginning of your journey..."); end; OnTimer13000: unittalk(.luvia, "I am Luvia Gemini, and this is my trial for you!"); end; OnTimer16500: unittalk(.luvia, sprintf("Show me of what you are made of, %s!", .pn$)); .@pi = getmapusers(.mp$) + 2; monster(.mp$, 44, 78, strmobinfo(1, Scar), Scar, .@pi); end; OnTimer19000: unittalk(.luvia, "HAHAHahahaha!"); end; OnTimer20000: unitwarp(.luvia, "034-4", 45, 45); end; OnTimer21000: unitkill(.luvia); end; OnTimer30000: storageutil(); .sto += 1; end; OnTimer45000: if (.sto < .mto) setnpctimer 22000; monster(.mp$, 44, 78, strmobinfo(1, BlackMamba), BlackMamba, 1); end; OnTimer60000: .@pi = getmapusers(.mp$) + 1; monster(.mp$, 44, 78, strmobinfo(1, GoboBear), GoboBear, .@pi); $@VALIA_STATUS[.pid] = 12; stopnpctimer; end; function storageutil { // Decide if we'll spawn or add items. Previous failures are NOT considerated. .@r=rand2(10000)+(.sto * 100); // Super rare drop?! (~1.5%) if (.@r < 120 || .@r > 10000) { makeitem(any(DeathPotion, PoisonAmmoBox, AncientBlueprint, ThornAmmoBox, MercBoxD, ScholarshipBadge, DarkDesertMushroom), 1, .mp$, rand2(30, 35), rand2(83, 86)); } // Super strong monster?! (4%) if ((.@r > 6000 && .@r < 6400) || .sto == 15 || .sto == 17 || .sto >= 20) { .@mob=any(WanderingShadow, SeaSlimeMother, NightDragon, GiantMutatedBat, Reaper, Mandragora); monster(.mp$, 44, 78, strmobinfo(1, .@mob), .@mob, 1); // Warn players? } // Compulsory monster spawn switch (.sto) { case 0: .@mob = ArmoredSkeleton; break; case 1: .@mob = DustRifle; break; case 2: .@mob = HoodedNinja; break; case 3: .@mob = WickedMushroom; break; case 4: .@mob = any(Archant, Scar); break; case 5: .@mob = Scar; break; case 6: .@mob = AzulSkullSlime; break; case 7: .@mob = Forain; break; case 8: .@mob = GreenDragon; break; case 9: .@mob = Michel; break; case 10: .@mob = EliteDuck; break; case 11: .@mob = Terranite; break; case 12: .@mob = JackO; break; case 13: .@mob = BloodyMouboo; break; default: .@mob = GoboBear; } monster(.mp$, 44, 78, strmobinfo(1, .@mob), .@mob, 1+getmapusers(.mp$)); // Compulsory item drop // If it falls on a collision, the item won't be created at all freeloop(true); for (.@i=0; .@i <= ((.sto/2)+getmapusers(.mp$)); .@i++) { makeitem(any(Wurtzite, ShadowHerb, AlizarinHerb, DiamondPowder, RubyPowder, EmeraldPowder, SapphirePowder, TopazPowder, AmethystPowder, CopperOre, IronOre, Coal, LeadOre, Lifestone, ScorpionClaw, WhiteFur, SquirrelPelt, TinOre, PileOfAsh, EmptyBottle, FluoPowder, TerraniteOre, SulfurPowder, LeatherPatch, LazuriteShard, Root, ReedBundle, GambogeHerb, MauveHerb, CobaltHerb, MaggotSlime, BugLeg, RawLog, BanditHood, BatWing, IronPowder, ArtichokeHerb, LeftCraftyWing, RightCraftyWing, Coral, BlueCoral, Pearl, Moss, RattoTail, RattoTeeth, Knife, SharpKnife, StrangeCoin, PurificationPotion, IcedBottle, Grenade, SmokeGrenade, TreasureMap, AgiPotionA, VitPotionA, IntPotionA, DexPotionA, LukPotionA, EmptyBox, HastePotion, StrengthPotion, Croconut, ChocolateBar, ChocolateBiscuit, PinkieLeg, Potatoz, Coffee, SnakeEgg, Plushroom, Chagashroom, Honey, MoubooSteak, Milk, Orange, CherryCake, Piberries, Aquada, Cheese, Bread, Acorn, Manana), 1, .mp$, rand2(30, 71), rand2(44, 87)); } freeloop(false); return; } OnInit: OnInstanceInit: .state = false; .mp$ = ""; .pn$ = ""; .pid = 0; .luvia = 0; .sto = 0; .mto = 0; end; }