Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Add configure flag --enable-packetver-ad
Add defines for AD into mmo.h
Add messages list for AD clients.
|
|
Add configure flag --enable-packetver-sak
Add defines for SAK into mmo.h
Add messages list for SAK clients.
|
|
|
|
Source: http://ro.gnjoy.com/news/update/View.asp?seq=163&curpage=1
Script Commands -
```
achievement_progress(<ach_id>,<obj_idx>,<progress>,<incremental?>{,<char_id>});
```
Includes an achievement_db.conf generator that reads from the item_db, mob_db (server side) and achievement_list.lub files to determine valid achievement entries based on item/monster availability. Achievements containing unsupported entries are commented out.
This feature, although renewal-only in official servers, is capable of being used in pre-renewal mode on Hercules.
Does not include the title system yet.
A big thanks to -
@MishimaHaruna for constantly reviewing.
@4144 for all the support.
@Asheraf for a lot of official information.
Co-authored-by: "Dastgir" <dastgirp@gmail.com>
|
|
|
|
|
|
Added item options fields into this packet.
Updated other things for support for report item options in vending.
Buying store not supported for now.
|
|
|
|
|
|
|
|
Implemented login date for guild members.
|
|
PACKETVER_RE_NUM defined to PACKETVER only if defined PACKETVER_RE.
PACKETVER_ZERO_NUM defined to PACKETVER only if defined PACKETVER_ZERO.
PACKETVER_MAIN_NUM defined to PACKETVER only if not defined PACKETVER_RE and not defined PACKETVER_ZERO.
|
|
Signed-off-by: Megasantos <jonataandretta@hotmail.com>
|
|
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
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
|