diff options
-rw-r--r-- | db/re/item_db.conf | 26 | ||||
-rw-r--r-- | db/re/job_db.conf | 6 | ||||
-rw-r--r-- | npc/017-4/pyndragon.txt | 123 |
3 files changed, 155 insertions, 0 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf index a25c9cada..d2102bd67 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -9936,6 +9936,9 @@ item_db: ( Id6510: 1 Id6511: 1 } + Script: <" + bonus bCriticalRate,40; + "> }, { Id: 6020 @@ -9986,6 +9989,29 @@ item_db: ( "> }, { + Id: 6040 + AegisName: "PynRevolver" + Name: "Pyn Revolver" + Type: "IT_WEAPON" + Buy: 55000 + Sell: 5200 + Weight: 760 + Atk: 160 + Range: 4 + Loc: "EQP_HAND_R" + WeaponLv: 1 + EquipLv: 70 + Subtype: "W_REVOLVER" + AllowAmmo: { + Id6510: 1 + Id6511: 1 + } + Script: <" + bonus bCriticalRate,-60; + bonus bHitRate,-40; + "> +}, +{ Id: 6500 AegisName: "TrainingArrow" Name: "Training Arrow" diff --git a/db/re/job_db.conf b/db/re/job_db.conf index aae848544..021eed101 100644 --- a/db/re/job_db.conf +++ b/db/re/job_db.conf @@ -67,6 +67,7 @@ Human: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 @@ -121,6 +122,7 @@ Ukar: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 @@ -145,6 +147,7 @@ Redy: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 @@ -190,6 +193,7 @@ Orc: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 @@ -214,6 +218,7 @@ Raijin: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 @@ -238,6 +243,7 @@ Tritan: { TwoHandRod: 65 Shield: 10 Bow: 100 + Revolver: 136 Rifle: 170 Shotgun: 120 GatlingGun: 40 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$); |