Age | Commit message (Collapse) | Author | Files | Lines |
|
- Fixes bugreport:7901, thanks to Angelmelody
http://hercules.ws/board/tracker/issue-7901-about-pass-variable-type-as-function-parameter
- Bonus: debugmes can now take both strings and numbers (i.e. to print a
number variable you no longer need to do 'debugmes "" + .@num;')
Signed-off-by: Haru <haru@dotalux.com>
|
|
Info:
http://hercules.ws/board/topic/3614-christmas-patch-gifto/
Signed-off-by: shennetsind <ind@henn.et>
|
|
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>
|
|
equivalent macros
Because 2/3 jumps to perform such a operation is just awful
Signed-off-by: shennetsind <ind@henn.et>
|
|
Because 2 jumps to get a single value is just awful.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Signed-off-by: shennetsind <ind@henn.et>
|
|
and thus doesn't cause confusion (and it wasn't loop-related anyway).
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>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Special Thanks to Haru
Signed-off-by: shennetsind <ind@henn.et>
|
|
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Removed duplicate code shared between script_hp_add and
script_parse_builtin.
- Improved error handling in script_hp_add to be on par with the
script_parse_builtin version.
- Added script->add_builtin function, providing a hooking point for
plugins (i.e. text editor syntax definition generators) to obtain the
builtin commands list.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Improved memory usage of the quest log system. (saves up to 75kB per
online character). Fixes issue #133.
- Fixed various issues with quest entries disappearing from characters
without an apparent reason, or monster kill counters getting stuck -
the issues were caused by a de-synchronization between the two
parallel questlog arrays in map_session_data.
- Added some code documentation.
- Thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow up to c6c2ad187c386d8d27d3336dcbdd5a92555493d2
- Special thanks to Ind
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes bugreport:7810, thanks to Wend, kyeme, evilpuncker, jaBote, and
various other people I may be forgetting to mention
http://hercules.ws/board/tracker/issue-7810-disguise-script-command
- Due to the nature of this change, I'm leaving the deprecation messages
lingering around for a while more (as errors rather than warnings), to
make sure they won't pass unnoticed, in case you haven't yet updated
your custom scripts to comply with this.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Any scripts using the wrong case, that were throwing deprecation
warnings until now, will become invalid.
- Related to bugreport:7810.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Assignment operators would not work correctly, or at all, when
followed by an expression (as opposed as a value).
- Fixes bugreport:7864, thanks to Lelouch, Ind.
- Added associativity tests for those operators to the self-test script.
- Added total error count to the self-test script (thanks to Lighta.)
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- [ This commit is part of a larger script engine related update ]
- Adjacent string literals are now automatically concatenated into one
string upon parsing.
- Adjacent string literals are string literals (i.e. "such as this",
with only whitespace (including line breaks and/or comments) between
them. For example, the lines:
mes "this will be concatenated " /* skipping this
comment */ " into one string"; // at parse time
will produce an output of "this will be concatenated into one string".
- The feature brings parity with other languages (i.e. C), and makes it
easier to split long strings in multiple lines, without having to
resort to a, slower, run-time string concatenation operator ('+')
- Special thanks to Trojal for the idea.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- [ This commit is part of a larger script engine related update ]
- Operator precedence rules now closely follow those of languages such
as C and derivates/related (C++, Java, PHP, etc.)
- Please note that if you had custom scripts with non parenthesized
expressions containing bitwise |, &, ^ operators, they may behave
incorrectly now (or perhaps they were already behaving incorrectly,
since the previous behavior was undocumented).
- Added an up to date operator precedence/associativity table in the
script documentation.
- Added an operator/keyword self-test script in the npc/custom folder,
in case if may be of some use for future regression-testing.
|
|
- [ This commit is part of a larger script engine related update ]
- Suffix ++ and -- operators now behave like in other languages
(updating the variable *after* its value is returned.)
- Prefix ++ and -- operators are added for parity with other
scripting/programming languages. They update the variable they're
applied to *before* returning its value.
- Please note that the implementation of the prefix form of those
operators (like it happens in most languages) is more efficient than
the suffix form. '++.@i' is (slightly) faster than '.@i++', or at
least not slower.
- Fixed some outdated script debug functions.
- Follow-up to c18f438.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- [ This commit is part of a larger script engine related update ]
- Since: c18f438
Signed-off-by: Haru <haru@dotalux.com>
|
|
Thanks to kyeme for bringing it to our attention.
Signed-off-by: shennetsind <ind@henn.et>
|
|
|
|
Follows up 665f1306a130d4b8c359972bf4e58ef9d3bd9cd8
http://hercules.ws/board/tracker/issue-7799-sc-moonstar/
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>
|
|
|
|
Fixed shutdown memory manager warning.
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixed bugreport:7818, thanks to sevenzz23
http://hercules.ws/board/tracker/issue-7818-error-when-compiling/
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Reduced number of false positives when parsing .@scope variables.
- Added correct error source information where it previously said
'source not found'.
- Special thanks to Ind.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- These messages are temporary, only meant to help those with custom
scripts to transition them to the correct case-sensitive syntax. If
you ignore the deprecation messages you encounter, your scripts may
continue to work just as they did until now, but this will no longer
be true in the near future, and they may stop working at any time.
If you ignore this, and your scripts break, you'll get to keep the
pieces :)
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Added a note about variables and command scripts case sensitivity.
Even though the engine still accepts variable, function and command
names in a case insensitive way, it is discouraged to rely on such
behavior. Please update your custom scripts as soon as possible.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- Added support for constants whose name begins with a number.
- Follow-up to 124ab2a1cdb344f24170a4d91f7000ebabf39b40.
- Replaced calls to setnpcdisplay with hardcoded numeric IDs to
constants.
- Thanks to Yommy.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Special Thanks to Haruna
Signed-off-by: shennetsind <ind@henn.et>
|
|
- Fixes bugreport:7804, thanks to kyeme
http://hercules.ws/board/tracker/issue-7804-warning-c4090-function
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The command now correctly skips the already equipped items, rather
than trying to equip them again (and fail during the process).
- Special thanks to Poison.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: shennetsind <ind@henn.et>
Conflicts:
conf/messages.conf
src/common/mmo.h
src/map/pc_groups.c
src/map/pc_groups.h
|
|
|
|
Introducing the Hercules Standalone Script Syntax Checker
|
|
SC_MOONSTAR, SC_SUPER_STAR are no longer removeable by sc_end all, and sc clear. Modified sc_config.txt, added a new flag (0x80/128) for such cases.
http://hercules.ws/board/tracker/issue-7799-sc-moonstar/
Special Thanks to kyeme.
Signed-off-by: shennetsind <ind@henn.et>
|
|
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.
|
|
- For better machine-parsing of such messages (i.e. in IDEs)
Signed-off-by: Haru <haru@dotalux.com>
|
|
Item in shadow slots are now able to give bonuses properly, thanks to rosfus for pointing it out!
Also added the missing constants for script handling.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Im pretty sure its on the clif.c
Signed-off-by: sevenzz23 <sevenzz23@yahoo.com>
|
|
Fonts are now relog-persistent.
Font items are now toggle-on/off, they no longer go away on use, they go away when their rental duration is over (and the font effect goes back to original).
Special Thanks to Yommy for all the data!
Signed-off-by: shennetsind <ind@henn.et>
|
|
query_sql will now halt the script execution when a invalid query is used.
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>
|
|
Quest Bubbles (Actually Works Finally)
|