NPC.moveTo method request (and alsoNPC ownership)

  • So I was chatting the other day with Arcticu about my thoughts of BladeRunner flying cars as taxi services and I got an even better idea just now. What about flying pigs?


    So I'd like to request that the Player.moveTo method be implemented into NPC as well. Also a way to assign a rider to the NPC ( NPC.setRider(Player player). The idea of spawning a rideable flying pig as part of my taxi service that I'm working on would pay homeage to the older bugs of Rising World and all the fun and jokes we all made about them. When the Animal AI is fixed then we won't have flying pigs anymore. :(


    If something like Npc.setRider(Player) is not ready yet then atleast att Npc.moveTo and I can translate both player and npc at the same time :)


    Ohh... Player.setRider(Player) and Player.setRider(Npc) are also good ideas as with many online environments such as SecondLife, you can carry someone on your back.

  • What I had in mind was more Skryim & Grand Theft Auto Vice City/GTA 5 type taxi.


    Depending on how you decorated & placed the NPC you could use various "triggered" decorational taxi signs to gain the attention of the NPC to take you places on both the beaten & unbeaten path. These signs could be used to interact with NPCs to take you places, yet if not there then that means another player took them. (It be amusing if NPCs did also to tend to their various tasks). The beaten path being what you specified, as with 'unbeaten' being more rough & untamed side of the map. Players would set a marker, and maybe a waypoint to help the NPCs have a safer pathway to the destination.


    Everything in real time because I find teleporting cheating, unless Star Trek & Starbound style. We're however not going into space, thus teleporting is viewed as moronic to me.


    --------


    - Survival: After you've rescued an NPC from the wild you could have the ability to assign a task to him/her that one would fall under 'taxi'. Their pay would be through food, water, & morale. This would be by using horses, cars, & any vehicle which isn't tied to a rails. You would then set up waypoints for them to follow that they'd follow it, even to the ends of the earth. I guess they'd operate more like buses, yet their role would be to take you to "pre-determined" locations that you chose. Once on the other end they'd have to find a way back. It's a one way trip that you might even have to mention how they'll have to get back. 1 way, or a two-way. Maybe even going all these odd routes until they get back to their destination.


    [Bonus]: A secondary option could be a pop-up map with you making a waypoint for the NPC to follow. If you even successfully barter at the destination you could make them wait for you for a certain amount of time before heading back. They're still "lively" after all.


    - Admin/Creative: Seeing as how we also have different play-styles in both a legit & pampered/lazy style (don't read this as combined, yet seperate) this would allow servers to set up specualized immersive taxi routes without going to the trouble of waiting to recruit from the wilds. They would have the NPCs already placed, yet have them travel specific routes, even enabling if they can travel to various places freely or not. Traveling by horse, camel, boats, buses, cars, trucks. Anything that isn't stuck on rails.


    (Side-Note: When going modern era with vehicles the AI would also have to be made aware of fuel stops. You might have to build a few rest-stops for them to consider so they could pull in, fuel, and make their way back on their journey. All depends on how you code them, yet could work the way it does in 'American Truck SImulator', or even 'Euro Truck Sim 2' (same thing). Make sure to keep the fuel & ethanol handy at all times. Even electric powered vehicles.)


    -------------


    Flying pigs is something I'd laugh at if we set it up using what I mentioned. I'd even be amused if we had flying Dragon mounts, as well as 'fantasy' flying giant leaves for when we gain that highly rare fantasy biome. I can imagine bus routes, trains, and even boats going on waypoints, and even set up on schedules while possibly even keeping the chunks they're in loaded so they can even do what they've been assigned to do.


    I can imagine trains to follow specific tracks via map management, as well as waypoints set. Even traveling crazy amounts of distances. Even similar with buses, when we gain them. Even going as back to "primitive" horse-drawn passenger/cargo wagons.

  • Oooh, I guess NPC servitude is kinda relevant to this too (I'm going to re-name this topic to make it more relevant in a second) and I will appologize now because this post as it is written below is more of just an API request, it could also be a built-in game feature but atleast with the API functions I'm requesting we might be able to write something ourselves.


    NPC servants is another nice feature. How would we work out how ownership works? Basically a Player or NPC can own another. Player owns Player, Player owns NPC, NPC own Player, NPC owns NPC



    Some new methods for an NPC object:

    • NPC.isOwned() returns a boolean
    • NPC.getOwnershipCriteria () returns a condition
    • NPC.setOwner(Player)
    • NPC.setOwnerCriteria(condition)


    And why not set it for player relationships too? :

    • Player.isOwned() returns a boolean
    • Player.setOwner(Player) ... suppose you are in a relationship with another player. This can be set one way or be mutual ( PlayerA.setOwner(B); PlayerB.setOwner(A)
    • Player.setOwner(NPC) .... this would work if say, a wandering NPC saves you from death (maybe this could be a random event build into the game or something we could do via API.. example: Player dies, a randomizer runs(e.g. dice roll), if successful then a NPC will spawn nearby and resurrect player. This automatically triggers Player.setOwner and Player.setOwnershipCriteria
    • Player.getOwner() returns a player object
    • Player.setOwnershipCriteria(condition[]) accepts an array of conditions


    Ideas for conditions:

    • Ownership continues after a certain amount of time passes
    • Servant follows random orders given while game is in session (player can still possibly exit game at anytime to pause this)
    • Servant pays Owner in resources (give ores which implies requiring work)




    Accepting conditions:

    • Whoever initiates negotiations (be it the NPC that saves the life of a player or a player approaching an npc merchant). begins with a randomized list of conditions (follow me, defend me, pay me)
    • There is a negotiation window (similar to the trading window) that shows a list of conditions on each side with buttons to accept/reject/re-negotiate
    • A variable for whether or not terms are negotiable
      • If non-negotiable: initiator has full ownership of player (can kill you, rob you, etc..(I suspect this could backfire in the situation where a condition cannot be satisfied but I figured this might be an option for in the event an NPC saves your life) however an option to reject this condition triggers Player death.
      • If negotiation is allowed then re-negotiate button is activated and will re-randomize conditions and allow the player to offer conditions on their end and click the re-negotiate button (e.g. I will not pay you money that you demand but I can protect you for X amount of time
      • Accept causes the conditions to be set (if conditions are given two ways then a condition set is applied to both character (being either a player or an npc)
      • Deny -- depending on the situation might result in NPC being killed or hurt and looted (probably should add a consciousness variable to Player (have consciousness work like in ARK where is returns to normal over time but character is susceptible to looting or death while a value is set.
      • Re-negotiate -- if active,


    Ownership Perks (this needs to be expanded on):

    • Owner can access your inventory (if ownership is set both ways then the access is also both ways but I suspect NPC on NPC ownership can be a problem as deadlock or infinite loop might occur here)
    • Owner can access vitals (e.g. feed you or heal/break your bones) --- wow that's mean!


    any getOwnershipCriteria needs to return an array of conditions. We need add/remove methods for conditions as well as a check condition so if condition is an array then Condition[1].isSatisfied return a boolean


    Orders (orders given by owner to servant:

    • give me x number of inventory items
    • craft something
    • build something
    • follow me (servant must keep within a certain radius)
    • ride me (this order will play whatever "ride" animation is optionally implemented and ensure that the rider is following the position and view angle of the Player) -- this is how I would implement a more advanced version of the pig taxi
    • i will ride you
    • follow me and fight


    Penalties of breaking orders:

    • Health reduction
    • Taking inventory
    • Breaking bones
    • Fight (ownership is disolved when either owner or servant is killed) - trigger event where player eventually de-spawns. Inventory is now up for grabs.

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!