Mthec

[Released] Mthec's NPCs - Crafter, Buyer, DeliveryContracts, MerchantCap, CustomTrader, ToolPurchaser, Banker, BeastSummoner

Recommended Posts

2 hours ago, Eject said:

Do i need the startskill if learning skill is off?

Or should i also set it to 90?

 

Eject

Yes, if you want 90 skill crafters you should set it to 90.

 

The way it works is this:

  • skillCap is the lower value of max_skill and the value set on the individual Crafter.
  • startingSkill is the lower value of starting_skill and max_skill.
  • Create new Crafter -> All skills set to startingSkill.
  • Right-click>Manage>Modify skills>Save -> All skills moved up to startingSkill but not above skillCap.
  • Every action -> Make sure skills are not over skillCap, set to skillCap if they are.
  • can_learn only affects whether the Crafter accepts item donations.

Phew, hopefully that's clear enough.

  • Like 1

Share this post


Link to post
Share on other sites
On 12/12/2018 at 9:26 PM, Mthec said:

CustomTrader (and Currency Trader)

 

Hello

For any reason i cant find a contract for this version of trader.

 

Found it thank you

 

Eject

Edited by Eject

Share this post


Link to post
Share on other sites

@Mtheccan you mod a "Banker" just for fun to manage money for players in addition to deed tokens?

A NPC like the craftter would be nice so you can equip him with clothes.

 

next idea would be a wandering trader (custom trader/custom buyer)

maybe use the current ones with a checkbox "wandering trader" and a given time like:

[wander all x hours to a random deed]

 

A Event message like: the wandering trader was last seen/is now at Deedname

 

Maybe you like these ideas 😃

 

Eject :)

Edited by Eject

Share this post


Link to post
Share on other sites

Because Custom Trader

 

My idea is to spawn some custom traders in a hidden place to control the inventory.

The traders get a "tagname" for the inventory and than i like to place other traders on the map where are new events starting.

 

So my question is, can i change the inventory or settings at my hidden traders and it will affect all traders with the same tagname?

That would be awesome to create different event steps and so on, and controll all different traders at the whole map.

 

 

Eject

Edited by Eject

Share this post


Link to post
Share on other sites

Because the Crafter Trader

 

Is it possible to include a setting to turn off the "collect money" for crafter owners?

 

Reason is: i give the crafter to my players, so they have time to do other stuff, the players are using the crafter for there own and dont make it public.

Because they dont have to improve there stuff self, they shouldnt have the option to get the money back that they was investing in the trade with the crafter.

 

Eject

Share this post


Link to post
Share on other sites

When I place a custom trader it says "[11:03:37] Trader_Hag says, 'I only have 0 and can't buy anything right now.'" 

 

I've tried buying items, and also giving it money manually but it still says it has 0 and it won't buy things from me... Is there a setting I'm missing? 

Share this post


Link to post
Share on other sites

Custom traders are to sell items that you specify (for coins or other items that you setup as currency)

They have no money to buy stuff from you like a normal trader.

Share this post


Link to post
Share on other sites

Oh ok, so there is no way to set up an NPC with a custom inventory who only buys/sells specific items that you can set? 

 

I wanted to place a farmer NPC near a farm who buys/sells vegetables for small amounts of coin.

Edited by DarlingDeirdre

Share this post


Link to post
Share on other sites

New mod - Banker

Download

 

A new mod that adds a Banker NPC that can manage bank accounts remotely (i.e. without a deed token).

 

As well as the usual Manage/Withdraw options you get a deed token, you can also use the "Move account" option to move your bank account to other villages, with the same requirements, without visiting the actual village.

Bribery can be configured in the settings (see below) to allow players to move their account instantly to another location, for a price.

GMs and owners (if contracts made available on traders) can also set the face of the banker. 

 

Note, there is some odd behaviour with how the client handles face changing. 

  • The face changer window will always show the gender of the player, not the banker.  Although most of the options will still work (no facial hair on females though), if just won't look right.
  • Whilst using the window your own characters face will change in the Character window, this doesn't happen to the face other players see and will return to normal after confirming changes. 
  • Also, for some reason, doesn't like setting the correct hair style when the window first opens, just toggle it back and forth to set it to the right one.

 

Configuration options:

  • village_option
    • Defines which villages will be offered as locations for Bankers to transfer bank accounts to.
      • starter
        • A kingdom's starter (permanent) villages are always an option, use this setting to not allow any other options.
      • kingdom
        • Allow any villages of the same kingdom as the bank account holder.
      • alliance
        • Allow any allied deeds (including the holder's village).
        • Requires perform actions on alliance deeds role.
      • village
        • The village the account holder belongs to, if any.
    • Default village
  • allow_non_premium
    • By default non-premium (or "Guest") accounts cannot open banks. If this option is true then they can, but only through a Banker.
  • bribery_cost
    • In irons, 0 to disable.
    • Allows players to move their bank account location instantly, for a price, instead of waiting for the usual 24 hours.
    • Default 0 (disabled)
  • update_traders
    • If true then banker contracts will either be added to or removed from traders, depending on whether contracts_on_traders is true or not.
    • Default false
  • contracts_on_traders
    • If true traders will carry banker contracts, however this will only take effect if update_traders is true.
    • Default false
  • contract_price
    • In irons.
    • Default 10000 - 1 silver.
  • name_prefix
    • What Banker names will start with (e.g. Bob becomes Banker_Bob), although you can set to nothing for no prefix.
    • Default Banker

 

On 5/11/2021 at 4:39 PM, Eject said:

@Mtheccan you mod a "Banker" just for fun to manage money for players in addition to deed tokens?

A NPC like the craftter would be nice so you can equip him with clothes.

Think this should fit your requirements.

 

On 5/15/2021 at 3:56 PM, Eject said:

Because Custom Trader

 

My idea is to spawn some custom traders in a hidden place to control the inventory.

The traders get a "tagname" for the inventory and than i like to place other traders on the map where are new events starting.

 

So my question is, can i change the inventory or settings at my hidden traders and it will affect all traders with the same tagname?

That would be awesome to create different event steps and so on, and controll all different traders at the whole map.

 

 

Eject

Yep, modifying one custom trader with a tag affects the tag.  Then, whenever the next restock interval happens, the others will update their inventory.

On 5/16/2021 at 12:29 PM, Eject said:

Because the Crafter Trader

 

Is it possible to include a setting to turn off the "collect money" for crafter owners?

 

Reason is: i give the crafter to my players, so they have time to do other stuff, the players are using the crafter for there own and dont make it public.

Because they dont have to improve there stuff self, they shouldnt have the option to get the money back that they was investing in the trade with the crafter.

 

Eject

Set payment_options in the .properties file to all_tax for all of the money to go to the king's pool.  There is also tax_and_upkeep which means they only earn money indirectly.  But I don't think that fits your requirements.

1 hour ago, DarlingDeirdre said:

Oh ok, so there is no way to set up an NPC with a custom inventory who only buys/sells specific items that you can set? 

 

I wanted to place a farmer NPC near a farm who buys/sells vegetables for small amounts of coin.

I don't have an all-in-one solution, but you could use my Buyer mod, it can accept items from players in return for money, and either keep the items for the owner to collect, or automatically delete them. 

 

Then alongside the Buyer, if you (or another player) are farming the vegetables, you could use a normal merchant or if you just want a "fake" farmer who creates vegetables over time to sell you could use a Custom Trader.

 

 

Edited by Mthec
Forgot change face stuff.
  • Like 2

Share this post


Link to post
Share on other sites
On 5/18/2021 at 10:48 PM, Mthec said:

New mod - Banker

Thank you very much! 

You are great =))

  • Like 1

Share this post


Link to post
Share on other sites
On 5/18/2021 at 10:48 PM, Mthec said:

Yep, modifying one custom trader with a tag affects the tag.  Then, whenever the next restock interval happens, the others will update their inventory.

Would it be easy for you to implement a /restock command, so all custom traders with a given tag (/restock event) are refreshing?

 

Thanks Eject

Edited by Eject

Share this post


Link to post
Share on other sites

DELIVERY CONTRACTS - I figured out that we need to activate the contract and right click the item(s) we're packing up.  But after someone buys the contract, how do they unpack it?  I packed up a rare unfinished large cart, but we can't figure out how the buyer unpacks it.  @Mthec

Second question: I set the max items to 100 but was able only to pack up 94 mortar. We can't figure out how to unpack this delivery note, either.

Edited by Batta

Share this post


Link to post
Share on other sites

Updates

Banker - Download

Buyer - Download

Crafter - Download

Custom Trader - Download

Tool Purchaser - Download

 

Updated some of my mods with new features.  Figured out how to get name changing right.

 

Name changing

Applies to Banker, Buyer, Crafter, Custom Trader, Tool Purchaser.

You can now change the names of these Npcs after they have been placed, without dismissing and re-placing.

 

Name Prefixes

Applies to Banker (not new), Crafter, Custom Trader, Tool Purchaser.

Along with name changing, (modded) Npcs that have name prefixes (e.g. Trader_Bob) can now be customised, including disabling them altogether.  The underscore _ is automatically added to separate the two parts.  Set  name_prefix in .properties.  I recommend setting it once when you install, names won't be automatically updated if it's changed and when managing the Npcs you won't be able to submit certain windows without changing to the new naming system.

 

Buyer is not supported, unfortunately.

 

Defaults:

    Banker - Banker

    Crafter - blank

    Custom Trader - Trader

    Tool Purchaser - Trader

 

Face changing

Applies to Banker (not new), Crafter.

You can now change the faces of Crafters, same limitations apply.  You will need to update the Banker mod if you have that running as well.

 

GM Manage

Applies to Banker, Buyer, Crafter.

There is now an option in .properties to allow GMs to manage these Npcs, by right-clicking on them, without needing the writ (although that will still work as normal).  Set gm_manage_power_required as a GM power level (ie. 1-5), you can also set it higher to prevent GMs from managing this way (writ will still work), or maybe if there is a mod out there that adds extra power levels.

Defaults:

    Banker (2)

    Buyer (10, off)

    Crafter (10, off)

 

Place Npc Menu

Applies to Banker, Buyer, Crafter, Custom Trader, Tool Purchaser.

Previously the Custom Trader mod added a wand menu shortcut for placing them when right-clicking on a tile.  I've now removed this and added a general one that mods can hook into.

As a GM (power 2+) with a wand, right-click on a tile and there will be a Place Npc option, which includes any compatible mods you are using.

 

Custom Trader commands

Applies to Custom Trader.

/restock <tag> - Use to restock all traders using a given tag.

/tradertags - Lists all available Custom Trader tags.

 

On 5/20/2021 at 4:00 PM, Eject said:

Would it be easy for you to implement a /restock command, so all custom traders with a given tag (/restock event) are refreshing?

 

Thanks Eject

Sorry it took a little longer, was in the middle of this update.

 

16 hours ago, Batta said:

DELIVERY CONTRACTS - I figured out that we need to activate the contract and right click the item(s) we're packing up.  But after someone buys the contract, how do they unpack it?  I packed up a rare unfinished large cart, but we can't figure out how the buyer unpacks it.  @Mthec

Second question: I set the max items to 100 but was able only to pack up 94 mortar. We can't figure out how to unpack this delivery note, either.

You unpack them by activating and right-clicking on either a deed token or waystone ("Deliver Here").

 

The second one is strange, worked when I just tested it.  If you can give me the message you receive when it happens I will look into what's causing it.

Edited by Mthec

Share this post


Link to post
Share on other sites
4 minutes ago, Mthec said:

You unpack them by activating and right-clicking on either a deed token or waystone ("Deliver Here").

Oh! That makes perfect sense.  Thanks!

 

Share this post


Link to post
Share on other sites

@MthecWould it be possible to add ships to the items that can be packed up in a delivery contract?  Right now, it's allowing unfinished only.

Share this post


Link to post
Share on other sites

DeliveryContracts update

Download

 

Boats can now be added to contracts.  They also have an extra delivery location, a planted buoy.  Boats cannot be packed if they are moored.

3 hours ago, Batta said:

@MthecWould it be possible to add ships to the items that can be packed up in a delivery contract?  Right now, it's allowing unfinished only.

Can't remember exactly why I set to not allow them, think it was to do with being delivered on land.  But I guess ship transporters solve that, so I don't really know what I was thinking.

 

Anyway, it's sorted now.

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, Mthec said:

DeliveryContracts update

Download

 

Boats can now be added to contracts.  They also have an extra delivery location, a planted buoy.  Boats cannot be packed if they are moored.

Can't remember exactly why I set to not allow them, think it was to do with being delivered on land.  But I guess ship transporters solve that, so I don't really know what I was thinking.

 

Anyway, it's sorted now.

Wonderful!  Thank you very much

😄

  • Like 1

Share this post


Link to post
Share on other sites
On 5/25/2021 at 5:46 PM, Mthec said:

/restock <tag> - Use to restock all traders using a given tag.

/tradertags - Lists all available Custom Trader tags.

You are my hero!

This is awesome and very usefull for me, thank you mate.

  • Like 1

Share this post


Link to post
Share on other sites

Hey Mthec, I am having an issue where whenever i try to place the crafter via GM i get this in the server log after a crash:

 


[04:15:16 AM] SEVERE com.wurmonline.server.Server: java.lang.reflect.InvocationTargetException
org.gotti.wurmunlimited.modloader.classhooks.HookException: java.lang.reflect.InvocationTargetException
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:394)
    at com.wurmonline.server.Players.pollPlayers(Players.java)
    at com.wurmonline.server.Server.run(Server.java:1916)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gotti.wurmunlimited.modloader.server.ProxyServerHook$6$1.invoke(ProxyServerHook.java:181)
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:384)
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: mod/wurmunlimited/bml/BML
    at com.wurmonline.server.behaviours.PlaceCrafterAction.doAction(PlaceCrafterAction.java:36)
    at com.wurmonline.server.behaviours.PlaceNpcMenu.doAction(PlaceNpcMenu.java:107)
    at com.wurmonline.server.behaviours.PlaceNpcMenu.action(PlaceNpcMenu.java:124)
    at com.wurmonline.server.behaviours.PlaceNpcMenu$1.action(PlaceNpcMenu.java:51)
    at org.gotti.wurmunlimited.modsupport.actions.ActionPerformerBehaviour.action(ActionPerformerBehaviour.java:52)
    at org.gotti.wurmunlimited.modsupport.actions.WrappedBehaviour.lambda$action$3(WrappedBehaviour.java:78)
    at org.gotti.wurmunlimited.modsupport.actions.WrappedBehaviour.action(WrappedBehaviour.java:211)
    at org.gotti.wurmunlimited.modsupport.actions.WrappedBehaviour.action(WrappedBehaviour.java:78)
    at org.gotti.wurmunlimited.modsupport.actions.ActionPerformerChain.action(ActionPerformerChain.java:53)
    at com.wurmonline.server.behaviours.Action.poll(Action.java:3291)
    at com.wurmonline.server.behaviours.ActionStack.poll(ActionStack.java:247)
    at com.wurmonline.server.players.Player.pollActions(Player.java:9793)
    at com.wurmonline.server.Players.pollPlayers$1(Players.java:4641)
    ... 9 more
Caused by: java.lang.ClassNotFoundException: mod.wurmunlimited.bml.BML
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at javassist.Loader.delegateToParent(Loader.java:431)
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager$1.delegateToParent(HookManager.java:174)
    at javassist.Loader.loadClass(Loader.java:311)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 22 more

[04:15:16 AM] INFO com.wurmonline.server.Server: Shutting down at: 
java.lang.Exception
    at com.wurmonline.server.Server.shutDown$1(Server.java:3729)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gotti.wurmunlimited.modloader.server.ProxyServerHook$8$1.invoke(ProxyServerHook.java:232)
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:384)
    at com.wurmonline.server.Server.shutDown(Server.java)
    at com.wurmonline.server.Server.run(Server.java:2599)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)


Is there something I need to do to fix this? it doesnt seem to be happening to anyone else. I have the latest version of modloader and crafter. 

Thanks for any help!

  • Like 1

Share this post


Link to post
Share on other sites
54 minutes ago, Ottomaniac said:

*snip*

Is there something I need to do to fix this? it doesnt seem to be happening to anyone else. I have the latest version of modloader and crafter. 

Thanks for any help!

Sorry about that, I messed up my build process and not all the required files were included.  Here is a direct link to a fixed download.

Share this post


Link to post
Share on other sites

I don't know if it's been asked already or not, but would it be possible to have the Custom Trader accept Karma as a currency?

Share this post


Link to post
Share on other sites

CustomTrader update

Download

 

Added new Stat Trader, who works like a Custom/Currency Trader, except they take a stat as payment.
Options are:

  • Karma
  • Favor
  • Favor - Priest Only
  • Health (adds an internal wound)

Each Stat Trader also has a ratio, to help dial in the payment.
e.g. 0.5 would mean a 50i item would require 25 karma. 2 would mean the item would require 100 karma.

Some notes on the stats:
Karma works in whole numbers, any decimals will be rounded down (minimum 1 per item).
Favor goes up to 100 but works in decimals (minimum 1 ÷ ratio or 0.0001 per item).
Health, or rather damage, goes up to 65534, Champions get a reduction. 1 more and death occurs (minimum 1 per item). Disclaimer - Mthec cannot be held accountable if somebody dies as a result of getting too close to the max and it going wrong.

 

On 6/12/2021 at 7:55 AM, Sperg said:

I don't know if it's been asked already or not, but would it be possible to have the Custom Trader accept Karma as a currency?

It wasn't suggested before, so thank you.  It was interesting and I kind of ended up running with the idea.  Hopefully it does what you want.

 

Thought someone might use the Favor option as a sort of priestly service, either for followers or only those in the service.  Health for those who want to bargain with something a little darker...

  • Like 2

Share this post


Link to post
Share on other sites
On 6/14/2021 at 2:18 PM, Mthec said:

Thought someone might use the Favor option as a sort of priestly service, either for followers or only those in the service.  Health for those who want to bargain with something a little darker...

It would be so cool if we could also customize the face and clothing of these NPCs.  I picture a very dark, scary one who will let you trade your health for goods.  🙂

  • Like 1

Share this post


Link to post
Share on other sites

Hello @Mthec

 

I see, you love to create awesome special NPC´s. Your work and support is very great, your mods make a lot of players and admins happy, thank you very much!

I have a new idea for you, maybe you like it....this idea would help me and my GM´s in a special situaltion...maybe others too at other servers.

 

Years ago i built a big arena next to my starter town, at the outside i placed 5 NPC´s.

I created a new item "summoner stone" in two variations. One for a dragon hatchling, one for a dragon that you can buy now at one of your custom traders.

 

I am sure you know now what i had to do, i created 10 missions with the bad mission ruler, twi missions for each NPC.

You have to give one summoner stone to a NPC (black white blue green red NPC) and get a dragon or dragon hatchling spawned in the middle of the arena.

 

That was a hard work.

 

So, now my idea:

Maybe its possilbe for you to code a new "Spawner-NPC"

Admins/GM´s should be able to configure which creatures are spawned, the coordinates, and the price....also if it should be a price in irons or a item (like my summoner stone)

One Spawner NPC should be able to spawn all creatures that are setup by the admin with diferrent prices, i would say, just use it for unique creatures.

In a starter town you can use it as "Trainer NPC" that just spawning easy creatures.

 

A player should "ask" the NPC and in a popup window he should be able to select which creature the spawner NPC shall spawn

Maybe its working like traders or creating new windows.

 

It would be very awesome, if you have fun and time to create this mod, if not, i have to jump to my neighbour map and also create 10 missions there for the dragons and hatchling lol 

 

Thanks again for all your work, thanks for the banker, and please give me a link to donate your awesome work.

 

 

Eject

 

Edit: For Gm´s you could use it to control Events with the spawner, like spawning 20 creatures at given coordinates ^^

we have a little GM City where we control all custom traders with tags (and store player items), so control the spawner npc from there would as gm also be good

Edited by Eject

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now