summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2012-07-11Made sure the map is set for trigger scriptsErik Schilling2-0/+2
Also unsetted maps after execution of scripts to make finding this mistakes easier. Reviewed-by: bjorn.
2012-07-11Made sure the map is set for trigger scriptsErik Schilling2-0/+2
Also unsetted maps after execution of scripts to make finding this mistakes easier. Reviewed-by: bjorn.
2012-07-10Made kill count script bind capable of taking the monster name as argumentErik Schilling1-2/+2
Reviewed-by: bjorn.
2012-07-10Made kill count script bind capable of taking the monster name as argumentErik Schilling1-2/+2
Reviewed-by: bjorn.
2012-07-08Added bind for setting login callbackErik Schilling4-0/+22
Reviewed-by: bjorn.
2012-07-08Added bind for setting login callbackErik Schilling4-0/+22
Reviewed-by: bjorn.
2012-07-07Added script bind for getting specy id of a monster handleErik Schilling1-0/+12
Reviewed-by: bjorn.
2012-07-07Added script bind for getting specy id of a monster handleErik Schilling1-0/+12
Reviewed-by: bjorn.
2012-07-07Added Vulnerabilities for monstersErik Schilling3-1/+28
You can now actually use the already used node in the monsters.xml Monsters can have different vulnerabillities against elements: <vulnerabillity element="earth" factor="2.0" /> This will double damage of the element earth to this monster.
2012-07-07Added script binds for getting attack informationErik Schilling2-8/+155
New binds: - Damage: - id - skill - base - delta - cth - element - type - truestrike - range - Attack: - priority - cooldown - warmup - global_cooldown - damage - on_attack - MonsterClass: - attacks - ItemClass: - attacks
2012-07-07Work on (Auto)Attack system.Erik Schilling14-470/+611
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
2012-07-07Rename AutoAttack to AttackErik Schilling10-50/+50
2012-06-22Collisiondetection: Removing commented code.Stefan Beller1-118/+0
Reviewed-by: Ablu
2012-05-25Fixed handling of skillsErik Schilling4-18/+10
- 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.
2012-05-20Removed no longer needed codeErik Schilling2-24/+0
I forgot to remove this during my special cleanup Reviewed-by: bjorn.
2012-05-06Don't send NPC text as fixed-length stringThorbjørn Lindeijer1-3/+2
This is intended to be used only when the string length is known. The client was deriving the length from the remaining amount of data in the message, but that doesn't work in the new 'debug mode' of the protocol. Reviewed-by: Ben Longbons
2012-05-06Some small optimizations in Lua helper functionsThorbjørn Lindeijer1-6/+3
Reviewed-by: Ben Longbons
2012-05-06Fixed type of returned value from MapReader::readMapThorbjørn Lindeijer1-1/+1
GCC 4.7 warns about this, yay.
2012-05-05Small GCC 4.7 compile fixThorbjørn Lindeijer1-0/+1
Not entirely according to the standards since this is a C99 header, but that's better than not having it compile at all, or switching it entirely over to C++11 mode just now.
2012-05-05Added debugging mode to the protocolThorbjørn Lindeijer11-99/+283
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
2012-05-01Fix compiler error in g++ (GCC) 4.7.0jurkan1-2/+2
Compiler error was due to variable redeclaration (variable inside of for loop had the same name as the loop iterator variabele) - fixed through renaming of the inner variable. Reviewed-by: bjorn
2012-04-19Fixed guild supportErik Schilling11-167/+250
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.
2012-04-18Removed not needed trigger for specialupdate when INT attribute changed.Erik Schilling1-4/+0
I removed this dependency a while ago. But forgot to remove this code. Reviewed-by: bjorn.
2012-04-14Fixed compiler warning about non-virtual destructorThorbjørn Lindeijer1-0/+2
None of the subclasses actually define a destructor that does anything, but this may change in the future. In any case it's good to get rid of the warning. Reviewed-by: Erik Schilling
2012-04-14Introduced a Timeout class for counting down without countingThorbjørn Lindeijer11-142/+221
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
2012-04-12Fixed issues with server behind routerErik Schilling2-3/+5
Tested-by: jurkan. Reviewed-by: Bertram.
2012-04-12Fixed Configuration::initialize() to return false when failing loadingErik Schilling1-2/+2
Reviewed-by: Bertram.
2012-04-04Adding monster::on_damage callbackStefan Beller3-0/+33
Reviewed-by: bjorn
2012-04-04Added mysql update script for the special commitErik Schilling1-0/+11
Forgot to add this to git when doing the commit. Sorry. Reviewed-by: bjorn.
2012-04-04Renamed Thing to EntityThorbjørn Lindeijer28-121/+119
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
2012-04-04Enhanced special supportErik Schilling23-172/+951
- 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.
2012-03-26Some general cleanups and merged Being::perform() into update()Thorbjørn Lindeijer9-129/+117
The main change here is to remove the separate calling of 'perform' on all beings, and rather rely on the beings to do whatever they were doing in that function when the virtual 'update' function is called. Reviewed-by: Yohann Ferreira
2012-03-21Fixed restoring of persistent floor itemsThorbjørn Lindeijer1-1/+1
Only 1/4th of the floor items were being restored after a reboot of the game server. Reviewed-by: jurkan
2012-03-20Fixed finding characters by nameThorbjørn Lindeijer1-1/+1
This was broken in ba66fbeda8ef9afb6c33eba66d109bac85ebf628 where we forgot to make sure to invert the condition when moving it into the function. Reviewed-by: Erik Schilling
2012-03-17Made skill related function capable of taking the skill name as parameterErik Schilling5-9/+43
Reviewed-by: bjorn.
2012-03-17Added map update function, moved schedules there to keep map contextErik Schilling4-31/+50
Reviewed-by: bjorn.
2012-03-16Use the guild ID when setting guild member rightsThorbjørn Lindeijer1-4/+4
While the plan is to allow only one guild per player, the database currently doesn't enforce this. The expected behavior of this API is that it changes the rights only for the specified guild, but the query was changing the rights of the player in all his guilds. Reviewed-by: Erik Schilling
2012-03-16Fixed remaining compiler warningsThorbjørn Lindeijer6-11/+11
These were unused parameters and one return type with an ignored 'const' qualifier. Reviewed-by: Yohann Ferreira
2012-03-16Fixed Inventory::unequipItem functionThorbjørn Lindeijer1-1/+1
Due to a misplaced semicolon, it always returned false after the first instance. This function is only used by the script function chr_unequip_item. Reviewed-by: Yohann Ferreira
2012-03-16Fixed fastRemoveOne when the element isn't foundThorbjørn Lindeijer1-1/+1
For a non-empty vectors that did not contain the element to remove, the loop would go on forever because a size_t can't become smaller than 0. Fixed by simply iterating forwards.
2012-03-16Fixed the version in the createTables.sql scriptsThorbjørn Lindeijer3-6/+5
Forgot this in 1afbfb7e5fb5c133924ed8d376c6064575fc1c36. Reviewed-by: Bertram, Ablu.
2012-03-15Fixed createTables scriptsErik Schilling2-6/+6
2012-03-14Added chr_kick() lua bindErik Schilling1-2/+16
Another step towards scriptable @commands. Reviewed-by: bjorn.
2012-03-14Added being_get_mapid lua bindErik Schilling1-2/+18
Another step for being able to make @commands scriptable Reviewed-by: bjorn.
2012-03-14Added get_character_by_name lua bindErik Schilling5-48/+43
Step to be able to handle chatcommands by scripts. Reviewed-by: bjorn.
2012-03-13Fixed problems with map-bound world state variablesThorbjørn Lindeijer10-64/+134
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
2012-03-13SQLite: Fixed SqLiteDataProvider::processSql handling of multiple rowsThorbjørn Lindeijer1-5/+7
When a prepared SQL statement would have returned multiple rows, this function would try to set the column header names multiple times which throws the AlreadySetException. Currently it doesn't seem that any prepared statements are meant to return multiple rows. Reviewed-by: Yohann Ferreira
2012-03-13Fixed initial sending of global world variables to the game serverThorbjørn Lindeijer1-1/+2
The AGMSG_REGISTER_RESPONSE message should be sent _after_ adding the global world state variables to it rather than before. Reviewed-by: Yohann Ferreira
2012-03-13Added script bind to set walkmask for beingsErik Schilling9-28/+63
TODO: Inform client about this change. Reviewed-by: bjorn.
2012-03-11Removed "mana." from script function documentationThorbjørn Lindeijer1-102/+99
Forgot to do this in the previous commit.