summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-08-18Added LUA function for changing anger of monsters.Erik Schilling2-1/+34
You now can change the anger of a monster to a being using mana.monster_change_anger(monster, being, anger) Resolves: Mana-Mantis #366.
2011-08-10login with random hashStefan Beller3-3/+66
The account server sends out a random number, which is additionally used for hashing the password. Reviewed by Bertram
2011-08-10README: add section for inital db setupStefan Beller1-2/+12
2011-08-10Made chr_inv_count and npc_trade capable of taking a name or an id.Erik Schilling2-6/+40
Resolves: Mana-Mantis #318. Reviewed-by: Bertram.
2011-08-04Added new LUA functions used to get items and monster names.Erik Schilling1-0/+37
mana.monster_get_name(id) and mana.item_get_name(id) can be used to get the name of an item or a monster if only an id is given. Reviewed-by: Bertram.
2011-08-04Allowed names of items and monsters in scripts - part 1.Erik Schilling2-28/+64
You can now use either the name or the id of the item in the LUA functions chr_inv_change, monster_create, item_drop. Part of: Mana-Mantis #318. Reviewed-by: Bertram.
2011-08-03Unified the lua.cpp documentation.Yohann Ferreira3-170/+208
I also changed the chatmessage function to chat_message to follow the coding standard.
2011-08-03Added is_walkable lua function.Erik Schilling1-0/+30
mana.is_walkable(x, y) can now be used to check wether the pixel on the current map is walkable or not. Reviewed-by: Bertram.
2011-08-03Added monster_remove lua function.Erik Schilling2-0/+34
mana.monster_remove(monster) can now be used to remove a monster from a map. Resolves: Mana-Mantis #352. Reviewed-by: Bertram.
2011-08-03Added get_map_property lua function.Erik Schilling1-0/+24
mana.get_map_prpoperty(string) can now be used to read a property from a map file. String is the property name. Resolves: Mana-Mantis #353. Reviewed-by: Bertram.
2011-07-04Added new lua function for calculating distances.Ablu2-0/+34
You can now call mana.get_distance(being1, being2) or mana.get_distance(x1, y1, x2, y2) for calculating distances. Reviewed-by: Jaxad0127, Bertram. Resolves: Mana-Mantis #370.
2011-07-02Added LUA function get_beings_in_rectangle.Ablu1-0/+39
Reviewed-by: Bertram. Resolves: Mana-Mantis #369.
2011-06-27Added Lua function for logging.Ablu2-0/+23
You can now call mana.log(loglevel, message) to log messages with scripts. For loglevel you can use the new constants defined in libmana-constants.lua Resolves: Mana-Mantis #359
2011-06-24Fixed autoattacks basic handling.Yohann Ferreira4-15/+59
The server is now using the autoattacks system to perform damage based on the attack's timer. I also added a default bare knuckle attack when the character is unequipped. As a result, maggots can be killed again with bare hands now. Known issues left: This isn't tested against equipment changes for now, and the client isn't in sync with the attacks speed. Reviewed-by: Crush.
2011-06-19Making party invite functionalStefan Dombrowski7-192/+141
* 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
2011-06-17Changed the attack message to send the attack id.Yohann Ferreira4-7/+8
This is more precise than sending the attack type, that can be guessed by the client anyway when the type parameter will be added in the <attack> tag. This is the server part of Mana issue: #363. Reviewed-by: Bjorn.
2011-06-14Fixing storing of changed passwordsStefan Dombrowski1-2/+2
Reviewed-by: Bertram
2011-06-02Fixed crash when handling unequipThorbjørn Lindeijer1-5/+13
* The 'itp' parameter is no longer simply ignored (seems to be a small optimization in Inventory::remove) * Avoid incrementing an invalid iterator, fixing a crash (problem found by Stefan Dombrowski) * Use the right inventory index in the call to changeEquipment, which previously was using "it", which would be equal to "it_end" there. Reviewed-by: Stefan Dombrowski
2011-05-31Updating ENet to version 1.3.2Stefan Dombrowski6-51/+270
Source: http://enet.bespin.org/download/enet-1.3.2.tar.gz
2011-05-30Routing party invite through the map serverStefan Dombrowski7-35/+82
The player sends party invites to the game server. If the invitee is within the visual range of the inviter, the game server forwards the invite to the chat server. Reviewed-by: Bjorn, Jaxad0127
2011-05-26Allow monsters to drop multiple itemsStefan Dombrowski3-52/+32
Before at most one item was droped and the sum of all probablilites was limited to 100%. Also in the example data drops are changed to existing items.
2011-05-26Fixing negative being positionsStefan Dombrowski1-1/+4
Reviewed-by: Jaxad0127
2011-05-17Fixed an item dupe bugAngelo Castellani1-4/+15
Listed: http://bugs.manasource.org/view.php?id=324 Reviewed-by: Yohann Ferreira Reviewed-by: Jared Adams
2011-05-16Starting to fix party inviteStefan Dombrowski3-9/+19
Reviewed-by: Bjorn
2011-05-15Removed unused variableThorbjørn Lindeijer1-3/+1
2011-05-15Fixed compile with GCC 4.6Thorbjørn Lindeijer2-1/+2
* Include cstddef to be able to use size_t * Replace NULL with 0 since NULL doesn't happen to be defined in any included header file
2011-05-01Changed the <being-effects> tag to <effects>.Yohann Ferreira1-2/+2
Effects aren't applied only on beings. Hence the former tag name was irrelevant.
2011-05-01Renamed the mana-status-effects.xml to status-effects.xmlYohann Ferreira2-1/+1
In fact, the client never prefixed that file. Hence, the server doesn't have to.
2011-05-01Changed the server to look for the skills.xml file.Yohann Ferreira2-1/+1
This, instead of the mana-skills.xml file, to follow latest client changes.
2011-04-27fixed a bug in the example crafting scriptsPhilipp Sehmisch1-2/+2
(trivial change)
2011-04-27Added a simple crafting systemPhilipp Sehmisch11-0/+253
A client can craft something using the @craft command. The command needs a list of item names and amounts. The gameserver checks if the character has these items in the inventory and then passes the list together with the character handle to the lua script function on_craft in the script file scripts/crafting.lua. This function can then be used to evaluate if the list is a valid crafting combination and when this is the case take or give items. Implemented two example crafting scripts there, one which enforces exact item order and amount and one which doesn't. Both are disabled per default and one needs to be enabled by uncommenting a line. Also gave the player group permission to use the @craft command in permissions.xml and added two new items (wood and iron) required for the example crafting combination. Resolves: #333 Reviewed-by: bcs86, Bertram
2011-04-19Implemented scriptable effects on item use and dispell.Yohann Ferreira4-20/+93
Reviewed-by: Thorbjorn.
2011-04-18Made the server send the being position each 5 seconds.Yohann Ferreira2-4/+14
This will permit the client the make position resyncs when necessary, and make use of the MOVING_POSITION and DESTINATION where relevant. Reviewed-by: Thorbjorn.
2011-04-17Added a shake effect when Harmony is disappearing.Yohann Ferreira1-1/+7
... And one when she's coming back. Reviewed-by: Jaxad0127.
2011-04-17Added of precised some info I found very useful while debugging.Yohann Ferreira2-8/+28
Reviewed-by: Jaxad0127.
2011-04-17Removed useless calls to updateDerivedAttributes().Yohann Ferreira2-2/+0
The setAttribute() already takes care of updating them. Reviewed-by: Jaxad0127.
2011-04-17Removed an unecessary call to attribute recalculation for monsters.Yohann Ferreira1-1/+0
The only need to call this function was to trigger derived attributes recalculation as the base attribute recalulation does nothung for monsters atm. And this is useless as setAttribute() already triggers derived attributes recalulation. Reviewed-by: Jaxad0127.
2011-04-17Fix beings raw speed calculation when obtaining the TPS speed.Yohann Ferreira1-1/+6
The bug made the monsters unable to move. Reviewed-by: Jaxad0127.
2011-04-16Removing unused enum EMAILCHG_EXISTS_EMAILStefan Dombrowski1-5/+0
The protocol uses ERRMSG_EMAIL_ALREADY_EXISTS instead.
2011-04-16Set log verbosity earlier in game server to actually help debug.Yohann Ferreira1-6/+6
Before that, all the loading information were kept at info level. Trivial.
2011-04-15Fixed crash on first map updateThorbjørn Lindeijer2-0/+16
The crash happened when it was trying to move an NPC from its old zone to its new zone. The old zone was based on the old position, which was (0,0). That crashed since its zone didn't match its old position, but its new one. This fix makes sure to update the old position to be in sync with the zone, by resetting it after being inserted into the MapComposite. Reviewed-by: Yohann Ferreira
2011-04-13Fixed swapping of equipment and inventory slotsThorbjørn Lindeijer1-3/+4
This was happening when retrieving characters from the database. Also made the query more explicit about which columns it requests. Reviewed-by: Yohann Ferreira
2011-04-13Fixed equipment duplication when updating it.Yohann Ferreira1-1/+7
Reviewed-by: Thorbjorn.
2011-04-10Initialize attribute base and cached modified valuesThorbjørn Lindeijer1-0/+2
Attributes that didn't get a value yet are not communicated from account to game server. This could leave some attributes with uninitialized (random) values, like the amount of gold or some uncalculated attack speed bonus. Defaulting the value to 0 seems to be appropriate for all current cases. When another default value should be used, it can be specified in attributes.xml and will be sent from the account server. Reviewed-by: Stefan Dombrowski
2011-04-10Fixed infinite loop in deserializeCharacterDataThorbjørn Lindeijer1-10/+5
Could happen on servers where a character is being communicated that has something equipped. The infinite loop was due to using "while (msg.getUnreadLength())" on a message after having read one byte too much, causing it to miss the 0 bytes unread and count to minus infinity. This is a danger that we should probably also fix generally. The byte that was read too much was equipmentInSlotType, which I think should have been the number of items equipped in a certain slot type. This number is never written by the serializeCharacterData function and also doesn't seem necessary. When multiple items are equipped in a single equipment slot type, there will simply be multiple pairs transmitted for that equipment slot type. Reviewed-by: Freeyorp
2011-04-04Fixing reading of drop rate from monsters.xmlStefan Dombrowski1-2/+2
The xml gives the drop rate as a floating point number. Also added 0.5 for correct rounding. (Without it 0.7% calculates to 69.) Reviewed-by: Jaxad0127
2011-04-03Changed SYNC_BUFFER_SIZE to unsigned to avoid compiler warningThorbjørn Lindeijer1-2/+5
It's being compared to an unsigned integer. Reported-by: Stefan Dombrowski
2011-04-02Split GameHandler::processMessage up into multiple functionsThorbjørn Lindeijer2-394/+481
One huge function that handles all the messages isn't very readable and causes everything to be indented by several levels. Hence we generally split this up. It also exposed a missing 'break;' when handling the PGMSG_USE_SPECIAL message, which would continue into the handling of PGMSG_ACTION_CHANGE. Reviewed-by: Stefan Dombrowski
2011-04-02Some ChatHandler cleanupsThorbjørn Lindeijer4-121/+21
* Removed a lot of pointless documentation that was mainly repeating the function name and otherwise just filling up space. * Synced a few method names to the names of the messages that they were handling. * Removed an unimplemented method (sendPartyMemberInfo) Reviewed-by: Jared Adams
2011-04-02Some cleanups related to syncing from game to account serverThorbjørn Lindeijer4-35/+27
* Remove SYNC_END_OF_BUFFER since the end of a message can already be identified by no more data being available. * Consistently prefix ++ rather than postfix ++ when incrementing mSyncMessages. * Made SYNC_BUFFER_SIZE into constants rather than defines, and moved them into the .cpp file since they're not used anywhere else. * Just use 1 and 0 to indicate online status. No point in writing it like 0x01 and 0x00. * Merged some duplicated documentation for AccountConnection::syncChanges. Reviewed-by: Jared Adams