diff options
Diffstat (limited to 'npc/017-4')
-rw-r--r-- | npc/017-4/pyndragon.txt | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/npc/017-4/pyndragon.txt b/npc/017-4/pyndragon.txt index 35daebf88..5da5488c0 100644 --- a/npc/017-4/pyndragon.txt +++ b/npc/017-4/pyndragon.txt @@ -5,6 +5,129 @@ // Description: // Forge firearms 017-4,34,23,0 script Pyndragon NPC_PLAYER,{ + // craft_gun( BaseItem1, Amount, BaseItem2, Amount, BaseItem3, Amount, PrizeItem, Price ) + function craft_gun { + .@base1=getarg(0); + .@amon1=getarg(1); + .@base2=getarg(2); + .@amon2=getarg(3); + .@base3=getarg(4); + .@amon3=getarg(5); + .@prize=getarg(6); + .@price=getarg(7); + + mesn; + mesq l("Do you want to craft @@? For that I will need:", getitemlink(.@prize)); + mesc l("@@/@@ @@", countitem(.@base1), .@amon1, getitemlink(.@base1)); + mesc l("@@/@@ @@", countitem(.@base2), .@amon2, getitemlink(.@base2)); + mesc l("@@/@@ @@", countitem(.@base3), .@amon3, getitemlink(.@base3)); + mesc l("@@/@@ GP", format_number(Zeny), .@price); + next; + + select + l("Yes"), + l("No"); + + if (@menu == 2) + return; + + if (countitem(.@base1) >= .@amon1 && + countitem(.@base2) >= .@amon2 && + countitem(.@base3) >= .@amon3 && + Zeny >= .@price) { + inventoryplace .@prize, 1; + delitem .@base1, .@amon1; + delitem .@base2, .@amon2; + delitem .@base3, .@amon3; + Zeny = Zeny - .@price; + getitem .@prize, 1; + + mes ""; + mesn; + mesq l("Many thanks! Come back soon."); + } else { + speech S_FIRST_BLANK_LINE,// | S_LAST_NEXT, + l("You don't have enough material, sorry."); + } + return; + } + + mesn; + if (is_night()) + mesq l("Good @@. My name is @@ and I make @@.", l("evening"), .name$, l("firearms")); + else + mesq l("Good @@. My name is @@ and I make @@.", l("day"), .name$, l("firearms")); + next; + if (BaseLevel < 60) + goto L_TooWeak; + else if (BaseLevel < 70) + goto L_Weak; + goto L_Menu; + +L_TooWeak: + mesn; + mesq l("These weapons are only for masters, so you must get levels before being able to use them."); + close; + +L_Weak: + mesn; + mesq l("You need level 70 to use these guns, but if you want to start collecting materials, you're allowed to."); + next; + goto L_Menu; + +L_Menu: + menu + l("I would like some information"), L_Info, + l("I want a gun!"), L_Craft, + l("I don't want anything right now, bye."), L_Close; + +L_Info: + mes ""; + mesn; + mesq l("There are four basic class:"); + mesc l("REVOLVERS"); + mesc l("* The only one hand ranged weapon you'll ever find. Not amazing at all."); + mesc l("RIFLES"); + mesc l("* Huge damage and more criticals, but slow fire rate."); + mesc l("GATLING"); + mesc l("* Shoots like crazy, but deals less damage."); + mesc l("SHOTGUNS"); + mesc l("* Causes splash damage, and are very expensive."); + next; + mesn; + mesq l("Select carefully which weapon you want, so there are no regrets."); + next; + goto L_Menu; + +L_Craft: + select + l("I changed my mind."), + l("I want a REVOLVER."), + l("I want a RIFLE."), + l("I want a GATLING."), + l("I want a SHOTGUN."); + mes ""; + + switch (@menu) { + case 2: + craft_gun( LeadIngot, 6, TitaniumIngot, 6, Coal, 12, PynRevolver, 15000 ); + goto L_Craft; + case 3: + craft_gun( LeadIngot, 8, TitaniumIngot, 8, Coal, 15, PynRifle, 15000 ); + goto L_Craft; + case 4: + craft_gun( LeadIngot, 8, TitaniumIngot, 8, Coal, 15, PynGatling, 15000 ); + goto L_Craft; + case 5: + craft_gun( LeadIngot, 12, TitaniumIngot, 12, Coal, 24, PynShotgun, 60000 ); + goto L_Craft; + } + goto L_Menu; + +L_Close: + closedialog; + goodbye; + close; OnInit: .@npcId = getnpcid(0, .name$); |