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/017-4 | |
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/017-4')
-rw-r--r-- | npc/017-4/_import.txt | 7 | ||||
-rw-r--r-- | npc/017-4/_warps.txt | 4 | ||||
-rw-r--r-- | npc/017-4/pihro.txt | 116 | ||||
-rw-r--r-- | npc/017-4/pyndragon.txt | 252 | ||||
-rw-r--r-- | npc/017-4/refine.txt | 74 | ||||
-rw-r--r-- | npc/017-4/vault.txt | 20 |
6 files changed, 473 insertions, 0 deletions
diff --git a/npc/017-4/_import.txt b/npc/017-4/_import.txt new file mode 100644 index 0000000..b16bdba --- /dev/null +++ b/npc/017-4/_import.txt @@ -0,0 +1,7 @@ +// Map 017-4: Tech-User Forge +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/017-4/_warps.txt", +"npc/017-4/pihro.txt", +"npc/017-4/pyndragon.txt", +"npc/017-4/refine.txt", +"npc/017-4/vault.txt", diff --git a/npc/017-4/_warps.txt b/npc/017-4/_warps.txt new file mode 100644 index 0000000..5447202 --- /dev/null +++ b/npc/017-4/_warps.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 017-4: Tech-User Forge warps +017-4,27,42,0 warp #017-4_27_42 0,0,017-1,150,88 +017-4,35,42,0 warp #017-4_35_42 0,0,017-1,155,88 diff --git a/npc/017-4/pihro.txt b/npc/017-4/pihro.txt new file mode 100644 index 0000000..6b5b9ae --- /dev/null +++ b/npc/017-4/pihro.txt @@ -0,0 +1,116 @@ +// TMW2/LoF scripts. +// Authors: +// TMW-LoF Team +// Jesusalva +// Description: +// Forge bullets +017-4,35,35,0 script Pihro NPC_PLAYER,{ + // cond_check(ItemID, ItemAmount) + // Returns 1 if ID is zero + function cond_check { + if (getarg(0) == 0) + return 1; + else + return (countitem(getarg(0)) >= getarg(1)); + } + + // craft_ammo( PrizeItem, Price, Lead Amount, {Elemental Item, Amount, {Elemental Item2, Amount2}} ) + function craft_ammo { + .@prize=getarg(0); + .@price=getarg(1); + .@base1=LeadIngot; + .@amon1=getarg(2); + .@base2=getarg(3,0); + .@amon2=getarg(4,0); + .@base3=getarg(5,0); + .@amon3=getarg(6,0); + + .@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)); + if (.@amon2 > 0) + mesc l("@@/@@ @@", countitem(.@base2), .@amon2, getitemlink(.@base2)); + if (.@amon3 > 0) + 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 && + cond_check(.@base2, .@amon2) && + cond_check(.@base3, .@amon3) && + Zeny >= .@price) { + inventoryplace .@prize, 1024; + delitem .@base1, .@amon1; + if (.@base2 > 0) + delitem .@base2, .@amon2; + if (.@base3 > 0) + delitem .@base3, .@amon3; + POL_PlayerMoney(.@price); + getitem .@prize, rand2(980, 1024); + getexp rand2(980, 1024), rand2(270, 320); + Mobpt+=rand2(270, 320); + + 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; + mesq l("Hello there! I make bullets for the weapons my friend Pyndragon makes."); + next; + +L_Craft: + mesn; + mesq l("Some bullets have Elemental Properties, by the way. Now, what will it be?"); + next; + select + l("Nothing, sorry."), + l("Normal Bullet"), + l("Sacred Bullet"), + l("Evil Bullet"), + l("Explosive ARROW"); + + switch (@menu) { + case 2: + // craft_ammo( PrizeItem, Price, Lead Amount, {Elemental Item, Amount, {Elemental Item2, Amount2}} ) + craft_ammo(Bullet, 200, 1); + goto L_Craft; + case 3: + craft_ammo(SacredBullet, 200, 1, WhiteFur, 5); + goto L_Craft; + case 4: + craft_ammo(EvilBullet, 200, 1, Bone, 1); + goto L_Craft; + case 5: + craft_ammo(ExplosiveArrow, 300, 1, SulfurPowder, 5, WoodenLog, 3); + goto L_Craft; + } + close; + + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, Monocle); + setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, JeansChaps); + setunitdata(.@npcId, UDT_HAIRSTYLE, 2); + setunitdata(.@npcId, UDT_HAIRCOLOR, 4); + + .sex=G_MALE; + .distance=5; + end; +} diff --git a/npc/017-4/pyndragon.txt b/npc/017-4/pyndragon.txt new file mode 100644 index 0000000..d112b46 --- /dev/null +++ b/npc/017-4/pyndragon.txt @@ -0,0 +1,252 @@ +// TMW2/LoF scripts. +// Authors: +// TMW-LoF Team +// Jesusalva +// Description: +// Forge firearms +017-4,34,23,0 script Pyndragon NPC_PLAYER,{ + function explainMelee; + // 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); + + .@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("@@/@@ @@", countitem(.@base3), .@amon3, getitemlink(.@base3)); + mesc l("@@/@@ GP", format_number(Zeny), fnum(.@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; + POL_PlayerMoney(.@price); + //getitem .@prize, 1; + CsysNpcCraft(.@prize, IOPT_CRITDMG, rand2(20, 30), IOPT_DOUBLEATTACK, rand2(5, 15)); + + 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; + } + + .@q=getq(HurnscaldQuest_LOFPass); + 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; + mesn strcharinfo(0); + mesq l("Firearms? What would that be? @@", "%%4"); + next; + mesn; + mesq l("Oh, just an empty staff with black powder inside it. Which explodes. And then kills monsters."); + tutmes l("%s makes specialized weapons for high level players. If you tweak with Nicholas, in Hurnscald, the weapon options, you can get really powerful.", .name$); + next; + if (.@q == 1) goto L_LOFBOT; + mes ""; + if (BaseLevel < 50) + goto L_TooWeak; + else if (BaseLevel < 60) + 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 60 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("Do you have non-ranged weapons?"), L_CraftMelee, + l("I don't want anything right now, bye."), L_Close; + +L_Info: + mes ""; + mesn; + mesq l("There are four basic class:"); + mesc l("SHORT GUNSTAFF");//aka revolver + mesc l("* The only one hand ranged weapon you'll ever find!"); + mes l(" I cut it in half, and to fix shooting speed, I added some extra cogs."); + mes l(" It didn't got too much lighter, and it got really weak compared to a bow."); + mesc l("POWERFUL GUNSTAFF"); + mesc l("* Huge damage and more criticals, but slow fire rate."); + mes l(" The standard gunstaff! It is way stronger than a bow!"); + mes l(" Oh, and it comes with added shooting range, but it is slow as hell to reload."); + mesc l("RAPID GUNSTAFF"); + mesc l("* Low damage, highest attack speed from all."); + mes l(" One have lots of powder to attack non-stop, but oh god that is heavy."); + mes l(" It is also much weaker and less precise than a bow. But it is so fun using..."); + mesc l("EXPLOSIVE GUNSTAFF"); + mesc l("* Causes splash damage, and are very expensive."); + mes l(" You know, I wanted to make the powder explode when hitting!"); + mes l(" It is the same as a bow, including in penalty. But it deals splash damage!"); + 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 SHORT GUNSTAFF."), + l("I want a POWERFUL GUNSTAFF."), + l("I want a RAPID GUNSTAFF."), + l("I want an EXPLOSIVE GUNSTAFF."), + rif(false, l("I want something more magical.")); + mes ""; + + switch (@menu) { + case 2: + craft_gun( LeadIngot, 4, TitaniumIngot, 5, Coal, 11, PynRevolver, 3000 ); + goto L_Craft; + case 3: + craft_gun( LeadIngot, 6, TitaniumIngot, 7, Coal, 14, PynRifle, 3000 ); + goto L_Craft; + case 4: + craft_gun( LeadIngot, 6, TitaniumIngot, 7, Coal, 14, PynGatling, 4000 ); + goto L_Craft; + case 5: + craft_gun( LeadIngot, 9, TitaniumIngot, 10, Coal, 16, PynShotgun, 6000 ); + goto L_Craft; + case 6: + mesn; + mesq l("I suppose I can make you a %s. It sometimes casts magic skills upon your foes. Well, seldomly, but it also deals more damage than normal wands.", getitemlink(PynScepter)); + next; + craft_gun( LeadIngot, 10, TitaniumIngot, 12, Coal, 24, PynScepter, 24000 ); + goto L_Craft; + } + goto L_Menu; + + +L_CraftMelee: + select + l("I changed my mind."), + l("Which melee you craft?"), + l("I want a PORTABLE LIGHTSABER."), + l("I want a POWERFUL LIGHTSABER."), + rif(getskilllv(TF_STEAL) && false, l("I want a KUNAI.")), + l("I want a WHIP."); + mes ""; + + switch (@menu) { + case 2: + explainMelee(); + goto L_CraftMelee; + case 3: + craft_gun( EverburnPowder, 30, TitaniumIngot, 7, LeadIngot, 4, Lightsaber, 25000 ); + goto L_CraftMelee; + case 4: + craft_gun( EverburnPowder, 30, TitaniumIngot, 7, LeadIngot, 4, PowerfulLightsaber, 25000 ); + goto L_CraftMelee; + case 5: + craft_gun( GoldIngot, 3, HeroCoin, 500, LOFCoin, 4, PynKunai, 25000 ); + goto L_CraftMelee; + case 6: + craft_gun( LOFCoin, 3, TitaniumIngot, 5, LeadIngot, 3, PynWhip, 22000 ); + goto L_CraftMelee; + } + goto L_Menu; + + +L_Close: + closedialog; + goodbye; + close; + +// Takes priority over craft +L_LOFBOT: + select + l("A friend of yours called LOF BOT asked for a coin..."), + l("Sorry, I'm in hurry."); + mes ""; + if (@menu == 2) close; + mesn; + mesq l("Ah, so LOF Bot wants a souvenir after all!"); + next; + mesn; + mesq l("Everyone loves the Land of Fire, it is impossible to not love it."); + next; + inventoryplace LOFCoin, 1; + mesn; + mesq l("Here, please take this to them. Tell them they are welcome here anytime! %%2"); + getitem LOFCoin, 1; + setq HurnscaldQuest_LOFPass, 2; + close; + +function explainMelee { + mesc l("PORTABLE LIGHTSABER"); + mesc l("* Very quick and can be used in a single hand."); + mesc l("POWERFUL LIGHTSABER"); + mesc l("* Very quick, two handed, and evil."); + mes ""; + mes l(" Actually, Lalica cursed one of my firestaves and it got a mind of its own D:"); + mes l(" Then I found out that I could set the staff in flames using Everburn Powder!"); + mes l(" It was quite a challenge, and I still need Lalica to keep curse them."); + mes l(" But the result is a fast weapon which is also powerful."); + mes ""; + next; + mesc l("KUNAI"); + mesc l("* More for bandits than assassins or ninjas."); + mes l(" See, I was lazy and there were only short knives around... So I made a Kunai."); + mes l(" It can steal items or collect drops on the floor randomly. Also improves your evasion."); + mes l(" It is not that amazing, though. I will trade with you for more useful items."); + mes ""; + mesc l("WHIP"); + mesc l("* Has non-cumulative area of effect damage."); + mes l(" A fair all-rounder weapon; Stronger than you would expect and not so clumsy."); + mes l(" But its splash damage does not stack, so be careful when adding options."); + next; + return; +} + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, WarlordHelmet); + setunitdata(.@npcId, UDT_HEADMIDDLE, GoldenWarlordPlate); + setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); + setunitdata(.@npcId, UDT_WEAPON, BromenalPants); + setunitdata(.@npcId, UDT_HAIRSTYLE, 2); + setunitdata(.@npcId, UDT_HAIRCOLOR, 4); + + .sex=G_MALE; + .distance=5; + end; + +} diff --git a/npc/017-4/refine.txt b/npc/017-4/refine.txt new file mode 100644 index 0000000..2bed9ce --- /dev/null +++ b/npc/017-4/refine.txt @@ -0,0 +1,74 @@ +// TMW2/LoF scripts. +// Authors: +// TMW-LoF Team +// Jesusalva +// Description: +// Refine and Repair broken equipment. +017-4,38,35,0 script Fortiun NPC_FORTIUN,{ + showavatar NPC_FORTIUN; + @menu=0; + do + { + refineMaster(); + } while (1); + +OnInit: + .sex=G_MALE; + .distance=5; + end; +} + +017-4,23,23,0 script Fusus NPC_FUSUS,{ + showavatar NPC_FUSUS; + select + l("Repair items"), + l("Compact forge stones"); + mes ""; + if (@menu == 2) + goto L_Fusus; + @menu=0; + do + { + repairMaster(); + } while (getbrokencount() >= 0); + +L_Fusus: + inventoryplace Iten, 1; + mesn; + mesq l("I can fuse an @@ and 20 @@, besides @@ GP, into 3~5 @@.", getitemlink(CopperIngot), getitemlink(SilkCocoon), 500, getitemlink(Wurtzite)); + mesc l("5 @@ can be fused in a @@", getitemlink(Wurtzite), getitemlink(Graphene)); + mesc l("5 @@ can be fused in a @@", getitemlink(Graphene), getitemlink(Arcanum)); + select + rif(Zeny >= 500, l("I want the Wurtzite")), + rif(countitem(Wurtzite) >= 5, l("I want Graphene")), + rif(countitem(Graphene) >= 5, l("I want Arcanum")), + l("Do nothing"); + mes ""; + switch (@menu) { + case 4: + close; + case 1: + if (!transcheck(CopperIngot, 1, SilkCocoon, 20)) + close; + Zeny -= 500; + getitem Wurtzite, any(3,3,4,4,4,5); // 3: ~33%. 4: =50%. 5: ~17%. AVG: 3.8 + break; + case 2: + delitem Wurtzite, 5; + getitem Graphene, 1; + break; + case 3: + delitem Graphene, 5; + getitem Arcanum, 1; + break; + } + mesc l("Done!"), 2; + next; + goto L_Fusus; + +OnInit: + .sex=G_MALE; + .distance=5; + end; +} + diff --git a/npc/017-4/vault.txt b/npc/017-4/vault.txt new file mode 100644 index 0000000..0301190 --- /dev/null +++ b/npc/017-4/vault.txt @@ -0,0 +1,20 @@ +// TMW2/LoF Script. +// Author: +// Jesusalva +// Notes: +// Based on BenB idea. + +017-4,20,41,0 script Vault#0174 NPC_VAULT,{ + LootableVault(2, 5, "0174"); + close; + +OnInit: + .distance=3; + end; + +OnClock0201: +OnClock1418: + $VAULT_0174+=rand2(27,40); + end; +} + |