[DIS] More NPCs Using Existing Content
Forum rules
This forum houses many years of development, tracing back to some of the earliest posts that exist on the board.
Its current use is for the continued development of the server and game it has always served: TMW Classic.
[DIS] More NPCs Using Existing Content
I'd like to create and see implemented more NPCs with existing content in the game. To do this, we could create some guidelines for the NPCs that aren't too complex. Here is an example:
Baselevel 1:
Quests: Talk to one NPC and fetch an item, Collect 5-20 monster drops from this list: blah blah
1,000 xp, 1,000 gold or item from the following list: blah blah
Baselevel 20:
Quests: Talk to one or more NPCs and fetch an item, Collect 5-50 monster drops from this list: blah blah
2,000 xp, 2,000 gold or item from the following list: blah blah
Baselevel 40:
Quests: Talk to two or more NPCs and fetch an item, Collect 10-50 monster drops from this list: blah blah
5,000 xp, 5,000 gold or item from the following list: blah blah
Baselevel 60:
Quests: Talk to three or more NPCs and fetch an item, Collect 10-50 monster drops from this list: blah blah
20,000 xp, 20,000 gold or item from the following list: blah blah
Baselevel 80:
Quests: Talk to 5 or more NPCs and fetch an item, Collect 20-50 monster drops from this list: blah blah
40,000 xp, 40,000 gold or item from the following list: blah blah
Obviously this is just an example list, but a discussion on this could help define the parameters for NPC creation. The NPCs created under this project would have a game life of two seasons (or more, depending on desire) and then could be recycled so other NPCs could replace them to encourage people to keep scripting.
Although I suggest only a couple simple quest concepts here, more concepts can be added. This project is meant to deepen what is available to do in the game and keep players, new and old, busy. Each town could also have a "gossip" NPC that would inform people of new NPCs in town that players could talk to and perhaps give a synopsis of what the new NPCs are about.
The main idea is to loosen standards of quest complexity and encourage more NPC script writers to grow more complex with experience. It is also to provide acceptable game balance parameters for the script writers so they aren't drafting easy quests.
Maybe also provide a different path for some items. An example could be a Baselevel 40 quest that also provides the Bone Knife, but requires the players to talk to several NPCs in dangerous areas instead of gathering monster drops. It would prevent them from getting Kfahr's Bone Knife and perhaps would give less experience upon completion.
Just some ideas to start this discussion.
Baselevel 1:
Quests: Talk to one NPC and fetch an item, Collect 5-20 monster drops from this list: blah blah
1,000 xp, 1,000 gold or item from the following list: blah blah
Baselevel 20:
Quests: Talk to one or more NPCs and fetch an item, Collect 5-50 monster drops from this list: blah blah
2,000 xp, 2,000 gold or item from the following list: blah blah
Baselevel 40:
Quests: Talk to two or more NPCs and fetch an item, Collect 10-50 monster drops from this list: blah blah
5,000 xp, 5,000 gold or item from the following list: blah blah
Baselevel 60:
Quests: Talk to three or more NPCs and fetch an item, Collect 10-50 monster drops from this list: blah blah
20,000 xp, 20,000 gold or item from the following list: blah blah
Baselevel 80:
Quests: Talk to 5 or more NPCs and fetch an item, Collect 20-50 monster drops from this list: blah blah
40,000 xp, 40,000 gold or item from the following list: blah blah
Obviously this is just an example list, but a discussion on this could help define the parameters for NPC creation. The NPCs created under this project would have a game life of two seasons (or more, depending on desire) and then could be recycled so other NPCs could replace them to encourage people to keep scripting.
Although I suggest only a couple simple quest concepts here, more concepts can be added. This project is meant to deepen what is available to do in the game and keep players, new and old, busy. Each town could also have a "gossip" NPC that would inform people of new NPCs in town that players could talk to and perhaps give a synopsis of what the new NPCs are about.
The main idea is to loosen standards of quest complexity and encourage more NPC script writers to grow more complex with experience. It is also to provide acceptable game balance parameters for the script writers so they aren't drafting easy quests.
Maybe also provide a different path for some items. An example could be a Baselevel 40 quest that also provides the Bone Knife, but requires the players to talk to several NPCs in dangerous areas instead of gathering monster drops. It would prevent them from getting Kfahr's Bone Knife and perhaps would give less experience upon completion.
Just some ideas to start this discussion.
Current character is "Abolish".
Re: [DIS] More NPCs Using Existing Content
Wombat:
I recently was talking to Freeyorp regarding a quest I was finishing up (look for a monocle to be out there, sometime) and he expressed he was very tired of the 'fetch' quests, in which we have to gather # of X and bring it to Y NPC. I know in a conversation with fate, the same point was raised. I believe the desire of the Dev team is to move away from the fetch quests into more complex and new quests.
While personally I don't have anything against fetch quests, we should try and come up with new quest types. In order to come up with new quests, we need to compile a list of existing quest types. Also, in order to help out those new to scripting, we should set to break down each type of quest and show how it works, so that they can script each type of quest by their own. Sort of a 'scripting tutorial' for each type of tutorial. I believe that currently, the biggest problem in the game from a player's point of view is new content. New content doesn't have to be new and exciting, but it helps.
Here is my list of quest types:
These are currently the only quest types I can see in the game. We should work towards creating new types. I've worked with Freeyorp to make a "Find and Kill" type quest (think of it as hide and seek with a Jacko-type monster) where a monster is randomly spawned across several maps and players have to find and kill it.
I've also discussed making a timed quest, in which you have take something and go from x location to y location in a certain amount of time or you fail the quest. Currently, there's some problems getting it to script out, which brings up a good point. Try and keep the quest ideas reasonable, because someone is going to have to figure out how to script it.
So let's see what we can come up with for new, innovative quest types.
I recently was talking to Freeyorp regarding a quest I was finishing up (look for a monocle to be out there, sometime) and he expressed he was very tired of the 'fetch' quests, in which we have to gather # of X and bring it to Y NPC. I know in a conversation with fate, the same point was raised. I believe the desire of the Dev team is to move away from the fetch quests into more complex and new quests.
While personally I don't have anything against fetch quests, we should try and come up with new quest types. In order to come up with new quests, we need to compile a list of existing quest types. Also, in order to help out those new to scripting, we should set to break down each type of quest and show how it works, so that they can script each type of quest by their own. Sort of a 'scripting tutorial' for each type of tutorial. I believe that currently, the biggest problem in the game from a player's point of view is new content. New content doesn't have to be new and exciting, but it helps.
Here is my list of quest types:
Code: Select all
Quest Type Example Quest
=========== =============
Fetch Kafar's Bone Knife Quest
Narrow it Down Green Dye Quest
Interview Robberies in Hurnscald Quest
Take X to Location Purify the Lake Quest
Kill X Quest Ishi's Monster Points Quest
PRNG/Random Chance Forest Bow Quest
I've also discussed making a timed quest, in which you have take something and go from x location to y location in a certain amount of time or you fail the quest. Currently, there's some problems getting it to script out, which brings up a good point. Try and keep the quest ideas reasonable, because someone is going to have to figure out how to script it.
So let's see what we can come up with for new, innovative quest types.
Re: [DIS] More NPCs Using Existing Content
I have heard both fate and Freeyorp and while I do agree, I also think in order to introduce people we need to use what exists as well as expand into more complex quests.
Here is a tutorial I've started to help myself and others learn basic NPC scripting using eAthena (link).
Though I again see your point and those of others, I also think there really isn't enough quests to be "tired" of any quest type. Throw a dozen more of these tiresome quests onto the map and then slowly replace them with better quests. If people draft something better now, that's great. Right now we've got just over 30 quests and we can afford to be less picky as long as the script and the NPC story isn't horrible.
Here is a tutorial I've started to help myself and others learn basic NPC scripting using eAthena (link).
Though I again see your point and those of others, I also think there really isn't enough quests to be "tired" of any quest type. Throw a dozen more of these tiresome quests onto the map and then slowly replace them with better quests. If people draft something better now, that's great. Right now we've got just over 30 quests and we can afford to be less picky as long as the script and the NPC story isn't horrible.
Current character is "Abolish".
Re: [DIS] More NPCs Using Existing Content
That's another gather quest, IMO. Just that the amount to gather is unknown.Ceros wrote:Code: Select all
Quest Type Example Quest =========== ============= ... PRNG/Random Chance Forest Bow Quest
Timed quests will be easier under TMWServ.Ceros wrote:I've also discussed making a timed quest, in which you have take something and go from x location to y location in a certain amount of time or you fail the quest. Currently, there's some problems getting it to script out, which brings up a good point. Try and keep the quest ideas reasonable, because someone is going to have to figure out how to script it.
Re: [DIS] More NPCs Using Existing Content
Another type would be a terrain-search or orienteering quest.
Find all the wells in the desert; find all the exits from a cave with many exits etc. Last Christmas' reinboo quest would be an example.
Find all the wells in the desert; find all the exits from a cave with many exits etc. Last Christmas' reinboo quest would be an example.
- SpamMaster
- Novice
- Posts: 79
- Joined: 18 Sep 2009, 22:29
- Location: Spammiland
Re: [DIS] More NPCs Using Existing Content
An idea I devised a while back. Note at the outset it will only work if NPCs are able to have:
- Timers; eg they say something different after 3600 seconds.
- Counters; eg every time you say "STFU" the 'hate' counter gets +1 (and +5 for "***U")
Code: Select all
If Status = plant-pot_empty goto L_Pot_Empty
If Status = plant-pot_soil goto L_Pot_Soil
If Status = plant-pot_mauve goto L_Pot_Mauve2
If Status = plant-pot_cobalt goto L_Pot_Cobalt2
If Status = plant-pot_gamboge goto L_Pot_Gamboge2
If Status = plant-pot_alizarin goto L_Pot_Alizarin2
L_Pot_Empty
msg "The pot is empty. Do you want to fill it with soil?"
list
- "Yes" goto L_Pot_Fill
- "No"
close;
L_Pot_Fill
if item 'soil' 1< goto L_No_Soil
msg "You fill the pot with soil."
player lose item 'soil' 1
set status @plant-pot_soil
goto L_Pot_Soil
close;
L_No_Soil
msg "You have no soil to fill the pot with!"
msg "Come back when you have some."
close;
L_Pot_Soil
msg "The pot is filled with soil."
msg "Do you want to plant a cutting in the pot?"
list
- "Yes" goto L_Pot_Cuttings
- "No"
close;
L_Pot_Cuttings
msg "What type of herb would you like to grow?"
list
- "Mauve" goto L_Pot_Mauve1
- "Cobalt" goto L_Pot_Cobalt1
- "Gamboge" goto L_Pot_Gamboge1
- "Alizarin" goto L_Pot_Alizarin1
- "None, thanks"
close;
L_Pot_Mauve1
if item 'mauve herb' 5< goto L_Pot_Noherb
msg "You plant some Mauve cuttings in the pot."
player lose item 'mauve herb' 5
msg "Make sure you water it every ten minutes!"
set status @plant-pot_mauve
start_timer
close;
L_Pot_Cobalt1
if item 'cobalt herb' 5< goto L_Pot_Noherb
msg "You plant some Cobalt cuttings in the pot."
player lose item 'cobalt herb' 5
msg "Make sure you water it every ten minutes!"
set status @plant-pot_cobalt
start_timer
close;
L_Pot_Gamboge1
if item 'gamboge herb' 5< goto L_Pot_Noherb
msg "You plant some Gamboge cuttings in the pot."
player lose item 'gamboge herb' 5
msg "Make sure you water it every ten minutes!"
set status @plant-pot_gamboge
start_timer
close;
L_Pot_Alizarin1
if item 'alizarin herb' 5< goto L_Pot_Noherb
msg "You plant some Alizarin cuttings in the pot."
player lose item 'alizarin herb' 5
msg "Make sure you water it every ten minutes!"
set status @plant-pot_alizarin
start_timer
close;
L_Pot_Noherb
msg "I'm sorry, you don't have enough of that herb! You need at least five."
close;
L_Pot_Mauve2
msg "There is a Mauve Plant in the pot."
if_count 'water' 3> goto L_Mauve_Harvest
if_timer 900> goto L_Plant_Toodry
if_timer 600< goto L_Plant_Toowet
msg "Do you want to water your Mauve plant?"
list
- "Yes" goto L_Plant_Watered
- "No"
close;
L_Pot_Cobalt2
msg "There is a Cobalt Plant in the pot."
if_count 'water' 3> goto L_Cobalt_Harvest
if_timer 900> goto L_Plant_Toodry
if_timer 600< goto L_Plant_Toowet
msg "Do you want to water your Cobalt plant?"
list
- "Yes" goto L_Plant_Watered
- "No"
close;
L_Pot_Gamboge2
msg "There is a Gamboge Plant in the pot."
if_count 'water' 3> goto L_Gamboge_Harvest
if_timer 900> goto L_Plant_Toodry
if_timer 600< goto L_Plant_Toowet
msg "Do you want to water your Gamboge plant?"
list
- "Yes" goto L_Plant_Watered
- "No"
close;
L_Pot_Alizarin2
msg "There is an Alizarin Plant in the pot."
if_count 'water' 3> goto L_Alizarin_Harvest
if_timer 900> goto L_Plant_Toodry
if_timer 600< goto L_Plant_Toowet
msg "Do you want to water your Alizarin plant?"
list
- "Yes" goto L_Plant_Watered
- "No"
close;
L_Plant_Toodry
if_count 'toodry' 1> goto L_Plant_Deaddry
msg "The plant is alive, but a little dry."
msg "Do you want to water your plant?"
list
- "Yes" goto L_Plant_Drywaterered
- "No"
close;
L_Plant_Toowet
if_count 'toowet' 1> goto L_Plant_Deadwet
msg "Do you want to water your plant?"
list
- "Yes" goto L_Plant_Wetwatered
- "No"
close;
L_Plant_Watered
if item 'bottle of water' 1< goto L_Pot_Nowater
msg "You water your plant."
add_count 'water' 1
set_timer 0
close;
L_Plant_Drywatered
if item 'bottle of water' 1< goto L_Pot_Nowater
add_count 'toodry' 1
msg "You water your plant."
add_count 'water' 1
set_timer 0
close;
L_Plant_Wetwatered
if item 'bottle of water' 1< goto L_Pot_Nowater
add_count 'toowet' 1
msg "You water your plant."
add_count 'water' 1
set_timer 0
close;
L_Pot_Nowater
msg "You need a bottle of water to do that."
msg "Come back with one quickly, before your plant dries out!"
close;
L_Plant_Deaddry
msg "Your plant has died from lack of water."
set_status @plant-pot_empty
close;
L_Plant_Deadwet
msg "Your plant has died from too much water."
set_status @plant-pot_empty
close;
L_Mauve_Harvest
msg "Your Mauve plant is ready to harvest!"
list
- "Harvest the Mauve plant" goto L_Mauve_Done
- "Leave the plant alone"
close;
L_Cobalt_Harvest
msg "Your Cobalt plant is ready to harvest!"
list
- "Harvest the Cobalt plant" goto L_Cobalt_Done
- "Leave the plant alone"
close;
L_Gamboge_Harvest
msg "Your Gamboge plant is ready to harvest!"
list
- "Harvest the Gamboge plant" goto L_Gamboge_Done
- "Leave the plant alone"
close;
L_Alizarin_Harvest
msg "Your Alizarin plant is ready to harvest!"
list
- "Harvest the Alizarin plant" goto L_Alizarin_Done
- "Leave the plant alone"
close;
L_Mauve_Done
msg "You harvest the Mauve plant."
set_status @plant-pot_empty
player get item 'Mauve herb' 100
close;
L_Cobalt_Done
msg "You harvest the Cobalt plant."
set_status @plant-pot_empty
player get item 'Cobalt herb' 100
close;
L_Gamboge_Done
msg "You harvest the Gamboge plant."
set_status @plant-pot_empty
player get item 'Gamboge herb' 100
close;
L_Alizarin_Done
msg "You harvest the Alizarin plant."
set_status @plant-pot_empty
player get item 'Alizarin herb' 100
close;
Have a spamful evening, sir.