Age | Commit message (Collapse) | Author | Files | Lines |
|
Made Possible Thanks to the Woonderful Haruna! <3
Commit also fixes an inconsistency in the ERS, where it'd start with clear memory but would use garbage upon resizing, also implements a new ERS option that clears entries as soon as pass by ers_free, so that they'll be all shinny for when ers_alloc reuses them.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Warnings detected thanks to Xcode's compiler settings (more strict by
default) and clang, warnings mostly but not only related to data sizes
on 64 bit systems, that were silenced until now by very lax compiler
settings.
- This also decreases by a great deal the amount of warnings produced by
MSVC in x64 mode (for the adventurous ones who tried that)
- Also fixed (or silenced in case of false positives) the potential
issues pointed out by the (awesome) clang static analyzer.
- Patch co-produced with Ind, I'm merging and committing in his place!
Signed-off-by: Haru <haru@dotalux.com>
|
|
Special Thanks to Haru
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Case-sensitive AegisName and Sprite ID lookups are now optional,
controlled by the case_sensitive_aegisnames battle config flag (you
can set it to "no" to restore the case insensitive behavior.)
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
pc_checkitem is now triggered by @reloaditemdb to ensure modified conditions are respected, also a performance boost that causes the itemlist/cartlist/storagelist/gstoragelist lookups to only be triggered on demand instead of on every teleport.
Closes #219
Fixed ancient monster ai bug that caused mobs to consider themselves elegible targets, which would waste status_check_skilluse and battle_check_target calls.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- The .favorite field of newly added inventory items wasn't correctly
initialized to zero, potentially causing data loss (fixes
bugreport:7854, thanks to Vincent, GrumpyPanda).
Signed-off-by: Haru <haru@dotalux.com>
|
|
Official item drop announce support, currently hardcoded list -- we'll be following up shortly with a decent way of storing it.
Special Thanks to Yommy, Beret, kyeme.
http://hercules.ws/board/tracker/issue-7858-monster-rare-drop-announcement/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Thanks to kyeme for bringing it to our attention.
Signed-off-by: shennetsind <ind@henn.et>
|
|
monster's healing now refreshes their hp bar accordingly.
Special Thanks to Beret.
http://hercules.ws/board/tracker/issue-7794-healing-in-monsters/
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Sanitized all potentially unsafe macros (related eA:15259)
- Improved some function-like macros to evaluate their argument only
once and keep it in a temporary variable. This improves performance
in the damage calculation related code.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- Follow-up to 124ab2a1cdb344f24170a4d91f7000ebabf39b40
- Replaced numeric IDs in NPC definitions and setnpcdisplay calls with
the appropriate constants
- Made possible thanks to Ind
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: shennetsind <ind@henn.et>
Conflicts:
src/map/pc.c
|
|
Introducing the Hercules Standalone Script Syntax Checker
|
|
Replaces the previous 'first' flag with a multi-option flag capable of selectively determining calls where the recalculation must not be hold by delayed damage, and therefore must take place immediately.
This fixes issues caused by actions that require immediate recalculation e.g. on-level-up max_hp update, also modified @baselevel where status_calc was being called after the heal and not before, causing it not to be fully healed.
Special Thanks to Haruna! <3
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Added a command line argument '--script-check' to check a script's
syntax without running the server (and without requiring a SQL
connection). Usage: ./map-server --script-check /path/to/the/script.txt
- For convenience, a script-checker bash script is provided, to set the
path correctly when called from a different directory. Usage:
/path/to/Hercules/script-checker /path/to/the/script/to/check.txt
- While the script checker will supposedly work under windows as well,
no convenience scripts are currently provided for platforms other than
UNIX (feel free to open a pull request with a .bat launcher or
whatever you like)
- Integration with IDEs or text editors is possible. In fact, I already
have a fully functional plugin for vim (through vim-syntastic), and if
there's enough interest, I'll publish it. - screenshot: http://d.pr/i/NOBD
- If you want an online checker, http://haru.ws/scriptchecker/ is
running this code, without modifications and will be kept up to date
(without any warranty though.)
- Special thanks to Ind, Yommy, Streusel, who helped making this
possible, in a way or another.
|
|
Attempting to mimic the official as suggested in http://hercules.ws/board/topic/250-official-vip-system/
The variables can be read and modified thru scripting as well as sql, the patch introduces 3 new pc-arams 'ModExp','ModDrop' and 'ModDeath' for that purpose.
The OnLogin modifier display is not the real deal though -- wasn't able to get it to output properly (though that might have been my client files failt)
Up for review.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- This fixes an issue with timers that stop working after about 24-49
days when the tick overflows (note that this may happen much earlier
than that, and at hard to predict times, on some systems)
- Updated the RDTSC help message in the configure script to also warn
users about issues with SpeedStep enabled systems.
- On Windows, tick() still has a resolution of 10~15ms (or even as low
as 100ms on some systems). A TODO comment (thanks, Ai4rei) was added
for a follow-up patch, as I want this one to be as small as possible)
- Note: on Windows versions earlier than 6.x (Vista, Server 2008), the
tick overflow issue is NOT fixed, since they don't support the
function used to retrieve a 64 bit tick. This isn't a big issue, since
those platforms are already - or going soon to be - out of their
extended support period, and it's already advisable to upgrade, for
other reasons. If you're the unfortunate user of such a system, it is
recommended that you reboot your machine at least once every 49 days
for Hercules to work reliably.
- Note: To clear some doubts, since I've already been asked, this has
absolutely NOTHING to do with 32/64 bit CPUs or OSes. It's all about
a variable's size, not the size of registers of your CPU, and your
32bit CPU will be able to handle this just fine.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fully Interfaced.
Moved missing vars and declarations of interest into the interface, removed duplicate mentions of map within calls to shorten wherever it made sense to.
Ladies and Gentleman its my pleasure to announce that with this commit we've revised all of map-server, we've learned a hell lot from this, improved many things on the go and have a number of features to be released thanks to this. *cough* hpm hooking *cough*.
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
Moved missing vars and declarations of interest into the interface.
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
Moved missing vars and declarations of interest into the interface.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Note to plugin developers: if you were importing the "map", you'll need
to change it to "maplist"
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Conflicts:
src/map/chrif.c
src/map/clif.c
src/map/homunculus.c
src/map/pet.c
src/map/script.c
src/map/skill.c
src/map/status.c
All clear.
|
|
Also removed duplicate mentions of timer within calls to shorten.
|
|
(related: b9c8f57)
Most renames are trivial (just to avoid shadowing global variables, even
if they currently did no harm), but there were some cases of partly
renamed variables that caused some NULL checks to always pass and who
knows what could have been happened when they were too subtle to make
the application crash.
Also corrected some potentially unsafe macro definitions
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes bugreport:7717, special thanks to quesoph
http://hercules.ws/board/tracker/issue-7717-map-crash-when-warping-on-a-floating-npc/
- Also changed various map[foo].index to the map_id2index(foo) macro.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fully Integrated. Closes #110
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Integrated
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Integrated
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Integrated.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Interfaced.
Special Thanks to Haruna
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Interfaced
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Interfaced
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes an issue where it wasn't possible to use bc_blue or bc_woe at
the same time as bc_map, bc_area or bc_self.
(this partly works around bugreport:7693 -
http://hercules.ws/board/tracker/issue-7693-character-with-name )
- Replaced bc_* related values from various places through the sources
with constants.
Signed-off-by: Haru <haru@dotalux.com>
|
|
-Where HW_SOULDRAIN should work only in single target.
Fixed Bug#7670
-Where PA_GOSPEL is not working properly.
Fixed Bug#7668
-Bonus 'bLongAtkRate' is not working properly.
Fixed Bug#7512
-Bonus 'bCritAtkRate' is not working properly.
Fixed Bug#7515
-Fixed MO_EXTREMITYFIST animation.
-Fixed RE armor/weapon storage tab positioning.
-Fixed HW_MAGICPOWER cast time.
-Fixed '/item' '/monster' aegis command where it not working properly in some item names or monsters.
-Added NC_DISJOINT cast time hidden modifier.
-Updated RE ATK for post damage modifier.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
|
|
Added the missing support for conf/battle/gm.conf::atcommand_mobinfo_type on @mobinfo (partially from rathena)
Modified @ii to stop always displaying 'monsters dont drop this item' while the configuration is on.
Special Thanks to Napster.
http://hercules.ws/board/tracker/issue-7453-mobinfo-iteminfo-not-showing-the-correct-information-depending-the-level/
Follow up 2fbec282b9b3eb84f710d5537f70e6bc221187b3
Missing messages.conf entry
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
|
|
Now uses binary heap defined in `db.h`.
Walk requests now use A* (hard) pathfinding only to match game client
behavior.
Added defines for movement cost.
Added some documentation & comments.
|
|
Special Thanks to Masao for bringing this to us.
mob parser will now throw out warnings when a field in the mob db has a value higher than the field supported (e.g. if you get a monster with 70k hp it will tell you its higher and cap it to the maximum supported, which is 65k), this failsafe also works for def/mdef, str/agi/vit/int_/dex/luk.
Modified the formula that measures skill field data for skill levels higher than the maximum (e.g. mistress' high-level jupitel thunder), to match the previous version, also fixed a issue where depending on the level the blewcount could get higher than the systems' hardcoded 25-cell maximum.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Data provided by clang
Signed-off-by: shennetsind <ind@henn.et>
|
|
suggested in topic #1204. See documentation for more information on these commands.
Also fixed leftover from db_use_sql split.
Signed-off-by: Matheus Macabu <mkbu95@gmail.com>
|
|
Signed-off-by: Matheus Macabu <mkbu95@gmail.com>
|