NPC conversation codes: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
m TODO (desired syntax)  | 
				m →TODO  | 
				||
| Line 57: | Line 57: | ||
* Dynamically detect whether autoTalkCont functionality is needed for a sequence, so form without "c"s can always be used?  | * Dynamically detect whether autoTalkCont functionality is needed for a sequence, so form without "c"s can always be used?  | ||
* r="<full response text>"  | * r="<full response text>"  | ||
* r=/response text regexp/  | * r=/<response text regexp>/  | ||
[[Category:Reference]]  | [[Category:Reference]]  | ||
[[Category:Feature Request]]  | [[Category:Feature Request]]  | ||
Revision as of 10:40, 29 November 2012
NPC conversation codes are used to specify NPC talk sequences of steps (actions) to do.
Syntax
Sequence consists of whitespace-separated codes. Each code is separated with a whitespace.
| Code | Description | 
|---|---|
| c | Continue talking to the NPC. This is the same as pressing the Next buttom. | 
| r<response #> | Send a response to the NPC. The response number is the index of the responses in the displayed response list . This is the same as selecting a response when you talk to an NPC. | 
| w<seconds> | Wait for the specified number of seconds before continuing to talk to the NPC. | 
| d<number> | Send a number to the NPC. Use this if the NPC asks you to enter an amount. | 
| t=<string> | Send a text to the NPC. Use this if the NPC asks you to enter some text. | 
| s | Go to sell list. This is the same as pressing the sell button when you talk to a buy/sell NPC. | 
| b | Go to the store list. This is the same as pressing the buy button when you talk to a buy/sell NPC. | 
| b<store item #>,<amount> | Buy an item from the NPC. See similar buy. Note that the amount is not optional. | 
| n | Ends and cancel conversation with the NPC. This is the same as pressing the close or cancel button when talking to an NPC. | 
| e | Pretend like conversation was stopped (doesn't send anything additional). Use this after the s or b talk code when talking to a buy/sell NPC. | 
| a=<string> | Run a console command. | 
| x | Reinitiate NPC conversation. This is always prepended to talknpc sequence. Useful to perform multiple transaction with a single NPC. | 
API
There is no API for parsing or executing NPC sequences. It's encapsulated in Task::TalkNPC which handles the whole interaction with NPCs.
API for extending (introducing new codes) doesn't exist, but is possible to implement using hooks.
Examples
Talk to a NPC at the coordinates (63, 60), using the talk sequence: next; choose fourth response; next; choose first response; next; next; choose first response; next; end.
talknpc 63 60 c r3 c r0 c c r0 c n
TODO
- Dynamically detect whether autoTalkCont functionality is needed for a sequence, so form without "c"s can always be used?
 - r="<full response text>"
 - r=/<response text regexp>/