summaryrefslogtreecommitdiffstats
path: root/example/scripts/global_events.lua
diff options
context:
space:
mode:
Diffstat (limited to 'example/scripts/global_events.lua')
-rw-r--r--example/scripts/global_events.lua78
1 files changed, 78 insertions, 0 deletions
diff --git a/example/scripts/global_events.lua b/example/scripts/global_events.lua
new file mode 100644
index 0000000..548351a
--- /dev/null
+++ b/example/scripts/global_events.lua
@@ -0,0 +1,78 @@
+-------------------------------------------------------------
+-- Global event script file --
+-- --
+-- This file allows you to modify how certain events which --
+-- happen frequently in the game on different maps are --
+-- supposed to be handled. It is a collection of script --
+-- functions which are always called when certain events --
+-- happen, regardless on which map. Script execution is --
+-- done in the context of the map the event happens on. --
+----------------------------------------------------------------------------------
+-- Copyright 2010 Manasource Development Team --
+-- --
+-- This file is part of Manasource. --
+-- --
+-- Manasource is free software; you can redistribute it and/or modify it --
+-- under the terms of the GNU General Public License as published by the Free --
+-- Software Foundation; either version 2 of the License, or any later version. --
+----------------------------------------------------------------------------------
+
+
+-- This function is called when the hit points of a character reach zero.
+function on_chr_death(ch)
+ mana.being_say(ch, "Noooooo!!!")
+end
+
+-- This function is called when the player clicks on the �OK� button after
+-- the death message appeared. It should be used to implement the respawn
+-- mechanic (for example: warp the character to the respawn location and
+-- bring HP above zero in some way)
+function on_chr_death_accept(ch)
+ mana.being_heal(ch) -- restores to full hp
+ -- mana.being_heal(ch, 1) --restores 1 hp (in case you want to be less nice)
+ mana.chr_warp(ch, 1, 815, 100) --warp the character to the respawn location
+end
+
+-- This function is called after chr_death_accept. The difference is that
+-- it is called in the context of the map the character is spawned on after
+-- the respawn logic has happened.
+function on_chr_respawn(ch)
+ -- calls the local_respawn_function of the map the character respawned
+ -- on when the script of the map has one
+ if local_respawn_function ~= nil then
+ local_respawn_function(ch)
+ end
+end
+
+
+-- This function is called when a new character enters the world for the
+-- first time. This can, for example, be used to give starting equipment
+-- to the character and/or initialize a tutorial quest.
+function on_chr_birth(ch)
+ -- this message is shown on first login.
+ mana.chat_message(0, ch, "And so your adventure begins...")
+end
+
+-- This function is called when a character logs into the game. This can,
+-- for example, be utilized for a message-of-the-day or for various
+-- handlings of offline processing mechanics.
+function on_chr_login(ch)
+ mana.chat_message(0, ch, "Welcome to Manasource")
+end
+
+
+-- This function is called when a character is disconnected. This could
+-- be useful for various handling of offline processing mechanics.
+function on_chr_logout(ch)
+ -- notifies nearby players of logout
+ local around = mana.get_beings_in_circle(
+ posX(ch),
+ posY(ch),
+ 1000)
+ local msg = mana.being_get_name(ch).." left the game."
+ for b in pairs(around) do
+ if mana.being_type(b) == TYPE_CHARACTER then
+ mana.chat_message(0, b, msg)
+ end
+ end
+end