an ongoing development project needs your support! As many might know, martin and Nitram developed the Simple NPC Scripting Language for Illarion. It enables everyone to write simple NPCs and quests without any knowledge in programming languages. However, it is rarely used for this original purpose.
So I wrote a simple template for generic, static quests for new players. The quests are easy to solve and deal with resource gathering. All quests work the same way and have the aim to reward players for simple actions once. Also, the quests are losely interconnected - for solving the last subquest of one NPC, the player is sent into the direction of another NPC. However, all quests can be done indepently. Each NPC has 4 subquests:
- Simple Gathering: You gather 10 items, easily found - reward 40cp
- Advanced Gathering: You gather 20 items, easily found - reward 80cp
- Rare Gathering: You gather 5 items, hard to find - reward 100 cp
- Distant gathering: You gather 10 items to be found far away in order to interconnect the gathering quests - reward 200cp
- Butcher (Troll's Bane, points to the copper mine) Jupiter (done)
- Mining 1 (Copper mine) Lillian (done)
- Herb lore (Falkner's Shrine) Estralis (done)
- Sand (Varshikar) Jupiter (done)
- Mining 2 (Silverbrand) Magdha Tiefenerz (in work)
- Lumberjacking (Tol Vanima) Matron/Estralis (50% completed)
- Wheat farming (Greenbriar) Magdha Tiefenerz (done)
- Fishing (Zzyathis, points to the butcher again) Kranek (pending)
For proof-reading, you will team up with the scripter who is above you in the list so he/she corrects your typos and knows exactly where to send his/her own NPC (name, location, type of NPC,...).
If you want to take over a quest, just drop me a note. Deadline for finishing the NPCs is the 1st of february.
Note that if you finish one quest, you have made half of the road to earn your title as NPC Scripter, see: http://illarion.org/community/forums/vi ... hp?t=25192 . So, two quests will earn you a unique forum rank *cough* *hint* *cough*.
In order to be able to judge the effort, here is the code of the template:
Code: Select all
name="NAME"
sex=GENDER --male/female
race=RACE --human, elf, dwarf, lizard, orc,...
position=0, 0, 0 --NAME OF LOCATION
direction=South --North/South/West/East
QuestID=0 --A developer will assign an ID
--Queststatus Overview
--0: No Quest taken
--1: Quest 1 taken - gather 10 raw materials for 40cp
--2: Quest 1 solved
--3: Quest 2 taken - gather 20 raw materials for 80cp
--4: Quest 2 solved
--5: Quest 3 taken - gather 5 rare raw materials for 100cp
--6: Quest 3 solved
--7: Quest 4 taken - gather 10 distant raw materials for 200cp
--8: Quest 4 solved
--Help
"Help"->"[Game Help] This NPC is the (PROFESSION) (NAME). Keyphrases: Hello, quest, (TOOL), (PROFESSION)."
"Hilfe"->"[Spielhilfe] Dieser NPC ist (der/die) (BERUF) (NAME). Schlüsselwörter: Hallo, Quest, (WERKZEUG), (BERUF)."
--General speech
"Hello","Greetings","Be greeted","Hail","Good day","Good morning","Good evening"->"ANSWER1","ANSWER2","ANSWER3"
"Grüße","Gruß","Seid gegrüßt","Guten Tag","Guten Abend","Mahlzeit","Tach","Moin"->"ANSWER1","ANSWER2","ANSWER3"
"Hiho","Hallo","Hey","Greebas","Greebs",english->"ANSWER1","ANSWER2","ANSWER3"
"Hiho","Hallo","Hey","Greebas","Greebs",german->"ANSWER1","ANSWER2","ANSWER3"
"Farewell","Good bye","Bye","Fare thy well"->"ANSWER1","ANSWER2","ANSWER3"
"Tschüß","Tschüss","Wiedersehen","Gehabt euch wohl"->"ANSWER1","ANSWER2","ANSWER3"
"Ciao","Adieu","Au revoir",english->"ANSWER1","ANSWER2","ANSWER3"
"Ciao","Adieu","Au revoir",german->"ANSWER1","ANSWER2","ANSWER3"
"How are you","How feel","How do you do"->"ANSWER1","ANSWER2","ANSWER3"
"Wie geht","Wie fühlst","Wie ist es ergangen"->"ANSWER1","ANSWER2","ANSWER3"
"your name","who are you","who art thou"->"ANSWER1","ANSWER2","ANSWER3"
"dein name","wer bist du","wer seid ihr","wie heißt"->"ANSWER1","ANSWER2","ANSWER3"
--Catching typical NPC phrases
"what sell","what buy","list wares","price of"->"ANSWER1","ANSWER2","ANSWER3"
"was verkauf","was kauf","warenliste","preis von"->"ANSWER1","ANSWER2","ANSWER3"
"tell something"->"ANSWER1","ANSWER2","ANSWER3"
"erzähl was","erzähl etwas"->"ANSWER1","ANSWER2","ANSWER3"
--Small talk: The talk here should focus on possible questions. Feel free to add more!
"PROFESSION"->"ANSWER1","ANSWER2","ANSWER3"
"BERUF"->"ANSWER1","ANSWER2","ANSWER3"
"LOCATION"->"ANSWER1","ANSWER2","ANSWER3"
"ORT"->"ANSWER1","ANSWER2","ANSWER3"
--Tool hints
"TOOL",queststatus=0->"HINT ON QUEST"
"WERKZEUG",queststatus=0->"HINT ON QUEST"
"TOOL"->"HINTS ON WHERE TO GET ADDITIONAL TOOLS"
"WERKZEUG"->"HINTS ON WHERE TO GET ADDITIONAL TOOLS"
--1st quest: Take a tool and gather 10 raw materials for 40cp.
"quest",queststatus=0,english->"GIVE QUEST MESSAGE",item(1337,1,399,0),queststatus=1 --replace 1337 with ToolID
"quest",queststatus=0,german->"GIVE QUEST MESSAGE",item(1337,1,399,0),queststatus=1 --replace 1337 with ToolID
"task","adventure",queststatus=0->"GIVE QUEST MESSAGE",item(1337,1,399,0),queststatus=1 --replace 1337 with ToolID
"Auftrag","Aufgabe","Abenteuer",queststatus=0->"GIVE QUEST MESSAGE",item(1337,1,399,0),queststatus=1 --replace 1337 with ToolID
"quest",queststatus=1,english->"REPEAT QUEST MESSAGE"
"quest",queststatus=1,german->"REPEAT QUEST MESSAGE"
"task","adventure",queststatus=1->"REPEAT QUEST MESSAGE"
"Auftrag","Aufgabe","Abenteuer",queststatus=1->"REPEAT QUEST MESSAGE"
".+",queststatus=1,item(1337,all)>9,german->"QUEST SOLVED",deleteitem(1337,10),money+40,queststatus=2 --replace 1337 with Item 1 ID
".+",queststatus=1,item(1337,all)>9,english->"QUEST SOLVED",deleteitem(1337,10),money+40,queststatus=2 --replace 1337 with Item 1 ID
".+",queststatus=1,item(1337,all)<10,german->"QUEST NOT SOLVED" --replace 1337 with Item 1 ID
".+",queststatus=1,item(1337,all)<10,english->"QUEST NOT SOLVED" --replace 1337 with Item 1 ID
--2nd quest: Gather 20 different raw materials for 80cp.
"quest",queststatus=2,english->"GIVE QUEST MESSAGE",queststatus=3
"quest",queststatus=2,german->"GIVE QUEST MESSAGE",queststatus=3
"task","adventure",queststatus=2->"GIVE QUEST MESSAGE",queststatus=3
"Auftrag","Aufgabe","Abenteuer",queststatus=2->"GIVE QUEST MESSAGE",queststatus=3
"quest",queststatus=3,english->"REPEAT QUEST MESSAGE"
"quest",queststatus=3,german->"REPEAT QUEST MESSAGE"
"task","adventure",queststatus=3->"REPEAT QUEST MESSAGE"
"Auftrag","Aufgabe","Abenteuer",queststatus=3->"REPEAT QUEST MESSAGE"
".+",queststatus=3,item(1337,all)>19,german->"QUEST SOLVED",deleteitem(1337,20),money+80,queststatus=4 --replace 1337 with Item 2 ID
".+",queststatus=3,item(1337,all)>19,english->"QUEST SOLVED",deleteitem(1337,20),money+80,queststatus=4 --replace 1337 with Item 2 ID
".+",queststatus=3,item(1337,all)<20,german->"QUEST NOT SOLVED" --replace 1337 with Item 2 ID
".+",queststatus=3,item(1337,all)<20,english->"QUEST NOT SOLVED" --replace 1337 with Item 2 ID
--3rd quest: Gather 5 rare raw materials for 100cp.
"quest",queststatus=4,english->"GIVE QUEST MESSAGE",queststatus=5
"quest",queststatus=4,german->"GIVE QUEST MESSAGE",queststatus=5
"task","adventure",queststatus=4->"GIVE QUEST MESSAGE",queststatus=5
"Auftrag","Aufgabe","Abenteuer",queststatus=4->"GIVE QUEST MESSAGE",queststatus=5
"quest",queststatus=5,english->"REPEAT QUEST MESSAGE"
"quest",queststatus=5,german->"REPEAT QUEST MESSAGE"
"task","adventure",queststatus=5->"REPEAT QUEST MESSAGE"
"Auftrag","Aufgabe","Abenteuer",queststatus=5->"REPEAT QUEST MESSAGE"
".+",queststatus=3,item(1337,all)>4,german->"QUEST SOLVED",deleteitem(1337,5),money+100,queststatus=6 --replace 1337 with Item 3 ID
".+",queststatus=3,item(1337,all)>4,english->"QUEST SOLVED",deleteitem(1337,5),money+100,queststatus=6 --replace 1337 with Item 3 ID
".+",queststatus=3,item(1337,all)<5,german->"QUEST NOT SOLVED"
".+",queststatus=3,item(1337,all)<5,english->"QUEST NOT SOLVED"
--4th quest: Gather 10 raw materials from a totally different location for 200cp. Link to other quest. Hint how to get there.
"quest",queststatus=6,english->"GIVE QUEST MESSAGE",queststatus=7
"quest",queststatus=6,german->"GIVE QUEST MESSAGE",queststatus=7
"task","adventure",queststatus=6->"GIVE QUEST MESSAGE",queststatus=7
"Auftrag","Aufgabe","Abenteuer",queststatus=6->"GIVE QUEST MESSAGE",queststatus=7
"quest",queststatus=7,english->"REPEAT QUEST MESSAGE"
"quest",queststatus=7,german->"REPEAT QUEST MESSAGE"
"task","adventure",queststatus=7->"REPEAT QUEST MESSAGE"
"Auftrag","Aufgabe","Abenteuer",queststatus=7->"REPEAT QUEST MESSAGE"
".+",queststatus=3,item(1337,all)>9,german->"QUEST SOLVED",deleteitem(1337,10),money+200,queststatus=8 --replace 1337 with Item 4 ID
".+",queststatus=3,item(1337,all)>9,english->"QUEST SOLVED",deleteitem(1337,10),money+200,queststatus=8 --replace 1337 with Item 4 ID
".+",queststatus=3,item(1337,all)<10,german->"QUEST NOT SOLVED"
".+",queststatus=3,item(1337,all)<10,english->"QUEST NOT SOLVED"
--Final dialogue: No more quests, just nice hints
"quest",queststatus=8,english->"NO MORE QUEST"
"quest",queststatus=8,german->"NO MORE QUEST"
"task","adventure",queststatus=8->"NO MORE QUEST"
"Auftrag","Aufgabe","Abenteuer",queststatus=8->"NO MORE QUEST"
--Last catch: Think about keyphrases the player might say and that are not caught until here
"Yes"->"ANSWER1","ANSWER2"
"Ja"->"ANSWER1","ANSWER2"
"No"->"ANSWER1","ANSWER2"
"Nein"->"ANSWER1","ANSWER2"
--Cycletext: Please add at least(!) five cycletext messages. The more, the better. You can use emotes (#me is green), too.
cycletext "GERMAN","ENGLISH"
cycletext "GERMAN","ENGLISH"
cycletext "GERMAN","ENGLISH"
cycletext "GERMAN","ENGLISH"
cycletext "GERMAN","ENGLISH"
GM Estralis
PS: For all code junkies, ".+" means that this line is triggered by any word spoken that is not caught before.