17 February 2010

Awesomeware

One of the awesome features of Clan Lord design is that if a function does not exist, then we have tools to create the needed functions.

For example: the most popular script that runs NPC speech is both very powerful and very flexible. The script grew in power as GMs added functionality to the script.  In the early days, the NPC would talk to players only when they were bumped.  Today the player does not need to bump all NPCs to hear their speech; some NPCs talk as players approach the NPC.

This script does a lot, but it doesn't support a function that I want NPCs to have: I want NPCs to analyze the movement of the player and respond to the player's movement state.  This is different from how NPCs currently behave; NPCs have a prepared speech which they repeat the speech while players bump the NPC (or while players are within listening range).  I don't want NPCs to talk if the player is in listening range, but instead I want NPCs to react to how the player is moving.  For example:


As I pass by the NPC, the NPC notices my presence and analyzes that I am in "sight state" and the NPC begins speaking it's "players in sight" text.


As I come closer, the NPC analyzes my movement and realizes that I have gone from "sight state" to "approach state," and begins speaking the text prepared for "approaching players."


While I bump the NPC, the NPC analyzes that I have passed from "approach state" to "contact state," and speaks its text for players in contact.


As I walk away, then the NPC analyzes that I have moved from "contact state" to "departure state," and speaks its departure text.

NPCs would also be able to analyze players who move to "return state" (players who are in departure state but then turn around and move into approach state), and players who move from return state to contact state (I don't yet have a name for this state).

My caveat is that the pictured NPC is not running a script; these are staged images for how these script would function in action.  As of now, this is all vaporware, but because we have some powerful, flexible tools at hand, we can turn vaporware into awesomeware.

No comments:

Post a Comment