summaryrefslogtreecommitdiff
path: root/src/scripting
AgeCommit message (Collapse)AuthorFilesLines
2010-08-22Pass a script name to Lua for proper reporting of error locationsThorbjørn Lindeijer4-9/+12
Now the Lua file name shows up in the error message and stack traceback, or the map file and object name in case of a script embedded in a map file.
2010-08-22Rename some stuff to conform to naming conventionsThorbjørn Lindeijer4-26/+25
2010-08-22Print out a backtrace when a Lua error is raisedThorbjørn Lindeijer2-20/+26
The backtrace is printed by using debug.traceback as error handler when calling Lua functions. At the moment it still looks pretty ugly since Lua is not aware of the file names of the scripts (to be fixed). Reviewed-by: Jared Adams
2010-08-22Print out the actual error message in case of a syntax errorThorbjørn Lindeijer1-3/+7
Should help to locate the problem. Reviewed-by: Jared Adams
2010-08-21Perform more detailed argument checking in Lua functionsThorbjørn Lindeijer1-154/+101
Based on helper functions in the auxiliary library. Reviewed-by: Yohann Ferreira
2010-07-30Merge branch 'master' of gitorious.org:mana/manaservYohann Ferreira1-5/+11
Conflicts: src/game-server/itemmanager.cpp
2010-07-23Added a simple sanity check to avoid a gameserver crash at login.Yohann Ferreira1-5/+11
No review asked.
2010-07-10New attribute system and major changes to many low-level areas.Freeyorp1-58/+21
Attribute system: Structure is no longer completely hardcoded. Attributes and structure is defined by new xml file (defaulting to stats.xml) Structure defines non-base modifications to an attribute, to be used by modifiers from items, effects, etc. Calculating the base value for core attributes is still done in C++ (and for such fundamental elements the only reason I can think of to do it any other way is perhaps being able to quickly change scripts without a compile could be useful for testing, but such things are a low priority anyway) Item structure: Modifiers are now through triggers rather than single events. This also removes hardcoded types - an item could be both able to be equipped and be able to be activated. Item activation no longer consumes by default, this must be specified by the property <consumes /> inside the trigger. Currently only attribute modifications, autoattacks, and consumes are defined as effects, but stubs for others do exist. Autoattacks are currently non-functional, and this should be rectified with some urgency. Auto Attacks: AutoAttacks are now separate entities, though not fully complete, nor fully integrated with all beings yet. Integration with the Character class is urgent, integration with other Being children less so. When fully integrated this will allow for multiple autoattacks, through equipping multiple items with this as an equip effect or even through other means if needed. Equipment structure: As ItemClass types are no longer hardcoded, so too are equip types. An item have multiple ways to be equipped across multiple equipment slots with any number in each slot. Character maximums are global but configurable. Miscellaneous: Speed, money, and weight are now attributes. Some managers have been changed into classes such that their associated classes can have them as friends, to avoid (ab)use of public accessors. The serialise procedure should also be set as a friend of Character (both in the account- and game- server) as well; having public accessors returning iterators is simply ridiculous. Some start for such cleanups have been made, but this is not the primary focus here. Significant work will need to be done before this is resolved completely, but the start is there. BuySell::registerPlayerItems() has been completely disabled temporarily. The previous function iterated through equipment, yet in the context I think it is intended to fill items? I have been unable to update this function to fit the modifications made to the Inventory/Equipment/Possessions, as I am unsure what exactly what it should be doing. ItemClass::mSpriteId was previously unused, so had been removed, but I notice that it was used when transmitting equipment to nearby clients. Experimentation showed that this value was never set to anything other than 0, and so has been left out of the ItemManager rewrite. I am not entirely sure what is happening here, but it should be worth looking into at a later time, as I am not sure how equipment appearences would be sent otherwise.
2010-07-09Added LUA script bindings for manipulating the specials available to a ↵Philipp Sehmisch5-1/+122
character. Added script call for getting the cost of a special (recharge only for now) Deleting specials works server-sided but the client isn't informed about it properly. Specials without recharge cost don't appear for the player. Both of these features require an additional netcode message. Reviewed-by: Freeyorp
2010-05-30Copied basic Lua libs back from tmwserv-data and added dummy dataThorbjørn Lindeijer1-2/+1
The dummy data is currently mostly empty data though, so still nothing to see as far as the example content is concerned. Reviewed-by: Bertram
2010-05-29Only skip the UTF-8 BOM for Lua scriptsThorbjørn Lindeijer2-4/+13
libxml2 should be able to handle files with a BOM fine. Reviewed-by: Bertram
2010-05-28Modified the npc_trade() lua function to permit selling the whole player ↵Yohann Ferreira3-14/+89
inventory. It permits to open a sell box with every items in the player inventory as requested by Striker. Also added different return value support to both the buy selling functions, and made fixes where relevant. The test.lua script will be upgraded to show examples in a next commit. What's left to be done is to fix the inventory handling for both selling functions. (Sigh...) Concerns: Manasource mantis: #78, #101. Reviewed-by: Jaxad0127
2010-05-21Added a package loader that goes through the resource managerThorbjørn Lindeijer1-0/+25
Fixes issues with finding Lua scripts after changing the way client and server data paths are set up. Lua scripts can now use 'require' with paths relative from the serverDataPath to include other Lua scripts. Reviewed-by: Jared Adams
2010-05-20Removed unused parameter from being_get_speed Lua functionThorbjørn Lindeijer1-4/+4
Also updated the link to the documentation and fixed the documentation for being_set_speed.
2010-05-16Changed and split up the default location for loading dataThorbjørn Lindeijer1-4/+4
Instead of loading data from a 'data' directory in the current working directory, the server now uses clientDataPath and serverDataPath as specified in the configuration. This removes the need to set up symbolic links in order to merge these two types of data. The default values point to example/clientdata and example/serverdata, where a minimal example world can be developed to make setting up an initial server quick and easy. The XML::Document convenience class was copied over from the client. Also, the ResourceManager is now shared between both servers, since the account client is reading items.xml. Reviewed-by: Jared Adams
2010-04-25Added a Byte Order Mask (BOM) filter to the ResourceManager.Bertram1-1/+2
Reviewed by: Jaxad0127
2010-04-11Implemented handler for on_chr_death and put the loading of the global ↵Philipp Sehmisch3-2/+19
script into a method of class LuaScript Reviewed-by: Jared Adams <Jaxad0127@gmail.com>
2010-04-11Implemented global event function call to on_chr_deathPhilipp Sehmisch2-0/+22
Reviewed-by: Jared Adams <Jaxad0127@gmail.com>
2010-04-11Added global lua event script (only on_being_death_accept for now)Philipp Sehmisch2-0/+3
Reviewed-by: Jared Adams <Jaxad0127@gmail.com>
2010-03-13Add methods to get and set being speedJonathan Kolberg1-1/+35
Signed-off-by: Thorbjørn Lindeijer <thorbjorn@lindeijer.nl>
2010-02-25Added script bindings for healing characters and other beings.Philipp Sehmisch1-0/+34
Reviewed-by: Jared Adams <jaxad0127@gmail.com>
2010-02-07Update Copyright date for Manaserv.Bertram7-7/+7
2010-01-17Added some missing headers, and added some missing files to Makefile.amChuck Miller1-0/+2
2010-01-16Prevented segmentation fault when calling the lua set_quest_var function ↵Philipp Sehmisch1-1/+6
with an illegal character handle.
2010-01-08Added script binding for checking the kill count for each monster so that ↵Philipp Sehmisch1-0/+29
uninventive server admins can implement their boring kill-ten-rats quests.
2009-12-06Fixed name of the project in copyright headersThorbjørn Lindeijer7-49/+42
Also updated the headers to refer to the GPL by URL instead of suggesting to contact the FSF by snail mail, as per the latest GPL usage instructions.
2009-12-06Removed "TMW" and "TMWSERV" from header guardsThorbjørn Lindeijer3-7/+7
2009-12-06Moved rectangle intersection to the Rectangle classThorbjørn Lindeijer1-1/+1
Also a bit of pointless cleanup in the math utils.
2009-10-26Added optional optimal level mechanic which reduces exp gain of certain ↵Philipp Sehmisch1-1/+6
sources after a certain skill level.
2009-10-24Rebranding tmwserv to manaservThorbjørn Lindeijer2-49/+49
Includes a database update. Use update_6_to_7.sql to update existing sqlite databases.
2009-10-14lua_tofloat doesn't exist in Lua 5.1Jared Adams1-3/+4
Also make that parameter optional
2009-10-15Speed code unification part 1: Made the server accept speed values in tiles ↵Bertram1-1/+2
per second.
2009-10-13Add script bindings for being directionsJared Adams1-2/+44
2009-10-13Add being action getter and setterJared Adams1-0/+42
2009-10-09Synced the protocol file with client in protocol.h, letting other defines in ↵Bertram1-1/+0
defines.h, and removing some overheading along the way.
2009-10-03Some cleanupThorbjørn Lindeijer1-7/+2
* Removed unsigned/signed warning by just using signed integers. * Made AccountHandler message handler functions members again instead of static functions. * Renamed 'computer' to 'client' since that is a less confusing name.
2009-09-27Added script bindings and netcode for creating being-bound effects.Philipp Sehmisch1-5/+26
2009-09-16Allow for basic scripted monstersChuck Miller1-0/+26
2009-08-25Made the STL container -> LUA table wrappers more flexible.Philipp Sehmisch2-19/+28
2009-07-18Change status effects to prevent duplicationJared Adams1-1/+52
Also add some functions for manipulating status effects: * removeStatusEffect * getStatusEffectTime * setStatusEffectTime
2009-07-17Adds scripted status effectsChuck Miller1-0/+39
2009-07-12Allow npc_choice to take tables of stringsJared Adams1-3/+21
2009-07-03Makes Skills non hard codedChuck Miller1-11/+1
It should be noted that Jax still needs to update the client Level calulation seems broken now too
2009-05-24Fixed a few code style issuesBjørn Lindeijer1-4/+7
Also renamed Guild::totalMembers to Guild::memberCount
2009-05-24Fixed compilation problem with GCC 4.4Bjørn Lindeijer1-0/+1
Fix ported from the client.
2009-05-05tmwserv - Warp fixBlue1-3/+21
Prevent for warping in a unwalkable area, choose randomly a random place to warp if the asked is unwalkable Added a default value to map::getWalk too.
2009-05-03Segfault correction luaBlue1-0/+5
Corrects a segfault with lua scripts.
2009-05-01tmwserv NPC String inputBlue1-4/+21
Adding support for npc string input.
2009-05-01Mysql backend, lua and NPC handlerBlue1-0/+47
Fix for mysql backend (again) Lua modification for integer and string ask with NPC, and closing fix.
2009-04-26Standardize on the position of the const keywordBjørn Lindeijer5-31/+34
Same as for the client.