summaryrefslogtreecommitdiff
path: root/npc/017-4
diff options
context:
space:
mode:
Diffstat (limited to 'npc/017-4')
-rw-r--r--npc/017-4/pyndragon.txt123
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$);