| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
A CharacterData was created as a proxy class in order to allow using the
old serialization method.
|
|
|
|
|
| |
This allows the server to compile with c++0x (and enables it).
This also includes some coding style / readabillity fixes.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
The game server will now look for the scripts in this order:
- serverPath - config value
- current working directory
- the PKG_DATADIR #define
|
|
|
|
| |
Reviewed-by: bjorn.
|
| |
|
|
|
|
| |
Same thing, but shorter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
Gender is shared. There is no reason in duplicating code
*Breaks compatbility with old clients*
*Requires clientside patch*
Reviewed-by: Stefan Beller.
|
|
|
|
|
|
| |
Change is tested.
Reviewed-by: bjorn.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Reviewed-by: Bertram.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
- Added announcements having senders now.
- Removed /announcement support.
Reviewed-by: Bjorn.
|
|
|
|
| |
Reviewed-by: o11c, bjorn, Bertram.
|
|
|
|
|
|
|
| |
Changed range of amount to unsigned int(10).
Sqlite update scripts is empty since no change was required here.
Reviewed-by: Bertram.
|
|
|
|
|
|
|
| |
You can now use <include file="myconfig.xml" /> to include a configuration file
into the main configuration.
Reviewed-by: Bjorn.
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/game-server/character.cpp
src/scripting/lua.cpp
|
| |
| |
| |
| | |
Reviewed-by: o11c.
|
| |
| |
| |
| |
| |
| | |
This doesn't change anything yet.
Reviewed-by: o11c.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/account-server/storage.cpp
src/game-server/mapreader.cpp
src/sql/mysql/createTables.sql
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
equipment-fix
Conflicts:
example/serverdata/scripts/maps/desert.lua
|
| | | |
|
| | |
| | |
| | |
| | | |
an arbitrary number of layers. (up to 255).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\| |
| | |
| | |
| | | |
equipment-fix
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\| |
| |/
|/|
| |
| |
| |
| | |
git://gitorious.org/~bertram/mana/manaserv-equipment-fix into equipment-fix
Conflicts:
src/common/manaserv_protocol.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
This is in preparation of fixes for issues: #373, and 379.
Equip and inventory related packets are the only ones changed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This doesn't change anything yet.
|
|/
|
|
|
|
|
| |
The account server sends out a random number, which is
additionally used for hashing the password.
Reviewed by Bertram
|
|
|
|
|
|
|
|
| |
* 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
|