Stendhal Quest Coding: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>Kymara m typo |
imported>Kribbel m replace old link |
||
| (122 intermediate revisions by 12 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Stendhal Top}} |
{{Navigation for Stendhal Top|Contributing}} |
||
{{Navigation for Stendhal Contributors}} |
{{Navigation for Stendhal Contributors}} |
||
| ⚫ | |||
{{ TODO | Update page for changes in quest coding }} |
|||
| ⚫ | |||
__TOC__ |
__TOC__ |
||
| Line 12: | Line 15: | ||
This page describes how to code a quest. You don't need to know a lot about Java. You should, however, already have [[Configure a development environment (IDE)|setup an IDE]] and be able to compile and start a local Stendhal server. |
This page describes how to code a quest. You don't need to know a lot about Java. You should, however, already have [[Configure a development environment (IDE)|setup an IDE]] and be able to compile and start a local Stendhal server. |
||
This tutorial assumes that the new quest only uses NPCs and items that already exist in Stendhal. |
This tutorial assumes that the new quest only uses NPCs and items that already exist in Stendhal. To add a new NPC, see [[Stendhal NPC Coding]]. |
||
== Creating a quest skeleton == |
== Creating a quest skeleton == |
||
| Line 48: | Line 51: | ||
public String getName() { |
public String getName() { |
||
return "BeerForHayunn"; |
return "BeerForHayunn"; |
||
} |
|||
public List<String> getHistory(final Player player) { |
|||
final List<String> res = new ArrayList<String>(); |
|||
return res; |
|||
} |
} |
||
} |
} |
||
| Line 99: | Line 107: | ||
== Commonly used conversation phrases == |
== Commonly used conversation phrases == |
||
Good, Hayunn now replies to the trigger "quest". He does not, however, reply to "task". All other NPCs accept both words as synonym. A simple solution would be to add a second ''npc.addReply'' line. But there is a better way which makes it very easy to add additional synonyms later. We predefined lists of commonly used [ |
Good, Hayunn now replies to the trigger "quest". He does not, however, reply to "task". All other NPCs accept both words as synonym. A simple solution would be to add a second ''npc.addReply'' line. But there is a better way which makes it very easy to add additional synonyms later. We predefined lists of commonly used [https://github.com/arianne/stendhal/blob/master/src/games/stendhal/server/entity/npc/ConversationPhrases.java ConversationPhrases]. If there are already conversation phrases defined for the triggers that you would like to add, you should use the phrases. |
||
Let's adjust the above sample by using ''ConversationPhrases.QUEST_MESSAGES'' instead of the hard coded word "quest": |
Let's adjust the above sample by using ''ConversationPhrases.QUEST_MESSAGES'' instead of the hard coded word "quest": |
||