akenland / project-story Goto Github PK
View Code? Open in Web Editor NEWA Bukkit plugin for dynamic quests and characters, that are tailored to your world.
Home Page: http://akenland.com
A Bukkit plugin for dynamic quests and characters, that are tailored to your world.
Home Page: http://akenland.com
Books can be set in a text (YAML) file.
File name is the book's ID. This ID will be visible on the book item in-game. A book ID can have any format, but we'll probably try to standardize this for Akenland (using a system called IFBN). Possible formats are "Farthing letter - number - first three letters of topic", such as "E-001-EQU".
File contains Name, Author, and numbered Sections. Each Section contains any text. Page breaks are handled automatically by the plugin. File can also contain quests to start (when book is opened), or prompt actions to run.
Players should be able to add custom entries to their Journal.
A custom entry can have "no objective", in which case it will remain in the Journal, until the player chooses to remove it. Alternatively, a custom entry can have an objective, such as "collect 20 wood", in which case the player will be notified when the objective is complete (much like a quest).
each realm and NPC has a reputation score with each player
realm and NPC scores are summed to produce final effective score
reputation determines basic behavior
positive reputation means NPC is friendly with player, negative reputation makes the NPC aggressive towards the player
reputation is raised automatically by completing quests for NPCs
a very high reputation may allow the player to give orders to the NPC or recruit them to their own realm
Let's say you attack an NPC
Your reputation immediately goes down with that NPC
It also goes down in the NPC's realm, but not as much
So you might get a -5 penalty in the realm per hit
But a -10 with the NPC because they're gonna hold a grudge
So the specific NPC would have a -15 with you, while other NPCs in the realm would have a -5 with you
If your rep with one of your own NPCs dropped too low, they may leave your realm
NPC Towns, in Story Zones (so players can't break/place blocks), can be swayed to support your realm, either by improving your reputation with them (defending them from attacks, completing quests, bringing materials in, etc.), or by killing the NPCs until they surrender
This allows realms to "claim" these NPC towns, but they cannot place/break blocks in the town
Should party creation be automatic (when players are close together), or should it require a command?
When players are in a party, all interactions with NPCs will be shared between both players. Each player will see the exact same text said by the NPC, and either player can choose an answer.
When in a party, all party members can complete each other's quests. All players receive credit for completing quests, even if a player didn't start the quest themselves.
NPCs can join parties. The NPCs will automatically follow players, attack their targets, mine ores, farm, etc...
Add clickable links to Journal pages. For example, on a quest page, add a link to delete the quest.
Certain objectives should be completable by NPCs. For example, the "go to location" objective, when given to an NPC, should cause them to walk to the destination.
It's possible that this could be expanded to allow NPCs to do more advanced tasks, such as mining or farming.
Allow things like crime (blocks broken, chests entered, animals attacked) to trigger Interactions on an NPC.
When a player is on a quest, and they interact with any NPC that may have something to say that's related to the quest, show a "!" over their head, and replace their normal interaction with one that was specified in the quest template.
At nightfall, NPCs should stow their offhand item, and take a Torch instead. At sunrise, the torch should be stowed, and the NPC should return to another offhand item (such as a shield).
Okay so we have @ p, @ e, @ r... but what if they were more powerful
So I was thinking, what if these worked for more than just players...
Need to use a warpstone? @ warpstone[r=100] picks out a random warpstone nearby. @ npc[waramon,guard] picks out a random NPC that's a Waramon Guard
@ item[eborin,level=30-40] picks out an Eborin item that's between levels 30-40These would be used in command blocks, prompts, quests, whatever
The Minecraft target selectors are often changed between Minecraft versions, don't play nicely with plugins, and are overall difficult or impossible to integrate with.
To avoid conflicts, a new format could be something like $character, $warpstone...
This is low priority right now, as I can't think of a use for this, that isn't already covered by the Conditions system.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.