Age | Commit message (Collapse) | Author | Files | Lines |
|
All official features work including the autokick for inactive members
And the system is completely customizable.
|
|
Add support for Ragnarok zero clients, split packets.h again
|
|
implement homunculus autofeeding for 2017 clients
|
|
clients.
|
|
|
|
Remove MAX_SKILL in favor of MAX_SKILL_DB, when referring to the
maximum skill DB index. This is opposed to MAX_SKILL_ID, the maximum
skill ID.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Need for packet parser.
|
|
|
|
|
|
The following variables are now moved to `sd->status.look` (from
`sd->status`): `head_top`, `head_mid`, `head_bottom`, `robe`
Signed-off-by: Haru <haru@dotalux.com>
|
|
`sd->status.shield` is renamed to `sd->status.look.shield` and only
holds ViewSprite IDs. Its previous other meaning is now transferred to
`sd->has_shield`, of boolean type (to detect the presence of a shield)
Signed-off-by: Haru <haru@dotalux.com>
|
|
`sd->status.weapon` is renamed to `sd->status.look.weapon` and only
holds ViewSprite IDs. Its previous other meaning is now transferred to
`sd->weapontype` (holding the currently equipped weapon type,
considering both hands at once)
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The field was used both for sprite view IDs and for weapon or
ammunition subtypes. Now the fields 'ViewSprite' and 'Subtype' are
used respectively.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
Dismemberment of `storage_data` from `mmo_charstatus`.
|
|
Remove loading and saving of storage_data through char.c
Re-declaration of structure storage_data as a vector.
Re-code of portions in the map-server using storage_data.
A new approach is taken by saving the loaded storage data from sql into memory for the duration of the session, thereby removing the need of querying the database to re-load all items everytime a storage save routine is issued from the map-server.
Saving of storage items is done through a new function that significantly reduces the number of queries compared to char_memitemdata_tosql(), and therefore run-time speed. This method potentially reduces the number of update and delete queries from MAX_STORAGE (which could be >= 600) times to literally 1.
Storage items are stored in a dynamically allocated array and handled accordingly.
struct mmo_charstatus size reduces by 34,800 bytes.
Update pc_checkitem() with masks for item checks.
`sd->state.itemcheck` has been changed to `sd->itemcheck` of type `enum pc_checkitem_types`
`battle/items.conf` has been updated to reflect configuration changes.
Further updates to assert a successful reception of storage data in related functions.
|
|
|
|
Added summer2_ignorepalette configuration
|
|
Implementation of Item Options System.
|
|
Allows the infusing of equipments with bonus item options.
This feature is constrained to clients of packet versions greater than or equal to `20150226`.
Item Options and their effects are defined server-side in `db/item_options.conf` and client side in `data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub`
The ID of the option must tally with the correct index of the description provided in the client side lua file to avoid bugs.
IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants.
An additional flag `disable_options` has been added to sql, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to item_db.conf files.
Script commands documentation is also included.
SQL file updates are included.
Credits: [Smokexyz](https://github.com/Smokexyz)
Style and Script Fixes by [Asheraf](https://github.com/Asheraf)
Initial design Idea by [secretdataz](https://github.com/secretdataz)
|
|
- kRO Mains recently increased their character slots from 11 to 12.
|
|
This commit adds the function `pc->famelist_type()` to retrieve the
appropriate fame list for a given job (common operation). When the given
job ID doesn't have an appropriate fame list, the newly introduced value
RANKTYPE_UNKNOWN is returned.
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>
|
|
The enum values are now written in a more explicit way, showing how
they're composed (upper mask + base job).
A future-proof static assertion is added, to make sure the base jobs
won't overlap the upper masks.
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
2015-12-16
Added New Char Creation Packet(0xa39).
Added Placeholder of JOB_SUMMONER
|
|
Fixed issue: 8115, now start items can be equipped as well
Ported to modern Hercules and cleaned up from Panikon's commits: c6482e9870645ffe59a6a059b819574d4ac79fd9, 832fb27d4f767e4bc8b68c432d0da00b7cb7a4f9, f81b579899e3a15bd472ca8c6a6e0116c43bec92, e23723725499b617def03d05661eca637edaeabd, 0b783a83d82e588efd760f7f4baec0c8074a6fd1, 1b7de91308a57ea07b158ed95a2515a3c8cc36bd, 677d3430cbda0962b320a60cf499e9dadf637d00
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fixes several -Wsign-compare issues
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fixes several -Wsign-compare issues
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
|
|
Rewritten incoming/outgoing packet handlers to use structs instead of
manipulating the WFIFO buffer bytes directly
Signed-off-by: Haru <haru@dotalux.com>
|
|
closes #1213
|
|
- Unique ID could get duplicated (resulting in an apparent item
duplication, while it's only unique ID corruption). Fixes #1191
- Removed duplicated code (char_inventory_to_sql, being an almost exact
clone of char_memitemdata_to_sql)
Signed-off-by: Haru <haru@dotalux.com>
|
|
Also fix some array sizes.
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- The variable should be signed, since it uses the value -1 to indicate
infinite duration (and it's stored as signed in the database).
- Added #define for the special value -1 (INFINITE_DURATION).
- This fixes an issue causing status changes to fail being saved to
database (thanks to Michi for reporting it).
- Related to commit 8dc75721.
Signed-off-by: Haru <haru@dotalux.com>
|
|
WFIFO/RFIFO.
Change packet database enums to defines in mmo.h
|
|
custom permissions are added.
|
|
implementation
As per ultramage's suggestion in #926
Signed-off-by: Haru <haru@dotalux.com>
|
|
*This skill is supported only by 2015-08-05aRagexeRE clients onwards.*
Closes #1025 as merged
Signed-off-by: Haru <haru@dotalux.com>
|
|
Closes #974 as merged
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
since we can freely adjust the length of the variable name
just edit this value and edit in main.sql
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Fixes #903 and other similar problems
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Changed the hplugin_data_store's array into a VECTOR.
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Several explicit casts are removed, to have a slightly better
type-checking at compile time.
- A destructor function is provided, to remove code duplication.
Signed-off-by: Haru <haru@dotalux.com>
|