Age | Commit message (Collapse) | Author | Files | Lines |
|
interfaces
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
This commit ensures that `sd->status.class` and related variables only
contain Job Classes (i.e. the client-compatible values, where High
Novice 4001) and are never checked against the bitmask-based MapID
values.
As a rule of thumb, from now on, when a variable is named `class`, it
is intended to contain a Job Class ID and not a MapID. The type of such
variable shall be a signed `int16` or `int`.
To ensure that related third party code is also verified when this
commit is merged, the variable `struct mmo_charstatus::class_ (i.e.
`sd->status.class_`) is renamed to `class`.
Some issues in related lines are also fixed, including:
- A wrong check in the char server would prevent the correct detection
of babies in code related to the family exp sharing.
- Baby Arch Bishops would not be affected by Eucharistica.
- A wrong check would cause the `questinfo()` script command not to
display its information for most classes (except 1-1 classes).
- Map IDs and Job Classes were mixed up in `itemdb_jobid2mapid()` and
`itemdb_jobmask2mapid()` for 1-1 classes (causing currently no harm,
since they just happen to coincide).
- The Baby Sura class would not cause parties to be marked as
containing a monk type character (for SLS Team Up purposes).
- Baby Geneticists would bypass the cart check when trying to equip
ammunitions.
- Baby Mechanics would bypass the Mado Gear check when trying to equip
ammunitions.
- Transcendent Shadow Chasers would lose the Stalkers' ability to clone
transcendent skills.
Signed-off-by: Haru <haru@dotalux.com>
|
|
to be ignored
Signed-off-by: Haru <haru@dotalux.com>
|
|
Ported to modern Hercules and cleaned up from Panikon's commits: 40f9ec33868e2240cab013308897898ed252b3e0, a9d646da19e25ab6fcf44dbd1ae7d90c30f6686c, 1aa8581a0aecbfd53e877686c399ffb731dcd75e, 72c645b015ae6130ca7d4309d0fb1413340e7f23, f8c906a0496b9acdae1d8244b1544fa03592061e, 51d88a58983c9552dfd1a0f059e5a031742aed61, 443684b3c77f4c32fe7877a7f8d62debf73b1e93, cf93eafef1f322cd1583226272b7d4008f562da4
Signed-off-by: Haru <haru@dotalux.com>
|
|
- `int save_log` -> `bool chr->show_save_log`
- `bool char_new` -> `bool enable_char_creation`
- `int log_char` -> `bool chr->enable_logs`
- `int log_inter` -> `bool inter->enable_logs`
- `int chr->new_display` -> `int16 chr->new_display`
- `int char_aegis_delete` -> `bool char_aegis_delete`
Split and improved from Panikon's commit 832fb27d4f767e4bc8b68c432d0da00b7cb7a4f9
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Sql -> struct Sql
- SqlStmt -> struct SqlStmt
- SqlDataType -> enum SqlDataType
This is expected to improve compile time, by removing #include cycles (and forward declaring instead)
Signed-off-by: Haru <haru@dotalux.com>
|
|
Also add compiler flag for check for missing noreturn attributes.
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Improved compatibility, portability and standards conformance.
- Since it is not possible to portably and reliably re-use the core's
symbols in plugins, symbols are no longer exported unless explicitly
required, in the UNIX builds. This mimics the Windows behavior and
adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas
for making this possible.
- For convenience, it is no longer necessary to call GET_SYMBOL, since
the plugin will automatically import all the available symbols when
it's loaded, depending on the included headers.
- Plugins are now supposed to include the "common/hercules.h" header
before including anything else. Incluing common/HPMi.h,
common/cbasetypes.h or conf/core.h is no longer necessary, as those
are guaranteed to be automatically included by hercules.h.
- HPM API version bumped to 1.1.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Include directives are now directory-independent.
- This will allow building plugins from other directories in future.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- login_server, char_server, map_server as well as the tools (mapcache)
now have a common command line arguments handling mechanism.
- All of them now accept `--help` (`-h`), `--version` (`-v`) and
`--load-plugin`.
- login_server now accepts `--login-config` and `--lan-config` instead
of relying on positional arguments to override those files. The old
syntax will no longer work, please update your custom startup scripts.
- char_server now accepts `--char-config`, `--inter-config`,
`--lan-config` instead of relying on positional arguments. The old
syntax will no longer work, please update your custom startup scripts.
- mapcache now accepts `--grf-list`, `--map-list`, `--map-cache`,
`--rebuild` in place of, respectively, `-grf`, `-list`, `-cache`,
`-rebuild`.
- A new macro `CMDLINEARG()` is provided, to help defining new command
line argument handlers (i.e. in plugins). the `addArg()` call is still
required, but its syntax has changed. The `help` argument is now of type
`const char *` rather than a function pointer, and it is supposed to
contain the message to show in the `--help` screen. Pass `NULL` if no
help message is desired.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Rather than failing at runtime, plugins that try to access
non-interfaced, unavailable functions or variables, will now show an
error at compile-time.
Signed-off-by: Haru <haru@dotalux.com>
|
|
This includes, and is not limited to: mixed or wrong indentation, excess
whitespace (horizontal and vertical), misalignment, trailing spaces.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
|
|
|
|
- Resolves bugreport:8289
http://hercules.ws/board/tracker/issue-8289-compile-error-vs-2013/
- Disables some winsock-related deprecation warnings.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- 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>
|
|
- Complies with CERT DCL37-C
- Fixes issue #293 (special thanks to elfring)
Signed-off-by: Haru <haru@dotalux.com>
|
|
This reverts commit 94657284973f4037596bae468ebfbee5c217e02b.
|
|
This reverts commit b6b3f58795288701d0e162d43fa6f0a47af913b3.
Fixes issue 8184
http://hercules.ws/board/tracker/issue-8184-cart-related/
|
|
- 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>
|
|
dependency
- Removes the need for map-server to access the interreg table to store the last used ID.
- Login, char and map databases can now be hosted separately.
- Note: the unique_id structure has changed, and it now contains the generator character ID in its upper 32 bits.
- Now NSI_UNIQUE_ID System is enabled always
Special thanks to Haruna.
|
|
Merged~
Thank you for your contribution to Hercules!
|
|
http://hercules.ws/board/topic/4283-introducing-hpm-datacheck/
Signed-off-by: shennetsind <ind@henn.et>
|
|
do query to login table.
Thanks to Haruna to clean it up.
|
|
- 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>
|
|
This is necessary for the upcoming HPM hooking system
|
|
Special Thanks to KeiKun~!
http://hercules.ws/board/tracker/issue-7319-db-name/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Made SQL and strlib functions HPM-friendly, special thanks to Yommy for bringing the issue up.
Added partial map.c support, for the all-handy map[] array, beware that soon the whole map.c renewal design will be commit and when that happens your usage of map.c functions in plugins might require some updates.
Signed-off-by: shennetsind <ind@henn.et>
|
|
Added the last missing functions into the interface, all functions in clif.c are now wired to the interface.
http://hercules.ws/board/topic/237-hercules-renewal/
Also shortened clif->displaymessage to clif->message, removed the old clif->message and merged its functionality with clif->disp_overhead (both use the same packet and do the same thing :P)
-
and a gazillion other stuff:
http://hercules.ws/board/topic/316-introducing-hercules-channel-system/
Signed-off-by: shennetsind <ind@henn.et>
|
|
Signed-off-by: shennetsind <ind@henn.et>
|
|
of its meaning, as requested on tid:69380.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17086 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* Set as off by default, it can be changed in /src/config/core.h.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17080 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
[16969:16991/trunk/src/] will be re-committed in the next 24 hours.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16992 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
Removed /SAFESEH option from MSVC11 projects.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16968 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* TXT save engine is removed and no longer supported.
* See also tid:53926, tid:57717.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15503 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity)
* storage systems are now added via compiler options (WITH_SQL / WITH_TXT)
* multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used.
* due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'.
* login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868).
* removed config options that defined column names in the login table
* removed `memo` and `error message` columns from login db/savefile
* moved `loginlog` table to the logs database
* added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql
* due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully!
* moved third-party includes/libs to a separate directory
* updated project files / makefiles
Changed the way GM levels are handled
* removed conf/gm_account.txt
* added the gm level column to the txt savefile (after 'email' column)
* gm level information is now transferred along with account data
For open problems see bugreport:1889.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
that TXT support has been dropped. There is no guarantee the code base will be managed and it will in the near future be REMOVED. If there is in ANY way TXT support in the future, it will be abstracted through a sql interface so only the sql code has to be maintained.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12572 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12570 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
connection problems ever again. (bugreport:388)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12563 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- Abstraction for the sql code (sql.c/h).
- New configure script and makefiles.
- Restored txt zeny logging code. (r10814)
- Rewrote mapserver's sql code - itemdb, mobdb, mapreg, logs. (r10814)
- Fixed a precedence issue (&& and ) in char_sql/char.c. (r10833)
- Improved db reading code a bit for consistency. (r11077)
- Added separate atcommand for mail deletion. (r11077)
- Corrected a few messages that said "new" instead of "unread". (r11077)
- Broadcast (*) messages now use "*" as the target's name (not ""). (r11077)
- Moved StringBuf code from utils.c/h to strlib.c/h. (r11084 r11117)
- Some misc login server cleanups (reformatting etc). (r11136)
- Corrected/modified some header entries. (r11141 r11147 11148)
- Adjusted VS project files. (r11147)
- Adjusted the way the sql charserver does item saving. (r11192)
- Corrected usage of reserved keyword 'friend' in mmo.h. (r11192)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9891 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
txt/conf/h/c files.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
files so that it should get auto-updated with any code changes in the later.
- The converter will now also convert: account-wide variables, parties, guilds, guild storage and guild castles. At this point the only two things not converted are login-server-wide account variables (##, they belong to the login converter) and homunculus (the SQL save function is messy and doesn't lends itself to be integrated with the converter the way all the other functions are).
- Modified the char servers so they are compatible with the converter, the define TXT_SQL_CONVERT identifies sections unique to each char-server mode (this would had been a hella lot easier if both char servers where the same code-base instead of duplicated code <.<)
- Updated the Makefiles as per the new compiling requirements for the converter.
- misceffect2 will no longer cause the effect on top of the source object when it is the fake npc.
- Added check so that Frost Nova doesn't hides hitting animation on targets.
- Added the missing brackets around the trade logs condition check, thanks to Coltaro.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8908 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
side).
- Cleaned up char server "set all offline" implementation to remove only characters from the map-server from which the packet was invoked. It will also now correctly kick/set-character offline from the map-server if they are connected.
- Cleaned up the char-sql reconnect code. It no longer sets everyone to offline.
- Removed setting "kick_on_disconnect", servers will no longer kick characters out when there's a disconnection. Instead, it'll use the most logical approach: Set characters into a "lost" state when there's a disconnection, on reconnect, resent the list of online-characters, do a sync, and let the difference be characters to be removed. Also, the map-server won't release character data until it's saved and the ack returns from the char-server to prevent data loss (all this data is resent on reconnect for saving anyway).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7600 54d463be-8e91-2dee-dedb-b68131a5f0ec
|
|
- Fixed the cooking success chances. Thanks to Ishizu Chan.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7560 54d463be-8e91-2dee-dedb-b68131a5f0ec
|