Full-Featured NPC Quest System

Discussion in 'Archived: Plugin Requests' started by killgoblen, Mar 28, 2011.

  1. Offline

    killgoblen

    I have looked over the various quest plugins, and have not found a plugin that suites what I want.

    I was thinking of how I could make a series of quests with a storyline in my server. Starting out with simple things like a farmer needing some help growing wheat, all the way up to uncovering a plan to destroy the world. The problem is, I have no idea how I could do this with existing quest plugins. So here is what I think should be implemented in an NPC-based quest system:

    Quest requirements: Simple- You need to complete certain quests to proceed to the next one in the storyline.

    HUGE npc variation:
    -Would it be possible to have an NPC get its skin from a certain MC account? E.G., tell it to get killgoblen's skin, and suddenly I have a clone! =P
    -Highly customizable behavior: For example, if it gets attacked, Retaliate if the attacker has completed certain quests or is holding a certain item.
    -Moving npcs- Once you complete a quest or get to a certain part of the quest, it triggers the npc to walk (or just teleport) to a new spot. This would, however, require each player to see the NPC's differently. I don't know if this is possible or not.
    -Boss NPC's- Configurable health, weakness to certain weapons/armor, behavior, etc.
    -Chat: When talking, you are given choices of how to respond, possibly changing how the quest goes.
    -Special behavior like following, defending, mining, etc. (In certain cases, a 'clone' of the npc would have to be made and be visible to other players. How fair is an invisible bodyguard? =P)

    Dungeons:
    -With multi-world support, I would imagine this could be possible. When a player (or group of them) teleports to a 'dungeon,' a copy of the specified world is made so that they don't ruin the original world for others doing the quest. Once the quest is finished (Or right when they leave the dungeon world), the copy world would be deleted, to prevent them from clogging up hard drive space.

    Also, check out the post right below mine for some more good ideas.

    I know this all sound complicated, and it would be a nightmare to make a quest, but just imagine how awesome the quest system on your server could be.

    Thanks for reading this, and feel free to offer up more ideas.

    Also, jmonk is making an RPG plugin. Check out his post a few down. It's not quite this, but it's definitely worth mentioning.
     
  2. Offline

    MisanthropX

    i would really appreciate this kind of plugin, because im more of a fan of making huge talking quests to get information about a background story or something :)
    Rather than quests like "cut down 100 trees to get 1 stick!"
    Of course, the quest NPC could tell you that he just made a flute for you and you need to play it for the king so he can give you either experience or money or something else like items (hook up to other plugins like iconomy)

    Type of Quests:
    • killing X monsters/animals AND/OR/NOT/(other logical or arithmetic operators) Y monsters/animals to proceed.
    • collecting X of a material AND/OR/NOT Y materials to proceed
    • clear inventory to proceed AND/OR/NOT clear X items of the type Y to proceed
    • have material X in inventory AND/OR/NOT material Y to proceed
    • talk to NPC X AND/OR/NOT to NPC Y to proceed
    • guard a NPC (kill X monsters in Z (seconds, minutes or hours) time (monsters which will spawn(in a radius of Y around the NPC) to aim to the NPC and drain his life variable, which effects another text after talking to the NPC or forcing a message ) - if this type of quest is too hard tell please, its just an idea.
    • bring material X to NPC Y
    • get to point X/Y/Z
    of course you should be also set a zone/radius to all these type of quests, so you can't kill spiders on the safe ground, if the NPC asks you to kill Spiders in a tunnel ;)
    Triggered NPCs:
    These are invisible NPCs which only appear if you fullfilled a type of quest, or part of it.
    and vanish after finishing talking.

    Lets take the upper NPC as example:

    "hey adventurer, you seem to look like a hunter, would you please lead me to the other side of this cave?
    its so dark and full of spiders! unfortunatly i cant climb this mountain because im too old, please help me adventurer"
    of course we say "oh sure!" and in this moment many evil spiders spawn in the defined zone.
    when you killed at least 1 spider and if you reached the end of the cave, the NPC appears on this side of the cave, and the spider spawner is deactivated!
    And now when you are done with your heroic part the NPC begins to talk automatically.
    "oh, thanks a lot, i would have to walk miles around that cave, earlier this cave leaded also to a water basin which was so clear and enjoyable to drink, oh i really would like to drink once more from that magic water there, but well *cough* thanks for leading me through this cave, im sure you can need this diamond sword!"
    our hero answers "oh, well, i could have needed that earlier *grrr*" but we say thanks and let the NPC stay, so someone else can continue the quest.

    this quest has 2 options, repeatable NPC but only for ONE!
    either leading the npc through the cave (but he remembers your "name" so first one leads him through cave, and the 2. guy leads him back again, the third guy does again the first part of this quest.
    there is also a hidden quest there which is automatically "open" for you if you lead him once through that cave,
    this 2. optional "hidden" quest is finding that water basin, when you reached that area you obtain a bucket full of water and you can return it to the NPC to get something less or more, or you keep that bucket, but we do want to know how the story goes on, so we return the bucket and he enjoys the drink.
    you could take any bucket with water! important is that you reached this point X and you brang material Y to the NPC Z :)

    i hope i explained that good enough.



    NPCs should be able to:
    act differently if holding other items, or act always the same.
    say different things after fullfilling a part of a quest.
    act differently to other groups, and give them different quests, (we have jobs on our server and dont want everyone to random deathmatch the whole server, so killing monster quests only for hunters and soldiers hehe)
    open other quests automatically.
    obtain skins defined by wearing them, (i have no idea if this is server or client side, but is it possible that you upload that skin, tell the NPC to wear your skin, upload it to the server, and then you can change back and he keeps the skin, that would be very awesome!)


    i am still thinking about a good way to configure these QuestNPCs.

    thanks for listening :)
     
  3. Offline

    captainawesome7

    Yeah that is way too complicated...
     
  4. Offline

    MisanthropX

    well maybe you are suited with these rather stupid quests like "cut down 600 trees", i am not, i want real quests, with talking to NPCs
     
  5. Offline

    jmonk

  6. Offline

    MisanthropX

  7. Offline

    killgoblen

    MisanthropX, I could not have said it better myself! I was about to come revise my OP, and I saw that. That's pretty much everything I wanted!

    Just thought I'd add:
    Boss NPC's: Configurable health and behavior, only damageable by certain weapons, etc. As far as I know, health is server-side, so this shouldn't be too hard.
     
  8. Offline

    MisanthropX

    hmm, do you think its possible to make NPC have special non static behavior?
    e.g.: follow, attack, etc :D
     
  9. Offline

    killgoblen

    Good idea! Will add this to OP!

    I might have to learn how to code in java. I wonder how long this will take...
     
  10. Offline

    MisanthropX

    well, when you know at least 2~3 languages (at least OOP should be well known, and what functions can do, also, java tends to be usable in terms of polymorphism!)
    then it should be no problem.
    the only first hard days you spend scrolling through codes to know what the function does and what parameter it has, even if the variables/functions/classes are well named you need a bit to get into developing, but modding a plugin is the first way to learn java, e.g. first try to alter some commands, later copy a command and try to make your own, and so on.

    UnrealScript is NOT Java, and UnrealScript is for unreal tournament only.
    I have made Maps for Cube2 a long time and know a lot of CubeScript.
    It's a beginning if you learn a scripting language first, i started with web design: HTML/CSS/PHP
    where you learn about basic syntaxing in html and css, and real programming you do with php, at least for homepages :>

    however, there are some tutorials on this forum, i believe its HERE
    Resources

    Useful resources for developers, like tutorials and guides, etc.​
     

Share This Page