From The Mana World
(marked some stuff which is already possible)
Line 14: Line 14:


==Being interaction==
==Being interaction==
*Spawn beings
*<strike>Spawn beings</strike>
*Move beings
*Move beings
*Hurt beings
*<strike>Hurt beings</strike>
*Make beings perform different actions
*Make beings perform different actions
*Remove beings
*Remove beings
*Callback functions for events like
*Callback functions for events like
**death
**<strike>death</strike>
**leave game
**leave game
**change map
**change map
**getting hurt
**getting hurt
*Get beings in area
*<strike>Get beings in area</strike>
*Apply/Remove status effects to beings
*Apply/Remove status effects to beings
*Query and set being attributes
*<strike>Query and</strike> set being attributes
*GM Cheats
*GM Cheats


==Player interaction==
==Player interaction==
*Sending private chat messages
*<strike>Sending private chat messages</strike>
*Sending dialog box messages (and catch the players answer?)
*Sending dialog box messages (and catch the players answer?)
*Maybe control GUI windows? (could be useful for tutorial)
*Maybe control GUI windows? (could be useful for tutorial)
Line 52: Line 52:


==General==
==General==
*Set timers
*<strike>Set timers</strike>
*Querry external data sources (already possible with LUA interpreter?)
*Querry external data sources (already possible with LUA interpreter?)
**Local file
**Local file

Revision as of 01:59, 25 October 2008

ToDo List for script bindings on the new server:

World Interaction

  • Modify the map
    • Collision
    • Tile appearance
    • Overlays
    • Music
    • Game rules like PvP allowed/denied.
  • Activate weather effects
  • Query and set persistent global variables
  • Spawn particle effects
  • Global announcements

Being interaction

  • Spawn beings
  • Move beings
  • Hurt beings
  • Make beings perform different actions
  • Remove beings
  • Callback functions for events like
    • death
    • leave game
    • change map
    • getting hurt
  • Get beings in area
  • Apply/Remove status effects to beings
  • Query and set being attributes
  • GM Cheats

Player interaction

  • Sending private chat messages
  • Sending dialog box messages (and catch the players answer?)
  • Maybe control GUI windows? (could be useful for tutorial)

Chat interaction

  • Log chat channels
  • Send messages to chat channels
  • Filter chat channels (useful for flexible censorship systems) - needs either script support on account server or the netcode to route the chat of a chat channel through a game server when it is requested by it.
  • access / control users in chat channel

AI

  • Command monsters
    • Override attack target selection
    • Override move target selection
    • Make the monster use combat abilities
    • Override spawn and death events

Idea: class ScriptedMonster is a derivate from class Monster. It replaces every member function of the monster class with a call to a LUA function. This LUA function can call the function from the base class. This would allow to selectively replace or complement any behavior of the monster. This requires:

  • Access to all member variables and functions of class Monster (including protected variables)

General

  • Set timers
  • Querry external data sources (already possible with LUA interpreter?)
    • Local file
    • HTTP
    • Database

Inter-map scripting

  • Executing script code in the context of the script object of another map which might even be on a different server.