diff options
author | Philipp Sehmisch <mana@crushnet.org> | 2011-04-27 15:24:36 +0200 |
---|---|---|
committer | Philipp Sehmisch <mana@crushnet.org> | 2011-04-27 15:24:36 +0200 |
commit | c1a6e9947231cc511016378bd326a5d64b0aa18c (patch) | |
tree | 03c9b42ae97d61b5568f27ddc3f1be7a8b6648c3 /src/game-server/main-game.cpp | |
parent | ca1dd6fcaf1dfaef0f18df0b6c114f1baa25d2ce (diff) | |
download | manaserv-c1a6e9947231cc511016378bd326a5d64b0aa18c.tar.gz manaserv-c1a6e9947231cc511016378bd326a5d64b0aa18c.tar.bz2 manaserv-c1a6e9947231cc511016378bd326a5d64b0aa18c.tar.xz manaserv-c1a6e9947231cc511016378bd326a5d64b0aa18c.zip |
Added a simple crafting system
A client can craft something using the @craft command.
The command needs a list of item names and amounts. The gameserver checks
if the character has these items in the inventory and then passes the list
together with the character handle to the lua script function on_craft in
the script file scripts/crafting.lua.
This function can then be used to evaluate if the list is a valid crafting
combination and when this is the case take or give items.
Implemented two example crafting scripts there, one which enforces exact
item order and amount and one which doesn't. Both are disabled per default
and one needs to be enabled by uncommenting a line.
Also gave the player group permission to use the @craft command in
permissions.xml and added two new items (wood and iron) required for the
example crafting combination.
Resolves: #333
Reviewed-by: bcs86, Bertram
Diffstat (limited to 'src/game-server/main-game.cpp')
-rw-r--r-- | src/game-server/main-game.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/game-server/main-game.cpp b/src/game-server/main-game.cpp index b54e3821..63ea0041 100644 --- a/src/game-server/main-game.cpp +++ b/src/game-server/main-game.cpp @@ -74,6 +74,7 @@ using utils::Logger; #define DEFAULT_PERMISSION_FILE "permissions.xml" #define DEFAULT_GLOBAL_EVENT_SCRIPT_FILE "scripts/global_events.lua" #define DEFAULT_SPECIAL_ACTIONS_SCRIPT_FILE "scripts/special_actions.lua" +#define DEFAULT_CRAFT_SCRIPT_FILE "scripts/crafting.lua" static int const WORLD_TICK_SKIP = 2; /** tolerance for lagging behind in world calculation) **/ @@ -200,6 +201,7 @@ static void initializeServer() LuaScript::loadGlobalEventScript(DEFAULT_GLOBAL_EVENT_SCRIPT_FILE); LuaScript::loadSpecialActionsScript(DEFAULT_SPECIAL_ACTIONS_SCRIPT_FILE); + LuaScript::loadCraftScript(DEFAULT_CRAFT_SCRIPT_FILE); // --- Initialize the global handlers // FIXME: Make the global handlers global vars or part of a bigger |