Age | Commit message (Collapse) | Author | Files | Lines |
|
Special Thanks to Mhalicot.
Signed-off-by: shennetsind <ind@henn.et>
|
|
equivalent macros
Because 2/3 jumps to perform such a operation is just awful
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>
|
|
- Removed unused, nonportable nullpo checks with formatted message
(related: eAthena r15245)
- Converted nullpo_chk to a macro, to make it easier on the llvm static
analyzer.
- Added more details to the nullpo_info reports (related: eAthena
r15246)
- Ensured that the nullpo check macros evaluate their pointer argument
once and only once, so that it's safe to use with expressions that
assign values or have side-effects.
Signed-off-by: Haru <haru@dotalux.com>
|
|
which was broken 5 years ago in 13106, special Thanks to karazu, Angelmelody and kyeme.
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>
|
|
flag was discarding elegible guild mates.
Special Thanks to kyeme.
http://hercules.ws/board/tracker/issue-7336-gvg-noparty-is-missing/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Modified reflect code so that each reflection source can judge whether to apply or not, necessary for mechanics such as item-bonus reflect triggers even on autoguard while reflect shield does not.
Re-added that "reflect shield" overhead display which I mistakenly removed in fdb6de1aa34086fd4d22ae127437727f556cea3c. Added code to refrain damage numbers from overlapping in the client, which would render them illegible.
Special Thanks to kyeme, Yommy.
http://hercules.ws/board/tracker/issue-7792-safety-wall-reflect-bug-body-relocation-error/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Updated damage reflection logic to reflect the official (but weird to say the least) logic, whereas ATK_BLOCK can trigger reflection (e.g. inside safety wall) instead of only ATK_DEF (atk_def = attack connected, yup misleading name).
Special Thanks to Yommy, kyeme, Haruna.
http://hercules.ws/board/tracker/issue-7792-safety-wall-reflect-bug-body-relocation-error/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fixed skill_id not being passed and thus causing some conditions to never be met, dropped some other conditions that would never be met and thus were just wasting space. Moved clif damage outside so that its only used once and with the overall damage instead of several times aggregating the combined delay.
Special Thanks to Haruna.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fixed reflect shield not respecting maps reduction flags.
Data tested and confirmed on official server, special Thanks to Yommy and Haruna.
http://hercules.ws/board/tracker/issue-7827-reflect-shield-woe-reductions-autoguard/
Signed-off-by: shennetsind <ind@henn.et>
|
|
- This makes it harder to get the item IDs wrong in the code.
- Fixes item 'Slot_Coupon' being incorrectly considered a Spell Book due
to an oversight (wrong item nameid) when the check was introduced.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- 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>
|
|
Corrected size-related constant names (closes #222).
|
|
Special Thanks to Michieru for gathering official server data and testing.
http://hercules.ws/board/tracker/issue-7819-element-tables/
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
- Made possible thanks to (and using base code by) Ai4rei - eAthena
r15263 and add-on patch
http://hercules.ws/board/topic/2974-add-on-patch-for-ea-r15263-commit/
- Modified to allow checking for a percentage of transparent pixels
rather than full image transparency.
- Tweaked to accept some other bmp formats that are currently allowed
by the client.
- The performance hit from enabling this check is negligible (benchmarks
show that scanning an emblem requires about half the time required to
decompress it after it's received), but it does exist, as noted in the
configuration file.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
I'm committing on malufett's behalf.
Signed-off-by: shennetsind <ind@henn.et>
|
|
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.
|
|
- 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>
|
|
There have been requests for the extension of the feature, I was reluctant given more options would cause features relying on the feature to be easier to counter (less accurate), with the modification of the feature to employ options the feature is now configurable at the server owners discretion.
Special Thanks to Haruna
Signed-off-by: shennetsind <ind@henn.et>
|
|
-http://hercules.ws/board/tracker/issue-7737-shadow-form-and-interaction-with-multi-hit-skills/?gopid=20576#entry20576
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
|
|
-where 'bLongAtkDef' affects magic in RE.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
|
|
-Hercules now fully support Monster Transformation.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
|
|
Adjusted range, thanks to haruna realising the feature had been fixed on recent clients.
Special Thanks to ossi0110 for testing the feature on multiple 2013 clients, which allowed us to restrict the date range more accurately.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Regarding http://hercules.ws/board/topic/414-auction-feature-all-screwed-up
Signed-off-by: shennetsind <ind@henn.et>
|
|
http://hercules.ws/board/topic/2455-introducing-bank-support/
Thanks to Yommy, Haru!
Signed-off-by: shennetsind <ind@henn.et>
|
|
Thanks to Haruna, ossi0110
Signed-off-by: shennetsind <ind@henn.et>
|
|
Partial merge of a4b7719bde71b7fa82a2fcebb9084a3dafb1dc5c
Closes #153
Signed-off-by: shennetsind <ind@henn.et>
|
|
http://hercules.ws/board/topic/2399-hpm-hooking-now-available/
Signed-off-by: shennetsind <ind@henn.et>
|
|
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, removed duplicate mentions of party within calls to shorten wherever it made sense to, and renamed some members to ease reading.
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>
|
|
Fully Integrated. Closes #97
Signed-off-by: shennetsind <ind@henn.et>
|
|
Issue identified and solved by Michieru, Thanks!
Signed-off-by: shennetsind <ind@henn.et>
|
|
Fully Integrated
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>
|
|
Implemented official guild notice behavior of re-displaying upon teleport, added conf/battle/guild.conf setting to modify this.
Special Thanks to kyeme, Frost.
http://hercules.ws/board/tracker/issue-7694-guild-notice/
Signed-off-by: shennetsind <ind@henn.et>
|