diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-10-23 21:44:22 -0300 |
commit | a7c45a192268da2601cef47a4cdba987ae2327ca (patch) | |
tree | c5fb5b97db109fe7106496dd96498c475881046b /npc/012-5 | |
download | serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2 serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip |
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/012-5')
-rw-r--r-- | npc/012-5/_import.txt | 4 | ||||
-rw-r--r-- | npc/012-5/_warps.txt | 4 | ||||
-rw-r--r-- | npc/012-5/nicholas.txt | 283 |
3 files changed, 291 insertions, 0 deletions
diff --git a/npc/012-5/_import.txt b/npc/012-5/_import.txt new file mode 100644 index 0000000..a6b89d2 --- /dev/null +++ b/npc/012-5/_import.txt @@ -0,0 +1,4 @@ +// Map 012-5: Indoors +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/012-5/_warps.txt", +"npc/012-5/nicholas.txt", diff --git a/npc/012-5/_warps.txt b/npc/012-5/_warps.txt new file mode 100644 index 0000000..2816bf3 --- /dev/null +++ b/npc/012-5/_warps.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 012-5: Indoors warps +012-5,34,37,0 warp #012-5_34_37 0,0,012-1,121,72 +012-5,23,27,0 warp #012-5_23_27 0,0,012-1,116,67 diff --git a/npc/012-5/nicholas.txt b/npc/012-5/nicholas.txt new file mode 100644 index 0000000..706a84a --- /dev/null +++ b/npc/012-5/nicholas.txt @@ -0,0 +1,283 @@ +// TMW-2 Script +// Author: +// Jesusalva +// Description: +// Nicholas is Hurnscald's blacksmith. He forges some stuff, and sell other stuff. +// Perhaps he should not forge armor? Remember he cannot forge EVERYTHING... +// +// PS. +// Iridium + Platyna Platinum +// Gold + Coal Gold +// Silver + Coal Silver +// Copper + Tin Bronze (9:1) +// Terranite + Coal Terranite +// Iron + Coal Iron + +// Resitance and Weight increasing ores +// Lead → +++ res, ++++ wei +// Titanium → + res, + wei + +// Originals: Setzer, Steel Shield, Chain Mail, Light Platemail, Warlord Plate, Warlord Boots + +012-5,36,26,0 script Nicholas NPC_NICHOLAS,{ + goto L_Menu; + + // blacksmith_header() + function blacksmith_header { + mesn; + mesq l("Very well! We have seven class of items: Wood, Iron, Terranite, Bronze, Silver, Gold and Platinum."); + mesq l("Each of them require different items, I'll sort from weakest to strongest, so choose wisely."); + return; + } + + // blacksmith_create( BaseItem1, Amount, BaseItem2, Amount, PrizeItem, Price ) + function blacksmith_create { + .@base1=getarg(0); + .@amon1=getarg(1); + .@base2=getarg(2); + .@amon2=getarg(3); + .@prize=getarg(4); + .@price=getarg(5); + + // Adjust price + .@price=POL_AdjustPrice(.@price); + + 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("@@/@@ GP", format_number(Zeny), format_number(.@price)); + + select + l("Yes"), + l("No"); + + if (@menu == 2) + return; + + if (countitem(.@base1) >= .@amon1 && + countitem(.@base2) >= .@amon2 && + Zeny >= .@price) { + inventoryplace .@prize, 1; + delitem .@base1, .@amon1; + delitem .@base2, .@amon2; + POL_PlayerMoney(.@price); + + // craft the item with +30% crit dmg (weapons) or +1 random stat (etc) + if (array_find(.WeaponCraft, .@prize) >= 0) + CsysNpcCraft(.@prize, IOPT_CRITDMG, rand(28,32)); + else + CsysNpcCraft(.@prize, any(0, VAR_STRAMOUNT, VAR_AGIAMOUNT, VAR_VITAMOUNT, VAR_INTAMOUNT, VAR_DEXAMOUNT, VAR_LUKAMOUNT), any(1,1,1,2)); + + // Yield some experience for the craft + .@xp=getiteminfo(.@base1, ITEMINFO_SELLPRICE)*.@amon1+getiteminfo(.@base2, ITEMINFO_SELLPRICE)*.@amon2; + .@xp=.@xp*2/3; + getexp .@xp, rand(1,10); + + 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; + } + +L_Menu: + mesn; + mesq l("Hello there, I am @@, blacksmith of this fine city. What do you want to forge today?", .name$); + mes ""; + select + l("I just want to trade."), + l("I want to forge One Handed Weapons!"), + l("I want to forge Shields!"), + l("I want to forge Quivers!"), + rif(getskilllv(TMW2_CRAFT), l("I would like to REMOVE an item options")), + rif(getskilllv(TMW2_CRAFT), l("I would like to change an item options")), + l("Nothing, thanks!"); + + mes ""; + switch (@menu) { + case 1: + npcshopattach(.name$); + openshop; + closedialog; + close; + break; + case 2: + goto L_Weapon; + case 3: + goto L_Shield; + case 4: + goto L_Quiver; + case 5: + mesn; + mesc b(l("You are REMOVING an item option.")), 1; + mesq col(b(l("Are you sure?"))+" "+l("I don't know for what crazy reason you might want to do this, there is absolutely no benefit to this. I think you just selected the wrong option."), 1); + next; + if (askyesno() == ASK_NO) { + mes ""; + mesc l("Wise choice."), 3; + mes ""; + goto L_Menu; + } + mes ""; + SmithTweakReset(); + goto L_Menu; + case 6: + mesn; + mesq l("You'll be charged even if you fail, be warned."); + next; + if (!SmithTweakSystem()) { + mes ""; + mesn; + mesq l("You can always try again another day!"); + } + next; + goto L_Menu; + } + close; + + + + + + + + + + +L_Weapon: + blacksmith_header(); + select + l("Nothing, sorry!"), + l("Wooden Sword"), + l("Iron Bug Slayer"), + l("Iron Short Gladius"), + rif(countitem(BronzeGladius), l("Bronze Gladius")), + l("Iron Backsword"); + + switch (@menu) { + case 1: + goto L_Menu; + case 2: + blacksmith_create(WoodenLog, 20, RawLog, 5, WoodenSword, 450); + break; + case 3: + blacksmith_create(IronIngot, 8, Coal, 12, BugSlayer, 1000); + break; + case 4: + blacksmith_create(IronIngot, 12, Coal, 16, ShortGladius, 1550); + break; + case 5: + blacksmith_create(CopperIngot, 18, TinIngot, 2, RealBronzeGladius, 500); + break; + case 6: + blacksmith_create(IronIngot, 18, TinIngot, 4, Backsword, 4550); + break; + } + goto L_Weapon; + + + + + + +L_Shield: + blacksmith_header(); + select + l("Nothing, sorry!"), + l("Wooden Shield"), + l("Iron Blade Shield"), + rif(getq(NivalisQuest_Baktar) >= 3, l("Bronze Braknar Shield")); + + switch (@menu) { + case 1: + goto L_Menu; + case 2: + blacksmith_create(WoodenLog, 40, LeatherPatch, 2, WoodenShield, 500); + break; + case 3: + blacksmith_create(IronIngot, 14, TinIngot, 4, BladeShield, 1500); + break; + case 4: + blacksmith_create(CopperIngot, 18, TinIngot, 2, BraknarShield, 8000); + break; + } + goto L_Shield; + + + + + + +L_Quiver: + blacksmith_header(); + select + l("Nothing, sorry!"), + l("Leather Quiver"), + l("Iron Quiver"), + l("Bronze Quiver"), + l("Platinum Quiver"); + + switch (@menu) { + case 1: + goto L_Menu; + case 2: + blacksmith_create(LeatherPatch, 35, CottonCloth, 5, LeatherQuiver, 2000); + break; + case 3: + blacksmith_create(IronIngot, 16, Coal, 21, IronQuiver, 3000); + break; + case 4: + blacksmith_create(CopperIngot, 27, TinIngot, 3, BronzeQuiver, 4000); + break; + case 5: + blacksmith_create(PlatinumIngot, 12, IridiumIngot, 5, PlatinumQuiver, 50000); + break; + } + goto L_Quiver; + + + + + + + + +OnInit: + .sex = G_MALE; + .distance = 5; + setarray .WeaponsCraft, WoodenSword, BugSlayer, ShortGladius, RealBronzeGladius, Backsword; + + sleep(SHOPWAIT); + tradertype(NST_MARKET); + sellitem Backsword, -1, 1; + sellitem ShortGladius, -1, 1; + sellitem BugSlayer, -1, 1; + sellitem WoodenSword, -1, 3; + sellitem Dagger, 600, 5; + sellitem SharpKnife, 450, 10; + end; + +OnClock0009: + restoreshopitem Backsword, 1; + restoreshopitem ShortGladius, 1; + restoreshopitem BugSlayer, 1; +OnClock0603: +OnClock1207: +OnClock1801: + restoreshopitem Dagger, 600, 5; + restoreshopitem SharpKnife, 450, 10; + end; +// Pay your taxes! +OnBuyItem: + PurchaseTaxes("Hurns"); + end; + +OnSellItem: + debugmes("Sale confirmed"); + SaleTaxes("Hurns"); + end; +} |