summaryrefslogtreecommitdiff
path: root/src/scripting
diff options
context:
space:
mode:
authorChuck Miller <shadowmil@gmail.com>2009-09-16 21:11:34 -0400
committerChuck Miller <shadowmil@gmail.com>2009-09-16 21:11:34 -0400
commit1702f4fe35a59d6fbeb6864902da168e2138a592 (patch)
tree933da76597552d52e730de23ac8dff32d9551c89 /src/scripting
parentb529177f03fffbe98b478672122ff87d25d74d3f (diff)
downloadmanaserv-1702f4fe35a59d6fbeb6864902da168e2138a592.tar.gz
manaserv-1702f4fe35a59d6fbeb6864902da168e2138a592.tar.bz2
manaserv-1702f4fe35a59d6fbeb6864902da168e2138a592.tar.xz
manaserv-1702f4fe35a59d6fbeb6864902da168e2138a592.zip
Allow for basic scripted monsters
Diffstat (limited to 'src/scripting')
-rw-r--r--src/scripting/lua.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp
index f82b581a..4b2513e6 100644
--- a/src/scripting/lua.cpp
+++ b/src/scripting/lua.cpp
@@ -778,6 +778,31 @@ static int monster_create(lua_State *s)
}
/**
+ * tmw.monster_load_script(mob, scriptfilename)
+ * loads a LUA script given for mob
+ */
+static int monster_load_script(lua_State *s)
+{
+ Monster *m = static_cast< Monster* >(getBeing(s, 1));
+ if (!m)
+ {
+ raiseScriptError(s, "monster_load_script called for a nonexistance monster.");
+ return 0;
+ }
+
+ std::string scriptName(lua_tostring(s, 2));
+ if (scriptName == "")
+ {
+ raiseScriptError(s, "monster_load_script called with incorrect parameters.");
+ return 0;
+ }
+
+ m->loadScript(scriptName);
+ return 0;
+}
+
+
+/**
* Callback for getting a quest variable. Starts a recovery and returns
* immediatly, if the variable is not known yet.
* tmw.chr_get_chest(character, string): nil or string
@@ -1339,6 +1364,7 @@ LuaScript::LuaScript():
{ "chr_get_hair_color", &chr_get_hair_color },
{ "exp_for_level", &exp_for_level },
{ "monster_create", &monster_create },
+ { "monster_load_script", &monster_load_script },
{ "being_apply_status", &being_apply_status },
{ "being_remove_status", &being_remove_status },
{ "being_has_status", &being_has_status },