Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
NPCs, monsters and character are all actors, but no entity exists that
has "actor" as its type.
To avoid having to increment the protocol version, the values of the
different entity types are now mentioned explicitly.
|
|
The findActorNear, findBeingNear and findCharacterNear functions in
gamehandler.cpp were iterating over nearby entities in search for
an entity with a specific ID. Now they do a quick lookup of exactly
that entity, and then check whether it is in range.
|
|
Fixes compile error with GCC 4.6.3.
|
|
Allows to report access to removed entities instead of crashing.
|
|
Moving class definitions for MapZone, ObjectBucket and MapContent into
mapcomposite.cpp since they are not used anywhere else.
|
|
|
|
To match the class name.
|
|
Moved the actual sending of info out of update() and into sendStatus to
prevent delay issues depending on the order of the components getting
updated.
|
|
Renamed killConnection based on bjorns feedback.
Do not send the info on each warp but only on reconnections.
|
|
The old connection is now terminated. And the new connection will
receive the character data properly.
|
|
|
|
We later need to check wether we still need this logic or whether we
rather want to remove it in favor of the quest system. But we need this
for sourceoftales for now.
|
|
I did this patch quite a while ago. Big thx to Stefan Beller for
"rebasing" it.
|
|
|
|
|
|
|
|
|
|
It was a inventory slot not equipmentslot.
|
|
|
|
|
|
|
|
|
|
|
|
I had to rearrange the protocol a bit in order to allow to keep the
related things together.
|
|
|
|
Now we do not have two character.cpp files in the repository.
|
|
Things done:
- Removed the equips table and added another column which keeps track about
whether the item is equipped or not
- Added a message to notify the client about failing equips instead of
hardcoding to chat notification
- Removed the move possibillity. It was a quite long function and our future
idea of the inventory does not need any moves
- Removed the inInventory and inEquipment parameters from chr_inv_count,
but added a equipped key to the table that chr_get_inventory returns
This change makes equipped items still being in the inventory. This means
in-inventory triggers are still active! However it makes no sense to disable
this triggers during equipping since it will appear as still in the inventory
to the client.
|
|
|
|
By default they are not persistent now (meaning that they wont get
stored in the database).
|
|
|
|
|
|
|
|
|
|
In some cases no longer existing attribute ids sent by the account
server or client were able to create crashs.
|
|
While on it I replaced the id usage in the server with the usage of the
AttributeInfo directly.
Next steps:
- Dehardcode the core attribute ids and store their
attributeinfos somewhere in AttributeManager (for now i simply
wrapped the ids with getAttributeInfo().
- Move AttributeInfo out of AttributeManager to shorten the usage + to
allow using a pointer in ModifierLocation without forward declaring
it.
|
|
This getting annoying while trying to do multiple changes.
Types/structures had to be shared all the time making it nessecary to
find ugly workarounds.
|
|
|
|
|
|
|
|
|
|
I find this a lot more readable.
|
|
- Removed hardcoded using of attributes
- Simply introduced lua functions to set global and ability cooldowns
- Requires database update
- Bumps the protocol
|
|
This allows you to avoid putting usually unnessecary load onto npcs if
you only wanted to share an attribute between monsters and characters.
|
|
Things done:
Wrote a entity:give_experience function (lua side only).
Renamed characterpoints to attributepoints (no db update. Did not want
to do one for a simple rename).
Temponary introduced a ATTR_LEVEL constant. TODO: dehardcode this.
Script binds for settings the correction and attribute points.
|
|
This removes support for skills. The plan is to allow to implement the skills
as they were implemented before via attributes. This adds a lot more
flexibility to the server creators while also removing the confusion about
skills and attributes.
So this change does:
- Remove the skillmanager with all its calls, the skill xml file, etc
- Move exp giving to the script engine:
--> Allows to implement the old behaviour (and more) in the scripts
- Remove the exp tag from the monster definition:
+ Since the server itself does not require it anymore it feels wrong to
require it for EVERY monster. TODO: Add a system to add properties to the
monsters/items.xml which allow defining things like the exp and allows to
read the value from the script engine.
+ Small drawback, but it should not be hard to implement this property
system.
- Drop the level networking and calculation.
+ level calculation will happen via the attribute system later but i would
prefer to do this in a seperate patch since this patch already got longer
than expected especially since this requires to make setting correction
points and available status points scriptable.
+ The level would be simply set as a attribute, the int number of it will be
the level, the remaining digits will be the % number till the next levelup.
- NOT remove any existing skill tables in the database update scripts.
+ There is no way to move them into the attribute table in a unified way
(there are too many different way they could have been used). So server
admins have to care about moving theirs skills to attributes themselves.
+ Keeping the old tables does not hurt for existing databases. So removing
does not give any advantage/is required anyway. The now obsolote info
about the EXP transaction is not removed for updated databases either.
(The update script basically only bumps the version number without doing
anything else.
- bump the network protocol version --> old clients won't be able to connect.
- bump the database version --> serveradmins need to update their db.
|
|
I did not adapt the scripts yet since we need some special handling for
the attributes which are required by the server directly. So you still
have to use the ids for those. I will change that later.
In the future I want to use the AttributeInfo class instead of the int
id everywhere possible. So I did a small start on that too.
|
|
Attributes without a scope make no sense.
|