| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
As a side effect i had to remove the monster attack AI for now. I will
readd this as next thing.
|
|
|
|
| |
This later allows monsters and characters to use this component.
|
| |
|
|
|
|
| |
Mana-mantis: #506.
|
| |
|
|
|
|
|
| |
This allows the server to compile with c++0x (and enables it).
This also includes some coding style / readabillity fixes.
|
|
|
|
| |
It was forgotten to remove when the new approach was added
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All damage dealing is now handeled via CombatComponent.
Monsters use a derived MonsterCombatComponent since they can have a damage
mutation and have a seperate script callback.
The wirering with Being is still not optional since most of the stuff does
not exist as components.
Things done:
- Seperated the fighting code from Being and only let Characters and Monsters
add the Component (less overhead for npcs)
- Added a getter for Attribute values to prevent searching it all the time in
non Being members
- Fixed the type if the damage mutation to double (no idea why it was int)
I did not want to copy it over incorrectly
- Removed the addAttack/removeAttack overrides in Character and made the
knuckleAttack being added based on newly added signals
Future TODOS:
- Remove depedency on Being as soon all needed dependencies are available
as components of Entity
- Move the monster script callback into the general combatcomponent and
make it usuable for characters too
|
|
|
|
|
|
| |
Well, first visible change is that everything just gets longer to read.
Reviewed-by: Yohann Ferreira
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Reviewed-by: bjorn.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces the rather hard to understand event dispatcher with a
probably even harder to understand templated library, but fortunately
we can rely on the available documentation.
Hopefully it will also help with the readability of our code and with
adding additional signals to other classes.
Added libsigc++ to README and Travis CI configuration.
Reviewed-by: Erik Schilling
|
| |
|
|
|
|
|
|
|
|
| |
The timeout remembers a reference point of time against which it can check
how much time is remaining.
Reviewed-by: Erik Schilling
Reviewed-by: Yohann Ferreira
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No more Lua state for each status effect, monster, item effect or map. All
scripts are loaded into the same state. This should be more efficient overall
and make it easier to implement dynamic reloading of the scripts in the
future.
Now, this introduces the problem of name collisions between different Lua
scripts. For now this is solved by using more specific function names, like
'tick_plague' and 'tick_jump' rather than just 'tick'. The plan is however
to get rid of these globals, and register these callbacks from the script,
so that they can be local functions without the danger of colliding with
other scripts.
Reviewed-by: Erik Schilling
Reviewed-by: Yohann Ferreira
|
|
|
|
| |
Reviewed-by: Erik Schilling
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Just seems a bit more organized to me.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way, any kind of external service can know about the running
state of each servers, even if only the account server is
updating the statistics because:
1. When the account server is running, each <gameserver> tag is
a running game server. Otherwise, it's not listed.
2. Whenever the account server stops running, the stat file
isn't updated anymore and so the <heartbeat> tag isn't.
3. Game servers without any contact with an account server will
try to reconnect to the account server and kick out every players
so they aren't considered as running in that case.
Reviewed-by: Crush.
Resolves: Mana-mantis #270.
|
|
|
|
|
|
|
|
| |
It was too close from the Position class and it leads to
making the server handle one or another type through the
code. Still bugged me many times while making changes.
Reviewed-by: Jaxad.
|
|
|
|
| |
Resolves: Mana-Mantis #278.
|
|
|
|
| |
Reviewed-by: Jaxad0127.
|
|
|
|
|
|
| |
Also added an header to the autoattack.{h,cpp} files.
Big but trivial fix.
|
|
|
|
|
|
|
| |
Not only necessary on Windows, but also on Ubuntu (and probably Fedora)
This seems to be due to a recent change in how things are packaged.
Reviewed-by: Bernd Wachter
|
|
|
|
|
|
|
| |
Also moved the trim() function into the utils namespace
where it belongs more, and made some random code cleanups.
Reviewed-by: Thorbjorn.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/account-server/storage.cpp
src/game-server/being.cpp
src/game-server/being.hpp
src/game-server/character.cpp
src/game-server/character.hpp
src/game-server/gamehandler.cpp
src/game-server/inventory.cpp
src/scripting/lua.cpp
src/sql/mysql/createTables.sql
src/sql/sqlite/createTables.sql
|
| | |
|
|/ |
|
|
|
|
|
|
| |
The syntax IF ((condition) OR (condition)) is not accepted by cmake
prior to 2.6.4.
The patch should address this without affecting newer versions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Add missing zlib dependency, add NOGDI flag to avoid namespace clashes.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
problem with Lua...
There must be something wrong in the FindLua.cmake module because the FIND_PACKAGE(Lua) doesn't work
and is currently commented out.
|
|
I'll need a bit more time and help to get this fully working, but it's a good start :)
Also corrected a typo in a makefile.am file.
|