summaryrefslogtreecommitdiff
path: root/src/map/clif.c
AgeCommit message (Collapse)AuthorFilesLines
2014-11-03Merge branch 'master' of github.com:HerculesWS/Herculesshennetsind1-2/+3
Signed-off-by: shennetsind <ind@henn.et> Conflicts: src/map/battle.c
2014-11-03Introducing 2014-10-22, Roulette and Per-Char Gender!shennetsind1-13/+335
Details in http://hercules.ws/board/topic/7618-2014-10-22-roulette-and-per-char-gender/ Special Thanks to the all-mighty Yommy, Ziu and Haruna! Signed-off-by: shennetsind <ind@henn.et>
2014-10-31Fix possible buffer overflow in irc channel name parsing.Andrei Karas1-2/+3
2014-10-25HPM Hooks UpdateHercules.ws1-1/+1
Signed-off-by: HerculesWSAPI <Hercules@efficiently.awesome>
2014-10-25Sight Blaster and other skill fixes, magic reflect, crash, trap display and ↵Michieru1-1/+3
monster behavior fixes - Fixed cast time of Sightrasher in pre-renewal (700ms -> 500ms) - Official Sight Blaster behavior (bugreport:6945, partially bugreport:144) * Sight Blaster's AoE is now 3x3 even in pre-renewal (it was originally larger so it hits traps before they trigger) * Sight Blaster will now prevent traps from triggering as long as they are knocked back * Fixed a bug that caused Sight Blaster to not work on traps and ice walls at all * Sight Blaster will no longer expire when the attack was reflected * Sight Blaster will now expire when hitting an ice wall * Sight Blaster will now properly protect you from being attacked from its AoE range - Sight, Ruwach and Sight Blaster will now check for a target every 20ms (previously every 250ms) - Step action will now be canceled when being knocked back (skills won't be executed anymore when knocked out of range) - When knock back magic is reflected it will no longer lead to the caster being knocked back (related to bugreport:6945) - Activated traps can no longer be hit - Fixed a problem that left "trap ghosts" forever on the screen when a trap was knocked out of the screen - Monster behavior fixes * Monsters will no longer be able to do normal attacks when hiding * If out of any reason a monster on "attack" state can't move and can't do normal attacks, it will now use "attack" state skills * The order of monster thought processing is now equal to official servers - Fixed some potential map server crashes Mega thanks to Playtester (rathena b88e95381d6a7)
2014-10-25Added some missing variable initializationsHaru1-2/+4
- The issue was caused by memcmp failing because of garbage in structs padding. - Fixes bugreport:8410, special thanks (and credits for the fix) to Garr http://hercules.ws/board/tracker/issue-8410-autotradeat-issue/ - Also reduced scope of some variables, where appropriate. - Thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2014-10-24pc_isriding* / pc_setriding* cleanupHaru1-16/+17
- pc_isriding is now renamed to pc_isridingpeco, since that's what it checks (to avoid confusion). - pc_hasmount is added, to check for any of Peco, Dragon, Mado Gear, Wug Rider. - pc->setridingdragon is added. - pc->setridingwug is added. - pc->setfalcon type is changed. - pc->setmadogear type is changed. - pc->setridign is changed to pc->setridingpeco to avoid confusion. - Changed direct accesses to sd->sd.option to the proper pc_is* accessors, where applicable. - Special thanks to Kisuka. Signed-off-by: Haru <haru@dotalux.com>
2014-10-13* Monster skill use behavior, ranges, position lag fixesMichieru1-1/+2
- Updated monster skill use behavior so monsters use skills the same way and at the same rhythm as official servers (bugreport:009326), the changes include: * Unified the "monster can't move by default" and the "monster trapped" code as it really should behave exactly the same * Fixed a bug that caused the "monster skill use" routine to be called 20 times more often than it should in some situations * When a monster attacks you and you run away from it, the monster will now check if it has a ranged skill on "attack" state before switching to chase state * Monsters will now always do a normal attack before using "attack" state skills * Fixed a bug that caused monsters to switch to idle mode and never use their chase skills when they get hit continuously * Changed default for skillrange_from_weapon from 30 (all but player) to 0 (none); monsters will now use all skills at the skill range and not at their own attack range, if they get tanked from farther away than skill range, they won't use these skills - Updated ranges to work as on official servers (bugreport:009326), the changes include: * Implemented new functions "check_distance_client" and "distance_client", that instead of the server-sided square range system use the circular one that the client uses; these functions should be used for units that send their commands via the client (players mostly) * Applied the new distance algorithm to some player-specific range checks, players will now have a circular attack range that reflects their attack range on the client; this makes it impossible to hack the client for more diagonal range * Removed the arbitrary +1 range bonus at range checks; as monsters now react fluently, they won't need it anymore, that means a monster with for example 4 attack range will now only attack targets within a 9x9 area around it, the moment you step out of this area, the attacks will stop (if the monster can move it will follow you); as for players, the extra cell attack range when on a linear line to the target now is integrated into the distance algorithm, that means a player with attack range 4 can attack from 5 cells away when directly on line with a monster, but no longer diagonally as range is circular for players now * Implemented a new "step action" feature to reflect official chase range behavior; when an attack or skill is used inside the attack range, it will act exactly as now, the skill is used once the signal from the client was received; however, if an attack or skill is used outside the attack range, the player should move into the chase area which is 1 cell inside the attack range border; the client actually sends us where to use the attack / skill from, but previously we just dropped that information the moment an attack request came; now instead of stopping the player instantly on an attack request, the player will continue moving to the target cell and then automatically use the command received earlier (it will be remembered); this change was absolutely necessary as the client sends the attack request slightly before attack range is reached, execution on official servers only takes place on every full cell moved; the new system copies this behavior - Implemented an improved hit-lock system (bugreport:007460), the changes include: * MVPs are no longer immune to being stopped by a hit unless they used Endure * When hitting any unit, it will stop for its "dMotion" interval, exactly at the end of "dMotion" it will continue walking (official behavior); this helps getting more "move" packets to be displayed * The unit that was hit will be immune to being stopped for another "dMotion" interval, this allows to slow down any units by hitting them frequently, but makes it almost impossible to completely stop them forever (depends a lot of ASPD and dMotion value); this does not affect special hit-lock properties (some skills and events should set delay anyway) * The unit that was hit will no longer be "pulled" to the next cell; this caused a lot of position lag, it should be much better now * Random walking, monster target dropping - Implemented official behavior for random walking of monsters (bugreport:9340) * Updated the interval between walks from 3-6 seconds to 4-5 seconds * Added a define MIN_RANDOMWALKTIME that is now used anywhere the interval is applied so it's easier to change * Monsters will no longer attempt to walk to the cell they are currently standing on (note: still requires a proper "no cell stacking" implementation) * Monsters will only target a cell within a 15x15 area around them - Moved the "mob_ai" 0x008 configuration setting to mob_unlocktarget, so it applies to all cases of monsters unlocking targets - Cleaned up the unit_stop_attack and unit_stop_stepaction functions * unit_stop_attack now makes sure that the target is always set to 0, even if no attack timer currently exists * replaced several calls of unit_set_target that set target to 0 with unit_stop_attack, this is important because the attack timer should always be deleted at the same time the target is set to 0 * this also fixes the problem that caused monsters to sometimes drop their target after an attack * Minor monster walk and skill use fixes - Fixed a bug that caused monsters to never use their idle skills even if the define MOB_LAZYSKILLPERC was set * The default value of the define is now 100% for spotted mobs and 0% for non-spotted mobs as on official servers - Monsters now use complex path searching for their random walk, so they can also walk around corners now (OFFICIAL_WALKPATH still applies!) - Fixed spotted monsters using their "walk" skills even if nobody is on the map - Monsters will no longer stop when using "walk" skills (they are supposed to be used while walking) * Monster idle skills, chase, final cleanups - Spotted monsters will now use their idle skills even if no players are on the map * This is official behavior and allows them to metamorph and heal up even if nobody is on the map * I originally had concerns about the performance, but as the dynamic mobs option is enabled by default and set to 5 minutes, monsters will only stay "spotted" for 5 minutes when nobody is on the map anyway, this doesn't cost much extra performance - Increased chase range of monsters by 2 * Tested this thoroughly and the effective chase range is actually 2 cells larger than listed in the "Range3" column * Special thanks to ultramage and Michieru for helping me testing this - Some final cleanups in the unit_stop_attack and unit_stop_stepaction functions * Special thanks to icxbb-xx for pointing these out Super ultra mega thanks to Playtester (rAthena 2c86ee435670168,ebd3dc97bc7e,f3916c1baf1,b1330a4c6,c2377c8f54,464dd4586380)
2014-10-05Follow up a46b190764df4cce0b378bc691218ac0814a5673shennetsind1-1/+1
Dropped id2storage entirely, replaced with idb_get (1) it was redundant 2) the rename on a46b190764df4cce0b378bc691218ac0814a5673 was a very poor choice as plugins using the previous version would be calling the other). Signed-off-by: shennetsind <ind@henn.et>
2014-10-05Follow up b9b32ac7609eshennetsind1-1/+1
Fixes issue where kicking a online guild member (on a server with GP_BOUND_ITEMS defined) would render the guilds storage (if not previously loaded during the servers lifespan (since boot)) to be wiped. Special Thanks to Xgear! Signed-off-by: shennetsind <ind@henn.et>
2014-09-21Fix Switching arrows no longer stops attacks. (rathena: a080117a74bd)Michieru1-1/+0
2014-09-21Fixed Bug 8293shennetsind1-1/+14
Implemented official party-leader-changed-packet Special Thanks to kyeme! http://hercules.ws/board/tracker/issue-8293-change-party-leader/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-20Fixed Bug 8186shennetsind1-10/+5
Fixed issue with @disguise characters crashing their party mates when they open the party window. Related 4147d9f7966e7ebd94811248527cc45af1e54941 http://hercules.ws/board/tracker/issue-8186-client-crashes-in-disguise-and-who/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-20Fixed Bug 8138shennetsind1-1/+1
@at persistency no longer sends characters to save point when starting autotrade on a nosave location. http://hercules.ws/board/tracker/issue-8138-autotrade-teleports-char-to-the-savepoint/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-20Fixed Bug 7894shennetsind1-2/+2
default battleground icon on non-allies is now visible! Special Thanks to kyeme. http://hercules.ws/board/tracker/issue-7894-battlegrounds-emblem-and-guardian/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-20Fixed Bug 8263shennetsind1-2/+6
Issue on packetver 20131223 or newer where skill-damage with type 6 would be considered by the client as endure-type, fixing by swapping with value 8 which presents no different graphical representation than it'd otherwise. Special Thanks to kyeme, Rytech, Valo. http://hercules.ws/board/tracker/issue-8263-dec-23-2013-client/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-19Update official Homunculus renewal stats (bug:6970) ↵Michieru1-1/+1
http://hercules.ws/board/tracker/issue-6970-homunculus-renewal-stats/ Follow up (bug 8348): https://github.com/HerculesWS/Hercules/commit/ddc52570a9bf694cdba6445bc02350a94856a583 Update official overbrand damage (special thanks to Rytech) The skill damage is no longer affected by your base level. It is now affected by the enemy's base level (special thanks to Rytech) Updated the list of skills usable while mounted on a mado. (special thanks to Rytech)
2014-09-16Follow: ↵Michieru1-7/+7
https://github.com/HerculesWS/Hercules/commit/8ab61745b81d1cf0602c7998f590aac8749187da This fixed all mob size problem :) Fix estin estun not working properly (bug:7891)
2014-09-14Fixes sitting on trap, SO_VACUUM_EXTREME and RA_CAMOUFLAGEcsnv1-0/+1
- Don't sit while trapped. Bug http://hercules.ws/board/tracker/issue-7825-trap/ SO_VACUUM_EXTREME swapping targets when 2 or more are present and close to each other.
2014-08-20Follow-up to b294026e6614a652c23bb0cea8a0d4dc69d8b125Haru1-6/+6
- Added documentation for the pc->search_item function and formalized its return values. If the searched item is not found, now it returns the newly introduced constant INDEX_NOT_FOUND. - Updated pc->search_item checks to make use of INDEX_NOT_FOUND. - Fixed an issue with anvils not detected by the weapon forginc code, if they were in the first position of the inventory. - Added ITEMID constants for the four anvil types. Signed-off-by: Haru <haru@dotalux.com>
2014-08-20Fixed an issue when Token_Of_Siegfried is used, under certain conditionsIbrahim Hossam1-4/+4
- If the Token_Of_Siegfried is the first item in inventory, it would not get detected and consumed correctly.
2014-08-10- Fix makes knockback default to the leftMichieru1-1/+1
- Fix Back Sliding should not have animation
2014-08-07Corrected several format-string errors through the codeHaru1-26/+28
- Functions that expect a printf-style format string are now marked as such, so that gcc/clang will emit a warning warn you if you mismatch format string and arguments. Signed-off-by: Haru <haru@dotalux.com>
2014-07-11Fixed reserved __identifier violationsHaru1-1/+1
- Complies with CERT DCL37-C - Fixes issue #293 (special thanks to elfring) Signed-off-by: Haru <haru@dotalux.com>
2014-07-10Corrected some SC behaviour, special thanks to Rytechpanikon1-14/+11
- Extracted some methods to check SC blocks - Fixed issue that when players couldn't attack they couldn't talk to NPCs with mob view id either Follow up to ec51176326c6028630835538db67826281d34ffe, fixed minor typo
2014-07-09Fixed possible crash in clif_getareachar_skillunit, related to issue 6561 ↵panikon1-0/+2
(http://hercules.ws/board/tracker/issue-6561-unknown-map-server-crash/) Follow up to 29de937a2d8b485498fa9ce573efebfb64e8d669
2014-07-08Removed redundant data from guardian_data, saving up to 40 bytes per ↵panikon1-2/+2
guardian (10240 bytes total)
2014-05-30Fixed typos inside src/Shido1-48/+48
2014-05-13Removed trailing whitespace (sources)Haru1-16/+16
Signed-off-by: Haru <haru@dotalux.com>
2014-05-10Moved MAX_CARTS and NEW_CARTS defines into common/mmo.hHaru1-1/+2
- Fixes bugreport:8184, allowing re-commit of 94657284973f4037596bae468ebfbee5c217e02b Signed-off-by: Haru <haru@dotalux.com>
2014-05-10Re-commit of "Fixed order of includes in all source files"Haru1-40/+43
This reverts commit 94657284973f4037596bae468ebfbee5c217e02b.
2014-05-10Revert "Fixed order of includes in all source files"panikon1-43/+40
This reverts commit b6b3f58795288701d0e162d43fa6f0a47af913b3. Fixes issue 8184 http://hercules.ws/board/tracker/issue-8184-cart-related/
2014-05-10Optimized THQS_TTShop.txt and corrected a minor mistakepanikon1-3/+3
Added npc_market_data_db to inter-server.conf Added shop message to messages.conf Fixed small typo in clif_GM_kickack
2014-05-09Added documentation regarding trader objects in script_commands.txtpanikon1-11/+1
Added enumered returns to npc_cashshop_buy and to npc_cashshop_buylist
2014-05-09Fixed order of includes in all source filesHaru1-40/+43
- Changed order according to the (upcoming) code style guidelines. - Fixes several issues caused by missing headers when their include order is changed or in plugins. Signed-off-by: Haru <haru@dotalux.com>
2014-05-08Homonculus S Updatemalufett1-5/+14
-Updated and fixed Eira skills to official behavior. Fixed Bug#8168 -http://hercules.ws/board/tracker/issue-8168-crush-strike/?gopid=22703#entry22703 Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
2014-05-07Follow up to 9a425c1panikon1-0/+2
Special thanks to @MishimaHaruna
2014-05-06Bug fixes and other changespanikon1-0/+6
#Fixed issue where a corrupted map cache would lead to a crash *Moved Big-endian compatibility functions to common/utils.h #Fixed issue 8162 *http://hercules.ws/board/tracker/issue-8162-loadnpc-doesnt-trigger-oninit-of-duplicate-npcs/ *Added options to npc_parse_duplicate #Fixed issue 8169 *http://hercules.ws/board/tracker/issue-8169-script-command-guildskill-skill-idlevel-not-working-as-intended/ *Changed *guildskill behavior, now it behaves exactly as depicted in the documentation *Updated *guildskill documentation #Added missing GBI types to mapif_parse_GuildBasicInfoChange now it's possible to change guild exp, lv, skill point and skill information #GeoIP revamp *GeoIP module was partially rewritten *Added several data checks to prevent corruption and crashes *Updated GeoIP database *See https://github.com/maxmind/geoip-api-c/blob/master/libGeoIP/GeoIP.c for more information #Added packetver checks regarding NST_MARKET *Now *tradertype warns if user is trying to use this feature with older clients
2014-04-19Follow up to 6f6a6b3panikon1-25/+32
* Added new method to handle refreshing the storage window when it was closed automatically by the client * http://hercules.ws/board/tracker/issue-8027-when-the-storage-is-open-you-can-use-self-skills * http://hercules.ws/board/tracker/issue-7694-guild-notice Follow up to d57781c * Fixed minor typo as pointed by @MishimaHaruna
2014-04-18# Several minor changes in atcommandspanikon1-0/+20
1. Reallocated and added checks in @jumpto, @jump, @mapmove in order to increase performance * Checks are now made to avoid unnecessary lookups and unnecessary warps 2. Corrected return failure values of @zeny 3. Added messages to * ATclearcart > Warns that it's not possible to clean a cart while vending * ATshowmobs > Asks user to enter a mob name/id and warns if the mob name is invalid * ATgstorage > Warns when another guild member is using the gstorage # Fixed issue where while using storage/gstorage and then refreshing would close the storage but only for the client, the server wouldn't now and this would cause the guild storage to remain locked and the character without ability to do anything.
2014-04-15Fix - Do not allow players to attack while sittingVincent Thibault1-1/+1
2014-04-12Follow up to 6f6a6b3panikon1-1/+1
Fixing small typo in that commit
2014-04-11Fixed issue: 7694panikon1-8/+15
http://hercules.ws/board/tracker/issue-7694-guild-notice/ Follow up to 7a5f7db Follow up to 4147d9f
2014-04-09Fixed issue: 7725panikon1-2/+17
http://hercules.ws/board/tracker/issue-7725-disguise-hide-skill-bug/ Fixed issue: 8027 http://hercules.ws/board/tracker/issue-8027-when-the-storage-is-open-you-can-use-self-skills/ Fixed issue where @at showed it failed when it succeeded
2014-03-31Updated documentation for pc_statusup2 and pc_statusuppanikon1-1/+9
(fixed issue: 7916 http://hercules.ws/board/tracker/issue-7916-wrong-comment-in-pc-statusup2/) Now pc_statusup2 returns stat increase amount as stated in previous documentation Updated *statusup documentation it was wrong Added last update in upgrade index @console.c/.h Documented partially Now two different parsing categories can have functions with same name e.g. - server exit - sql exit
2014-03-22Fixed Bug 8103shennetsind1-1/+1
Issue with dragon mounted icon not showing up after relog. http://hercules.ws/board/tracker/issue-8103-riding-dragon-mount-icon-missing/ Signed-off-by: shennetsind <ind@henn.et>
2014-03-14Follow up 1007d606645c16d5246761976b7648809edb8b1dshennetsind1-0/+7
A bonus. Fixed unitwalk's non-x/y possibility, NPCs can now be set to chase players around for as long as they keep walking, which opens a number of possibilities e.g. help npc y get thru z. Signed-off-by: shennetsind <ind@henn.et>
2014-03-14Fixed Bug 8083shennetsind1-1/+1
Player-looking NPCs will now display properly, thanks to evilpuncker. http://hercules.ws/board/tracker/issue-8083-mob-avail-npc-sprite/ Signed-off-by: shennetsind <ind@henn.et>
2014-03-12Merge branch 'master' of https://github.com/HerculesWS/Herculesmalufett1-15/+11
2014-03-12Fixed Bug#8073malufett1-7/+7
-http://hercules.ws/board/tracker/issue-8073-removing-magic-gear-and-cart/?gopid=22195#entry22195 Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>