summaryrefslogtreecommitdiffstats
path: root/src/common
Commit message (Collapse)AuthorAgeFilesLines
* Converted Being into a ComponentErik Schilling2013-04-112-7/+7
| | | | | | I did not really care too much about staying consistent with the use of static_casts to Actors since they are only temporary anyway until Actor is a component too.
* Converted the Character class into a componentErik Schilling2013-04-112-10/+13
| | | | | A CharacterData was created as a proxy class in order to allow using the old serialization method.
* Fixed multiple warnings and errors that blocked c++0xErik Schilling2013-04-021-1/+1
| | | | | This allows the server to compile with c++0x (and enables it). This also includes some coding style / readabillity fixes.
* Added possibility to reserve mapsErik Schilling2013-02-242-1/+13
| | | | | | | | | | | | If you set net_gameServerName you can now reserve maps in the maps.xml. There you have to add the servername - property to the <map> tag. Then the map will only be activated by that server. Also changed the activate sequence that the account server now tells the game server what maps to activate (previously the server requested all maps and the account server said yes or no). TODO: Fix general inter server map switching.
* Made the scripts being able to installErik Schilling2013-02-241-3/+7
| | | | | | | The game server will now look for the scripts in this order: - serverPath - config value - current working directory - the PKG_DATADIR #define
* Modifications to allow crosscompiling with mingwErik Schilling2013-02-032-0/+12
| | | | Reviewed-by: bjorn.
* Added emote support.Yohann Ferreira2013-02-011-0/+2
|
* Replaced 'unsigned int' with 'unsigned'Thorbjørn Lindeijer2013-01-092-9/+9
| | | | Same thing, but shorter.
* Work on (Auto)Attack system.Erik Schilling2013-01-081-9/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the implementation bjorn and I agreed to limit the number of attacks that can be used in the same tick to one. This makes a lot of stuff easier and the client cannot display two frames at the same time Things done: - Implemented setting of attacks when equipping/unequipping items - Single place where the xml attack node is parsed - Finished attack logic - Unified the attack handling of monsters and characters - Added a global cooldown after attack use (not only for next use of same attack) - Removed the temponary attributes for the monster attack values - Priorities for all attacks - Rewrote the attack core: - Attacks now have this attributes: - warmup -> time a attack needs after starting it to actually deal the damage - cooldown -> time a attack needs after dealing damage before another attack can be used - reuse -> time before the same attack can be used again - If no attack is performed at the moment the following is done: - make a list with all ready attacks - check for attack that has the necessarily range and highest priority - start this attack (inform client about it) - when warmup is finished -> trigger damage - when cooldown is finished -> allow to use other (or the same if reusetimer allows) attacks TODO: - sync client with this to allow better timed animations
* Rename AutoAttack to AttackErik Schilling2013-01-081-1/+1
|
* Moved order of sending genderErik Schilling2012-10-111-4/+4
| | | | | | | | | Gender is shared. There is no reason in duplicating code *Breaks compatbility with old clients* *Requires clientside patch* Reviewed-by: Stefan Beller.
* Added lua bind to send text effect particle to clientsErik Schilling2012-07-171-0/+1
| | | | | | Change is tested. Reviewed-by: bjorn.
* Fixed handling of skillsErik Schilling2012-05-251-1/+1
| | | | | | | | | | | | | - Removed possibility of skills getting mixed with attributes - Made the server sending the level of the current skill on exp change (currently the client could calculate it itself, but it allows more flexibillity in future this way) - Fixed reading of skills out of the database (for some reason the status effects were added as skills) ** Needs clientside patch as well (coming soon) ** Reviewed-by: Bertram.
* Added debugging mode to the protocolThorbjørn Lindeijer2012-05-051-5/+18
| | | | | | | | | | | | Allows inspection of message data. It is off by default since it consumes additional bandwidth, but it can be turned on using the net_debugMode option in manaserv.xml. Currently the option only affects outgoing data for each host individually. In particular, enabling this debug mode for the server does not automatically make the client annotate its messages. Reviewed-by: Erik Schilling
* Fixed guild supportErik Schilling2012-04-191-2/+4
| | | | | | | | | | | | | | | | | List of things fixed: - fixed having multiple guild support everywhere - implemented kick code (untested due to missing kick possiblity in client) - fixed giving owner rights to next member when owner leaves guild - fixed potentional segmention fault when trying to access deleted guild after all members left - fixed saving right changes to database - made searching for guilds faster a bit (at least when having many guilds) TODO: + Fix conflict between guild and normal channels + Fix being able to leave guild channel without leaving guild itself + Add kick possiblity to client Reviewed-by: bjorn.
* Fixed Configuration::initialize() to return false when failing loadingErik Schilling2012-04-121-2/+2
| | | | Reviewed-by: Bertram.
* Renamed Thing to EntityThorbjørn Lindeijer2012-04-041-3/+3
| | | | | | | | In preparation for using an entity/component system for the entities in the game world, this name will be more recognizable and easier to talk about. Reviewed-by: Yohann Ferreira
* Enhanced special supportErik Schilling2012-04-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Made the current charge being saved. - Added script binds: - chr_set_special_recharge_speed - chr_get_special_recharge_speed - chr_set_special_mana - chr_get_special_mana - get_special_info - Added special info lua class. Functions: - name - needed_mana - rechargeable - on_use - on_recharged - category Further the engine no longer sets charge to 0 after using of specials this allows more flexbilillity (like failing specials). Changes on the xml database: - recharge renamed to rechargeable (needed by client and server) - needed - the needed mana to trigger a special (server only) - rechargespeed - the defailt recharge speed in mana per tick (server only) - target - the type of target (either being or point) (server and client) I also made the lua engine pushing nil instead of a 0 light userdata when the pointer was 0. Database update needed. Change is tested. Mana-Mantis: #167, #156 Reviewed-by: bjorn.
* Fixed problems with map-bound world state variablesThorbjørn Lindeijer2012-03-131-1/+1
| | | | | | | | | | | | | | | | | | Due to a wrong primary key, which covered only the state name, it was impossible to use the same state name on different maps. This has now been fixed. Another problem was that the map variables were being included in the global variables, because the related database query did not filter on the map_id column properly. While fixing that, the map_id column now allows explicitly marking a state variable as global (with the value 0) or system variables (with the value -1). System variables are currently not accessible from scripts, but that could be changed later. Reviewed-by: Yohann Ferreira Reviewed-by: Erik Schilling
* Removed the create_npc wrapper and the last two NPC callbacksThorbjørn Lindeijer2012-03-111-2/+2
| | | | | | | | | | | | When creating an NPC, you now provide its optional talk and update functions directly rather than them being stored in a table on the Lua side and then called in response to a global callback. Also fixed an issue with a missing gender parameter to the delayed NPC creation callback used by NPCs defined on the map (found by Erik while reviewing this patch). Reviewed-by: Erik Schilling
* Merged the example client and server dataThorbjørn Lindeijer2012-02-251-6/+3
| | | | | | | | | It's easier to just talk about world data and to modify it as a whole. If there is really a need to separate it, a project can still choose to do that (and in whatever suitable way). There is no need to enforce this separation or to do it in our example. Reviewed-by: Erik Schilling
* Added a way to specify the min and max attributes values.Yohann Ferreira2012-02-021-32/+0
| | | | | | | | | This can now be done in attributes.xml through the minimum and maximum attribute parameters. I also changed the AttributeInfo struct as requested by bjorn. Reviewed-by: Erik Schilling, Thorbjørn Lindeijer
* Made @announce fully functionalErik Schilling2012-01-211-2/+2
| | | | | | | - Added announcements having senders now. - Removed /announcement support. Reviewed-by: Bjorn.
* Made all beings capable of having a genderErik Schilling2012-01-022-2/+39
| | | | Reviewed-by: o11c, bjorn, Bertram.
* Allowed larger item amounts for mysql database.Erik Schilling2011-12-031-1/+1
| | | | | | | Changed range of amount to unsigned int(10). Sqlite update scripts is empty since no change was required here. Reviewed-by: Bertram.
* Allow includes in configuration file.Erik Schilling2011-11-211-6/+35
| | | | | | | You can now use <include file="myconfig.xml" /> to include a configuration file into the main configuration. Reviewed-by: Bjorn.
* Have one place where the Configuration is initializedThorbjørn Lindeijer2011-11-012-6/+15
| | | | | | | | Also, removed the fallback to the standard config file path when a config file path is specified on the command line. Surely that's not what you would want to happen. Reviewed-by: Yohann Ferreira
* Renamed the db update 15 to 18 as requested by Bjorn.Yohann Ferreira2011-11-011-1/+1
|
* Merge github.com:mana/manaservYohann Ferreira2011-11-011-2/+0
|\ | | | | | | | | | | Conflicts: src/game-server/character.cpp src/scripting/lua.cpp
| * Officially added the being gender to the protocol.Yohann Ferreira2011-10-221-1/+13
| | | | | | | | Reviewed-by: o11c.
| * Small random code format cleanups, and documentation fixes.Yohann Ferreira2011-09-281-1/+1
| | | | | | | | | | | | This doesn't change anything yet. Reviewed-by: o11c.
* | dos2unix src/common/manaserv_protocol.hYohann Ferreira2011-11-011-448/+448
| |
* | Started to fix the autoattack system.Yohann Ferreira2011-09-281-0/+11
| | | | | | | | | | | | | | | | I simply made the default autoattack look for the default skill and add exp to it when killing monsters. Now the player can earn xp again even if it's not well handled between two logins.
* | Officially added the being gender to the protocol.Yohann Ferreira2011-09-281-0/+12
| |
* | Add persistent items support based on seeseekey's work.Yohann Ferreira2011-09-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Also made some random changes where useful, including: - Code formatting fixes, - Design fix about the fact that only the game config option should be checked. - Fixed the size of the values sent and receive to follow the rest of the development. - Fixed variables names to make them show what they are, and not why they are used. Resolves: Mana-Mantis #142.
* | Merge github.com:mana/manaservYohann Ferreira2011-09-081-1/+1
|\| | | | | | | | | | | | | Conflicts: src/account-server/storage.cpp src/game-server/mapreader.cpp src/sql/mysql/createTables.sql
* | Made the db version an official pre-requisite.Yohann Ferreira2011-08-301-1/+4
| | | | | | | | | | | | | | It was uneasy to not miss something when updating the db. And as the db version is somewhat corresponding to a certain protocol version, adding it in the protocol file sounds relevant to me, and helps when updating it.
* | Merge git://gitorious.org/~bertram/mana/manaserv-equipment-fix into ↵Yohann Ferreira2011-08-192-20/+3
|\ \ | | | | | | | | | | | | | | | | | | equipment-fix Conflicts: example/serverdata/scripts/maps/desert.lua
| * | Removed the now useless SpriteLayer enum from the protocol.Yohann Ferreira2011-08-191-17/+0
| | |
| * | Changed the sprite layer protocol to supportYohann Ferreira2011-08-191-2/+2
| | | | | | | | | | | | an arbitrary number of layers. (up to 255).
| * | Used the client base to make a final bugfix on the server code.Yohann Ferreira2011-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Made the server handle only one slot type requirement since it's irrelevant to have more anyway. Plus, it simplifies the code for both equipping/unequipping. I also added a dagger to show how equipping/unequipping is working.
* | | Merge git://gitorious.org/~bertram/mana/manaserv-equipment-fix into ↵Yohann Ferreira2011-08-181-2/+2
|\| | | | | | | | | | | equipment-fix
| * | Change the unequip function to make use of the item instance id.Yohann Ferreira2011-08-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | It will make the client capable to tell which item is to be unequipped when there are several item equipped within a slot type, for instance. The client has now yet to be upgraded to follow the new protocol.
* | | Merge branch 'master' of ↵Yohann Ferreira2011-08-112-453/+495
|\| | | |/ |/| | | | | | | | | git://gitorious.org/~bertram/mana/manaserv-equipment-fix into equipment-fix Conflicts: src/common/manaserv_protocol.h
| * Basically redid equip and unequip functions().Yohann Ferreira2011-08-112-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I made the system handle the fact that equipment item are completely unlinked to the inventory items. Equip items now have a unique itemInstance number permitting to equip the same item type multiple time when the slot capacity is wide enough to do so. I also prepared the functions to welcome in the near tests against scripted equipment. The equip process is known to be working server-side but the unequip process has yet to be reviewed, even if implemented.
| * Changed the protocol a bit to use int16 instead of 8.Yohann Ferreira2011-07-271-445/+445
| | | | | | | | | | | | This is in preparation of fixes for issues: #373, and 379. Equip and inventory related packets are the only ones changed.
| * Begun Applying the new equipment slot handling design.Yohann Ferreira2011-07-271-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | now, the equipment slots are independant from the inventory slots according to the inventory and equipment data. This will permit to avoid checking the equipment each time one touches the inventory and vice versa, and make the former delayed mode useless. Also, note that equipped items will be removed from inventory and readded once unequipped. The design will permit the following, even if not implemented yet: - To make equipment items stackable again, if wanted. - Have more than one item with the same id equipped on different slots using the itemInstance field. Note: I didn't add the database structure updates yet, to see whether other changes may later go along with those.
| * Small random code format cleanups, and documentation fixes.Yohann Ferreira2011-07-271-1/+1
| | | | | | | | This doesn't change anything yet.
* | login with random hashStefan Beller2011-08-101-0/+2
|/ | | | | | | The account server sends out a random number, which is additionally used for hashing the password. Reviewed by Bertram
* Making party invite functionalStefan Dombrowski2011-06-191-6/+4
| | | | | | | | * An invite expires after 60 seconds. * For protection of the server memory each player can invite a maximum of 10 characters within the 60 second timeframe. Reviewed-by: Bjorn