summaryrefslogblamecommitdiff
path: root/npc/034-4/storage.txt
blob: 893971f32c84a92976544a709378bed6393584cc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12





                                                 





                                                        
                                   






                                                                              

                                                                      
     
                                    



















































                                                                                  
                                                                            






















                                                           
                          


                                                                    
             












                                                                                  
                                                                                                                                                                         












































                                                                                                     
                                                                   
                   

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
     
                    













                   

 
// 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;
}