summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2013-09-13Added basic questlog supportErik Schilling4-1/+191
I did this patch quite a while ago. Big thx to Stefan Beller for "rebasing" it.
2013-09-13Fixed walking resetting the dead actionErik Schilling1-2/+2
2013-09-13Fixed small typoErik Schilling1-1/+1
2013-09-13Simplified removal of effectsErik Schilling1-2/+1
2013-09-10Fixed typoThorbjørn Lindeijer1-1/+1
2013-09-09Fixed the equipment info for charactersErik Schilling1-1/+1
It was a inventory slot not equipmentslot.
2013-09-09Removed old unused functionsErik Schilling1-5/+0
2013-09-09Send equipment data for character selectionErik Schilling2-9/+19
2013-09-09Fixed Entity leak with effectsErik Schilling3-10/+4
2013-09-08Allow to use the name of attributes in @attributeErik Schilling1-11/+17
2013-09-08Actually send the info about beings using direction abilitiesErik Schilling3-1/+18
2013-09-08Added support for direction based ability targetsErik Schilling8-36/+99
I had to rearrange the protocol a bit in order to allow to keep the related things together.
2013-09-08Removed unused variableThorbjørn Lindeijer1-1/+0
2013-09-08Renamed character.cpp to charactercomponent.cppErik Schilling20-20/+20
Now we do not have two character.cpp files in the repository.
2013-09-08Cleaned up the inventory handlingErik Schilling15-694/+329
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.
2013-09-01Fixed inconsistent type of hairstyle networkingErik Schilling2-13/+8
2013-09-01Do not make all attributes persistentErik Schilling3-5/+15
By default they are not persistent now (meaning that they wont get stored in the database).
2013-08-31Remove unused variableStefan Beller1-1/+0
2013-08-31remove unused variableStefan Beller1-1/+0
2013-08-26Added forgotten filesErik Schilling2-0/+99
2013-08-26Moved AttributeInfo into a seperate fileErik Schilling18-107/+57
2013-08-26Secured the use of the AttributeInfo where nessecaryErik Schilling3-5/+21
In some cases no longer existing attribute ids sent by the account server or client were able to create crashs.
2013-08-26Allowed to push attributeinfos for the attribute recalculationErik Schilling27-231/+332
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.
2013-08-26Unshared the serialization of charactersErik Schilling10-440/+332
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.
2013-08-26Fixed warning which used an invalid iteratorErik Schilling1-2/+1
2013-08-26Allow abilities name for use_ability()Erik Schilling1-3/+5
2013-08-26Removed ability categoriesErik Schilling6-92/+9
2013-08-26Only call ability recharge callback if it is validErik Schilling1-5/+8
2013-08-26Use '/' as seperator for ability categories rather than '_'Erik Schilling2-6/+6
I find this a lot more readable.
2013-08-26Made cooldowns of abilities scriptableErik Schilling18-288/+166
- Removed hardcoded using of attributes - Simply introduced lua functions to set global and ability cooldowns - Requires database update - Bumps the protocol
2013-08-26Allow multiple scopes (character and monster)Erik Schilling1-4/+10
This allows you to avoid putting usually unnessecary load onto npcs if you only wanted to share an attribute between monsters and characters.
2013-08-26Readded level handlingErik Schilling11-34/+141
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.
2013-08-26Removed skillsErik Schilling30-1050/+86
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.
2013-08-26Allow names instead of ids for attributes + cleanupErik Schilling14-199/+208
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.
2013-08-26Warn when defining an attribute without a scopeErik Schilling1-3/+3
Attributes without a scope make no sense.
2013-08-26Added a first very basic monster ai versionErik Schilling1-15/+0
The ai is similar to the old c++ version. Only the target searching is executed every 10 ticks only now to prevent performance issues with too many lua calls.
2013-08-26Added look_at bindErik Schilling1-0/+33
2013-08-26Fixed setting name of monstersErik Schilling1-2/+2
2013-08-26Added tick argument to the monster update callbackErik Schilling1-0/+1
2013-08-26Removed the hardcoded monster AIErik Schilling3-202/+1
2013-08-26Added entity:destination() bindErik Schilling1-0/+18
2013-08-26Added function to check for length of a possible pathErik Schilling3-9/+54
2013-08-26Added get_monster_classes() bindErik Schilling3-2/+28
It returns all monster classes in a id->monsterclass table.
2013-08-26[Abilities] Added abilities to monstersErik Schilling6-26/+140
Monsters can now either receive abilities at lifetime via scripts, or via the <ability> node in the monsters node.
2013-08-26[Abilities] Removed the old autoattack systemErik Schilling25-1899/+15
As a side effect i had to remove the monster attack AI for now. I will readd this as next thing.
2013-08-26[Abilities] Added a add_hit_taken bindErik Schilling5-30/+51
This allows to display hit messages in the client for abilities
2013-08-26[Abilities] Inform other players about ability usesErik Schilling5-4/+77
2013-08-26[Abilities] Added support for a global cooldownErik Schilling11-40/+141
Each ability can now define a cooldown that prevents the player from using other abilities for a while. The time of this cooldown can be set to any attribute. The modified value of the attribute is the value of the cooldown in game ticks. The cooldown will be automatically started if the ability has `autoconsume` set to true. Otherwise a script has to call entity:cooldown_ability(ability).
2013-08-26[Abilities] Added a autoconsume optionErik Schilling3-0/+14
You do not need to reset the mana in the scripts if you do not want to. We will need this for attacks later since those do not nessecary have a script.
2013-08-26[Abilities] Moved the ability code into a own componentErik Schilling9-255/+355
This later allows monsters and characters to use this component.