Custom NPC Dialogue

From PSwiki
Revision as of 22:17, 4 January 2014 by Magodra (talk | contribs) (→‎Referencing other NPCs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Custom NPC Dialogues are a subset of NPC Dialogues / Quest Script Operations that is include only functions that players can use to script NPCs. Actions that could be exploited to gain money or items is not included.

Limitation

Referencing other NPCs

Custon NPC Dialogues is not allowed to reference other NPCs. The NPC Tell command will be a generic syntax using the keyword NPC instead of the NPC Name. The "<NPC Name>:<message>." is not allowed. For Custom NPC Dialogues the syntax will be "NPC: <message>.".

Syntax: NPC: <message>.
Ex: NPC:Hello

Design

This section contain description and rationales for the limitations that needs to be created.

Possible ways to exploit the quest syntax by players writing their own quests.

The following commands need to be blocked from use, or severely limited.


  • Quest command - Give [quantity] [quality] [item]
    • They will be able to spawn any item in the the BD with qualities upto 300/300
    • Preventative action - block access as it is not needed by players.


  • Quest command - [un]complete [quest name] [step x].
    • This will allow players to modify any quest in the game. Exploit as players could do anything they wanted with restarting/modifying/completing any quest in the game.
    • Preventative action - Limit the command to ONLY work with the quest it is written in. This must not be a generic feature as official quests use this cross quest referencing a lot.


  • Quest command - [un]setvariable [variable name] [value]
    • This would allow players to modify any variable in the game, would cause massive problems.
    • Preventative action - block player access as it is not needed by players.


  • Quest command - doadmincmd [command]
    • This would let the player run GM commands, clearly a massive exploit
    • Preventative action - block player access as it is not needed by players.


  • Quest command - run script [script name] [script variables]
    • This would let players run any script
    • Preventative action - block player access as it is not needed by players.


  • Quest menu trigger - Player gives [npc name] [value] [items]
    • This would allow players to trick other players into giving almost any item to an npc and they would not be able to recover the item. A player could for example use "Player gives test guard 10000000 tria."
    • Preventative action - This style of trigger should be removed from use by players. OR it should be modified such that in player written quests all giving by players MUST be MANUAL only, not automatic using the menu clicks.


  • Quest dialog - referencing other NPCs in quests.
    • Players should not be allowed to reference offical settings NPCs in their quests, this is to avoid players making NPCs saying stupid things which are completely against settings.
    • Preventative action - The only NPC which can be scripted in the player written quest is the NPC which was hired by the player.