summaryrefslogblamecommitdiff
path: root/npc/017-1/fairy_collector.txt
blob: a8ab6af18186829adb5e880c14f3172301258f45 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                    






                                                                                       

         


                                   









                                                                                                                                                                






                                                                                                               














                                                                                                                                                                                                                     



























                                                                                                                                      











                                                                           
                                                              




                                                                         
                          
           
                      




                                                                             
                              


















































                                                                             






                                                                               
                                                                 



                



                                                                           
                                                                     

                                                                                   
             








                                                                                                 


                   










                                                                           


                                                                                                 
                     
             


                




                                                                                 
                                                                         





                                        
                                    


                                                                                                 
                     
             


                  








                                                                                 


                                                                                                 
                     
             


                 
                                                                                     
                                                                                   
             






                                                                                                 
              
                          



                                                                             
                


                          
              



                         




                               
                                                                                                                                                                        



                                                             

                                      





































                                                                          
 
// TMW2/LoF scripts.
// Authors:
//    TMW-LoF Team
//    Jesusalva
// Description:
//    Collect every piece of equipment ingame for no real reason
//    Cannot be completed yet, because not every piece of equipment is available ingame

017-1,135,106,0	script	Royal Fairy	NPC_FAIRY_B,{
    .@n=getq(LoFQuest_Fairy);
    mesn;

    if (.@n == 0) goto L_Busy;
    if (.@n < 3) goto L_Incomplete;
    if (.@n >= 3) goto L_Main;

L_Busy:
    mesq l("Hi, I'm too busy to talk right now, please go away. Very pressing matters at hand.");
    close;

L_Incomplete:
    mesq l("Hello, I noticed my dear friend, Susanne, asked you to help us save my sisters; do not forget to ask Susanne where the Fafi Dragon was last seen.");
    close;

L_Main:
    if (!(TELEPORTERS & TP_LILIT) && rand2(3) == 2) {
        mesn;
        mesq l("Have you ever met our Queen Lilit? She is lovely but hates @@ for some reason...", get_race());
        next;
        mesc l("Do you want a tip? \"It's not suicide if you know how to swim.\"");
        next;
    }
    if (#COLLECTOR == (COLLECT_ALL-1)) {
        mesn;
        mesc l("OMG you got all equipment in Moubootaur Legends. You are truly a legend of legends."), 1;
        next;
        inventoryplace NPCEyes, 5;
        mesn;
        mesc l("Here, you can have the partly unobtainable items reserved to developers and contributors. And, uh, these NPC-only items, don't let developers know I gave you this. It'll be our little secret!"), 1;
        #COLLECTOR = #COLLECTOR | COLLECT_ALL;
        getitembound DEVCap, 1, 1;
        getitembound ContributorSweater, 1, 1;
        getitembound CommunityShirt, 1, 1;
        getitembound RiceHat, 1, 1;
        getitembound AlchemistArmor, 1, 1;
        // Should we give them a NPCEyes? Or better not (would break checks)?
    }
    /*
	COLLECT_CHESTPLATE:     1
	COLLECT_HEADGEAR:       2
	COLLECT_PANTS:          4
	COLLECT_SHOES:          8
	COLLECT_NECKLACES:      16
	COLLECT_RINGS:          32
	COLLECT_ACESSORIES:     64
	COLLECT_SCARFS:         128
	COLLECT_GLOVES:         256
	COLLECT_SHIELDS:        512
	COLLECT_1HSWORDS:       1024
	COLLECT_2HSWORDS:       2048
	COLLECT_BOWS:           4096
	COLLECT_FIREGUNS:       8192
	COLLECT_WANDS:          16384
	COLLECT_QUIVERS:        32768
	COLLECT_MOUNTS:         65536
	COLLECT_PETS:           131072

    */
    do {
    mesn;
    mesq l("Are you trying to collect every piece of equipment ingame? Come tell me if you are and I'll give you a collector stamp!");
    mesc l("Not every piece of equipment is ingame yet.");
    mes "";
    select
        l("Good bye!"),
        rif(false && !(#COLLECTOR & COLLECT_CHESTPLATE), l("Chestplates")),
        rif(false && !(#COLLECTOR & COLLECT_HEADGEAR), l("Headgear")),
        rif(false && !(#COLLECTOR & COLLECT_PANTS), l("Pants")),
        rif(false && !(#COLLECTOR & COLLECT_SHOES), l("Shoes")),
        rif(false && !(#COLLECTOR & COLLECT_NECKLACES), l("Necklaces")),
        rif(false && !(#COLLECTOR & COLLECT_RINGS), l("Rings")),
        rif(false && !(#COLLECTOR & COLLECT_ACESSORIES), l("Accessories")),
        rif(false && !(#COLLECTOR & COLLECT_SCARFS), l("Scarfs")),
        rif(false && !(#COLLECTOR & COLLECT_GLOVES), l("Gloves")),
        rif(false && !(#COLLECTOR & COLLECT_SHIELDS), l("Shields")),
        rif(false && !(#COLLECTOR & COLLECT_1HSWORDS), l("1 Hand Swords")),
        rif(false && !(#COLLECTOR & COLLECT_2HSWORDS), l("2 Hand Swords")),
        rif(true  && !(#COLLECTOR & COLLECT_BOWS), l("Bows")),
        rif(true  && !(#COLLECTOR & COLLECT_FIREGUNS), l("Fire Staves")),
        rif(true  && !(#COLLECTOR & COLLECT_WANDS), l("Wands")),
        rif(true  && !(#COLLECTOR & COLLECT_QUIVERS), l("Quivers")),
        rif(false && !(#COLLECTOR & COLLECT_MOUNTS), l("Mounts")),
        rif(false && !(#COLLECTOR & COLLECT_PETS), l("Pets")),
        l("Trade stamps");
    mes "";
    switch (@menu+1) {
        // Chestplate
        case 1:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Headgear (2x bells)
        case 2:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Pants
        case 3:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Shoes
        case 4:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Necklaces
        case 5:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Rings
        case 6:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Accessories
        case 7:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Scarfs
        case 8:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Gloves
        case 9:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // Shields
        case 10:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // 1H Swords
        case 11:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        // 2H Swords
        case 12:
        msObjective(countitem(Scythe), "* "+getitemlink(Scythe));
        msObjective(countitem(ThunderStaff), "* "+getitemlink(ThunderStaff));
        msObjective(countitem(MiereCleaver), "* "+getitemlink(MiereCleaver));
        msObjective(countitem(Broadsword), "* "+getitemlink(Broadsword));
        msObjective(countitem(Kanabo), "* "+getitemlink(Kanabo));
        msObjective(countitem(BlacksmithAxe), "* "+getitemlink(BlacksmithAxe));
        msObjective(countitem(CentaurSpear), "* "+getitemlink(CentaurSpear));
        msObjective(false, l("* More equipment coming soon..."));
        next;
        break;
        // Bows
        case 13:
        msObjective(countitem(TrainingBow), "* "+getitemlink(TrainingBow));
        msObjective(countitem(WoodenBow), "* "+getitemlink(WoodenBow));
        msObjective(countitem(ShortBow), "* "+getitemlink(ShortBow));
        msObjective(countitem(ForestBow), "* "+getitemlink(ForestBow));
        msObjective(countitem(ElficBow), "* "+getitemlink(ElficBow));
        msObjective(countitem(ChampionshipBow), "* "+getitemlink(ChampionshipBow));
        msObjective(countitem(BansheeBow), "* "+getitemlink(BansheeBow));
        next;
        if (countitem(PynRifle) &&
            countitem(PynGatling) &&
            countitem(PynShotgun) &&
            countitem(PynRevolver) &&
            countitem(Dustynator)) {
                #COLLECTOR = #COLLECTOR|COLLECT_BOWS;
                getitembound SilverBell, 1, 1;
                mesc l("CONGRATULATIONS! You have obtained the %s.", getitemlink(SilverBell)), 3;
            }
        break;
        // Firearms
        case 14:
        msObjective(countitem(PynRifle), "* "+getitemlink(PynRifle));
        msObjective(countitem(PynGatling), "* "+getitemlink(PynGatling));
        msObjective(countitem(PynShotgun), "* "+getitemlink(PynShotgun));
        msObjective(countitem(PynRevolver), "* "+getitemlink(PynRevolver));
        msObjective(countitem(Dustynator), "* "+getitemlink(Dustynator));
        next;
        if (countitem(PynRifle) &&
            countitem(PynGatling) &&
            countitem(PynShotgun) &&
            countitem(PynRevolver) &&
            countitem(Dustynator)) {
                #COLLECTOR = #COLLECTOR|COLLECT_FIREGUNS;
                getitembound SilverBell, 1, 1;
                mesc l("CONGRATULATIONS! You have obtained the %s.", getitemlink(SilverBell)), 3;
                next;
            }
        break;
        // Wands
        case 15:
        msObjective(countitem(TrainingWand), "* "+getitemlink(TrainingWand));
        msObjective(countitem(NoviceWand), "* "+getitemlink(NoviceWand));
        msObjective(countitem(ReinbooWand), "* "+getitemlink(ReinbooWand));
        msObjective(countitem(ApprenticeWand), "* "+getitemlink(ApprenticeWand));
        msObjective(countitem(LeaderWand), "* "+getitemlink(LeaderWand));
        msObjective(countitem(MysticWand), "* "+getitemlink(MysticWand));
        next;
        if (countitem(TrainingWand) &&
            countitem(NoviceWand) &&
            countitem(ReinbooWand) &&
            countitem(ApprenticeWand) &&
            countitem(LeaderWand) &&
            countitem(MysticWand)) {
                #COLLECTOR = #COLLECTOR|COLLECT_WANDS;
                getitembound SilverBell, 1, 1;
                mesc l("CONGRATULATIONS! You have obtained the %s.", getitemlink(SilverBell)), 3;
                next;
            }
        break;
        // Quivers
        case 16:
        msObjective(countitem(LeatherQuiver), "* "+getitemlink(LeatherQuiver));
        msObjective(countitem(IronQuiver), "* "+getitemlink(IronQuiver));
        msObjective(countitem(BronzeQuiver), "* "+getitemlink(BronzeQuiver));
        msObjective(countitem(PlatinumQuiver), "* "+getitemlink(PlatinumQuiver));
        next;
        if (countitem(LeatherQuiver) &&
            countitem(IronQuiver) &&
            countitem(BronzeQuiver) &&
            countitem(PlatinumQuiver)) {
                #COLLECTOR = #COLLECTOR|COLLECT_QUIVERS;
                getitembound SilverBell, 1, 1;
                mesc l("CONGRATULATIONS! You have obtained the %s.", getitemlink(SilverBell)), 3;
                next;
            }
        break;
        // Mounts
        case 17:
        msObjective(countitem(LegendaryTortuga), "* "+getitemlink(LegendaryTortuga));
        msObjective(countitem(LegendaryMouboo), "* "+getitemlink(LegendaryMouboo));
        next;
        if (countitem(LegendaryTortuga) &&
            countitem(LegendaryMouboo)) {
                #COLLECTOR = #COLLECTOR|COLLECT_MOUNTS;
                getitembound SilverBell, 1, 1;
                mesc l("CONGRATULATIONS! You have obtained the %s.", getitemlink(SilverBell)), 3;
                next;
            }
        break;
        // Pets (2x bells)
        case 18:
        msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
        next;
        break;
        case 19:
        openshop;
        closeclientdialog;
        close;
        break;
    }

    } while (@menu != 0);
    close;

OnInit:
    .distance=5;
	tradertype(NST_CUSTOM);

    // Sell: Aethyr Points, Strange Coins, Manapple, Supreme Gift, Housing Letter 3, Blueprints E, SaviorBlueprint, BoxsetEE, Tux/Linarian Soul, SunnyCrystal?, X Cards,
    // Pets → Strange Coin
    // You can get up to 18 stamps, but pets and hats give 2x
    // Plan wisely and accordingly
	sellitem SunnyCrystal, 12;
	sellitem LegendaryMouboo, 11;
	sellitem LegendaryTortuga, 10;
	sellitem SupremeGift, 9;
	sellitem PrismGift, 8;
	sellitem MysteriousFruit, 7;
	sellitem LinarianSoul, 6;
	sellitem SaviorBlueprint, 5;
	sellitem TuxSoul, 4;
	sellitem GoldenGift, 3;
	sellitem MercBoxEE, 2;
	sellitem HousingLetterIII, 2;
	sellitem ReflectCardX, 2;
	sellitem SpeedCardX, 2;
	sellitem PowerCardX, 2;
	sellitem WallCardX, 2;
	sellitem NecromancerCardX, 1;
	sellitem HeroCardX, 1;
	sellitem KnightCardX, 1;
	sellitem ClericCardX, 1;
	sellitem DruidCardX, 1;
	sellitem MageCardX, 1;
	sellitem NinjaCardX, 1;
	sellitem NatureCardX, 1;
	sellitem LightGreenDiamond, 1;
    end;

/* set currency to be item 828 */
OnCountFunds:
	setcurrency(countitem(SilverBell));
	end;

/* @price is total cost. @points is if we accept two items as currency. */
OnPayFunds:
	//dispbottom "Hi: price="+@price+" and points="+@points;
	if( countitem(SilverBell) < @price )
		end;
	delitem SilverBell, @price;
	purchaseok();
	end;

}