summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md96
-rw-r--r--Hercules.xcodeproj/project.pbxproj12
-rw-r--r--README.md18
-rw-r--r--conf/login/login-server.conf16
-rw-r--r--conf/map/battle/client.conf2
-rw-r--r--conf/map/battle/feature.conf5
-rwxr-xr-xconfigure65
-rw-r--r--configure.ac33
-rw-r--r--db/constants.conf25
-rw-r--r--db/pre-re/item_db.conf2
-rw-r--r--db/pre-re/skill_db.conf368
-rw-r--r--db/re/item_db.conf2
-rw-r--r--db/re/skill_db.conf372
-rw-r--r--db/skill_reproduce_db.txt204
-rw-r--r--doc/constants.md27
-rw-r--r--doc/item_db.txt11
-rw-r--r--doc/sample/getiteminfo.txt21
-rw-r--r--doc/sample/npc_test_setitemx.txt11
-rw-r--r--doc/script_commands.txt78
-rw-r--r--npc/custom/item_signer.txt2
-rw-r--r--npc/custom/itembind.txt12
-rw-r--r--npc/custom/quests/quest_shop.txt8
-rw-r--r--npc/instances/EndlessTower.txt2260
-rw-r--r--npc/instances/NydhoggsNest.txt3366
-rw-r--r--npc/instances/OrcsMemory.txt726
-rw-r--r--npc/instances/SealedShrine.txt1879
-rw-r--r--npc/merchants/socket_enchant.txt9
-rw-r--r--npc/merchants/socket_enchant2.txt4
-rw-r--r--npc/other/Global_Functions.txt158
-rw-r--r--npc/other/monster_race.txt2
-rw-r--r--npc/quests/cooking_quest.txt4
-rw-r--r--npc/re/instances/BakonawaLake.txt652
-rw-r--r--npc/re/instances/BuwayaCave.txt460
-rw-r--r--npc/re/instances/EclageInterior.txt738
-rw-r--r--npc/re/instances/HazyForest.txt1199
-rw-r--r--npc/re/instances/OldGlastHeim.txt1447
-rw-r--r--npc/re/instances/ghost_palace.txt407
-rw-r--r--npc/re/instances/octopus_cave.txt290
-rw-r--r--npc/re/instances/saras_memory.txt1029
-rw-r--r--npc/re/merchants/coin_exchange.txt2
-rw-r--r--npc/re/merchants/enchan_mal.txt42
-rw-r--r--npc/re/quests/eden/eden_tutorial.txt6
-rw-r--r--npc/re/quests/quests_dewata.txt2
-rw-r--r--sql-files/item_db.sql2
-rw-r--r--sql-files/item_db2.sql2
-rw-r--r--sql-files/item_db_re.sql2
-rw-r--r--sql-files/main.sql2
-rw-r--r--sql-files/mob_db.sql2
-rw-r--r--sql-files/mob_db2.sql2
-rw-r--r--sql-files/mob_db_re.sql2
-rw-r--r--sql-files/upgrades/2017-11-04--10-39.sql6
-rw-r--r--sql-files/upgrades/index.txt1
-rw-r--r--src/char/char.c311
-rw-r--r--src/char/int_homun.c19
-rw-r--r--src/char/int_quest.c14
-rw-r--r--src/char/int_rodex.c205
-rw-r--r--src/char/int_storage.c26
-rw-r--r--src/common/HPMDataCheck.h8
-rw-r--r--src/common/HPMSymbols.inc.h2
-rw-r--r--src/common/mmo.h18
-rw-r--r--src/common/nullpo.h9
-rw-r--r--src/common/sql.c99
-rw-r--r--src/common/sql.h2
-rw-r--r--src/login/account_sql.c34
-rw-r--r--src/login/lclif.c15
-rw-r--r--src/login/lclif.p.h17
-rw-r--r--src/login/login.c140
-rw-r--r--src/login/login.h21
-rw-r--r--src/map/Makefile.in7
-rw-r--r--src/map/atcommand.c19
-rw-r--r--src/map/battle.c1
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/chrif.c6
-rw-r--r--src/map/clif.c331
-rw-r--r--src/map/clif.h16
-rw-r--r--src/map/elemental.c2
-rw-r--r--src/map/homunculus.c7
-rw-r--r--src/map/homunculus.h2
-rw-r--r--src/map/intif.c22
-rw-r--r--src/map/itemdb.c6
-rw-r--r--src/map/itemdb.h4
-rw-r--r--src/map/map.c6
-rw-r--r--src/map/map.h5
-rw-r--r--src/map/mapreg_sql.c6
-rw-r--r--src/map/mercenary.c2
-rw-r--r--src/map/mercenary.h2
-rw-r--r--src/map/mob.c19
-rw-r--r--src/map/mob.h9
-rw-r--r--src/map/npc.c32
-rw-r--r--src/map/npc.h3
-rw-r--r--src/map/packets.h8011
-rw-r--r--src/map/packets_keys_main.h (renamed from src/map/packets_keys.h)944
-rw-r--r--src/map/packets_keys_zero.h118
-rw-r--r--src/map/packets_shuffle_main.h9537
-rw-r--r--src/map/packets_shuffle_zero.h489
-rw-r--r--src/map/packets_struct.h86
-rw-r--r--src/map/pc.c54
-rw-r--r--src/map/pc.h2
-rw-r--r--src/map/pet.c8
-rw-r--r--src/map/script.c339
-rw-r--r--src/map/script.h27
-rw-r--r--src/map/skill.c853
-rw-r--r--src/map/skill.h111
-rw-r--r--src/map/status.c44
-rw-r--r--src/map/status.h2
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Defs.inc246
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.Hooks.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_char.sources.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc62
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc17
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.Hooks.inc403
-rw-r--r--src/plugins/HPMHooking/HPMHooking_login.sources.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc54
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc15
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc569
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.sources.inc2
-rwxr-xr-xtools/ci/travis.sh6
119 files changed, 22833 insertions, 16719 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b18826d20..281639f64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,96 @@ and this project does not adhere to [Semantic Versioning](http://semver.org/spec
If you are reading this in a text editor, simply ignore this section
-->
+## [v2018.01.14] `January 14 2018`
+### Added
+- Added support for the `AllowReproduce` flag in the skill DB. This supersedes the skill_reproduce_db. (#1943)
+- Added support for the `ZC_PROGRESS_ACTOR` packet. The packet is exposed to the script engine through the `progressbar_unit()` command (available on PACKETVER 20130821 and newer). (#1929)
+- Added support for the new item drop packet for the Zero clients. The packet is controlled by the `ShowDropEffect` and `DropEffectMode` item DB flags and ignored by non-Zero clients. (#1939)
+- Added support for the new Map Server Change packet 0x0ac7. (part of #1948)
+
+### Changed
+- Always enabled assertions and null pointer checks. In order to disable them (very discouraged, as it may lead to security issues), it is now necessary to edit `nullpo.h`. (#1937)
+- Disabled the address sanitizer's memory leak detector in the travis builds, since it produced failures in third libraries. (#1949, #1952)
+- Applied script standardization to the Nydhogg's Nest instance script. (#1871)
+- Split packet_keys.h into separate files for main clients and zero clients. (part of #1948)
+- Split packets_shuffle.h into separate files for main clients and zero clients. (part of #1948)
+- Replaced the custom bank unavailable error message with the actual bank check error packet. (part of #1948)
+- Updated and corrected the party member and party info packets. (part of #1948)
+- Updated README.md with more relevant badges and links (added Discord, removed Waffle, added more GitHub information). (#1951)
+
+### Fixed
+- Updated Xcode project to include the RODEX related files. (#1942)
+- Fixed RODEX loading mails when it requires multiple packets. (#1945, issue #1933)
+
+### Removed
+- Removed the skill_reproduce_db, now superseded by the `AllowReproduce` skill flag. (part of #1943)
+
+## [v2017.12.17] `December 17 2017`
+### Added
+- Implemented Homunculus Autofeeding, available on the 2017 clients. The feature can be disabled by flipping `features.enable_homun_autofeed` in feature.conf. (#1898)
+- Added support for the newly released Ragnarok Zero clients. The client type is controlled with the `--enable-packetver-zero` configure-time flag (disabled by default). (#1923)
+
+### Changed
+- Applied script standardization to the Old Glast Heim instance script. (#1883)
+- Split packets.h into two files: packets.h and packets_shuffle.h. (part of #1923)
+
+### Fixed
+- Corrected a wrong path displayed in an error message pointing to the map-server configuration. (#1913)
+- Fixed the natural expiration of the Poison status when under the effect of Slow Poison. (#1925)
+
+## [v2017.11.19+2] `November 28 2017` `PATCH 2`
+### Fixed
+- Fixed an item loading failure in RODEX. (#1917, issue #1912)
+- Fixed invisible NPCs (such as `FAKE_NPC`) being displayed as novices. (#1918, issue #1916)
+
+## [v2017.11.19+1] `November 24 2017` `PATCH 1`
+### Fixed
+- Suppressed assertions in the Skill DB accessors when called with `skill_id = 0` (normal attacks). (#1910, issue #1909)
+
+## [v2017.11.19] `November 19 2017`
+### Added
+- Added several missing members to the login interface. (Part of #1891)
+- Added support for colored character server population counter in the service selection list. Configurable through `users_count` in login-server.conf. (#1891)
+- Added top-level command `miniboss_monster` to label monsters as minibosses, and to send them as such to the client. (part of #1889)
+- Added support for 2017-10-25 - 2017-11-01 clients. (#1889)
+- Added support to display NPCs with player classes, including equipment and styles (best with clients starting from 20170726). This extends `getunitdata()` and `setunitdata()` with support for `UDT_SEX`, `UDT_HAIRSTYLE`, `UDT_HAIRCOLOR`, `UDT_HEADBOTTOM`, `UDT_HEADMIDDLE`, `UDT_HEADTOP`, `UDT_CLOTHCOLOR`, `UDT_SHIELD`, `UDT_WEAPON`, `UDT_ROBE`, `UDT_BODY2`. (#1893)
+- Added type constants for the `getiteminfo()` and `setiteminfo()` script commands. Existing third party code must be updated to use the new constants (see the pull request description and the command documentation for details). (#1902)
+- Added global function `F_GetAmmoType()`, counterpart to `F_GetWeaponType()` for ammunitions. Both functions have now been updated to only check the subtype if the item type is correct (`IT_AMMO` and `IT_WEAPON` respectively). (part of #1902)
+- Added support for the Skill Scale packet, available in client versions 20151223 and newer. (#1903)
+
+### Changed
+- Applied script standardization to the Octopus Cave instance script. (#1882)
+- Applied script standardization to the Ghost Palace instance script. (#1879)
+- Applied script standardization to the Sara's Memory instance script. (#1884)
+- Extended the script command `setequipoption()` with the possibility to remove item options from an equipment piece. (#1865)
+- Updated the `QTYPE_*` constants (`questinfo()`, `showevent()`) to support the new 2017 client icons. (#1894)
+- Applied script standardization to the Orc's Memory instance script. (#1872)
+- Applied script standardization to the Sealed Shrine instance script. (#1873)
+- Extended the global function `F_GetArmorType()` to support costumes and shadow equipment. (#1836)
+- Extended the script commands `has_instance()` and `has_instance2()` with suport to search instances of type `IOT_NONE`. (#1397)
+- Applied script standardization and improvements to the Endless Tower instance script. (#1862)
+- Cleared some confusion between skill IDs and indexes through the codebase. Rewritten Skill DB accessors in a safer, more readable way. (part of #1896)
+
+### Deprecated
+- The use of numeric type constants with `getiteminfo()` and `setiteminfo()` is deprecated. For technical reasons, no deprecation notice is displayed. (part of #1902)
+
+### Removed
+- The `MAX_SKILL` constant has been removed, in favor of the more clear `MAX_SKILL_DB`, to be used in all places that use the compacted Skill DB array. For use with the non-compacted clientside Skill IDs, the `MAX_SKILL_ID` constant is still available. (part of #1896)
+
+### Fixed
+- Fixed compilation warnings when compiling with gcc-7. (#1887)
+- Fixed the display flag for monsters labeled as `boss_monster` to be that of MVP monsters instead of miniboss monsters. (part of #1889)
+- Fixed a subtle error in case `skill->unit_group_newid` overflows, causing certain skill unit entries to get stuck and never get deleted correctly. This can manifest itself with some monster spawns becoming immune to certain AoE spells having the `UF_NOOVERLAP` flag (Storm Gust, Lord of Vermillion, etc). (#1896)
+- Implemented MATK support in the `getiteminfo()` and `setiteminfo()`. This functionality was previously advertised as availble in the command documentation, but was not implemented. (part of #1902)
+- Restored View Sprite support in the `getiteminfo()` and `setiteminfo()`. This functionality was lost with #1828. (part of #1902, issue #1895)
+- Reimplemented the global function `F_GetArmorType()` to reflect the fact that `ITEMINFO_LOC` returns a bitmask. The function now handles multi-slot headgears and other uncommon cases better. (part of #1902)
+- Corrected some incorrect data types passed to the SQL `StmtBind` functions, causing query errors and data loss. Said functions will now have a runtime assertion to ensure the right data type is passed. Third party code needs to be updated to reflect this stricter requirement. (#1901, issue #1531)
+- Corrected some RODEX related queries in case `MAX_SLOTS` or `MAX_ITEM_OPTIONS` are set to custom values. (part of #1901)
+
+## [v2017.10.22+1] `October 22 2017` `PATCH 1`
+### Fixed
+- Fixed a wrong null pointer check in `logmes()`, which caused the command to never log and instead print debug information.
+
## [v2017.10.22] `October 22 2017`
### Added
- Added the script command `getmapinfo()`, which allows to obtain misc information about a map. (#1852)
@@ -32,4 +122,10 @@ If you are reading this in a text editor, simply ignore this section
- New versioning scheme and project changelogs/release notes (#1853)
[Unreleased]: https://github.com/HerculesWS/Hercules/compare/stable...master
+[v2018.01.14]: https://github.com/HerculesWS/Hercules/compare/v2017.12.17...v2018.01.14
+[v2017.12.17]: https://github.com/HerculesWS/Hercules/compare/v2017.11.19+2...v2017.12.17
+[v2017.11.19+2]: https://github.com/HerculesWS/Hercules/compare/v2017.11.19+1...v2017.11.19+2
+[v2017.11.19+1]: https://github.com/HerculesWS/Hercules/compare/v2017.11.19...v2017.11.19+1
+[v2017.11.19]: https://github.com/HerculesWS/Hercules/compare/v2017.10.22+1...v2017.11.19
+[v2017.10.22+1]: https://github.com/HerculesWS/Hercules/compare/v2017.10.22...v2017.10.22+1
[v2017.10.22]: https://github.com/HerculesWS/Hercules/compare/6b1fe2d...v2017.10.22
diff --git a/Hercules.xcodeproj/project.pbxproj b/Hercules.xcodeproj/project.pbxproj
index fc7aa8dc4..4609880aa 100644
--- a/Hercules.xcodeproj/project.pbxproj
+++ b/Hercules.xcodeproj/project.pbxproj
@@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
+ 755495841FEE5A0000CE4B7D /* int_rodex.c in Sources */ = {isa = PBXBuildFile; fileRef = 755495831FEE5A0000CE4B7D /* int_rodex.c */; };
+ 755495871FEE5A1F00CE4B7D /* rodex.c in Sources */ = {isa = PBXBuildFile; fileRef = 755495851FEE5A1F00CE4B7D /* rodex.c */; };
A5296FCD1CAC40CF001ABCAC /* lclif.c in Sources */ = {isa = PBXBuildFile; fileRef = A5296FCA1CAC40CF001ABCAC /* lclif.c */; };
A5380CD71856CE3C0090CBC4 /* mapcache.c in Sources */ = {isa = PBXBuildFile; fileRef = A5380CD61856CE3C0090CBC4 /* mapcache.c */; };
A5380CD81856CE8A0090CBC4 /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = A56CC692185643BB009EB79C /* console.c */; };
@@ -219,6 +221,10 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 755495821FEE5A0000CE4B7D /* int_rodex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = int_rodex.h; path = src/char/int_rodex.h; sourceTree = SOURCE_ROOT; };
+ 755495831FEE5A0000CE4B7D /* int_rodex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = int_rodex.c; path = src/char/int_rodex.c; sourceTree = SOURCE_ROOT; };
+ 755495851FEE5A1F00CE4B7D /* rodex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rodex.c; path = src/map/rodex.c; sourceTree = SOURCE_ROOT; };
+ 755495861FEE5A1F00CE4B7D /* rodex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rodex.h; path = src/map/rodex.h; sourceTree = SOURCE_ROOT; };
A5296FCA1CAC40CF001ABCAC /* lclif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lclif.c; path = src/login/lclif.c; sourceTree = SOURCE_ROOT; };
A5296FCB1CAC40CF001ABCAC /* lclif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lclif.h; path = src/login/lclif.h; sourceTree = SOURCE_ROOT; };
A5296FCC1CAC40CF001ABCAC /* lclif.p.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lclif.p.h; path = src/login/lclif.p.h; sourceTree = SOURCE_ROOT; };
@@ -602,6 +608,8 @@
A56CC754185657D9009EB79C /* int_pet.h */,
A56CC755185657D9009EB79C /* int_quest.c */,
A56CC756185657D9009EB79C /* int_quest.h */,
+ 755495831FEE5A0000CE4B7D /* int_rodex.c */,
+ 755495821FEE5A0000CE4B7D /* int_rodex.h */,
A56CC757185657D9009EB79C /* int_storage.c */,
A56CC758185657D9009EB79C /* int_storage.h */,
A56CC759185657D9009EB79C /* inter.c */,
@@ -680,6 +688,8 @@
A56CC7A618565812009EB79C /* pet.h */,
A56CC7A718565812009EB79C /* quest.c */,
A56CC7A818565812009EB79C /* quest.h */,
+ 755495851FEE5A1F00CE4B7D /* rodex.c */,
+ 755495861FEE5A1F00CE4B7D /* rodex.h */,
A56CC7A918565812009EB79C /* script.c */,
A56CC7AA18565812009EB79C /* script.h */,
A56CC7AB18565812009EB79C /* searchstore.c */,
@@ -1229,6 +1239,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 755495841FEE5A0000CE4B7D /* int_rodex.c in Sources */,
A56CC766185657D9009EB79C /* int_quest.c in Sources */,
A56CC709185643BB009EB79C /* sql.c in Sources */,
A56CC75E185657D9009EB79C /* int_auction.c in Sources */,
@@ -1338,6 +1349,7 @@
A56CC73318564C05009EB79C /* libconfig.c in Sources */,
A56CC74218564C23009EB79C /* mt19937ar.c in Sources */,
A56CC7BD18565812009EB79C /* chat.c in Sources */,
+ 755495871FEE5A1F00CE4B7D /* rodex.c in Sources */,
A56CC7CF18565812009EB79C /* mob.c in Sources */,
A56CC7BB18565812009EB79C /* battleground.c in Sources */,
A56CC73618564C05009EB79C /* scanctx.c in Sources */,
diff --git a/README.md b/README.md
index dc7e9e72e..2fb56cd27 100644
--- a/README.md
+++ b/README.md
@@ -5,25 +5,25 @@ Build Status:
[![Build Status](https://travis-ci.org/HerculesWS/Hercules.svg?branch=master)](https://travis-ci.org/HerculesWS/Hercules)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/cm9xbwurpbltqjop?svg=true)](https://ci.appveyor.com/project/Haru/hercules)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/3892/badge.svg)](https://scan.coverity.com/projects/herculesws-hercules)
-[![GitLabl Build Status](https://gitlab.com/HerculesWS/Hercules/badges/master/build.svg)](https://gitlab.com/HerculesWS/Hercules/commits/master)
+[![GitLab Build Status](https://gitlab.com/HerculesWS/Hercules/badges/master/build.svg)](https://gitlab.com/HerculesWS/Hercules/commits/master)
[![Coverage Report](https://gitlab.com/HerculesWS/Hercules/badges/master/coverage.svg)](https://gitlab.com/HerculesWS/Hercules/commits/master)
Issues and pull requests:
[![Open Issues](https://img.shields.io/github/issues-raw/HerculesWS/Hercules.svg?label=Open%20Issues)](https://github.com/HerculesWS/Hercules/issues)
-[![Issues in progress](https://badge.waffle.io/HerculesWS/Hercules.svg?label=status%3Aconfirmed&title=In%20Progress)](https://waffle.io/HerculesWS/Hercules)
-[![Ready PRs](https://badge.waffle.io/HerculesWS/Hercules.svg?label=status%3Aready&title=Ready%20PRs)](https://waffle.io/HerculesWS/Hercules)
+[![Open Pull Requests](https://img.shields.io/github/issues-pr-raw/HerculesWS/Hercules.svg?label=Open%20Pull%20Requests)](https://github.com/HerculesWS/Hercules/pulls)
Development and Community:
-[![GitHub Repository](https://img.shields.io/badge/github-HerculesWS/Hercules-green.svg)](https://github.com/HerculesWS/Hercules)
-[![Waffle Board](https://img.shields.io/badge/waffle-HerculesWS/Hercules-6699dd.svg)](https://waffle.io/HerculesWS/Hercules)
+[![GitHub Repository](https://img.shields.io/badge/github-HerculesWS/Hercules-green.svg?logo=github)](https://github.com/HerculesWS/Hercules)
+[![Community Forum](https://img.shields.io/badge/forum-herc.ws-orange.svg)](http://herc.ws)
[![IRC](https://img.shields.io/badge/IRC-Rizon/Hercules-yellow.svg)](irc://rizon.net/Hercules)
-[![Community Forum](https://img.shields.io/badge/forum-herc.ws-orange.svg)](http://herc.ws)
-[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/HerculesWS/Hercules)
-[![Twitter](https://img.shields.io/badge/twitter-@HerculesWS-blue.svg)](https://twitter.com/HerculesWS)
+[![Discord](https://img.shields.io/badge/discord-Hercules%20Emulator-7289da.svg)](https://discord.gg/rqCxS8p)
+[![Twitter](https://img.shields.io/badge/twitter-@HerculesWS-blue.svg?logo=twitter)](https://twitter.com/HerculesWS)
Project Info:
-![Language](https://img.shields.io/badge/language-C-yellow.svg)
+[![Release](https://img.shields.io/github/release/HerculesWS/Hercules.svg)](https://github.com/HerculesWS/Hercules/releases)
+![Language](https://img.shields.io/badge/language-C-yellow.svg)
[![License](https://img.shields.io/badge/license-GPLv3-663399.svg)](https://github.com/HerculesWS/Hercules/blob/master/LICENSE)
+[![GitHub contributors](https://img.shields.io/github/contributors/HerculesWS/Hercules.svg)](https://github.com/HerculesWS/Hercules/graphs/contributors)
Table of Contents
---------
diff --git a/conf/login/login-server.conf b/conf/login/login-server.conf
index 71928e3d0..4ad02deb2 100644
--- a/conf/login/login-server.conf
+++ b/conf/login/login-server.conf
@@ -54,6 +54,22 @@ login_configuration: {
date_format: "%Y-%m-%d %H:%M:%S"
}
+ // for packet version >= 20170726
+ users_count: {
+ // if false, dont show any colored strings.
+ // if true, show special users count numbers for coloring char servers.
+ send_user_count_description: true
+
+ // users counts for use different colors.
+ // below 'low' show green text
+ // below 'medium' show oragne text
+ // below 'high' show red text
+ // higher 'high' show purple text
+ low: 200
+ medium: 500
+ high: 1000
+ }
+
// Account engine configuration
account: {
// Can you use _M/_F to make new accounts on the server?
diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf
index 32f1324be..4dc803bca 100644
--- a/conf/map/battle/client.conf
+++ b/conf/map/battle/client.conf
@@ -36,7 +36,7 @@
// 0: disabled
// 1: optional (not recommended) -- identifies whether it is required
// 2: enabled (recommended)
-packet_obfuscation: 1
+packet_obfuscation: 2
// Minimum delay between whisper/global/party/guild messages (in ms)
// Messages that break this threshold are silently omitted.
diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf
index cdb9913ea..e01c7f93d 100644
--- a/conf/map/battle/feature.conf
+++ b/conf/map/battle/feature.conf
@@ -65,4 +65,9 @@ features: {
// This is disabled in client-side in some client versions
// Disabled by default
rodex_use_accountmail: false
+
+ // Allow Homunculus autofeeding
+ // true: enable (Default)
+ // false: disable
+ enable_homun_autofeed: true
}
diff --git a/configure b/configure
index 9e5c01851..d8b95d5c8 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac b7b45b7c3.
+# From configure.ac b60eb4b69.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
@@ -692,6 +692,7 @@ enable_option_checking
enable_manager
enable_packetver
enable_packetver_re
+enable_packetver_zero
enable_epoll
with_key1
with_key2
@@ -1343,6 +1344,8 @@ Optional Features:
--enable-packetver=ARG Sets the PACKETVER define. (see src/common/mmo.h)
--enable-packetver-re Sets or unsets the PACKETVER_RE define - see
src/common/mmo.h (currently disabled by default)
+ --enable-packetver-zero Sets or unsets the PACKETVER_ZERO define - see
+ src/common/mmo.h (currently disabled by default)
--enable-epoll use epoll(4) on Linux
--enable-debug[=ARG] Compiles extra debug code. (yes by default)
(available options: yes, no, gdb)
@@ -3551,6 +3554,26 @@ fi
#
+# packetver-Zero
+#
+# Check whether --enable-packetver-zero was given.
+if test "${enable_packetver_zero+set}" = set; then :
+ enableval=$enable_packetver_zero;
+ enable_packetver_zero="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) as_fn_error $? "invalid argument --enable-packetver-zero=$enableval... stopping" "$LINENO" 5;;
+ esac
+
+else
+ enable_packetver_zero="no"
+
+fi
+
+
+
+#
# Epoll
#
# Check whether --enable-epoll was given.
@@ -8232,6 +8255,18 @@ case $enable_packetver_re in
esac
#
+# Packetver-Zero
+#
+case $enable_packetver_zero in
+ "yes")
+ CPPFLAGS="$CPPFLAGS -DENABLE_PACKETVER_ZERO"
+ ;;
+ "no")
+ # default value
+ ;;
+esac
+
+#
# Epoll
#
case $have_linux_epoll in
@@ -8372,6 +8407,34 @@ case $enable_renewal in
;;
esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-var-tracking" >&5
+$as_echo_n "checking whether $CC supports -fno-var-tracking... " >&6; }
+ OLD_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-var-tracking"
+ OLD_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -fno-var-tracking"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$OLD_CFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
#
# Host specific stuff
#
diff --git a/configure.ac b/configure.ac
index 7539b0890..35a23b331 100644
--- a/configure.ac
+++ b/configure.ac
@@ -144,6 +144,27 @@ AC_ARG_ENABLE(
#
+# packetver-Zero
+#
+AC_ARG_ENABLE(
+ [packetver-zero],
+ AC_HELP_STRING(
+ [--enable-packetver-zero],
+ [Sets or unsets the PACKETVER_ZERO define - see src/common/mmo.h (currently disabled by default)]
+ ),
+ [
+ enable_packetver_zero="$enableval"
+ case $enableval in
+ "no");;
+ "yes");;
+ *) AC_MSG_ERROR([[invalid argument --enable-packetver-zero=$enableval... stopping]]);;
+ esac
+ ],
+ [enable_packetver_zero="no"]
+)
+
+
+#
# Epoll
#
AC_ARG_ENABLE([epoll],
@@ -1225,6 +1246,18 @@ case $enable_packetver_re in
esac
#
+# Packetver-Zero
+#
+case $enable_packetver_zero in
+ "yes")
+ CPPFLAGS="$CPPFLAGS -DENABLE_PACKETVER_ZERO"
+ ;;
+ "no")
+ # default value
+ ;;
+esac
+
+#
# Epoll
#
case $have_linux_epoll in
diff --git a/db/constants.conf b/db/constants.conf
index 0015646dd..eda877671 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3610,15 +3610,20 @@ constants_db: {
HUNTING: 2
comment__: "questinfo"
- QTYPE_NONE: 0x270f
- QTYPE_QUEST: 0x00
- QTYPE_QUEST2: 0x01
- QTYPE_JOB: 0x02
- QTYPE_JOB2: 0x03
- QTYPE_EVENT: 0x04
- QTYPE_EVENT2: 0x05
- QTYPE_WARG: 0x06
- QTYPE_WARG2: 0x08
+ QTYPE_NONE: 0x270f
+ QTYPE_QUEST: 0x00
+ QTYPE_QUEST2: 0x01
+ QTYPE_JOB: 0x02
+ QTYPE_JOB2: 0x03
+ QTYPE_EVENT: 0x04
+ QTYPE_EVENT2: 0x05
+ QTYPE_WARG: 0x06
+ QTYPE_CLICKME: 0x06
+ QTYPE_DAILYQUEST: 0x07
+ QTYPE_WARG2: 0x08
+ QTYPE_EVENT3: 0x08
+ QTYPE_JOBQUEST: 0x09
+ QTYPE_JUMPING_PORING: 0xA
comment__: "Font weight"
FW_DONTCARE: 0
@@ -3865,4 +3870,6 @@ constants_db: {
UDT_LIFETIME: 52
UDT_MERC_KILLCOUNT: 53
UDT_STATADD: 54
+ UDT_ROBE: 55
+ UDT_BODY2: 56
}
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 3169ddd6c..a98495eee 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -95,6 +95,8 @@ item_db: (
Delay: Delay to use item (int, defaults to 0)
KeepAfterUse: true/false (boolean, defaults to false)
DropAnnounce: true/false (boolean, defaults to false)
+ ShowDropEffect: true/false (boolean, defaults to false)
+ DropEffectMode: Effect Type (int, default to 0)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
diff --git a/db/pre-re/skill_db.conf b/db/pre-re/skill_db.conf
index 80527b4f6..4873012aa 100644
--- a/db/pre-re/skill_db.conf
+++ b/db/pre-re/skill_db.conf
@@ -73,6 +73,8 @@
Works like skill SA_FREECAST, allow move and attack with reduced speed.
FreeCastNormal: true/false (boolean, defaults to false)
Works like FreeCastReduced, but not reduce speed.
+ ShowSkillScale: true/false (boolean, defaults to false)
+ AllowReproduce: true/false (boolean, defaults to false)
}
AttackType: "Attack Type" (string, defaults to "None")
Types: "None", "Weapon", "Magic" or "Misc"
@@ -290,6 +292,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
Requirements: {
@@ -370,6 +375,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Fire"
DamageType: {
@@ -467,6 +475,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
DamageType: {
@@ -582,6 +593,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
NumberOfHits: {
@@ -636,6 +650,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: {
@@ -701,6 +718,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -782,6 +802,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -828,6 +851,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -881,6 +907,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
NumberOfHits: {
@@ -946,6 +975,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -1011,6 +1043,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -1091,6 +1126,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -1235,6 +1273,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -1580,6 +1621,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
Requirements: {
@@ -1665,6 +1709,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: 2
@@ -1693,6 +1740,7 @@ skill_db: (
}
SkillInfo: {
IgnoreLandProtector: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -1800,6 +1848,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Poison"
SkillData2: {
@@ -1848,6 +1899,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2108,6 +2162,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -2235,6 +2292,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2287,6 +2347,7 @@ skill_db: (
}
SkillInfo: {
Ensemble: true
+ AllowReproduce: true
}
AttackType: "Magic"
DamageType: {
@@ -2323,6 +2384,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2597,6 +2661,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2644,6 +2711,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
NumberOfHits: {
@@ -2715,6 +2785,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Fire"
@@ -2800,6 +2871,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
SplashRange: 3
@@ -2835,6 +2909,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
SplashRange: {
@@ -2912,6 +2989,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -2977,6 +3057,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: -10
@@ -3055,6 +3138,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -3138,6 +3224,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -3196,6 +3285,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -3241,6 +3333,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -3295,6 +3390,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -3851,6 +3949,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Earth"
@@ -4131,6 +4230,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Water"
@@ -4193,6 +4293,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Wind"
@@ -4243,6 +4344,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Fire"
@@ -4741,6 +4843,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -4910,6 +5015,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -5006,6 +5112,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Misc"
DamageType: {
@@ -5100,6 +5207,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Holy"
@@ -6143,6 +6251,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -6519,6 +6630,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Fire"
DamageType: {
@@ -6567,6 +6681,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreCards: true
@@ -6962,6 +7079,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
KnockBackTiles: {
Lv1: 5
@@ -7003,6 +7123,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
AfterCastActDelay: 700
CoolDown: 0
@@ -7049,6 +7172,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Holy"
NumberOfHits: -2
@@ -7092,6 +7218,7 @@ skill_db: (
}
SkillInfo: {
TargetSelf: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Holy"
@@ -7341,6 +7468,9 @@ skill_db: (
MaxLevel: 10
Range: -1
Hit: "BDT_MULTIHIT"
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -3
@@ -7386,6 +7516,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreFlee: true
@@ -7419,6 +7552,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: {
@@ -7594,6 +7730,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreDefense: true
@@ -7668,6 +7807,7 @@ skill_db: (
}
SkillInfo: {
NoCastSelf: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -9794,6 +9934,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -12316,6 +12457,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -15705,6 +15849,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Misc"
DamageType: {
IgnoreElement: true
@@ -15737,6 +15884,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
KnockBackTiles: 3
@@ -15768,6 +15918,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1000
@@ -15820,6 +15973,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -15879,6 +16035,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -15990,6 +16149,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
NumberOfHits: {
@@ -16086,6 +16248,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -16125,6 +16290,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: {
@@ -16257,6 +16425,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -16318,6 +16489,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -16372,6 +16546,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
DamageType: {
@@ -16420,6 +16597,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
SplashRange: 3
@@ -16551,6 +16731,7 @@ skill_db: (
SkillInfo: {
NPC: true
IgnoreLandProtector: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -16698,6 +16879,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16758,6 +16940,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -16777,6 +16960,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -16797,6 +16981,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16828,6 +17013,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16859,6 +17045,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16890,6 +17077,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16921,6 +17109,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16952,6 +17141,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -16983,6 +17173,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Magic"
Element: "Ele_Fire"
@@ -17006,6 +17197,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Magic"
Element: "Ele_Dark"
@@ -17069,6 +17261,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17174,6 +17367,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17205,6 +17399,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17236,6 +17431,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -17265,6 +17461,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17570,6 +17767,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -17628,6 +17826,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
DamageType: {
@@ -17688,6 +17887,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Fire"
@@ -17763,6 +17963,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
KnockBackTiles: 3
@@ -17906,6 +18107,7 @@ skill_db: (
SkillInfo: {
Quest: true
PartyOnly: true
+ AllowReproduce: true
}
AttackType: "Weapon"
DamageType: {
@@ -18090,6 +18292,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1000
@@ -18186,6 +18391,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Wind"
DamageType: {
@@ -18226,6 +18434,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -18653,6 +18864,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -7
@@ -18695,6 +18909,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1500
@@ -18992,6 +19209,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -19124,6 +19344,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -19182,6 +19405,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
NumberOfHits: -10
@@ -19639,6 +19865,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -19748,6 +19977,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
Element: "Ele_Holy"
DamageType: {
NoDamage: true
@@ -19922,6 +20154,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
DamageType: {
@@ -19968,6 +20203,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -20026,6 +20264,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -20323,6 +20564,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
InterruptCast: true
CastTime: 4000
@@ -20352,6 +20596,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -20390,6 +20637,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -20433,6 +20683,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
NumberOfHits: -20
InterruptCast: true
@@ -20490,6 +20743,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
SplashRange: 3
InterruptCast: true
@@ -20548,6 +20804,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -21041,6 +21300,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -21164,6 +21426,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
InterruptCast: true
@@ -21276,6 +21541,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
DamageType: {
@@ -21686,6 +21952,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Fire"
@@ -21726,6 +21993,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Water"
@@ -22898,6 +23166,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -23067,6 +23338,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -3
@@ -23887,6 +24161,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
CastTime: 1000
@@ -24027,6 +24304,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
SkillData1: {
Lv1: 5500
@@ -24154,6 +24434,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
Element: {
Lv1: "Ele_Neutral"
Lv2: "Ele_Holy"
@@ -24192,6 +24475,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -24364,6 +24650,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -24519,6 +24808,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Earth"
DamageType: {
@@ -24709,6 +25001,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -2
@@ -24738,6 +25033,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -24772,6 +25070,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -24868,6 +25169,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -24962,6 +25266,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25145,6 +25452,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
KnockBackTiles: {
@@ -25186,6 +25496,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25324,6 +25637,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
NumberOfHits: -7
InterruptCast: true
@@ -25390,6 +25706,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
SkillData1: {
@@ -25952,6 +26271,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Weapon"
NumberOfHits: {
@@ -26019,6 +26341,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
Element: "Ele_Weapon"
DamageType: {
@@ -26125,6 +26448,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -27194,6 +27520,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -27246,6 +27575,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
InterruptCast: true
@@ -27340,6 +27672,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: -3
@@ -27417,6 +27752,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: -5
@@ -27494,6 +27832,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Poison"
DamageType: {
@@ -27551,6 +27892,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
InterruptCast: true
CastTime: {
@@ -27625,6 +27969,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Poison"
InterruptCast: true
@@ -27891,6 +28238,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
DamageType: {
@@ -28728,6 +29078,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
InterruptCast: true
@@ -28786,6 +29137,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Misc"
DamageType: {
NoDamage: true
@@ -28835,6 +29189,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -28896,6 +29253,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
NoDamage: true
@@ -28956,6 +29316,7 @@ skill_db: (
}
SkillInfo: {
IgnoreLandProtector: true
+ AllowReproduce: true
}
AttackType: "Weapon"
DamageType: {
@@ -29241,6 +29602,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
DamageType: {
NoDamage: true
@@ -29589,6 +29951,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -29657,6 +30022,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index b2e7f20cb..80baad89f 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -95,6 +95,8 @@ item_db: (
Delay: Delay to use item (int, defaults to 0)
KeepAfterUse: true/false (boolean, defaults to false)
DropAnnounce: true/false (boolean, defaults to false)
+ ShowDropEffect: true/false (boolean, defaults to false)
+ DropEffectMode: Effect Type (int, default to 0)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf
index 2a59785fa..4863e4051 100644
--- a/db/re/skill_db.conf
+++ b/db/re/skill_db.conf
@@ -73,6 +73,8 @@
Works like skill SA_FREECAST, allow move and attack with reduced speed.
FreeCastNormal: true/false (boolean, defaults to false)
Works like FreeCastReduced, but not reduce speed.
+ ShowSkillScale: true/false (boolean, defaults to false)
+ AllowReproduce: true/false (boolean, defaults to false)
}
AttackType: "Attack Type" (string, defaults to "None")
Types: "None", "Weapon", "Magic" or "Misc"
@@ -292,6 +294,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
Requirements: {
@@ -372,6 +377,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Fire"
DamageType: {
@@ -471,6 +479,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
DamageType: {
@@ -597,6 +608,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
NumberOfHits: {
@@ -651,6 +665,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: {
@@ -727,6 +744,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -808,6 +828,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -865,6 +888,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -929,6 +955,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
NumberOfHits: {
@@ -1005,6 +1034,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -1081,6 +1113,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -1183,6 +1218,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -1326,6 +1364,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -1671,6 +1712,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
Requirements: {
@@ -1756,6 +1800,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: 2
@@ -1785,6 +1832,7 @@ skill_db: (
}
SkillInfo: {
IgnoreLandProtector: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -1915,6 +1963,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Poison"
SkillData2: {
@@ -1963,6 +2014,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2234,6 +2288,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -2361,6 +2418,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2413,6 +2473,7 @@ skill_db: (
}
SkillInfo: {
Ensemble: true
+ AllowReproduce: true
}
AttackType: "Magic"
DamageType: {
@@ -2449,6 +2510,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2723,6 +2787,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -2770,6 +2837,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
NumberOfHits: {
@@ -2839,6 +2909,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -2931,6 +3004,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
SplashRange: 3
@@ -2965,6 +3041,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
SplashRange: {
@@ -3042,6 +3121,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -3118,6 +3200,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: -10
@@ -3207,6 +3292,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -3301,6 +3389,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -3370,6 +3461,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
InterruptCast: true
@@ -3426,6 +3520,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -3502,6 +3599,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -4069,6 +4169,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Earth"
@@ -4350,6 +4451,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Water"
@@ -4412,6 +4514,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Wind"
@@ -4463,6 +4566,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Fire"
@@ -4961,6 +5065,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -5142,6 +5249,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -5236,6 +5344,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Misc"
DamageType: {
@@ -5331,6 +5440,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Holy"
@@ -6373,6 +6483,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -6838,6 +6951,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Fire"
DamageType: {
@@ -6887,6 +7003,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreCards: true
@@ -7283,6 +7402,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
KnockBackTiles: {
Lv1: 5
@@ -7324,6 +7446,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
AfterCastActDelay: 700
FixedCastTime: 0
@@ -7370,6 +7495,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Holy"
NumberOfHits: -2
@@ -7413,6 +7541,7 @@ skill_db: (
}
SkillInfo: {
TargetSelf: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Holy"
@@ -7663,6 +7792,9 @@ skill_db: (
MaxLevel: 10
Range: -1
Hit: "BDT_MULTIHIT"
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -3
@@ -7707,6 +7839,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreFlee: true
@@ -7740,6 +7875,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: {
@@ -7916,6 +8054,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
IgnoreDefense: true
@@ -8002,6 +8143,7 @@ skill_db: (
}
SkillInfo: {
NoCastSelf: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -10120,6 +10262,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -12656,6 +12799,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -16086,6 +16232,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Misc"
DamageType: {
IgnoreElement: true
@@ -16118,6 +16267,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
KnockBackTiles: 4
@@ -16149,6 +16301,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1000
@@ -16190,6 +16345,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -16237,6 +16395,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -16359,6 +16520,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
NumberOfHits: {
@@ -16477,6 +16641,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -16516,6 +16683,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: {
@@ -16660,6 +16830,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -16732,6 +16905,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
NumberOfHits: {
@@ -16797,6 +16973,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
DamageType: {
@@ -16867,6 +17046,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
SplashRange: 3
@@ -17009,6 +17191,7 @@ skill_db: (
SkillInfo: {
NPC: true
IgnoreLandProtector: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -17156,6 +17339,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17216,6 +17400,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -17235,6 +17420,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -17255,6 +17441,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17286,6 +17473,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17317,6 +17505,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17348,6 +17537,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17379,6 +17569,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17410,6 +17601,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17441,6 +17633,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Magic"
Element: "Ele_Fire"
@@ -17464,6 +17657,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Magic"
Element: "Ele_Dark"
@@ -17527,6 +17721,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17632,6 +17827,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17663,6 +17859,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -17694,6 +17891,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
AttackType: "Weapon"
DamageType: {
@@ -17723,6 +17921,7 @@ skill_db: (
}
SkillInfo: {
NPC: true
+ ShowSkillScale: true
}
DamageType: {
NoDamage: true
@@ -18117,6 +18316,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
Element: "Ele_Weapon"
@@ -18174,6 +18374,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
DamageType: {
@@ -18234,6 +18435,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Magic"
Element: "Ele_Fire"
@@ -18308,6 +18510,7 @@ skill_db: (
}
SkillInfo: {
Quest: true
+ AllowReproduce: true
}
AttackType: "Weapon"
KnockBackTiles: 3
@@ -18448,6 +18651,7 @@ skill_db: (
SkillInfo: {
Quest: true
PartyOnly: true
+ AllowReproduce: true
}
AttackType: "Weapon"
DamageType: {
@@ -18629,6 +18833,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1000
@@ -18728,6 +18935,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Wind"
DamageType: {
@@ -18769,6 +18979,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -19198,6 +19411,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -7
@@ -19240,6 +19456,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
AfterCastActDelay: 1500
@@ -19537,6 +19756,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -19670,6 +19892,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -19728,6 +19953,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
NumberOfHits: -10
@@ -20204,6 +20432,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Holy"
DamageType: {
@@ -20316,6 +20547,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
Element: "Ele_Holy"
DamageType: {
NoDamage: true
@@ -20492,6 +20726,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Ghost"
DamageType: {
@@ -20538,6 +20775,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -20597,6 +20837,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
DamageType: {
@@ -20897,6 +21140,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
InterruptCast: true
CastTime: 4000
@@ -20927,6 +21173,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
DamageType: {
@@ -20966,6 +21215,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -21009,6 +21261,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
NumberOfHits: -20
InterruptCast: true
@@ -21078,6 +21333,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
SplashRange: 3
InterruptCast: true
@@ -21137,6 +21395,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: {
@@ -21632,6 +21893,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -21756,6 +22020,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
InterruptCast: true
@@ -21868,6 +22135,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
DamageType: {
@@ -22279,6 +22547,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Fire"
@@ -22319,6 +22588,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
Element: "Ele_Water"
@@ -23536,6 +23806,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -23705,6 +23978,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -3
@@ -24535,6 +24811,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
CastTime: 1000
@@ -24677,6 +24956,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
SkillData1: {
Lv1: 5500
@@ -24806,6 +25088,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
Element: {
Lv1: "Ele_Neutral"
Lv2: "Ele_Holy"
@@ -24845,6 +25130,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -25018,6 +25306,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25175,6 +25466,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Earth"
DamageType: {
@@ -25368,6 +25662,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
NumberOfHits: -2
@@ -25397,6 +25694,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25431,6 +25731,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25528,6 +25831,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25623,6 +25929,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25810,6 +26119,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
KnockBackTiles: {
@@ -25851,6 +26163,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -25992,6 +26307,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
NumberOfHits: -7
InterruptCast: true
@@ -26058,6 +26376,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
SkillData1: {
@@ -26636,6 +26957,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Weapon"
NumberOfHits: {
@@ -26704,6 +27028,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
Element: "Ele_Weapon"
DamageType: {
@@ -26810,6 +27135,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
}
@@ -27894,6 +28222,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Fire"
InterruptCast: true
@@ -27946,6 +28277,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
InterruptCast: true
@@ -28040,6 +28374,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Earth"
NumberOfHits: -3
@@ -28129,6 +28466,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Water"
NumberOfHits: -5
@@ -28218,6 +28558,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Poison"
DamageType: {
@@ -28287,6 +28630,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
InterruptCast: true
CastTime: {
@@ -28373,6 +28719,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Poison"
InterruptCast: true
@@ -28664,6 +29013,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Magic"
Element: "Ele_Wind"
DamageType: {
@@ -29536,6 +29888,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
AttackType: "Misc"
InterruptCast: true
@@ -29594,6 +29947,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Misc"
DamageType: {
NoDamage: true
@@ -29643,6 +29999,9 @@ skill_db: (
SkillType: {
Enemy: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -29705,6 +30064,9 @@ skill_db: (
SkillType: {
Friend: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
DamageType: {
NoDamage: true
@@ -29764,6 +30126,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
DamageType: {
NoDamage: true
SplashArea: true
@@ -30051,6 +30416,7 @@ skill_db: (
}
SkillInfo: {
Trap: true
+ AllowReproduce: true
}
DamageType: {
NoDamage: true
@@ -30401,6 +30767,9 @@ skill_db: (
SkillType: {
Self: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
@@ -30470,6 +30839,9 @@ skill_db: (
SkillType: {
Place: true
}
+ SkillInfo: {
+ AllowReproduce: true
+ }
AttackType: "Weapon"
Element: "Ele_Weapon"
DamageType: {
diff --git a/db/skill_reproduce_db.txt b/db/skill_reproduce_db.txt
deleted file mode 100644
index eca500da2..000000000
--- a/db/skill_reproduce_db.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-// Reproduce Copy Skills List
-//
-// ##TODO## screw this file and make it a new skill_info2 flag
-//
-// Structure of Database:
-// SkillID
-//=================================
-
-//Swordsman
-5 //Bash
-7 //Magnum Break
-
-//Mage
-11 // Napalm Beat
-13 // Soul Strike
-14 // Cold Bolt
-15 // Frost Diver
-17 // Fire Ball
-18 // Fire Wall
-19 // Fire Bolt
-20 // Lightning Bolt
-21 // Thunderstorm
-
-//Acolyte
-24 // Ruwach
-28 // Heal
-
-//Merchant
-42 // Mammonite
-
-//Archer
-46 // Double Strafe
-47 // Arrow Shower
-
-//Thief
-52 // Envenom
-
-// Resurrection
-54 // Resurrection
-
-// Knight
-62 // Bowling Bash
-
-// Priest
-68 // Asperio
-69 // B.S Sacramenti
-70 // Sanctuary
-77 // Turn Undead
-79 // Magnus Exorcismus
-
-// Wizard
-80 // Fire Pillar
-81 // Sightrasher
-83 // Meteor Storm
-84 // Jupitel Thunder
-85 // Lord of Vermillion
-86 // Water Ball
-88 // Frost Nova
-89 // Storm Gust
-90 // Earth Spike
-91 // Heaven's Drive
-
-// Hunter
-116 // Land Mine
-121 // Freezing Trap
-122 // Blast Mine
-123 // Claymore Trap
-
-// Assassin
-141 // Venom Splasher
-
-// 1st Job Quest Skills
-148 // Arrow Repel
-152 // Stone Fling
-156 // Holy Light
-
-// Rogue
-212 // Backstab
-
-// Alchemist
-229 // Bomb
-230 // Acid Terror
-
-// Crusader
-250 // Smite
-251 // Shield Boomerang
-253 // Holy Cross
-254 // Grand Cross
-
-// Monk
-263 // Raging Trifecta Blow
-266 // Occult Impaction
-267 // Throw Spirit Sphere
-271 // Guillotine Fist
-272 // Raging Quadruple Blow
-
-// Item Skill
-337 // Tomahawk Throwing
-
-// TaeKwon Kid
-421 // Flying Kick
-
-// Ninja
-526 // Throw Coins
-527 // Flip Tatami
-528 // Haze Slasher
-529 // Shadow Slash
-531 // Blaze Shield
-534 // Flaming Petals
-536 // Exploding Dragon
-537 // Freezing Spear
-539 // Snow Flake Draft
-540 // Wind Blade
-541 // Lightning Jolt
-542 // First Wind
-
-// 2nd Job Quest Skills
-1001 // Charge Attack
-1004 // Venom Knife
-1006 // Sight Blaster
-1009 // Phantasmic Arrow
-1015 // Excruciating Palm
-
-// Rune Knight
-2002 // Sonic Wave
-2005 // Ignition Break
-2006 // Wind Cutter
-
-// Guillotine Cross
-2022 // Cross Impact
-2023 // Dark Illusion
-2034 // Phantom Menace
-
-// Arch Bishop
-2038 // Judex
-2040 // Adoramus
-2051 // Highness Heal
-2054 // Duple Light
-
-// Warlock
-2202 // Soul Expansion
-2203 // Frosty Misty
-2204 // Jack Frost
-2210 // Drain Life
-2211 // Crimson Rock
-2212 // Hell Inferno
-2213 // Comet
-2214 // Chain Lightning
-2216 // Earth Strain
-
-// Ranger
-2233 // Arrow Storm
-2236 // Aimed Bolt
-2239 // Cluster Bomb
-2253 // Icebound Trap
-2254 // Firing Trap
-
-// Shadow Chaser
-2284 // Fatal Menace
-2288 // Triangle Shot
-2304 // Feint Bomb
-
-// Royal Guard
-2310 // Shield Press
-2315 // Shield Spell
-2316 // Exceed Break
-2320 // Moon Slasher
-2323 // Earth Drive
-
-// Sura
-2326 // Dragon Combo
-2327 // Sky Net Blow
-2328 // Earth Shaker
-2330 // Tiger Cannon
-2332 // Rampage Blaster
-2336 // Knuckle Arrow
-2337 // Windmill
-2343 // Gate of Hell
-2344 // Gentle Touch - Quiet
-2517 // Howling of Lion
-2518 // Riding Lightning
-
-// Minstrel/Wanderer
-2413 // Metallic Sound
-2414 // Reverberation
-2418 // Severe Rainstorm
-
-// Sorcerer
-2443 // Fire Walk
-2444 // Electric Walk
-2446 // Earth Grave
-2447 // Diamond Dust
-2448 // Poison Buster
-2449 // Psychic Wave
-2450 // Cloud Kill
-2454 // Varetyr Spear
-
-// Genetic
-2479 // Thorn Trap
-2480 // Blood Sucker
-2481 // Spore Explosion
-2482 // Wall of Thorns
-2483 // Crazy Weed
-2490 // Hell's Plant
diff --git a/doc/constants.md b/doc/constants.md
index 98c22bb3e..7a9e6ea18 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -3543,7 +3543,12 @@
- `QTYPE_EVENT`: 4
- `QTYPE_EVENT2`: 5
- `QTYPE_WARG`: 6
+- `QTYPE_CLICKME`: 6
+- `QTYPE_DAILYQUEST`: 7
- `QTYPE_WARG2`: 8
+- `QTYPE_EVENT3`: 8
+- `QTYPE_JOBQUEST`: 9
+- `QTYPE_JUMPING_PORING`: 10
### Font weight
@@ -3782,6 +3787,8 @@
- `UDT_LIFETIME`: 52
- `UDT_MERC_KILLCOUNT`: 53
- `UDT_STATADD`: 54
+- `UDT_ROBE`: 55
+- `UDT_BODY2`: 56
## Hardcoded Constants (source)
@@ -4073,6 +4080,26 @@
- `MAPINFO_SIZE_Y`: 3
- `MAPINFO_ZONE`: 4
+### set/getiteminfo options
+
+- `ITEMINFO_BUYPRICE`: 0
+- `ITEMINFO_SELLPRICE`: 1
+- `ITEMINFO_TYPE`: 2
+- `ITEMINFO_MAXCHANCE`: 3
+- `ITEMINFO_SEX`: 4
+- `ITEMINFO_LOC`: 5
+- `ITEMINFO_WEIGHT`: 6
+- `ITEMINFO_ATK`: 7
+- `ITEMINFO_DEF`: 8
+- `ITEMINFO_RANGE`: 9
+- `ITEMINFO_SLOTS`: 10
+- `ITEMINFO_SUBTYPE`: 11
+- `ITEMINFO_ELV`: 12
+- `ITEMINFO_WLV`: 13
+- `ITEMINFO_VIEWID`: 14
+- `ITEMINFO_MATK`: 15
+- `ITEMINFO_VIEWSPRITE`: 16
+
### Renewal
- `RENEWAL`: 1
diff --git a/doc/item_db.txt b/doc/item_db.txt
index 913ab80e0..16eca2e23 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -73,6 +73,8 @@ item_db: (
Delay: Delay to use item (int, defaults to 0)
KeepAfterUse: true/false (boolean, defaults to false)
DropAnnounce: true/false (boolean, defaults to false)
+ ShowDropEffect: true/false (boolean, defaults to false)
+ DropEffectMode: Effect Type (int, default to 0)
Trade: { (defaults to no restrictions)
override: GroupID (int, defaults to 100)
nodrop: true/false (boolean, defaults to false)
@@ -368,3 +370,12 @@ OnUnequipScript: Script to execute when the item is unequipped.
Inherit: This can be used only in item_db2.conf, and if set to true, and the
item already exists in item_db.conf, all the missing fields will be
inherited from there rather than using their default values.
+
+ShowDropEffect: Allow showing an effect when the item dropped by a monster. [ZERO client only]
+DropEffectMode: Set attribute for ShowDropEffect. [ZERO client only]
+ 0 - Client Based (itemInfo EffectID)
+ 1 - White effect
+ 2 - Blue effect
+ 3 - Yellow effect
+ 4 - Purple effect
+ 5 - Orange effect
diff --git a/doc/sample/getiteminfo.txt b/doc/sample/getiteminfo.txt
index 89f9a66b5..57407c072 100644
--- a/doc/sample/getiteminfo.txt
+++ b/doc/sample/getiteminfo.txt
@@ -16,8 +16,23 @@ prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
// ^nItemID^XXXX -> Item Name
mes "Item ID: "+.@value+" ^nItemID^"+.@value;
- mes "Current item info:";
- for (.@id = 0; .@id < 14; ++.@id)
- mes " getiteminfo("+.@value+","+.@id+") = "+getiteminfo(.@value,.@id);
+ mes("Current item info:");
+ mesf("Buy Price: %d", getiteminfo(.@value, ITEMINFO_BUYPRICE));
+ mesf("Sell Price: %d", getiteminfo(.@value, ITEMINFO_SELLPRICE));
+ mesf("Type: %d", getiteminfo(.@value, ITEMINFO_TYPE));
+ mesf("Max drop chance: %d.%02d", getiteminfo(.@value, ITEMINFO_MAXCHANCE) / 100, getiteminfo(.@value, ITEMINFO_MAXCHANCE) % 100);
+ mesf("Sex: %d", getiteminfo(.@value, ITEMINFO_SEX));
+ mesf("Equip location: %d", getiteminfo(.@value, ITEMINFO_LOC));
+ mesf("Weight: %d.%d", getiteminfo(.@value, ITEMINFO_WEIGHT) / 10, getiteminfo(.@value, ITEMINFO_WEIGHT) % 10);
+ mesf("Attack: %d", getiteminfo(.@value, ITEMINFO_ATK));
+ mesf("Defense: %d", getiteminfo(.@value, ITEMINFO_DEF));
+ mesf("Range: %d", getiteminfo(.@value, ITEMINFO_RANGE));
+ mesf("Slots: %d", getiteminfo(.@value, ITEMINFO_SLOTS));
+ mesf("Subtype: %d", getiteminfo(.@value, ITEMINFO_SUBTYPE));
+ mesf("Equip Level: %d", getiteminfo(.@value, ITEMINFO_ELV));
+ mesf("Weapon Level: %d", getiteminfo(.@value, ITEMINFO_WLV));
+ mesf("View ID: %d", getiteminfo(.@value, ITEMINFO_VIEWID));
+ mesf("MATK: %d", getiteminfo(.@value, ITEMINFO_MATK));
+ mesf("View Sprite: %d", getiteminfo(.@value, ITEMINFO_VIEWSPRITE));
close;
}
diff --git a/doc/sample/npc_test_setitemx.txt b/doc/sample/npc_test_setitemx.txt
index a06f0dc9f..519cfa363 100644
--- a/doc/sample/npc_test_setitemx.txt
+++ b/doc/sample/npc_test_setitemx.txt
@@ -14,15 +14,14 @@ prontera,164,161,5 script Lupus WOLF,{
switch (select("Make Knife[3] Edible", "Make Apple Equippable", "Edible Knife = Full SP", "Knife = Weapon + 3 Notes")) {
case 1:
mes "Ok. We made Knife[3] edible.";
- setiteminfo(Knife, 2, IT_HEALING); //type = 0 : potion
+ setiteminfo(Knife, ITEIMINFO_TYPE, IT_HEALING);
setitemscript(Knife, "{dispbottom \"* You used Knife[3]\";}");
break;
case 2:
mes "Ok. We made Apple equippable.";
- setiteminfo(Apple, 2, IT_ARMOR); //item type -> headgear (type = 5 -> IT_ARMOR)
- setiteminfo(Apple, 5, 512); //where to equip to (equip = 512)
- setiteminfo(Apple, 11, 256); //set as headgear location (loc = 256)
- setiteminfo(Apple, 14, 85); //set Headgear Sprite ID (view id = 85)
+ setiteminfo(Apple, ITEMINFO_TYPE, IT_ARMOR);
+ setiteminfo(Apple, ITEMINFO_LOC, EQP_HEAD_MID); //where to equip to (equip = 512)
+ setiteminfo(Apple, ITEMINFO_VIEWID, 85); //set Headgear Sprite ID (view id = 85)
setitemscript(Apple, "{dispbottom \"* Other item's changed\";}", 0);
setitemscript(Apple, "{dispbottom \"* Equipped\";}", 1);
setitemscript(Apple, "{dispbottom \"* Unequipped\";}", 2);
@@ -34,7 +33,7 @@ prontera,164,161,5 script Lupus WOLF,{
break;
case 4:
mes "Ok. We made Knife a weapon, but added 3 notes.";
- setiteminfo(Knife, 2, IT_WEAPON); //type = 4 -> IT_WEAPON
+ setiteminfo(Knife, ITEIMINFO_TYPE, IT_WEAPON);
setitemscript(Knife, "{dispbottom \"* 1 Used\";}", 0);
setitemscript(Knife, "{dispbottom \"* 2 Equipped\";}", 1);
setitemscript(Knife, "{dispbottom \"* 3 Unequipped\";}", 2);
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 5c730106b..a91a212e7 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -189,6 +189,7 @@ There are two optional fields for monster size and AI. Size can be 0
Alternately, a monster spawned using 'boss_monster' instead of 'monster' is able to be
detected on the map with the SC_CASH_BOSS_ALARM status (used by Convex Mirror, item ID# 12214).
+A monster spawned using 'miniboss_monster' is spawn monster as mini boss view.
** NPC names
@@ -3175,23 +3176,43 @@ Example:
---------------------------------------
*getiteminfo(<item ID>, <type>)
+*setiteminfo(<item ID>, <type>, <value>)
This function will look up the item with the specified ID number in the
database and return the info set by TYPE argument.
It will return -1 if there is no such item.
Valid types are:
- 0 - Buy Price; 1 - Sell Price; 2 - Item Type;
- 3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
+
+ ITEMINFO_BUYPRICE - Buy Price
+ ITEMINFO_SELLPRICE - Sell Price
+ ITEMINFO_TYPE - Item Type
+ ITEMINFO_MAXCHANCE - Max drop chance of this item e.g. 1 = 0.01% , etc..
if = 0, then monsters don't drop it at all (rare or a quest item)
if = 10000, then this item is sold in NPC shops only
- 4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
- 10 - slot; 11 - subtype; 12 - elv; 13 - wlv; 14 - view id
-
- If RENEWAL is defined, 15 - matk
+ ITEMINFO_SEX - Sex
+ ITEMINFO_LOC - Equip location
+ ITEMINFO_WEIGHT - Weight (note: 1/10 of unit)
+ ITEMINFO_ATK - Attack
+ ITEMINFO_DEF - Defense
+ ITEMINFO_RANGE - Range
+ ITEMINFO_SLOTS - Slots
+ ITEMINFO_SUBTYPE - Item subtype
+ ITEMINFO_ELV - Equip min. level
+ ITEMINFO_WLV - Weapon level
+ ITEMINFO_VIEWID - View ID ("Sprite" field in the Item DB)
+ ITEMINFO_MATK - MATK (only relevant if RENEWAL is set)
+ ITEMINFO_VIEWSPRITE - View Sprite ("ViewSprite" field in the Item DB)
Check sample in doc/sample/getiteminfo.txt
+The setiteminfo function will, instead, set the item's parameters. It returns
+the new value on success, or -1 on failure (item_id not found).
+
+Example:
+
+ setiteminfo(Stone, ITEMINFO_WEIGHT, 9990); // Stone now weighs 999.0
+
---------------------------------------
*getequipisenableopt(<equipment slot>)
@@ -3232,6 +3253,7 @@ Set an equipment's option index or value for the specified option slot.
<equipment_index> For a list of equipment indexes see getequipid().
<option_slot> can range from 1 to MAX_ITEM_OPTIONS
<type> can be IT_OPT_INDEX (the ID of the option bonus, @see "Id" or "Name" in db/item_options.conf)
+ removes the equip option if type is 0.
<value> The value of the type to be set.
returns 0 if value couldn't be set, 1 on success.
@@ -6893,6 +6915,7 @@ Examples:
---------------------------------------
*progressbar("<color>", <seconds>)
+*progressbar_unit("<color>", <seconds>{, <GID>})
This command works almost like sleep2(), but displays a progress bar above
the head of the currently attached character (like cast bar). Once the
@@ -6901,6 +6924,11 @@ while the progress bar progresses, it is aborted and the script ends. The
color format is in RGB (0xRRGGBB). The color is currently ignored by the
client and appears always green.
+progressbar_unit works only for PACKETVER >= 20130821
+The progressbar will show on the given unit id but it will not
+put the unit in timeout (the progressbar would be just an animation).
+if GID is not given use the attached player.
+
---------------------------------------
//=====================================
5.1 - End of Time-related commands
@@ -8294,26 +8322,6 @@ Example:
---------------------------------------
-*setiteminfo(<item id>, <type>, <value>)
-
-This function will set some value of an item.
-Returns the new value on success, or -1 on fail (item_id not found or
-invalid type).
-
-Valid types are:
- 0 - Buy Price; 1 - Sell Price; 2 - Item Type;
- 3 - maxchance (Max drop chance of this item e.g. 1 = 0.01% , etc..
- if = 0, then monsters don't drop it at all (rare or a quest item)
- if = 10000, then this item is sold in NPC shops only
- 4 - sex; 5 - equip; 6 - weight; 7 - atk; 8 - def; 9 - range;
- 10 - slot; 11 - subtype; 12 - elv; 13 - wlv; 14 - view id
-
-Example:
-
-setiteminfo Stone, 6, 9990; // Stone now weighs 999.0
-
----------------------------------------
-
*setitemscript(<item id>, <"{ new item script }">{, <type>})
Set a new script bonus to the Item. Very useful for game events.
@@ -9226,7 +9234,14 @@ No Icon : QTYPE_NONE
! Event Icon : QTYPE_EVENT
? Event Icon : QTYPE_EVENT2
Warg : QTYPE_WARG
-Warg Face : QTYPE_WARG2 (Only for packetver >= 20120410)
+Warg Face : QTYPE_WARG2 (Only for packetver >= 20120410 && packetver < 20170315)
+
+- Only for packetver >= 20170315
+Click Me Icon : QTYPE_CLICKME
+! Daily Quest Icon : QTYPE_DAILYQUEST
+! Green Event Icon : QTYPE_EVENT3
+! Job Quest Icon : QTYPE_JOBQUEST
+Jumping Poring : QTYPE_JUMPING_PORING
Map Mark Color, when used, creates a mark in the user's mini map on the position of the NPC,
the available color values are:
@@ -9335,7 +9350,14 @@ Remove Icon : QTYPE_NONE
! Event Icon : QTYPE_EVENT
? Event Icon : QTYPE_EVENT2
Warg : QTYPE_WARG
-Warg Face : QTYPE_WARG2 (Only for packetver >= 20120410)
+Warg Face : QTYPE_WARG2 (Only for packetver >= 20120410 && packetver < 20170315)
+
+- Only for packetver >= 20170315
+Click Me Icon : QTYPE_CLICKME
+! Daily Quest Icon : QTYPE_DAILYQUEST
+! Green Event Icon : QTYPE_EVENT3
+! Job Quest Icon : QTYPE_JOBQUEST
+Jumping Poring : QTYPE_JUMPING_PORING
Mark Color:
0 - No Mark
diff --git a/npc/custom/item_signer.txt b/npc/custom/item_signer.txt
index a0097bb55..6c12926e5 100644
--- a/npc/custom/item_signer.txt
+++ b/npc/custom/item_signer.txt
@@ -78,7 +78,7 @@ prt_in,24,61,7 script Perchik 1_M_01,{
emotion e_hmm;
close;
}
- if (getiteminfo(.@id,10)) {
+ if (getiteminfo(.@id, ITEMINFO_SLOTS) > 0) {
mes "Sorry, I don't sign slotted items.";
emotion e_sry;
close;
diff --git a/npc/custom/itembind.txt b/npc/custom/itembind.txt
index 8c51ad24d..7d95afdfc 100644
--- a/npc/custom/itembind.txt
+++ b/npc/custom/itembind.txt
@@ -35,14 +35,10 @@ prontera,144,174,4 script Bound Items 4_M_JP_MID,{
//Allows equipment (default) or non-rental item
if (@inventorylist_bound[.@i] || @inventorylist_expire[.@i])
continue;
- if (((.allowbind & 1) && (getiteminfo(@inventorylist_id[.@i], 2) == IT_WEAPON || getiteminfo(@inventorylist_id[.@i], 2) == IT_ARMOR)) ||
- ((.allowbind & 2) &&
- (getiteminfo(@inventorylist_id[.@i], 2) == IT_HEALING || getiteminfo(@inventorylist_id[.@i], 2) == IT_USABLE ||
- getiteminfo(@inventorylist_id[.@i], 2) == IT_DELAYCONSUME || getiteminfo(@inventorylist_id[.@i], 2) == IT_CASH)) ||
- ((.allowbind & 4) &&
- (getiteminfo(@inventorylist_id[.@i], 2) == IT_ETC || getiteminfo(@inventorylist_id[.@i], 2) == IT_CARD ||
- getiteminfo(@inventorylist_id[.@i], 2) == IT_PETEGG || getiteminfo(@inventorylist_id[.@i], 2) == IT_PETARMOR ||
- getiteminfo(@inventorylist_id[.@i], 2) == IT_AMMO))
+ .@itemtype = getiteminfo(@inventorylist_id[.@i], ITEMINFO_TYPE);
+ if (((.allowbind & 1) != 0 && (.@itemtype == IT_WEAPON || .@itemtype == IT_ARMOR))
+ || ((.allowbind & 2) != 0 && (.@itemtype == IT_HEALING || .@itemtype == IT_USABLE || .@itemtype == IT_DELAYCONSUME || .@itemtype == IT_CASH))
+ || ((.allowbind & 4) != 0 && (.@itemtype == IT_ETC || .@itemtype == IT_CARD || .@itemtype == IT_PETEGG || .@itemtype == IT_PETARMOR || .@itemtype == IT_AMMO))
) {
set .@bindlist$, .@bindlist$ + ":" + getitemname(@inventorylist_id[.@i]) + " - " + @inventorylist_id[.@i];
set .@bindlist[.@j],.@i;
diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt
index 6805220f7..739b53c02 100644
--- a/npc/custom/quests/quest_shop.txt
+++ b/npc/custom/quests/quest_shop.txt
@@ -121,8 +121,8 @@ OnBuyItem:
if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
next;
- setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
- if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))
+ setarray @qe[1], getiteminfo(.@q[0], ITEMINFO_LOC), getiteminfo(.@q[0], ITEMINFO_VIEWSPRITE);
+ if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
set .@preview,1;
addtimer 1000, strnpcinfo(NPC_NAME)+"::OnEnd";
while(1) {
@@ -135,7 +135,7 @@ OnBuyItem:
}
if (!checkweight(.@q[0],.@q[2])) {
mes "[Quest Shop]";
- mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
+ mes "^FF0000You need "+(((.@q[2] * getiteminfo(.@q[0], ITEMINFO_WEIGHT)) + Weight - MaxWeight) / 10)+" additional weight capacity to complete this trade.^000000";
close;
}
if (.@q[4]) Zeny -= (.@q[4]*.@q[1]);
@@ -198,7 +198,7 @@ function Slot {
set .@s$,getitemname(getarg(0));
switch(.ShowSlot) {
case 1: if (!getitemslots(getarg(0))) return .@s$;
- case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
+ case 2: if (getiteminfo(getarg(0), ITEMINFO_TYPE) == IT_WEAPON || getiteminfo(getarg(0), ITEMINFO_TYPE) == IT_ARMOR) return .@s$+" ["+getitemslots(getarg(0))+"]";
default: return .@s$;
}
}
diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt
index f94bc177a..dc60ce766 100644
--- a/npc/instances/EndlessTower.txt
+++ b/npc/instances/EndlessTower.txt
@@ -37,164 +37,163 @@
//=========================================================================
alberta,214,77,6 script Captain Janssen 4_M_SEAMAN,{
- if (checkweight(Knife,1) == 0) {
- mes "^008800Wait here!!";
- mes "You're carrying too much stuff. Why don't you put some of it away, and then come back.^000000";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("^008800Wait here!!");
+ mes("You're carrying too much stuff. Why don't you put some of it away, and then come back.^000000");
+ close();
}
if (BaseLevel < 50) {
- mes "[Captain Janssen]";
- mes "Sigh... I don't know if I can ever go back to sailing the sea...";
- close;
+ mes("[Captain Janssen]");
+ mes("Sigh... I don't know if I can ever go back to sailing the sea...");
+ close();
}
.@name$ = strcharinfo(PC_NAME);
if (in_102tower == 1) {
- mes "^0000ffLooking incredibly excited, the old man ran into the marine shop hurriedly ordering goods. You don't have anything better to do, so you decide to ask him why he is in such a rush.^000000";
- next;
- mes "^0000ffThe old man, after finishing his orders, walks towards you.^000000";
- next;
- mes "[Captain Janssen]";
- mes "I was touched when you accepted a request from me, a stranger, so easily. You must truly be one of those good, heroic adventurers. Are you interested in setting out on an ocean voyage?";
- next;
- mes "["+.@name$+"]";
- mes "I've sailed a few times... But now that I think about it, I've never gone across the continent.";
- next;
- mes "[Captain Janssen]";
- mes "No, that's good enough. I may just have one small fishing vessel, but I used to be a captain that commanded a fleet.";
- next;
- mes "[Captain Janssen]";
- mes "As you may know after a few sea voyages, not many people have gone across the ocean beyond the continent. I too have failed to conquer the ocean.";
- next;
- mes "^0000ffMr. Janssen talked about his perilous ocean journeys for quite a while. You have enough time on your hands, so you sit down, quietly listening to his story.^000000";
- next;
- mes "^0000ffAt least half of his story sounded grossly exaggerated, but something caught your ear: he insists that a humongous tower exists on the ocean, and that it's so tall, it scrapes across the sky.^000000";
+ mes("^0000ffLooking incredibly excited, the old man ran into the marine shop hurriedly ordering goods. You don't have anything better to do, so you decide to ask him why he is in such a rush.^000000");
+ next();
+ mes("^0000ffThe old man, after finishing his orders, walks towards you.^000000");
+ next();
+ mes("[Captain Janssen]");
+ mes("I was touched when you accepted a request from me, a stranger, so easily. You must truly be one of those good, heroic adventurers. Are you interested in setting out on an ocean voyage?");
+ next();
+ mesf("[%s]", .@name$);
+ mes("I've sailed a few times... But now that I think about it, I've never gone across the continent.");
+ next();
+ mes("[Captain Janssen]");
+ mes("No, that's good enough. I may just have one small fishing vessel, but I used to be a captain that commanded a fleet.");
+ next();
+ mes("[Captain Janssen]");
+ mes("As you may know after a few sea voyages, not many people have gone across the ocean beyond the continent. I too have failed to conquer the ocean.");
+ next();
+ mes("^0000ffMr. Janssen talked about his perilous ocean journeys for quite a while. You have enough time on your hands, so you sit down, quietly listening to his story.^000000");
+ next();
+ mes("^0000ffAt least half of his story sounded grossly exaggerated, but something caught your ear: he insists that a humongous tower exists on the ocean, and that it's so tall, it scrapes across the sky.^000000");
in_102tower = 2;
- close;
+ close();
} else if (in_102tower == 2) {
- mes "[Captain Janssen]";
- mes "So all I could do was cast anchor at that humongous tower after my fleet was wrecked. At first, we were only going to stay there until the rainstorm was over, but it didn't end as soon as we had hoped.";
- next;
- mes "[Captain Janssen]";
- mes "My crew was starving, and a few of them walked into the tower in order to find food... They never came back.";
- next;
- mes "["+.@name$+"]";
- mes "Why didn't you go in there with them?";
- next;
- mes "[Captain Janssen]";
- mes "My instincts told me that tower was dangerous. I was curious, but I wasn't going to risk my life. We waited for them to come back for 7 days until the rainstorm was finally over, but no one returned.";
- next;
- mes "[Captain Janssen]";
- mes "In our desperation to survive, we abandoned all our goods, and left the tower only with a little bit of the water and edible plants we'd found around the tower. When we finally reached land, I was the only one alive...";
- next;
- mes "^0000ffYou could imagine the heartwretching scene of the dying fleet on their last voyage, even if he didn't explain it any further. A look of somber regret swept over his face as he remained silent a while, and then he said:^000000";
- next;
- mes "[Captain Janssen]";
- mes "I have something I must do before I die. I must retrieve the remains of my crew that died in the tower, and give them a proper burial.";
- next;
- mes "[Captain Janssen]";
- mes "I feel so lucky to meet a warm-hearted adventurer like you. With the money you've given me, I can finally go sailing to the tower again.";
- next;
- mes "["+.@name$+"]";
- mes "How about hiring me as your first mate?";
- next;
- mes "[Captain Janssen]";
- mes "Thank you, but it is an extremely dangerous place. I have my duty to fulfill, but you don't have any obligation to me or them. I don't wish to sacrifice someone as young as you to such a dangerous place.";
- next;
- mes "["+.@name$+"]";
- mes "No...";
- mes ".";
- mes ".";
- mes "As an adventurer, there's my obligation to those in need. I'm also very curious about that place...";
- next;
- mes "[Captain Janssen]";
- mes "I was going to leave right away, but since you've joined me, I should give you time to prepare. I'll be waiting here until you're ready to go.";
- next;
- mes "[Captain Janssen]";
- mes "...Okay then...";
- mes "Welcome aboard, first mate.";
+ mes("[Captain Janssen]");
+ mes("So all I could do was cast anchor at that humongous tower after my fleet was wrecked. At first, we were only going to stay there until the rainstorm was over, but it didn't end as soon as we had hoped.");
+ next();
+ mes("[Captain Janssen]");
+ mes("My crew was starving, and a few of them walked into the tower in order to find food... They never came back.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("Why didn't you go in there with them?");
+ next();
+ mes("[Captain Janssen]");
+ mes("My instincts told me that tower was dangerous. I was curious, but I wasn't going to risk my life. We waited for them to come back for 7 days until the rainstorm was finally over, but no one returned.");
+ next();
+ mes("[Captain Janssen]");
+ mes("In our desperation to survive, we abandoned all our goods, and left the tower only with a little bit of the water and edible plants we'd found around the tower. When we finally reached land, I was the only one alive...");
+ next();
+ mes("^0000ffYou could imagine the heartwretching scene of the dying fleet on their last voyage, even if he didn't explain it any further. A look of somber regret swept over his face as he remained silent a while, and then he said:^000000");
+ next();
+ mes("[Captain Janssen]");
+ mes("I have something I must do before I die. I must retrieve the remains of my crew that died in the tower, and give them a proper burial.");
+ next();
+ mes("[Captain Janssen]");
+ mes("I feel so lucky to meet a warm-hearted adventurer like you. With the money you've given me, I can finally go sailing to the tower again.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("How about hiring me as your first mate?");
+ next();
+ mes("[Captain Janssen]");
+ mes("Thank you, but it is an extremely dangerous place. I have my duty to fulfill, but you don't have any obligation to me or them. I don't wish to sacrifice someone as young as you to such a dangerous place.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("No...");
+ mes(".");
+ mes(".");
+ mes("As an adventurer, there's my obligation to those in need. I'm also very curious about that place...");
+ next();
+ mes("[Captain Janssen]");
+ mes("I was going to leave right away, but since you've joined me, I should give you time to prepare. I'll be waiting here until you're ready to go.");
+ next();
+ mes("[Captain Janssen]");
+ mes("...Okay then...");
+ mes("Welcome aboard, first mate.");
in_102tower = 3;
- close;
+ close();
} else if (in_102tower == 3) {
- mes "[Captain Janssen]";
- mes "Shall we leave now?";
- next;
- switch(select("Yes, let's go!", "No, I'm not quite ready...")) {
+ mes("[Captain Janssen]");
+ mes("Shall we leave now?");
+ next();
+ switch (select("Yes, let's go!", "No, I'm not quite ready...")) {
case 1:
- mes "[Captain Janssen]";
- mes "Then pull up the anchor, first mate!";
- close2;
+ mes("[Captain Janssen]");
+ mes("Then pull up the anchor, first mate!");
+ close2();
in_102tower = 4;
- warp "e_tower",70,114;
+ warp("e_tower", 70, 114);
end;
case 2:
- mes "[Captain Janssen]";
- mes "Sure, no problem. Come back when you're ready.";
- close;
+ mes("[Captain Janssen]");
+ mes("Sure, no problem. Come back when you're ready.");
+ close();
}
} else if (in_102tower > 3) {
- mes "[Captain Janssen]";
- mes "Well, to travel the ocean again, we need to restock on goods. If you give me 10,000 Zeny, I'll take care of the rest.";
- next;
- switch(select("I'll come back later.", "Let's go, now!")) {
+ mes("[Captain Janssen]");
+ mes("Well, to travel the ocean again, we need to restock on goods. If you give me 10,000 Zeny, I'll take care of the rest.");
+ next();
+ switch (select("I'll come back later.", "Let's go, now!")) {
case 1:
- mes "["+.@name$+"]";
- mes "I'm sorry, but I don't have that much money. I'll come back when I save enough.";
- next;
- mes "[Captain Janssen]";
- mes "Sure, no problem. I'll be waiting for your return.";
- close;
+ mesf("[%s]", .@name$);
+ mes("I'm sorry, but I don't have that much money. I'll come back when I save enough.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Sure, no problem. I'll be waiting for your return.");
+ close();
case 2:
if (Zeny < 10000) {
- mes "[Captain Janssen]";
- mes "I'm sorry, but you don't have enough money. I need at least 10,000 Zeny to restock our supplies...";
- close;
- }
- else {
- mes "[Captain Janssen]";
- mes "Excellent! Now we're good to go. Let's pull up the anchor again!";
+ mes("[Captain Janssen]");
+ mes("I'm sorry, but you don't have enough money. I need at least 10,000 Zeny to restock our supplies...");
+ close();
+ } else {
+ mes("[Captain Janssen]");
+ mes("Excellent! Now we're good to go. Let's pull up the anchor again!");
Zeny -= 10000;
- close2;
- warp "e_tower",70,114;
+ close2();
+ warp("e_tower", 70, 114);
end;
}
}
} else {
- mes "[Captain Janssen]";
- mes "Excuse me, are you an adventurer?";
- next;
- mes "[Captain Janssen]";
- mes "I'm sorry to ask you this, especially when this is the first time we've ever met, but can you do me a favor? I'll make it short.";
- next;
- mes "[Captain Janssen]";
- mes "Can you donate ^0000ff10,000 Zeny^000000 to me? It's for a cause that's important to me...";
- next;
- switch(select("No!", "Sure thing.")) {
+ mes("[Captain Janssen]");
+ mes("Excuse me, are you an adventurer?");
+ next();
+ mes("[Captain Janssen]");
+ mes("I'm sorry to ask you this, especially when this is the first time we've ever met, but can you do me a favor? I'll make it short.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Can you donate ^0000ff10,000 Zeny^000000 to me? It's for a cause that's important to me...");
+ next();
+ switch (select("No!", "Sure thing.")) {
case 1:
- mes "["+.@name$+"]";
- mes "I'm sorry, but you've got the wrong person to ask that.";
- next;
- mes "[Captain Janssen]";
- mes "I see... Sorry to bother you. I understand it was too rude to ask something like that to begin with.";
- close;
+ mesf("[%s]", .@name$);
+ mes("I'm sorry, but you've got the wrong person to ask that.");
+ next();
+ mes("[Captain Janssen]");
+ mes("I see... Sorry to bother you. I understand it was too rude to ask something like that to begin with.");
+ close();
case 2:
- mes "[Captain Janssen]";
- mes "Huh? Are you sure that you don't mind giving me that much money? Wow, thank you so much!";
- next;
+ mes("[Captain Janssen]");
+ mes("Huh? Are you sure that you don't mind giving me that much money? Wow, thank you so much!");
+ next();
if (Zeny < 10000) {
- mes "[Captain Janssen]";
- mes "...I'm sorry, but I don't think you have 10,000 Zeny. Thank you for your kindness, but I need more than that.";
- close;
+ mes("[Captain Janssen]");
+ mes("...I'm sorry, but I don't think you have 10,000 Zeny. Thank you for your kindness, but I need more than that.");
+ close();
} else {
- mes "["+.@name$+"]";
- mes "I don't know why you'd need so much money, but here. You can take it.";
- next;
- mes "^0000ffYou have donated 10,000 Zeny to Captain Janssen^000000.";
- next;
- mes "[Captain Janssen]";
- mes "Thank you so much! Now I can stock up on food and materials for my ship. You're kind, very kind!";
+ mesf("[%s]", .@name$);
+ mes("I don't know why you'd need so much money, but here. You can take it.");
+ next();
+ mes("^0000ffYou have donated 10,000 Zeny to Captain Janssen^000000.");
+ next();
+ mes("[Captain Janssen]");
+ mes("Thank you so much! Now I can stock up on food and materials for my ship. You're kind, very kind!");
Zeny -= 10000;
in_102tower = 1;
- close;
+ close();
}
}
}
@@ -204,116 +203,119 @@ e_tower,81,105,0 script Tower Protection Stone 2_MONEMUS,{
.@party_id = getcharid(CHAR_ID_PARTY);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Endless Tower";
+ .@md_name$ = _("Endless Tower");
- .@etower_timer = questprogress(60200,PLAYTIME); // 1 week
- .@etower_timer2 = questprogress(60201,PLAYTIME); // 4 hours
+ .@etower_timer = questprogress(60200, PLAYTIME); // 1 week
+ .@etower_timer2 = questprogress(60201, PLAYTIME); // 4 hours
- if (!instance_check_party(.@party_id,2)) {
- mes "Make or join a party with more than 1 member and try again.";
- close;
+ if (!instance_check_party(.@party_id, 2)) {
+ mes("Make or join a party with more than 1 member and try again.");
+ close();
}
if (!.@etower_timer) {
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?";
- next;
- switch(select("Generate dungeon "+.@md_name$, "Enter the dungeon", "Return to Alberta", "Cancel")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?");
+ next();
+ .@str$ = sprintf(_$("Generate Dungeon %s"), .@md_name$);
+ switch (select(.@str$, "Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Party Name: "+.@p_name$;
- mes "Party Leader: "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
- close;
+ mesf("Party Name: %s", .@p_name$);
+ mesf("Party Leader: %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
+ close();
}
- mes "^0000ff"+.@md_name$+"^000000 - Try to reserve";
- mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.";
+ mesf("^0000ff%s^000000 - Try to reserve", .@md_name$);
+ mes("After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.");
for (.@i = 1; .@i <= 6; ++.@i) {
- if( instance_attachmap(.@i + "@tower", .@instance) == "" ) {
- mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
+ if (instance_attachmap(.@i + "@tower", .@instance) == "") {
+ mesf("^0000ff%s ^000000- Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
}
- instance_set_timeout 14400,300,.@instance;
+ instance_set_timeout(14400, 300, .@instance);
instance_init(.@instance);
- close;
+ close();
case 2:
- callsub L_Enter,0,1,.@md_name$,.@p_name$;
+ callsub(L_Enter, 0, 1, .@md_name$, .@p_name$);
case 3:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 4:
- close;
+ close();
}
}
- switch(select("Enter the "+.@md_name$, "Return to Alberta", "Cancel")) {
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- callsub L_Enter,1,1,.@md_name$,.@p_name$;
+ callsub(L_Enter, 1, 1, .@md_name$, .@p_name$);
case 2:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 3:
end;
}
} else if (.@etower_timer == 1 && .@etower_timer2 == 2) {
- .@dun_lim_time = etower_timer+604800; // 1 week
- .@dun_lim_time2 = etower_timer+14400; // 4 hours
+ .@dun_lim_time = etower_timer + 604800; // 1 week
+ .@dun_lim_time2 = etower_timer + 14400; // 4 hours
.@dun_cur_time = gettimetick(2);
- .@dun_ent_t = (.@dun_lim_time - .@dun_cur_time);
- .@dun_h = (.@dun_ent_t / 3600);
+ .@dun_ent_t = .@dun_lim_time - .@dun_cur_time;
+ .@dun_h = .@dun_ent_t / 3600;
.@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60;
.@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
- mes "Due to the tower's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon.";
- next;
- mes "It is dangerous here. Let me move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mesf("Due to the tower's aftereffects, you cannot enter the dungeon right now, %d hours %d minutes %d seconds left to enter the next dungeon.", .@dun_h, .@dun_m, .@dun_s);
+ next();
+ mes("It is dangerous here. Let me move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
} else if (.@etower_timer == 1) {
- mes "If you have the dungeon generated already, you can enter it. ";
- next;
- switch(select("Enter the "+.@md_name$, "Return to Alberta", "Cancel")) {
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ switch (select("Enter the Dungeon", "Return to Alberta", "Cancel")) {
case 1:
- callsub L_Enter,0,0,.@md_name$,.@p_name$;
+ callsub(L_Enter, 0, 0, .@md_name$, .@p_name$);
case 2:
- mes "I will move you to Alberta.";
- close2;
- warp "alberta",223,36;
+ mes("I will move you to Alberta.");
+ close2();
+ warp("alberta", 223, 36);
end;
case 3:
break;
}
- close;
+ close();
} else {
etower_timer = 0;
- erasequest 60200;
- erasequest 60201;
- mes "^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close;
+ erasequest(60200);
+ erasequest(60201);
+ mes("^0000ffThe records and after effects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close();
}
L_Enter:
if (has_instance("1@tower") == "") {
- mes "The memorial dungeon " +getarg(2)+ " does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ mesf("The memorial dungeon %s does not exist.", getarg(2));
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "e_tower", strcharinfo(PC_NAME)+" of the party, " +getarg(3)+", is entering the dungeon, Endless Tower.",bc_map,"0x00ff99",FW_NORMAL,12;
+ mapannounce("e_tower", sprintf(_$("%s of the party, %s, is entering the dungeon, Endless Tower."), strcharinfo(PC_NAME), getarg(3)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
if (getarg(1)) {
etower_timer = gettimetick(2);
- setquest 60200;
- setquest 60201;
+ setquest(60200);
+ setquest(60201);
}
- warp "1@tower",52,354;
+ warp("1@tower", 52, 354);
if (getarg(0) == 0)
- close;
+ close();
else
end;
}
@@ -322,75 +324,75 @@ L_Enter:
e_tower,30,30,2 script Huge Vortex CLEAR_NPC,2,2,{
end;
OnTouch:
- mapannounce "e_tower","[ " + strcharinfo(PC_NAME) + " ], seems to be engulfed by a huge vortex",bc_map,"0x00ff99",FW_NORMAL,12;
- warp "alberta",223,36;
+ mapannounce("e_tower", sprintf(_$("[ %s ], seems to be engulfed by a huge vortex"), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
+ warp("alberta", 223, 36);
end;
}
// Original name: "#102Administrator Mode104"
e_tower,1,1,2 script #102Administrator Mode CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- switch(select("Generate Purification Stone", "Remove Purification Stone", "Cancel")) {
+ switch (select("Generate Purification Stone", "Remove Purification Stone", "Cancel")) {
case 1:
- mes "Create the Purification Stone that stays for 30 minutes.";
- donpcevent "Purification Stone#et1::OnEnable";
+ mes("Create the Purification Stone that stays for 30 minutes.");
+ donpcevent("Purification Stone#et1::OnEnable");
break;
case 2:
- mes "Destroy the Purification Stone immediately";
- donpcevent "Purification Stone#et1::OnDisable";
+ mes("Destroy the Purification Stone immediately");
+ donpcevent("Purification Stone#et1::OnDisable");
break;
case 3:
- mes "You have canceled it.";
+ mes("You have canceled it.");
break;
}
- close;
+ close();
} else {
- mes "Enter the password exactly.";
- close;
+ mes("Enter the password exactly.");
+ close();
}
}
e_tower,69,117,4 script Purification Stone#et1 2_MONEMUS,{
etower_timer = 0;
- mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close;
+ mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close();
OnInit:
- disablenpc "Purification Stone#et1";
+ disablenpc("Purification Stone#et1");
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- disablenpc "Purification Stone#et1";
+ stopnpctimer();
+ disablenpc("Purification Stone#et1");
end;
OnTimer1000:
- enablenpc "Purification Stone#et1";
+ enablenpc("Purification Stone#et1");
end;
OnTimer1740000:
- mapannounce "e_tower", "The Purification Stone will be destroyed in one minute.",bc_map,"0x00ff99";
+ mapannounce("e_tower", _("The Purification Stone will be destroyed in one minute."), bc_map, C_SPRINGGREEN);
end;
OnTimer1800000:
- disablenpc "Purification Stone#et1";
+ disablenpc("Purification Stone#et1");
end;
}
e_tower,151,185,4 script Purification Stone#et2 CLEAR_NPC,{
- callfunc "F_GM_NPC";
+ callfunc("F_GM_NPC");
etower_timer = 0;
- mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000";
- close2;
- warp "e_tower",75,108;
+ mes("^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000");
+ close2();
+ warp("e_tower", 75, 108);
end;
}
@@ -401,677 +403,677 @@ function script F_Tower_Monster {
.@map$ = getarg(1);
.@label$ = getarg(2);
- switch(.@level) {
+ switch (.@level) {
case 1:
- areamonster .@map$,7,351,17,387,"Metaling",1613,15,.@label$;
- areamonster .@map$,7,351,17,387,"Marin",1242,5,.@label$;
- areamonster .@map$,7,351,17,387,"Poporing",1031,5,.@label$;
- areamonster .@map$,7,351,17,387,"Drops",1113,5,.@label$;
- areamonster .@map$,7,351,17,387,"Mastering",1090,1,.@label$;
- areamonster .@map$,7,351,17,387,"Poring",1002,5,.@label$;
+ areamonster(.@map$, 7, 351, 17, 387, _("Metaling"), METALING, 15, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Marin"), MARIN, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Poporing"), POPORING, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Drops"), DROPS, 5, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Mastering"), MASTERING, 1, .@label$);
+ areamonster(.@map$, 7, 351, 17, 387, _("Poring"), PORING, 5, .@label$);
break;
case 2:
- areamonster .@map$,93,351,103,387,"Desert Wolf",1106,20,.@label$;
- areamonster .@map$,93,351,103,387,"Vagabond Wolf",1092,1,.@label$;
- areamonster .@map$,93,351,103,387,"Baby Desert Wolf",1107,10,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Desert Wolf"), DESERT_WOLF, 20, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Vagabond Wolf"), VAGABOND_WOLF, 1, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Baby Desert Wolf"), DESERT_WOLF_B, 10, .@label$);
break;
case 3:
- areamonster .@map$,181,351,191,387,"Archer Skeleton",1016,5,.@label$;
- areamonster .@map$,181,351,191,387,"Skel Worker",1169,5,.@label$;
- areamonster .@map$,181,351,191,387,"Soldier Skeleton",1028,5,.@label$;
- areamonster .@map$,181,351,191,387,"Orc Skeleton",1152,5,.@label$;
- areamonster .@map$,181,351,191,387,"Pirate Skeleton",1071,5,.@label$;
- areamonster .@map$,181,351,191,387,"Skeleton",1076,5,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Archer Skeleton"), ARCHER_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Skel Worker"), SKEL_WORKER, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Soldier Skeleton"), SOLDIER_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Orc Skeleton"), ORC_SKELETON, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Pirate Skeleton"), PIRATE_SKEL, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Skeleton"), SKELETON, 5, .@label$);
break;
case 4:
- areamonster .@map$,267,351,277,387,"Argiope",1099,15,.@label$;
- areamonster .@map$,267,351,277,387,"Mantis",1139,5,.@label$;
- areamonster .@map$,267,351,277,387,"Argos",1100,5,.@label$;
- areamonster .@map$,267,351,277,387,"Vocal",1088,1,.@label$;
- areamonster .@map$,267,351,277,387,"Rocker",1052,5,.@label$;
- areamonster .@map$,267,351,277,387,"Hornet",1004,5,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Argiope"), ARGIOPE, 15, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Mantis"), MANTIS, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Argos"), ARGOS, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Vocal"), VOCAL, 1, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Rocker"), ROCKER, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Hornet"), HORNET, 5, .@label$);
break;
case 5:
- areamonster .@map$,352,351,362,387,"Golden Thief Bug",1086,1,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Male",1054,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Female",1053,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug",1051,15,.@label$;
- areamonster .@map$,352,351,362,387,"Thief Bug Egg",1048,5,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Golden Thief Bug"), GOLDEN_BUG, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Male"), THIEF_BUG__, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Female"), THIEF_BUG_, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug"), THIEF_BUG, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Thief Bug Egg"), THIEF_BUG_EGG, 5, .@label$);
break;
case 6:
- areamonster .@map$,9,267,19,303,"Dragon Egg",1721,5,.@label$;
- areamonster .@map$,9,267,19,303,"Thief Bug Egg",1048,5,.@label$;
- areamonster .@map$,9,267,19,303,"Ant Egg",1097,5,.@label$;
- areamonster .@map$,9,267,19,303,"Pupa",1008,5,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Dragon Egg"), DRAGON_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Thief Bug Egg"), THIEF_BUG_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ant Egg"), ANT_EGG, 5, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Pupa"), PUPA, 5, .@label$);
break;
case 7:
- areamonster .@map$,93,267,103,303,"Explosion",1383,15,.@label$;
- areamonster .@map$,93,267,103,303,"Drainliar",1111,15,.@label$;
- areamonster .@map$,93,267,103,303,"Anopheles",1627,15,.@label$;
- areamonster .@map$,93,267,103,303,"Farmiliar",1005,15,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Explosion"), EXPLOSION, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Drainliar"), DRAINLIAR, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Anopheles"), ANOPHELES, 15, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Farmiliar"), FARMILIAR, 15, .@label$);
break;
case 8:
- areamonster .@map$,181,267,191,303,"Firelock Soldier",1403,15,.@label$;
- areamonster .@map$,181,267,191,303,"Cruiser",1248,15,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Firelock Soldier"), ANTIQUE_FIRELOCK, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Cruiser"), CRUISER, 15, .@label$);
break;
case 9:
- areamonster .@map$,267,267,277,303,"Obsidian",1615,15,.@label$;
- areamonster .@map$,267,267,277,303,"Golem",1040,15,.@label$;
- areamonster .@map$,267,267,277,303,"Stapo",1784,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Obsidian"), OBSIDIAN, 15, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Golem"), GOLEM, 15, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Stapo"), STAPO, 10, .@label$);
break;
case 10:
- areamonster .@map$,352,267,362,303,"Mistress",1059,1,.@label$;
- areamonster .@map$,352,267,362,303,"Giant Hornet",1303,25,.@label$;
- areamonster .@map$,352,267,362,303,"Hornet",1004,20,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Mistress"), MISTRESS, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Giant Hornet"), GIANT_HONET, 25, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Hornet"), HORNET, 20, .@label$);
break;
case 11:
- areamonster .@map$,9,180,19,216,"Dryad",1493,15,.@label$;
- areamonster .@map$,9,180,19,216,"Parasite",1500,15,.@label$;
- areamonster .@map$,9,180,19,216,"Hermit Plant",1413,15,.@label$;
- areamonster .@map$,9,180,19,216,"Rafflesia",1162,5,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Dryad"), DRYAD, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Parasite"), PARASITE, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Hermit Plant"), WILD_GINSENG, 15, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Rafflesia"), RAFFLESIA, 5, .@label$);
break;
case 12:
- areamonster .@map$,93,180,103,216,"Demon Pungus",1378,25,.@label$;
- areamonster .@map$,93,180,103,216,"Punk",1199,25,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Demon Pungus"), DEMON_PUNGUS, 25, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Punk"), PUNK, 25, .@label$);
break;
case 13:
- areamonster .@map$,181,180,191,216,"Yao Yun",1512,15,.@label$;
- areamonster .@map$,181,180,191,216,"Bongunn",1188,15,.@label$;
- areamonster .@map$,181,180,191,216,"Munak",1026,10,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Yao Yun"), HYEGUN, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Bongunn"), BON_GUN, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Munak"), MUNAK, 10, .@label$);
break;
case 14:
- areamonster .@map$,267,180,277,216,"High Orc",1213,15,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Archer",1189,10,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Lady",1273,10,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Warrior",1023,5,.@label$;
- areamonster .@map$,267,180,277,216,"Orc Baby",1686,5,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("High Orc"), HIGH_ORC, 15, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Archer"), ORC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Lady"), ORC_LADY, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Warrior"), ORK_WARRIOR, 5, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Orc Baby"), ORC_BABY, 5, .@label$);
break;
case 15:
- areamonster .@map$,352,180,362,216,"Maya",1147,1,.@label$;
- areamonster .@map$,352,180,362,216,"Phreeoni",1159,1,.@label$;
- areamonster .@map$,352,180,362,216,"Deniro",1105,15,.@label$;
- areamonster .@map$,352,180,362,216,"Pierre",1160,15,.@label$;
- areamonster .@map$,352,180,362,216,"Andre",1095,15,.@label$;
- areamonster .@map$,352,180,362,216,"Ant Egg",1097,5,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Maya"), MAYA, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Phreeoni"), PHREEONI, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Deniro"), DENIRO, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Pierre"), PIERE, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Andre"), ANDRE, 15, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Ant Egg"), ANT_EGG, 5, .@label$);
break;
case 16:
- areamonster .@map$,9,96,19,132,"Raydric Archer",1276,10,.@label$;
- areamonster .@map$,9,96,19,132,"Orc Archer",1189,10,.@label$;
- areamonster .@map$,9,96,19,132,"Gargoyle",1253,10,.@label$;
- areamonster .@map$,9,96,19,132,"Archer Skeleton",1016,10,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Raydric Archer"), RAYDRIC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Orc Archer"), ORC_ARCHER, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Gargoyle"), GARGOYLE, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Archer Skeleton"), ARCHER_SKELETON, 10, .@label$);
break;
case 17:
- areamonster .@map$,93,96,103,132,"Merman",1264,10,.@label$;
- areamonster .@map$,93,96,103,132,"Baphomet Jr.",1101,10,.@label$;
- areamonster .@map$,93,96,103,132,"Strouf",1065,15,.@label$;
- areamonster .@map$,93,96,103,132,"Hill Wind",1629,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Merman"), MERMAN, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Baphomet Jr."), BAPHOMET_, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Strouf"), STROUF, 15, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Hill Wind"), HILL_WIND, 5, .@label$);
break;
case 18:
- areamonster .@map$,181,96,191,132,"Cramp",1209,25,.@label$;
- areamonster .@map$,181,96,191,132,"Tarou",1175,15,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Cramp"), CRAMP, 25, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Tarou"), TAROU, 15, .@label$);
break;
case 19:
- areamonster .@map$,267,96,277,132,"Deviace",1108,10,.@label$;
- areamonster .@map$,267,96,277,132,"Megalodon",1064,10,.@label$;
- areamonster .@map$,267,96,277,132,"Swordfish",1069,10,.@label$;
- areamonster .@map$,267,96,277,132,"Phen",1158,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Deviace"), DEVIACE, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Megalodon"), MEGALODON, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Swordfish"), SWORD_FISH, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Phen"), PHEN, 10, .@label$);
break;
case 20:
- areamonster .@map$,352,96,362,132,"Drake",1112,1,.@label$;
- areamonster .@map$,352,96,362,132,"Pirate Skeleton",1071,50,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Drake"), DRAKE, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Pirate Skeleton"), PIRATE_SKEL, 50, .@label$);
break;
case 21:
- areamonster .@map$,9,9,19,45,"Plasma",1693,10,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1696,10,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1695,5,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1697,5,.@label$;
- areamonster .@map$,9,9,19,45,"Plasma",1694,5,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_Y, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_P, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_G, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_B, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Plasma"), PLASMA_R, 5, .@label$);
break;
case 22:
- areamonster .@map$,93,9,103,45,"Muscipular",1780,15,.@label$;
- areamonster .@map$,93,9,103,45,"Drosera",1781,15,.@label$;
- areamonster .@map$,93,9,103,45,"Flora",1118,15,.@label$;
- areamonster .@map$,93,9,103,45,"Hydra",1068,15,.@label$;
- areamonster .@map$,93,9,103,45,"Mandragora",1020,10,.@label$;
- areamonster .@map$,93,9,103,45,"Rafflesia",1162,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Muscipular"), MUSCIPULAR, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Drosera"), DROSERA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Flora"), FLORA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Hydra"), HYDRA, 15, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Mandragora"), MANDRAGORA, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Rafflesia"), RAFFLESIA, 10, .@label$);
break;
case 23:
- areamonster .@map$,181,9,191,45,"Penomena",1216,15,.@label$;
- areamonster .@map$,181,9,191,45,"Obeaune",1044,10,.@label$;
- areamonster .@map$,181,9,191,45,"Marse",1144,10,.@label$;
- areamonster .@map$,181,9,191,45,"Swordfish",1069,10,.@label$;
- areamonster .@map$,181,9,191,45,"Hydra",1068,5,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Penomena"), PENOMENA, 15, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Obeaune"), OBEAUNE, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Marse"), MARSE, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Swordfish"), SWORD_FISH, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Hydra"), HYDRA, 5, .@label$);
break;
case 24:
- areamonster .@map$,267,9,277,45,"Joker",1131,15,.@label$;
- areamonster .@map$,267,9,277,45,"Carat",1267,15,.@label$;
- areamonster .@map$,267,9,277,45,"Jakk",1130,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Joker"), JOKER, 15, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Carat"), CARAT, 15, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Jakk"), JAKK, 10, .@label$);
break;
case 25:
- areamonster .@map$,352,9,362,45,"Cat o' Nine Tails",1307,15,.@label$;
- areamonster .@map$,352,9,362,45,"Moonlight",1150,1,.@label$;
- areamonster .@map$,352,9,362,45,"Nine Tail",1180,15,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Cat o' Nine Tails"), CAT_O_NINE_TAIL, 15, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Moonlight"), MOONLIGHT, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Nine Tail"), NINE_TAIL, 15, .@label$);
break;
case 26:
- areamonster .@map$,9,351,19,387,"Gibbet",1503,10,.@label$;
- areamonster .@map$,9,351,19,387,"Enchanted Peach Tree",1410,10,.@label$;
- areamonster .@map$,9,351,19,387,"Wooden Golem",1497,10,.@label$;
- areamonster .@map$,9,351,19,387,"Stone Shooter",1495,10,.@label$;
- areamonster .@map$,9,351,19,387,"Elder Willow",1033,5,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Gibbet"), GIBBET, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Enchanted Peach Tree"), LIVE_PEACH_TREE, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Wooden Golem"), WOODEN_GOLEM, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Stone Shooter"), STONE_SHOOTER, 10, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Elder Willow"), ELDER_WILOW, 5, .@label$);
break;
case 27:
- areamonster .@map$,93,351,103,387,"Goblin Archer",1258,10,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1122,10,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1123,5,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1124,5,.@label$;
- areamonster .@map$,93,351,103,387,"Gobin",1125,5,.@label$;
- areamonster .@map$,93,351,103,387,"Goblin",1126,5,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin Archer"), GOBLIN_ARCHER, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_1, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_2, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_3, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Gobin"), GOBLIN_4, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Goblin"), GOBLIN_5, 5, .@label$);
break;
case 28:
- areamonster .@map$,181,351,191,387,"Arclouse",1194,30,.@label$;
- areamonster .@map$,181,351,191,387,"Neraid",1255,15,.@label$;
- areamonster .@map$,181,351,191,387,"Pest",1256,15,.@label$;
- areamonster .@map$,181,351,191,387,"Kukre",1070,10,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Arclouse"), ARCLOUSE, 30, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Neraid"), NERAID, 15, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Pest"), PEST, 15, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Kukre"), KUKRE, 10, .@label$);
break;
case 29:
- areamonster .@map$,267,351,277,387,"Dark Frame",1260,10,.@label$;
- areamonster .@map$,267,351,277,387,"The Paper",1375,10,.@label$;
- areamonster .@map$,267,351,277,387,"Hylozoist",1510,10,.@label$;
- areamonster .@map$,267,351,277,387,"Quve",1508,5,.@label$;
- areamonster .@map$,267,351,277,387,"Lude",1509,5,.@label$;
- areamonster .@map$,267,351,277,387,"Whisper",1179,10,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Dark Frame"), DARK_FRAME, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("The Paper"), THE_PAPER, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Hylozoist"), HYLOZOIST, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Quve"), QUVE, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Lude"), LUDE, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Whisper"), WHISPER, 10, .@label$);
break;
case 30:
- areamonster .@map$,352,351,362,387,"White Lady",1630,1,.@label$;
- areamonster .@map$,352,351,362,387,"Evil Nymph",1416,30,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("White Lady"), BACSOJIN_, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Evil Nymph"), WICKED_NYMPH, 30, .@label$);
break;
case 31:
- areamonster .@map$,9,267,19,303,"Gig",1387,20,.@label$;
- areamonster .@map$,9,267,19,303,"Iron Fist",1212,15,.@label$;
- areamonster .@map$,9,267,19,303,"Argiope",1099,10,.@label$;
- areamonster .@map$,9,267,19,303,"Scorpion",1001,5,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Gig"), GIG, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Iron Fist"), IRON_FIST, 15, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Argiope"), ARGIOPE, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Scorpion"), SCORPION, 5, .@label$);
break;
case 32:
- areamonster .@map$,93,267,103,303,"Goblin Leader",1299,1,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin Archer",1258,10,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1122,10,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1123,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1124,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1125,5,.@label$;
- areamonster .@map$,93,267,103,303,"Goblin",1126,5,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin Leader"), GOBLIN_LEADER, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin Archer"), GOBLIN_ARCHER, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_1, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_2, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_3, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_4, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Goblin"), GOBLIN_5, 5, .@label$);
break;
case 33:
- areamonster .@map$,181,267,191,303,"Kobold Leader",1296,1,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1133,15,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold_Archer",1282,15,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1134,10,.@label$;
- areamonster .@map$,181,267,191,303,"Kobold",1135,5,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold Leader"), KOBOLD_LEADER, 1, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_1, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold_Archer"), KOBOLD_ARCHER, 15, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_2, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Kobold"), KOBOLD_3, 5, .@label$);
break;
case 34:
- areamonster .@map$,267,267,277,303,"Flame Skull",1869,20,.@label$;
- areamonster .@map$,267,267,277,303,"Whisper",1179,10,.@label$;
- areamonster .@map$,267,267,277,303,"Giant Whisper",1186,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Flame Skull"), FLAME_SKULL, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Whisper"), WHISPER, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Giant Whisper"), WHISPER_BOSS, 10, .@label$);
break;
case 35:
- areamonster .@map$,352,267,362,303,"Turtle General",1312,1,.@label$;
- areamonster .@map$,352,267,362,303,"Freezer",1319,10,.@label$;
- areamonster .@map$,352,267,362,303,"Solider",1316,10,.@label$;
- areamonster .@map$,352,267,362,303,"Heater",1318,10,.@label$;
- areamonster .@map$,352,267,362,303,"Permeter",1314,10,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Turtle General"), TURTLE_GENERAL, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Freezer"), FREEZER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Solider"), SOLIDER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Heater"), HEATER, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Permeter"), PERMETER, 10, .@label$);
break;
case 36:
- areamonster .@map$,9,180,19,216,"Anolian",1206,30,.@label$;
- areamonster .@map$,9,180,19,216,"Grove",1687,10,.@label$;
- areamonster .@map$,9,180,19,216,"Alligator",1271,10,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Anolian"), ANOLIAN, 30, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Grove"), GREEN_IGUANA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Alligator"), ALLIGATOR, 10, .@label$);
break;
case 37:
- areamonster .@map$,93,180,103,216,"Clock Tower Manager",1270,10,.@label$;
- areamonster .@map$,93,180,103,216,"Clock",1269,10,.@label$;
- areamonster .@map$,93,180,103,216,"Alarm",1193,30,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Clock Tower Manager"), C_TOWER_MANAGER, 10, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Clock"), CLOCK, 10, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Alarm"), ALARM, 30, .@label$);
break;
case 38:
- areamonster .@map$,181,180,191,216,"Death Word",1698,25,.@label$;
- areamonster .@map$,181,180,191,216,"Rideword",1195,25,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Death Word"), DEATHWORD, 25, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Rideword"), RIDEWORD, 25, .@label$);
break;
case 39:
- areamonster .@map$,267,180,277,216,"Evil Nymph",1416,10,.@label$;
- areamonster .@map$,267,180,277,216,"Mao Gui",1513,10,.@label$;
- areamonster .@map$,267,180,277,216,"Taoist Hermit",1412,10,.@label$;
- areamonster .@map$,267,180,277,216,"Zhu Po Long",1514,10,.@label$;
- areamonster .@map$,267,180,277,216,"Jin Guai",1517,5,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Evil Nymph"), WICKED_NYMPH, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Mao Gui"), CIVIL_SERVANT, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Taoist Hermit"), EVIL_CLOUD_HERMIT, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Zhu Po Long"), DANCING_DRAGON, 10, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Jin Guai"), LI_ME_MANG_RYANG, 5, .@label$);
break;
case 40:
- areamonster .@map$,352,180,362,216,"Samurai Specter",1492,1,.@label$;
- areamonster .@map$,352,180,362,216,"Shinobi",1401,10,.@label$;
- areamonster .@map$,352,180,362,216,"Tengu",1405,10,.@label$;
- areamonster .@map$,352,180,362,216,"Firelock Soldier",1403,5,.@label$;
- areamonster .@map$,352,180,362,216,"Miyabi Doll",1404,10,.@label$;
- areamonster .@map$,352,180,362,216,"Karakasa",1400,5,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Samurai Specter"), INCANTATION_SAMURAI, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Shinobi"), SHINOBI, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Tengu"), TENGU, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Firelock Soldier"), ANTIQUE_FIRELOCK, 5, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Miyabi Doll"), MIYABI_NINGYO, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Karakasa"), KARAKASA, 5, .@label$);
break;
case 41:
- areamonster .@map$,9,96,19,132,"Kraben",1587,50,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Kraben"), KRABEN, 50, .@label$);
break;
case 42:
- areamonster .@map$,93,96,103,132,"Sleeper",1386,20,.@label$;
- areamonster .@map$,93,96,103,132,"Sting",1207,10,.@label$;
- areamonster .@map$,93,96,103,132,"Mi Gao",1516,10,.@label$;
- areamonster .@map$,93,96,103,132,"Sandman",1165,5,.@label$;
- areamonster .@map$,93,96,103,132,"Hode",1127,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Sleeper"), SLEEPER, 20, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Sting"), STING, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Mi Gao"), INCREASE_SOIL, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Sandman"), SAND_MAN, 5, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Hode"), HODE, 5, .@label$);
break;
case 43:
- areamonster .@map$,181,96,191,132,"Medusa",1148,10,.@label$;
- areamonster .@map$,181,96,191,132,"Sidewinder",1037,40,.@label$;
- areamonster .@map$,181,96,191,132,"Anacondaq",1030,5,.@label$;
- areamonster .@map$,181,96,191,132,"Boa",1025,5,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Medusa"), MEDUSA, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Sidewinder"), SIDE_WINDER, 40, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Anacondaq"), ANACONDAQ, 5, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Boa"), SNAKE, 5, .@label$);
break;
case 44:
- areamonster .@map$,267,96,277,132,"Hatii Baby",1515,20,.@label$;
- areamonster .@map$,267,96,277,132,"Baphomet Jr.",1101,20,.@label$;
- areamonster .@map$,267,96,277,132,"Orc Baby",1686,1,.@label$;
- areamonster .@map$,267,96,277,132,"Baby Desert Wolf",1107,10,.@label$;
- areamonster .@map$,267,96,277,132,"Savage Babe",1167,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Hatii Baby"), GARM_BABY, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baphomet Jr."), BAPHOMET_, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Orc Baby"), ORC_BABY, 1, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baby Desert Wolf"), DESERT_WOLF_B, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Savage Babe"), SAVAGE_BABE, 10, .@label$);
break;
case 45:
- areamonster .@map$,352,96,362,132,"Osiris",1038,1,.@label$;
- areamonster .@map$,352,96,362,132,"Ancient Mummy",1297,15,.@label$;
- areamonster .@map$,352,96,362,132,"Verit",1032,15,.@label$;
- areamonster .@map$,352,96,362,132,"Mummy",1041,20,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Osiris"), OSIRIS, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Ancient Mummy"), ANCIENT_MUMMY, 15, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Verit"), VERIT, 15, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Mummy"), MUMMY, 20, .@label$);
break;
case 46:
- areamonster .@map$,9,9,19,45,"Seeker",1774,20,.@label$;
- areamonster .@map$,9,9,19,45,"Beholder",1633,20,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Seeker"), SEEKER, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Beholder"), BEHOLDER, 20, .@label$);
break;
case 47:
- areamonster .@map$,93,9,103,45,"Deleter",1384,20,.@label$;
- areamonster .@map$,93,9,103,45,"Deleter",1385,10,.@label$;
- areamonster .@map$,93,9,103,45,"Petite",1156,10,.@label$;
- areamonster .@map$,93,9,103,45,"Petite",1155,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Deleter"), DELETER, 20, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Deleter"), DELETER_, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Petite"), PETIT_, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Petite"), PETIT, 10, .@label$);
break;
case 48:
- areamonster .@map$,181,9,191,45,"Ancient Worm",1305,10,.@label$;
- areamonster .@map$,181,9,191,45,"Ancient Mummy",1297,10,.@label$;
- areamonster .@map$,181,9,191,45,"Ancient Mimic",1699,10,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Worm"), ANCIENT_WORM, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Mummy"), ANCIENT_MUMMY, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Ancient Mimic"), ANCIENT_MIMIC, 10, .@label$);
break;
case 49:
- areamonster .@map$,267,9,277,45,"Grizzly",1381,20,.@label$;
- areamonster .@map$,267,9,277,45,"Leib Olmai",1306,7,.@label$;
- areamonster .@map$,267,9,277,45,"Zipper Bear",1417,5,.@label$;
- areamonster .@map$,267,9,277,45,"Sasquatch",1243,5,.@label$;
- areamonster .@map$,267,9,277,45,"Bigfoot",1060,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Grizzly"), GRIZZLY, 20, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Leib Olmai"), LEIB_OLMAI, 7, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Zipper Bear"), ZIPPER_BEAR, 5, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Sasquatch"), SASQUATCH, 5, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Bigfoot"), BIGFOOT, 5, .@label$);
break;
case 50:
- areamonster .@map$,352,9,362,45,"Pharaoh",1157,1,.@label$;
- areamonster .@map$,352,9,362,45,"Amon Ra",1511,1,.@label$;
- areamonster .@map$,352,9,362,45,"Anubis",1098,10,.@label$;
- areamonster .@map$,352,9,362,45,"Marduk",1140,10,.@label$;
- areamonster .@map$,352,9,362,45,"Matyr",1146,10,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Pharaoh"), PHARAOH, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Amon Ra"), AMON_RA, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Anubis"), ANUBIS, 10, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Marduk"), MARDUK, 10, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Matyr"), MATYR, 10, .@label$);
break;
case 51:
- areamonster .@map$,9,351,19,387,"Mini Demon",1292,20,.@label$;
- areamonster .@map$,9,351,19,387,"Diabolic",1382,20,.@label$;
- areamonster .@map$,9,351,19,387,"Deviruchi",1109,10,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Mini Demon"), MINI_DEMON, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Diabolic"), DIABOLIC, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Deviruchi"), DEVIRUCHI, 10, .@label$);
break;
case 52:
- areamonster .@map$,93,351,103,387,"Harpy",1376,20,.@label$;
- areamonster .@map$,93,351,103,387,"Grand Peco",1369,10,.@label$;
- areamonster .@map$,93,351,103,387,"Bloody Butterfly",1408,10,.@label$;
- areamonster .@map$,93,351,103,387,"Gargoyle",1253,10,.@label$;
- areamonster .@map$,93,351,103,387,"Hill Wind",1680,5,.@label$;
- areamonster .@map$,93,351,103,387,"Hill Wind",1629,5,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Harpy"), HARPY, 20, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Grand Peco"), GRAND_PECO, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Bloody Butterfly"), BLOOD_BUTTERFLY, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Gargoyle"), GARGOYLE, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Hill Wind"), HILL_WIND_1, 5, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Hill Wind"), HILL_WIND, 5, .@label$);
break;
case 53:
- areamonster .@map$,181,351,191,387,"Assaulter",1315,25,.@label$;
- areamonster .@map$,181,351,191,387,"Shinobi",1401,30,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Assaulter"), ASSULTER, 25, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Shinobi"), SHINOBI, 30, .@label$);
break;
case 54:
- areamonster .@map$,267,351,277,387,"Chepet",1250,10,.@label$;
- areamonster .@map$,267,351,277,387,"Mariontte",1143,10,.@label$;
- areamonster .@map$,267,351,277,387,"Miyabi Doll",1404,10,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Chepet"), CHEPET, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Mariontte"), MARIONETTE, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Miyabi Doll"), MIYABI_NINGYO, 10, .@label$);
break;
case 55:
- areamonster .@map$,352,351,362,387,"Medusa",1148,25,.@label$;
- areamonster .@map$,352,351,362,387,"Evil Snake Lord",1418,1,.@label$;
- areamonster .@map$,352,351,362,387,"Isis",1029,15,.@label$;
- areamonster .@map$,352,351,362,387,"Sidewinder",1037,15,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Medusa"), MEDUSA, 25, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Evil Snake Lord"), DARK_SNAKE_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Isis"), ISIS, 15, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Sidewinder"), SIDE_WINDER, 15, .@label$);
break;
case 56:
- areamonster .@map$,9,267,19,303,"Freezer",1319,10,.@label$;
- areamonster .@map$,9,267,19,303,"Hatii Baby",1515,10,.@label$;
- areamonster .@map$,9,267,19,303,"Ice Titan",1777,15,.@label$;
- areamonster .@map$,9,267,19,303,"Snowier",1775,10,.@label$;
- areamonster .@map$,9,267,19,303,"Gazeti",1778,10,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Freezer"), FREEZER, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Hatii Baby"), GARM_BABY, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ice Titan"), ICE_TITAN, 15, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Snowier"), SNOWIER, 10, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Gazeti"), GAZETI, 10, .@label$);
break;
case 57:
- areamonster .@map$,93,267,103,303,"Arc Angeling",1388,1,.@label$;
- areamonster .@map$,93,267,103,303,"Deviling",1582,1,.@label$;
- areamonster .@map$,93,267,103,303,"Angeling",1096,1,.@label$;
- areamonster .@map$,93,267,103,303,"Ghostring",1120,1,.@label$;
- areamonster .@map$,93,267,103,303,"Mastering",1090,1,.@label$;
- areamonster .@map$,93,267,103,303,"Metaling",1613,25,.@label$;
- areamonster .@map$,93,267,103,303,"Marin",1242,5,.@label$;
- areamonster .@map$,93,267,103,303,"Poporing",1031,5,.@label$;
- areamonster .@map$,93,267,103,303,"Drops",1113,5,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Arc Angeling"), ARCHANGELING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Deviling"), DEVILING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Angeling"), ANGELING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Ghostring"), GHOSTRING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Mastering"), MASTERING, 1, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Metaling"), METALING, 25, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Marin"), MARIN, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Poporing"), POPORING, 5, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Drops"), DROPS, 5, .@label$);
break;
case 58:
- areamonster .@map$,181,267,191,303,"Phendark",1202,20,.@label$;
- areamonster .@map$,181,267,191,303,"Rybio",1201,10,.@label$;
- areamonster .@map$,181,267,191,303,"Zombie Prisoner",1197,10,.@label$;
- areamonster .@map$,181,267,191,303,"Skeleton Prisoner",1196,5,.@label$;
- areamonster .@map$,181,267,191,303,"Injustice",1257,5,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Phendark"), PHENDARK, 20, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Rybio"), RYBIO, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Zombie Prisoner"), ZOMBIE_PRISONER, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Skeleton Prisoner"), SKEL_PRISONER, 5, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Injustice"), INJUSTICE, 5, .@label$);
break;
case 59:
- areamonster .@map$,267,267,277,303,"Ancient Mimic",1699,30,.@label$;
- areamonster .@map$,267,267,277,303,"Mimic",1191,20,.@label$;
- areamonster .@map$,267,267,277,303,"Mystcase",1249,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Ancient Mimic"), ANCIENT_MIMIC, 30, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Mimic"), MIMIC, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Mystcase"), MYSTCASE, 10, .@label$);
break;
case 60:
- areamonster .@map$,352,267,362,303,"Egnigem Cenia",1658,1,.@label$;
- areamonster .@map$,352,267,362,303,"Doppelganger",1046,1,.@label$;
- areamonster .@map$,352,267,362,303,"Armeyer Dinze",1654,10,.@label$;
- areamonster .@map$,352,267,362,303,"Wickebine Tres",1653,10,.@label$;
- areamonster .@map$,352,267,362,303,"Laurell Winder",1657,10,.@label$;
- areamonster .@map$,352,267,362,303,"Kavach Icarus",1656,10,.@label$;
- areamonster .@map$,352,267,362,303,"Errende Ebecee",1655,10,.@label$;
- areamonster .@map$,352,267,362,303,"Egnigem Cenia",1652,10,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Egnigem Cenia"), B_YGNIZEM, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Doppelganger"), DOPPELGANGER, 1, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Armeyer Dinze"), ARMAIA, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Wickebine Tres"), WHIKEBAIN, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Laurell Winder"), RAWREL, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Kavach Icarus"), KAVAC, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Errende Ebecee"), EREND, 10, .@label$);
+ areamonster(.@map$, 352, 267, 362, 303, _("Egnigem Cenia"), YGNIZEM, 10, .@label$);
break;
case 61:
- areamonster .@map$,9,180,19,216,"Agav",1769,10,.@label$;
- areamonster .@map$,9,180,19,216,"Echio",1770,10,.@label$;
- areamonster .@map$,9,180,19,216,"Isilla",1772,5,.@label$;
- areamonster .@map$,9,180,19,216,"Mobster",1313,10,.@label$;
- areamonster .@map$,9,180,19,216,"Pasana",1154,10,.@label$;
- areamonster .@map$,9,180,19,216,"Vanberk",1771,5,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Agav"), AGAV, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Echio"), ECHIO, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Isilla"), ISILLA, 5, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Mobster"), MOBSTER, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Pasana"), PASANA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Vanberk"), VANBERK, 5, .@label$);
break;
case 62:
- areamonster .@map$,93,180,103,216,"Wanderer",1208,35,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Wanderer"), WANDER_MAN, 35, .@label$);
break;
case 63:
- areamonster .@map$,181,180,191,216,"Ragged Zombie",1865,20,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie Master",1298,10,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie Prisoner",1197,5,.@label$;
- areamonster .@map$,181,180,191,216,"Orc Zombie",1153,5,.@label$;
- areamonster .@map$,181,180,191,216,"Zombie",1015,5,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Ragged Zombie"), RAGGED_ZOMBIE, 20, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie Master"), ZOMBIE_MASTER, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie Prisoner"), ZOMBIE_PRISONER, 5, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Orc Zombie"), ORC_ZOMBIE, 5, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Zombie"), ZOMBIE, 5, .@label$);
break;
case 64:
- areamonster .@map$,267,180,277,216,"Ungoliant",1618,30,.@label$;
- areamonster .@map$,267,180,277,216,"Ancient Worm",1305,2,.@label$;
- areamonster .@map$,267,180,277,216,"Caterpillar",1300,2,.@label$;
- areamonster .@map$,267,180,277,216,"Creamy Fear",1293,2,.@label$;
- areamonster .@map$,267,180,277,216,"Killer Mantis",1294,2,.@label$;
- areamonster .@map$,267,180,277,216,"Giant Hornet",1303,2,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Ungoliant"), UNGOLIANT, 30, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Ancient Worm"), ANCIENT_WORM, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Caterpillar"), CATERPILLAR, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Creamy Fear"), CREMY_FEAR, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Killer Mantis"), KILLER_MANTIS, 2, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Giant Hornet"), GIANT_HONET, 2, .@label$);
break;
case 65:
- areamonster .@map$,352,180,362,216,"Atros",1785,1,.@label$;
- areamonster .@map$,352,180,362,216,"Galion",1783,20,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Atros"), ATROCE, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Galion"), GALION, 20, .@label$);
break;
case 66:
- areamonster .@map$,9,96,19,132,"Incubus",1374,20,.@label$;
- areamonster .@map$,9,96,19,132,"Aliot",1736,20,.@label$;
- areamonster .@map$,9,96,19,132,"Injustice",1257,10,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Incubus"), INCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Aliot"), ALIOT, 20, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Injustice"), INJUSTICE, 10, .@label$);
break;
case 67:
- areamonster .@map$,93,96,103,132,"Acidus",1716,10,.@label$;
- areamonster .@map$,93,96,103,132,"Acidus",1713,10,.@label$;
- areamonster .@map$,93,96,103,132,"Deleter",1384,5,.@label$;
- areamonster .@map$,93,96,103,132,"Mutant Dragonoid",1262,10,.@label$;
- areamonster .@map$,93,96,103,132,"Petite",1156,5,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Acidus"), ACIDUS_, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Acidus"), ACIDUS, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Deleter"), DELETER, 5, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Mutant Dragonoid"), MUTANT_DRAGON, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Petite"), PETIT_, 5, .@label$);
break;
case 68:
- areamonster .@map$,181,96,191,132,"Lava Golem",1366,10,.@label$;
- areamonster .@map$,181,96,191,132,"Stalactic Golem",1278,10,.@label$;
- areamonster .@map$,181,96,191,132,"Ice Titan",1777,10,.@label$;
- areamonster .@map$,181,96,191,132,"Wooden Golem",1497,5,.@label$;
- areamonster .@map$,181,96,191,132,"Golem",1040,5,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Lava Golem"), LAVA_GOLEM, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Stalactic Golem"), STALACTIC_GOLEM, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Ice Titan"), ICE_TITAN, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Wooden Golem"), WOODEN_GOLEM, 5, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Golem"), GOLEM, 5, .@label$);
break;
case 69:
- areamonster .@map$,267,96,277,132,"Dame of Sentinel",1700,20,.@label$;
- areamonster .@map$,267,96,277,132,"Mistress of Shelter",1701,10,.@label$;
- areamonster .@map$,267,96,277,132,"Baroness of Retribution",1702,10,.@label$;
- areamonster .@map$,267,96,277,132,"Lady Solace",1703,10,.@label$;
- areamonster .@map$,267,96,277,132,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Dame of Sentinel"), OBSERVATION, 20, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Mistress of Shelter"), SHELTER, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Lady Solace"), SOLACE, 10, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("False Angel"), FAKE_ANGEL, 10, .@label$);
break;
case 70:
- areamonster .@map$,352,96,362,132,"Orc Hero",1087,1,.@label$;
- areamonster .@map$,352,96,362,132,"Orc Lord",1190,1,.@label$;
- areamonster .@map$,352,96,362,132,"Orc Baby",1686,20,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Hero"), ORK_HERO, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Lord"), ORC_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Orc Baby"), ORC_BABY, 20, .@label$);
break;
case 71:
- areamonster .@map$,9,9,19,45,"Succubus",1370,20,.@label$;
- areamonster .@map$,9,9,19,45,"Nightmare Terror",1379,20,.@label$;
- areamonster .@map$,9,9,19,45,"Incubus",1374,20,.@label$;
- areamonster .@map$,9,9,19,45,"Nightmare",1061,5,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Succubus"), SUCCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Nightmare Terror"), NIGHTMARE_TERROR, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Incubus"), INCUBUS, 20, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Nightmare"), NIGHTMARE, 5, .@label$);
break;
case 72:
- areamonster .@map$,93,9,103,45,"Margaretha Sorin",1637,10,.@label$;
- areamonster .@map$,93,9,103,45,"Permeter",1314,10,.@label$;
- areamonster .@map$,93,9,103,45,"Errende Ebecee",1655,10,.@label$;
- areamonster .@map$,93,9,103,45,"Enchanted Peach Tree",1410,10,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Margaretha Sorin"), MAGALETA, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Permeter"), PERMETER, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Errende Ebecee"), EREND, 10, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Enchanted Peach Tree"), LIVE_PEACH_TREE, 10, .@label$);
break;
case 73:
- areamonster .@map$,181,9,191,45,"Succubus",1370,10,.@label$;
- areamonster .@map$,181,9,191,45,"Loli Ruri",1505,20,.@label$;
- areamonster .@map$,181,9,191,45,"Aliza",1737,10,.@label$;
- areamonster .@map$,181,9,191,45,"Zealotus",1200,5,.@label$;
- areamonster .@map$,181,9,191,45,"Alice",1275,5,.@label$;
- areamonster .@map$,181,9,191,45,"Green Maiden",1519,10,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Succubus"), SUCCUBUS, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Loli Ruri"), LOLI_RURI, 20, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Aliza"), ALIZA, 10, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Zealotus"), ZHERLTHSH, 5, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Alice"), ALICE, 5, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Green Maiden"), CHUNG_E, 10, .@label$);
break;
case 74:
- areamonster .@map$,267,9,277,45,"Dimik",1671,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1673,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1672,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1677,6,.@label$;
- areamonster .@map$,267,9,277,45,"Dimik",1670,6,.@label$;
- areamonster .@map$,267,9,277,45,"Archdam",1668,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1678,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1679,6,.@label$;
- areamonster .@map$,267,9,277,45,"Venatu",1676,6,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_2, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_4, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_3, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_2, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Dimik"), DIMIK_1, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Archdam"), ARCHDAM, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_3, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_4, 6, .@label$);
+ areamonster(.@map$, 267, 9, 277, 45, _("Venatu"), VENATU_1, 6, .@label$);
break;
case 75:
- areamonster .@map$,352,9,362,45,"Baphomet",1039,1,.@label$;
- areamonster .@map$,352,9,362,45,"Dark Lord",1272,1,.@label$;
- areamonster .@map$,352,9,362,45,"Baphomet Jr.",1101,20,.@label$;
- areamonster .@map$,352,9,362,45,"Dark Illusion",1302,10,.@label$;
+ areamonster(.@map$, 352, 9, 362, 45, _("Baphomet"), BAPHOMET, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Dark Lord"), DARK_LORD, 1, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Baphomet Jr."), BAPHOMET_, 20, .@label$);
+ areamonster(.@map$, 352, 9, 362, 45, _("Dark Illusion"), DARK_ILLUSION, 10, .@label$);
break;
case 76:
- areamonster .@map$,9,351,19,387,"Abysmal Knight",1219,30,.@label$;
- areamonster .@map$,9,351,19,387,"Nightmare Terror",1379,20,.@label$;
- areamonster .@map$,9,351,19,387,"Nightmare",1061,10,.@label$;
+ areamonster(.@map$, 9, 351, 19, 387, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 30, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Nightmare Terror"), NIGHTMARE_TERROR, 20, .@label$);
+ areamonster(.@map$, 9, 351, 19, 387, _("Nightmare"), NIGHTMARE, 10, .@label$);
break;
case 77:
- areamonster .@map$,93,351,103,387,"Banshee",1867,30,.@label$;
- areamonster .@map$,93,351,103,387,"Wraith Dead",1291,10,.@label$;
- areamonster .@map$,93,351,103,387,"Evil Druid",1117,10,.@label$;
- areamonster .@map$,93,351,103,387,"Wraith",1192,10,.@label$;
- areamonster .@map$,93,351,103,387,"Wind Ghost",1263,10,.@label$;
+ areamonster(.@map$, 93, 351, 103, 387, _("Banshee"), BANSHEE, 30, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wraith Dead"), WRAITH_DEAD, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Evil Druid"), EVIL_DRUID, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wraith"), WRAITH, 10, .@label$);
+ areamonster(.@map$, 93, 351, 103, 387, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
break;
case 78:
- areamonster .@map$,181,351,191,387,"Sword Master",1829,5,.@label$;
- areamonster .@map$,181,351,191,387,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,181,351,191,387,"Abysmal Knight",1219,5,.@label$;
- areamonster .@map$,181,351,191,387,"Dullahan",1504,10,.@label$;
- areamonster .@map$,181,351,191,387,"Raydric",1163,20,.@label$;
+ areamonster(.@map$, 181, 351, 191, 387, _("Sword Master"), SWORD_GUARDIAN, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 5, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Dullahan"), DULLAHAN, 10, .@label$);
+ areamonster(.@map$, 181, 351, 191, 387, _("Raydric"), RAYDRIC, 20, .@label$);
break;
case 79:
- areamonster .@map$,267,351,277,387,"Hydro",1720,10,.@label$;
- areamonster .@map$,267,351,277,387,"Ferus",1714,10,.@label$;
- areamonster .@map$,267,351,277,387,"Ferus",1717,10,.@label$;
- areamonster .@map$,267,351,277,387,"Deleter",1385,5,.@label$;
- areamonster .@map$,267,351,277,387,"Petite",1155,5,.@label$;
+ areamonster(.@map$, 267, 351, 277, 387, _("Hydro"), HYDRO, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Ferus"), FERUS, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Ferus"), FERUS_, 10, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Deleter"), DELETER_, 5, .@label$);
+ areamonster(.@map$, 267, 351, 277, 387, _("Petite"), PETIT, 5, .@label$);
break;
case 80:
- areamonster .@map$,352,351,362,387,"Falling Bishop",1871,1,.@label$;
- areamonster .@map$,352,351,362,387,"Necromancer",1870,15,.@label$;
+ areamonster(.@map$, 352, 351, 362, 387, _("Falling Bishop"), FALLINGBISHOP, 1, .@label$);
+ areamonster(.@map$, 352, 351, 362, 387, _("Necromancer"), NECROMANCER, 15, .@label$);
break;
case 81:
- areamonster .@map$,9,267,19,303,"Mysteltainn",1203,20,.@label$;
- areamonster .@map$,9,267,19,303,"Ogretooth",1204,20,.@label$;
- areamonster .@map$,9,267,19,303,"Executioner",1205,20,.@label$;
+ areamonster(.@map$, 9, 267, 19, 303, _("Mysteltainn"), MYSTELTAINN, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Ogretooth"), TIRFING, 20, .@label$);
+ areamonster(.@map$, 9, 267, 19, 303, _("Executioner"), EXECUTIONER, 20, .@label$);
break;
case 82:
- areamonster .@map$,93,267,103,303,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,93,267,103,303,"Agav",1769,10,.@label$;
- areamonster .@map$,93,267,103,303,"Bloody Murderer",1507,10,.@label$;
- areamonster .@map$,93,267,103,303,"Skogul",1752,10,.@label$;
- areamonster .@map$,93,267,103,303,"Injustice",1257,10,.@label$;
+ areamonster(.@map$, 93, 267, 103, 303, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Agav"), AGAV, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Bloody Murderer"), BLOODY_MURDERER, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Skogul"), SKOGUL, 10, .@label$);
+ areamonster(.@map$, 93, 267, 103, 303, _("Injustice"), INJUSTICE, 10, .@label$);
break;
case 83:
- areamonster .@map$,181,267,191,303,"Skeggiold",1754,10,.@label$;
- areamonster .@map$,181,267,191,303,"Dark Illusion",1302,10,.@label$;
- areamonster .@map$,181,267,191,303,"Gryphon",1259,10,.@label$;
- areamonster .@map$,181,267,191,303,"Chimera",1283,10,.@label$;
+ areamonster(.@map$, 181, 267, 191, 303, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Dark Illusion"), DARK_ILLUSION, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Gryphon"), GRYPHON, 10, .@label$);
+ areamonster(.@map$, 181, 267, 191, 303, _("Chimera"), CHIMERA, 10, .@label$);
break;
case 84:
- areamonster .@map$,267,267,277,303,"Succubus",1370,10,.@label$;
- areamonster .@map$,267,267,277,303,"Dark Illusion",1302,20,.@label$;
- areamonster .@map$,267,267,277,303,"Owl Duke",1320,10,.@label$;
- areamonster .@map$,267,267,277,303,"Owl Baron",1295,10,.@label$;
- areamonster .@map$,267,267,277,303,"Incubus",1374,10,.@label$;
+ areamonster(.@map$, 267, 267, 277, 303, _("Succubus"), SUCCUBUS, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Dark Illusion"), DARK_ILLUSION, 20, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Owl Duke"), OWL_DUKE, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Owl Baron"), OWL_BARON, 10, .@label$);
+ areamonster(.@map$, 267, 267, 277, 303, _("Incubus"), INCUBUS, 10, .@label$);
break;
case 85:
- areamonster .@map$,352,267,362,303,"Ifrit",1832,1,.@label$;
+ areamonster(.@map$, 352, 267, 362, 303, _("Ifrit"), IFRIT, 1, .@label$);
break;
case 86:
- areamonster .@map$,9,180,19,216,"Hydro",1720,10,.@label$;
- areamonster .@map$,9,180,19,216,"Gryphon",1259,10,.@label$;
- areamonster .@map$,9,180,19,216,"Chimera",1283,10,.@label$;
- areamonster .@map$,9,180,19,216,"Majoruros",1310,10,.@label$;
+ areamonster(.@map$, 9, 180, 19, 216, _("Hydro"), HYDRO, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Gryphon"), GRYPHON, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Chimera"), CHIMERA, 10, .@label$);
+ areamonster(.@map$, 9, 180, 19, 216, _("Majoruros"), MAJORUROS, 10, .@label$);
break;
case 87:
- areamonster .@map$,93,180,103,216,"Salamander",1831,15,.@label$;
- areamonster .@map$,93,180,103,216,"Kasa",1833,20,.@label$;
- areamonster .@map$,93,180,103,216,"Lava Golem",1366,15,.@label$;
- areamonster .@map$,93,180,103,216,"Gajomart",1309,10,.@label$;
+ areamonster(.@map$, 93, 180, 103, 216, _("Salamander"), SALAMANDER, 15, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Kasa"), KASA, 20, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Lava Golem"), LAVA_GOLEM, 15, .@label$);
+ areamonster(.@map$, 93, 180, 103, 216, _("Gajomart"), GAJOMART, 10, .@label$);
break;
case 88:
- areamonster .@map$,181,180,191,216,"Necromancer",1870,15,.@label$;
- areamonster .@map$,181,180,191,216,"Anubis",1098,15,.@label$;
- areamonster .@map$,181,180,191,216,"Wraith Dead",1291,10,.@label$;
- areamonster .@map$,181,180,191,216,"Ancient Mummy",1297,10,.@label$;
- areamonster .@map$,181,180,191,216,"Khalitzburg",1132,10,.@label$;
+ areamonster(.@map$, 181, 180, 191, 216, _("Necromancer"), NECROMANCER, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Anubis"), ANUBIS, 15, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Wraith Dead"), WRAITH_DEAD, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Ancient Mummy"), ANCIENT_MUMMY, 10, .@label$);
+ areamonster(.@map$, 181, 180, 191, 216, _("Khalitzburg"), KHALITZBURG, 10, .@label$);
break;
case 89:
- areamonster .@map$,267,180,277,216,"Odium of Thanatos",1704,6,.@label$;
- areamonster .@map$,267,180,277,216,"Despero of Thanatos",1705,6,.@label$;
- areamonster .@map$,267,180,277,216,"Maero of Thanatos",1706,6,.@label$;
- areamonster .@map$,267,180,277,216,"Dolor of Thanatos",1707,6,.@label$;
+ areamonster(.@map$, 267, 180, 277, 216, _("Odium of Thanatos"), THA_ODIUM, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Despero of Thanatos"), THA_DESPERO, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Maero of Thanatos"), THA_MAERO, 6, .@label$);
+ areamonster(.@map$, 267, 180, 277, 216, _("Dolor of Thanatos"), THA_DOLOR, 6, .@label$);
break;
case 90:
- areamonster .@map$,352,180,362,216,"Valkyrie Randgris",1751,1,.@label$;
- areamonster .@map$,352,180,362,216,"Baroness of Retribution",1702,10,.@label$;
- areamonster .@map$,352,180,362,216,"Lady Solace",1703,10,.@label$;
- areamonster .@map$,352,180,362,216,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 352, 180, 362, 216, _("Valkyrie Randgris"), RANDGRIS, 1, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("Lady Solace"), SOLACE, 10, .@label$);
+ areamonster(.@map$, 352, 180, 362, 216, _("False Angel"), FAKE_ANGEL, 10, .@label$);
break;
case 91:
- areamonster .@map$,9,96,19,132,"Cecil Damon",1638,10,.@label$;
- areamonster .@map$,9,96,19,132,"Bow Master",1830,10,.@label$;
- areamonster .@map$,9,96,19,132,"Kavac",1656,30,.@label$;
+ areamonster(.@map$, 9, 96, 19, 132, _("Cecil Damon"), SHECIL, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Bow Master"), BOW_GUARDIAN, 10, .@label$);
+ areamonster(.@map$, 9, 96, 19, 132, _("Kavac"), KAVAC, 30, .@label$);
break;
case 92:
- areamonster .@map$,93,96,103,132,"Kathryne Keyron",1639,15,.@label$;
- areamonster .@map$,93,96,103,132,"Elder",1377,10,.@label$;
- areamonster .@map$,93,96,103,132,"Laurell Weinder",1657,10,.@label$;
- areamonster .@map$,93,96,103,132,"Wind Ghost",1263,10,.@label$;
- areamonster .@map$,93,96,103,132,"Marduk",1140,10,.@label$;
+ areamonster(.@map$, 93, 96, 103, 132, _("Kathryne Keyron"), KATRINN, 15, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Elder"), ELDER, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Laurell Weinder"), RAWREL, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
+ areamonster(.@map$, 93, 96, 103, 132, _("Marduk"), MARDUK, 10, .@label$);
break;
case 93:
- areamonster .@map$,181,96,191,132,"Seyren Windsor",1634,15,.@label$;
- areamonster .@map$,181,96,191,132,"Bloody Knight",1268,10,.@label$;
- areamonster .@map$,181,96,191,132,"Abysmal Knight",1219,10,.@label$;
- areamonster .@map$,181,96,191,132,"Wanderer",1208,10,.@label$;
+ areamonster(.@map$, 181, 96, 191, 132, _("Seyren Windsor"), SEYREN, 15, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 10, .@label$);
+ areamonster(.@map$, 181, 96, 191, 132, _("Wanderer"), WANDER_MAN, 10, .@label$);
break;
case 94:
- areamonster .@map$,267,96,277,132,"Sword Master",1829,15,.@label$;
- areamonster .@map$,267,96,277,132,"Bow Master",1830,15,.@label$;
+ areamonster(.@map$, 267, 96, 277, 132, _("Sword Master"), SWORD_GUARDIAN, 15, .@label$);
+ areamonster(.@map$, 267, 96, 277, 132, _("Bow Master"), BOW_GUARDIAN, 15, .@label$);
break;
case 95:
- areamonster .@map$,352,96,362,132,"Beelzebub",1873,1,.@label$;
- areamonster .@map$,352,96,362,132,"Hunter Fly",1035,30,.@label$;
- areamonster .@map$,352,96,362,132,"Steel Chonchon",1042,5,.@label$;
- areamonster .@map$,352,96,362,132,"Dragon FLy",1091,5,.@label$;
- areamonster .@map$,352,96,362,132,"Chonchon",1011,5,.@label$;
+ areamonster(.@map$, 352, 96, 362, 132, _("Beelzebub"), BEELZEBUB, 1, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Hunter Fly"), HUNTER_FLY, 30, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Steel Chonchon"), STEEL_CHONCHON, 5, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Dragon FLy"), DRAGON_FLY, 5, .@label$);
+ areamonster(.@map$, 352, 96, 362, 132, _("Chonchon"), CHONCHON, 5, .@label$);
break;
case 96:
- areamonster .@map$,9,9,19,45,"Valkyrie",1765,5,.@label$;
- areamonster .@map$,9,9,19,45,"Skeggiold",1755,10,.@label$;
- areamonster .@map$,9,9,19,45,"Skeggiold",1754,10,.@label$;
+ areamonster(.@map$, 9, 9, 19, 45, _("Valkyrie"), G_RANDGRIS, 5, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Skeggiold"), SKEGGIOLD_, 10, .@label$);
+ areamonster(.@map$, 9, 9, 19, 45, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
break;
case 97:
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1918,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1919,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1920,5,.@label$;
- areamonster .@map$,93,9,103,45,"Incarnation of Morroc",1921,5,.@label$;
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_1, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_2, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_3, 5, .@label$);
+ areamonster(.@map$, 93, 9, 103, 45, _("Incarnation of Morroc"), MOROCC_4, 5, .@label$);
break;
case 98:
- areamonster .@map$,181,9,191,45,"Kathryne Keyron",1639,2,.@label$;
- areamonster .@map$,181,9,191,45,"Seyren Windsor",1634,2,.@label$;
- areamonster .@map$,181,9,191,45,"Margaretha Sorin",1637,2,.@label$;
- areamonster .@map$,181,9,191,45,"Eremes Guile",1635,2,.@label$;
- areamonster .@map$,181,9,191,45,"Howard Alt-Eisen",1636,2,.@label$;
- areamonster .@map$,181,9,191,45,"Cecil Damon",1638,2,.@label$;
+ areamonster(.@map$, 181, 9, 191, 45, _("Kathryne Keyron"), KATRINN, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Seyren Windsor"), SEYREN, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Margaretha Sorin"), MAGALETA, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Eremes Guile"), EREMES, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Howard Alt-Eisen"), HARWORD, 2, .@label$);
+ areamonster(.@map$, 181, 9, 191, 45, _("Cecil Damon"), SHECIL, 2, .@label$);
break;
case 99:
- for(.@i = 1; .@i<=7; ++.@i) {
- .@mob_ran = rand(1,30);
+ for (.@i = 1; .@i <= 7; ++.@i) {
+ .@mob_ran = rand(1, 30);
if (.@mob_ran == 1)
- areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kathryne Keyron"), KATRINN, 2, .@label$);
else if (.@mob_ran == 2)
- areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Seyren Windsor"), SEYREN, 2, .@label$);
else if (.@mob_ran == 3)
- areamonster .@map$,267,9,277,45,"Margaretha Sorin",1637,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Margaretha Sorin"), MAGALETA, 2, .@label$);
else if (.@mob_ran == 4)
- areamonster .@map$,267,9,277,45,"Eremes Guile",1635,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Eremes Guile"), EREMES, 2, .@label$);
else if (.@mob_ran == 5)
- areamonster .@map$,267,9,277,45,"Howard Alt-Eisen",1636,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Howard Alt-Eisen"), HARWORD, 2, .@label$);
else if (.@mob_ran == 6)
- areamonster .@map$,267,9,277,45,"Cecil Damon",1638,2,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Cecil Damon"), SHECIL, 2, .@label$);
else if (.@mob_ran == 7)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1918,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_1, 5, .@label$);
else if (.@mob_ran == 8)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1919,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_2, 5, .@label$);
else if (.@mob_ran == 9)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1920,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_3, 5, .@label$);
else if (.@mob_ran == 10)
- areamonster .@map$,267,9,277,45,"Incarnation of Morroc",1921,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Incarnation of Morroc"), MOROCC_4, 5, .@label$);
else if (.@mob_ran == 11)
- areamonster .@map$,267,9,277,45,"Valkyrie",1765,5,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Valkyrie"), G_RANDGRIS, 5, .@label$);
else if (.@mob_ran == 12)
- areamonster .@map$,267,9,277,45,"Skeggiold",1755,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Skeggiold"), SKEGGIOLD_, 10, .@label$);
else if (.@mob_ran == 13)
- areamonster .@map$,267,9,277,45,"Skeggiold",1754,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Skeggiold"), SKEGGIOLD, 10, .@label$);
else if (.@mob_ran == 14)
- areamonster .@map$,267,9,277,45,"Seyren Windsor",1634,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Seyren Windsor"), SEYREN, 15, .@label$);
else if (.@mob_ran == 15)
- areamonster .@map$,267,9,277,45,"Bloody Knight",1268,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bloody Knight"), BLOODY_KNIGHT, 10, .@label$);
else if (.@mob_ran == 16)
- areamonster .@map$,267,9,277,45,"Abysmal Knight",1219,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Abysmal Knight"), KNIGHT_OF_ABYSS, 10, .@label$);
else if (.@mob_ran == 17)
- areamonster .@map$,267,9,277,45,"Wanderer",1208,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Wanderer"), WANDER_MAN, 10, .@label$);
else if (.@mob_ran == 18)
- areamonster .@map$,267,9,277,45,"Sword Master",1829,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Sword Master"), SWORD_GUARDIAN, 15, .@label$);
else if (.@mob_ran == 19)
- areamonster .@map$,267,9,277,45,"Bow Master",1830,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bow Master"), BOW_GUARDIAN, 15, .@label$);
else if (.@mob_ran == 20)
- areamonster .@map$,267,9,277,45,"Kathryne Keyron",1639,15,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kathryne Keyron"), KATRINN, 15, .@label$);
else if (.@mob_ran == 21)
- areamonster .@map$,267,9,277,45,"Elder",1377,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Elder"), ELDER, 10, .@label$);
else if (.@mob_ran == 22)
- areamonster .@map$,267,9,277,45,"Laurell Weinder",1657,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Laurell Weinder"), RAWREL, 10, .@label$);
else if (.@mob_ran == 23)
- areamonster .@map$,267,9,277,45,"Wind Ghost",1263,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Wind Ghost"), WIND_GHOST, 10, .@label$);
else if (.@mob_ran == 24)
- areamonster .@map$,267,9,277,45,"Marduk",1140,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Marduk"), MARDUK, 10, .@label$);
else if (.@mob_ran == 25)
- areamonster .@map$,267,9,277,45,"Cecil Damon",1638,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Cecil Damon"), SHECIL, 10, .@label$);
else if (.@mob_ran == 26)
- areamonster .@map$,267,9,277,45,"Bow Master",1830,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Bow Master"), BOW_GUARDIAN, 10, .@label$);
else if (.@mob_ran == 27)
- areamonster .@map$,267,9,277,45,"Kavach Icarus",1656,30,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Kavach Icarus"), KAVAC, 30, .@label$);
else if (.@mob_ran == 28)
- areamonster .@map$,267,9,277,45,"Baroness of Retribution",1702,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Baroness of Retribution"), RETRIBUTION, 10, .@label$);
else if (.@mob_ran == 29)
- areamonster .@map$,267,9,277,45,"Lady Solace",1703,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("Lady Solace"), SOLACE, 10, .@label$);
else
- areamonster .@map$,267,9,277,45,"False Angel",1371,10,.@label$;
+ areamonster(.@map$, 267, 9, 277, 45, _("False Angel"), FAKE_ANGEL, 10, .@label$);
}
break;
}
@@ -1080,139 +1082,60 @@ function script F_Tower_Monster {
function script F_Tower_Warp {
+ setarray(.@x[2], 136, 224, 310, 395, 52, 136, 224, 310, 395, // 2 - 10
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 11 - 20
+ 52, 136, 224, 310, 395, 0, 136, 224, 310, 395, // 21 - 30
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 31 - 40
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 41 - 50
+ 0, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 51 - 60
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 61 - 70
+ 52, 136, 224, 310, 395, 0, 136, 224, 310, 395, // 71 - 80
+ 52, 136, 224, 310, 395, 52, 136, 224, 310, 395, // 81 - 90
+ 52, 136, 224, 310, 395, 52, 136, 224, 309); // 91 - 99
+ setarray(.@y[2], 354, 354, 354, 354, 270, 270, 270, 270, 270, // 2 - 10
+ 183, 183, 183, 183, 183, 99, 99, 99, 99, 99, // 11 - 20
+ 12, 12, 12, 12, 12, 0, 354, 354, 354, 354, // 21 - 30
+ 270, 270, 270, 270, 270, 183, 183, 183, 183, 183, // 31 - 40
+ 99, 99, 99, 99, 99, 12, 12, 12, 12, 12, // 41 - 50
+ 0, 354, 354, 354, 354, 270, 270, 270, 270, 270, // 51 - 60
+ 183, 183, 183, 183, 183, 99, 99, 99, 99, 99, // 61 - 70
+ 12, 12, 12, 12, 12, 0, 354, 354, 354, 354, // 71 - 80
+ 270, 270, 270, 270, 270, 183, 183, 183, 183, 183, // 81 - 90
+ 99, 99, 99, 99, 99, 12, 12, 12, 12); // 91 - 99
.@level = getarg(0);
.@map$ = getarg(1);
-
- switch(.@level) {
- case 2: warp .@map$,136,354; break;
- case 3: warp .@map$,224,354; break;
- case 4: warp .@map$,310,354; break;
- case 5: warp .@map$,395,354; break;
- case 6: warp .@map$,52,270; break;
- case 7: warp .@map$,136,270; break;
- case 8: warp .@map$,224,270; break;
- case 9: warp .@map$,310,270; break;
- case 10: warp .@map$,395,270; break;
- case 11: warp .@map$,52,183; break;
- case 12: warp .@map$,136,183; break;
- case 13: warp .@map$,224,183; break;
- case 14: warp .@map$,310,183; break;
- case 15: warp .@map$,395,183; break;
- case 16: warp .@map$,52,99; break;
- case 17: warp .@map$,136,99; break;
- case 18: warp .@map$,224,99; break;
- case 19: warp .@map$,310,99; break;
- case 20: warp .@map$,395,99; break;
- case 21: warp .@map$,52,12; break;
- case 22: warp .@map$,136,12; break;
- case 23: warp .@map$,224,12; break;
- case 24: warp .@map$,310,12; break;
- case 25: warp .@map$,395,12; break;
-
- case 27: warp .@map$,136,354; break;
- case 28: warp .@map$,224,354; break;
- case 29: warp .@map$,310,354; break;
- case 30: warp .@map$,395,354; break;
- case 31: warp .@map$,52,270; break;
- case 32: warp .@map$,136,270; break;
- case 33: warp .@map$,224,270; break;
- case 34: warp .@map$,310,270; break;
- case 35: warp .@map$,395,270; break;
- case 36: warp .@map$,52,183; break;
- case 37: warp .@map$,136,183; break;
- case 38: warp .@map$,224,183; break;
- case 39: warp .@map$,310,183; break;
- case 40: warp .@map$,395,183; break;
- case 41: warp .@map$,52,99; break;
- case 42: warp .@map$,136,99; break;
- case 43: warp .@map$,224,99; break;
- case 44: warp .@map$,310,99; break;
- case 45: warp .@map$,395,99; break;
- case 46: warp .@map$,52,12; break;
- case 47: warp .@map$,136,12; break;
- case 48: warp .@map$,224,12; break;
- case 49: warp .@map$,310,12; break;
- case 50: warp .@map$,395,12; break;
-
- case 52: warp .@map$,136,354; break;
- case 53: warp .@map$,224,354; break;
- case 54: warp .@map$,310,354; break;
- case 55: warp .@map$,395,354; break;
- case 56: warp .@map$,52,270; break;
- case 57: warp .@map$,136,270; break;
- case 58: warp .@map$,224,270; break;
- case 59: warp .@map$,310,270; break;
- case 60: warp .@map$,395,270; break;
- case 61: warp .@map$,52,183; break;
- case 62: warp .@map$,136,183; break;
- case 63: warp .@map$,224,183; break;
- case 64: warp .@map$,310,183; break;
- case 65: warp .@map$,395,183; break;
- case 66: warp .@map$,52,99; break;
- case 67: warp .@map$,136,99; break;
- case 68: warp .@map$,224,99; break;
- case 69: warp .@map$,310,99; break;
- case 70: warp .@map$,395,99; break;
- case 71: warp .@map$,52,12; break;
- case 72: warp .@map$,136,12; break;
- case 73: warp .@map$,224,12; break;
- case 74: warp .@map$,310,12; break;
- case 75: warp .@map$,395,12; break;
-
- case 77: warp .@map$,136,354; break;
- case 78: warp .@map$,224,354; break;
- case 79: warp .@map$,310,354; break;
- case 80: warp .@map$,395,354; break;
- case 81: warp .@map$,52,270; break;
- case 82: warp .@map$,136,270; break;
- case 83: warp .@map$,224,270; break;
- case 84: warp .@map$,310,270; break;
- case 85: warp .@map$,395,270; break;
- case 86: warp .@map$,52,183; break;
- case 87: warp .@map$,136,183; break;
- case 88: warp .@map$,224,183; break;
- case 89: warp .@map$,310,183; break;
- case 90: warp .@map$,395,183; break;
- case 91: warp .@map$,52,99; break;
- case 92: warp .@map$,136,99; break;
- case 93: warp .@map$,224,99; break;
- case 94: warp .@map$,310,99; break;
- case 95: warp .@map$,395,99; break;
- case 96: warp .@map$,52,12; break;
- case 97: warp .@map$,136,12; break;
- case 98: warp .@map$,224,12; break;
- case 99: warp .@map$,309,12; break;
- }
+ if (.@x[.@level] > 0 && .@y[.@level] > 0)
+ warp(.@map$, .@x[.@level], .@y[.@level]);
return;
}
//== Levels 1-25 ===========================================
1@tower,50,360,0 script Immortal Brazier# CLEAR_NPC,{
- mes "- A Message is Engraved on the Brazier -";
- mes "The one who scatters the ashes of the darkness in this place shall become one step closer to Nacht Sieger, the Hegemon King of the Darkness...";
- next;
+ mes("- A Message is Engraved on the Brazier -");
+ mes("The one who scatters the ashes of the darkness in this place shall become one step closer to Nacht Sieger, the Hegemon King of the Darkness...");
+ next();
- setarray .@level$[1],"26th","51st","76th";
- setarray .@map$[1],"2@tower","3@tower","4@tower";
+ setarray(.@level$[1], _("26th"), _("51st"), _("76th"));
+ setarray(.@map$[1], "2@tower", "3@tower", "4@tower");
.@i = select("26th Level", "51st Level", "76th Level");
if (countitem(Dark_Ashes) < .@i) {
- mes "-Warning-";
- mes "To warp to the "+.@level$[.@i]+" Level, you need "+.@i+" Ashes of the Darkness.";
- close;
+ mes("-Warning-");
+ mesf("To warp to the %s Level, you need %d Ashes of the Darkness.", .@level$[.@i], .@i);
+ close();
}
- delitem Dark_Ashes,.@i;
- mapannounce instance_mapname("1@tower"), strcharinfo(PC_NAME)+". You will be warped to the "+.@level$[.@i]+" Level.",bc_map,"0x00ff99";
- warp instance_mapname(.@map$[.@i]),52,354;
- close;
+ delitem(Dark_Ashes, .@i);
+ mapannounce(instance_mapname("1@tower"), sprintf(_$("%s. You will be warped to the %s Level."), strcharinfo(PC_NAME), .@level$[.@i]), bc_map, C_SPRINGGREEN);
+ warp(instance_mapname(.@map$[.@i]), 52, 354);
+ close();
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer10000:
- mapannounce instance_mapname("1@tower"), "Notice : Taming a monster does not count towards defeating them.",bc_map,"0xff0000";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("Notice : Taming a monster does not count towards defeating them."), bc_map, C_RED);
+ stopnpctimer();
end;
}
@@ -1220,26 +1143,24 @@ OnTimer10000:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 1,
- instance_mapname("1@tower"),
- instance_npcname("#1F Controller")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 1, instance_mapname("1@tower"), instance_npcname("#1F Controller")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#1F Controller")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#1F Controller")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 1
- } else
- mapannounce .@map$, "Remaining Monsters on the 1st Level - "+.@mob_dead_num,bc_map,"0x00ff99";
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 1st Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
+ }
end;
OnTimer5000:
- mapannounce instance_mapname("1@tower"), "All Monsters on the 1st Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("1FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("All Monsters on the 1st Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("1FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1247,49 +1168,50 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
- callfunc "F_Tower_Monster",
- atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1,
- strnpcinfo(NPC_MAP),
- instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ callfunc("F_Tower_Monster", atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1, strnpcinfo(NPC_MAP), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
end;
OnTouch_:
- callfunc "F_Tower_Warp",
- atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1,
- strnpcinfo(NPC_MAP);
+ callfunc("F_Tower_Warp", atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1, strnpcinfo(NPC_MAP));
end;
OnMyMobDead:
.@map$ = strnpcinfo(NPC_MAP);
- .@level = atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1;
- .@mob_dead_num = mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
+ .@level = atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1;
+ .@mob_dead_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor .@level
} else
- mapannounce .@map$, "Remaining Monsters on the "+callsub(L_Display,.@level)+" Level - "+.@mob_dead_num,bc_map,"0x00ff99";
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the %s Level - %d"), callsub(L_Display, .@level), .@mob_dead_num), bc_map, C_SPRINGGREEN);
end;
OnTimer5000:
- .@level = atoi(replacestr(strnpcinfo(NPC_NAME),"FGate102tower","")) + 1;
- mapannounce strnpcinfo(NPC_MAP), "All Monsters on the "+callsub(L_Display,.@level)+" Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname(.@level+"FGate102tower")+"::OnEnable";
- stopnpctimer;
+ .@level = atoi(replacestr(strnpcinfo(NPC_NAME), "FGate102tower", "")) + 1;
+ mapannounce(strnpcinfo(NPC_MAP), sprintf(_$("All Monsters on the %s Level have been defeated."), callsub(L_Display, .@level)), bc_map, C_YELLOW);
+ donpcevent(instance_npcname(.@level+"FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
L_Display:
// Display level properly.
.@mod = getarg(0) % 10;
- if (.@mod == 1 && getarg(0) != 11) return getarg(0)+"st";
- else if (.@mod == 2 && getarg(0) != 12) return getarg(0)+"nd";
- else if (.@mod == 3 && getarg(0) != 13) return getarg(0)+"rd";
- else return getarg(0)+"th";
+ if (.@mod == 1 && getarg(0) != 11)
+ return sprintf(_$("%dst"), getarg(0));
+ else if (.@mod == 2 && getarg(0) != 12)
+ return sprintf(_$("%dnd"), getarg(0));
+ else if (.@mod == 3 && getarg(0) != 13)
+ return sprintf(_$("%drd"), getarg(0));
+ else
+ return sprintf(_$("%dth"), getarg(0));
+ end;
}
+
1@tower,96,393,0 duplicate(1FGate102tower) 2FGate102tower WARPNPC,2,2
1@tower,184,393,0 duplicate(1FGate102tower) 3FGate102tower WARPNPC,2,2
1@tower,270,393,0 duplicate(1FGate102tower) 4FGate102tower WARPNPC,2,2
@@ -1318,23 +1240,23 @@ L_Display:
end;
OnInstanceInit:
- disablenpc instance_npcname("25FGate102tower");
+ disablenpc(instance_npcname("25FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("25FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("25FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("2@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("2@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("25FGate102tower");
- donpcevent instance_npcname("25FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("25FGate102tower"));
+ donpcevent(instance_npcname("25FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1342,15 +1264,15 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("25FGate102tower-2");
+ disablenpc(instance_npcname("25FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("25FGate102tower-2");
+ enablenpc(instance_npcname("25FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("2@tower"),52,354;
+ warp(instance_mapname("2@tower"), 52, 354);
end;
}
@@ -1358,38 +1280,38 @@ OnTouch_:
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer15000:
OnTimer60000:
- mapannounce instance_mapname("1@tower"), "Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!",bc_map,"0xff0000";
+ mapannounce(instance_mapname("1@tower"), _("Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!"), bc_map, C_RED);
end;
OnTimer120000:
- mapannounce instance_mapname("1@tower"), "Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!",bc_map,"0xff0000";
- stopnpctimer;
+ mapannounce(instance_mapname("1@tower"), _("Notice : In any abnormal situation where you defeat a monster, you can't advance to the next level!"), bc_map, C_RED);
+ stopnpctimer();
end;
}
1@tower,71,1,0 script #Manager Mode1 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 1st to the 25th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 1F->1, 25F->25)";
- input .@input,1,25;
- next;
- if (.@input < 1 || .@input > 25)
- mes "You can only enter a number from 1 to 25.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 1st to the 25th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 1F->1, 25F->25)");
+ input(.@input, 1, 25);
+ next();
+ if (.@input < 1 || .@input > 25) {
+ mes("You can only enter a number from 1 to 25.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 26-50 ==========================================
@@ -1397,27 +1319,24 @@ OnTimer120000:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 26,
- instance_mapname("2@tower"),
- instance_npcname("Immortal Furnace#1")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 26, instance_mapname("2@tower"), instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 26
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 26th Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$, "Remaining Monsters on the 26th Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("2@tower"), "All Monsters on the 26th Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("26FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("2@tower"), _("All Monsters on the 26th Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("26FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1450,23 +1369,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("50FGate102tower");
+ disablenpc(instance_npcname("50FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("50FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("50FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("3@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("3@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("50FGate102tower");
- donpcevent instance_npcname("50FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("50FGate102tower"));
+ donpcevent(instance_npcname("50FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1474,37 +1393,37 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("50FGate102tower-2");
+ disablenpc(instance_npcname("50FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("50FGate102tower-2");
+ enablenpc(instance_npcname("50FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("3@tower"),52,354;
+ warp(instance_mapname("3@tower"), 52, 354);
end;
}
2@tower,71,1,0 script #Manager Mode2 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 26st to the 50th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 26F->26, 50F->50)";
- input .@input,26,50;
- next;
- if (.@onput < 26 || .@input > 50)
- mes "You can only enter a number from 26 to 50.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 26st to the 50th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 26F->26, 50F->50)");
+ input(.@input, 26, 50);
+ next();
+ if (.@onput < 26 || .@input > 50) {
+ mes("You can only enter a number from 26 to 50.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 51-75 ==========================================
@@ -1512,27 +1431,24 @@ OnTouch_:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 51,
- instance_mapname("3@tower"),
- instance_npcname("Immortal Furnace#2")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 51, instance_mapname("3@tower"), instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("3@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 51
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 51st Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$, "Remaining Monsters on the 51st Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("3@tower"), "All Monsters on the 51st Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("51FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("3@tower"), _("All Monsters on the 51st Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("51FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1565,23 +1481,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("75FGate102tower");
+ disablenpc(instance_npcname("75FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("75FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("75FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("4@tower"),52,354;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("4@tower"), 52, 354);
end;
OnTimer120000:
- disablenpc instance_npcname("75FGate102tower");
- donpcevent instance_npcname("75FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("75FGate102tower"));
+ donpcevent(instance_npcname("75FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1589,37 +1505,37 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("75FGate102tower-2");
+ disablenpc(instance_npcname("75FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("75FGate102tower-2");
+ enablenpc(instance_npcname("75FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("4@tower"),52,354;
+ warp(instance_mapname("4@tower"), 52, 354);
end;
}
3@tower,71,1,0 script #Manager Mode3 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 51st to the 75th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 51F->51, 75F->75)";
- input .@input,51,75;
- next;
- if (.@input < 51 || .@input > 75)
- mes "You can only enter a number from 51 to 75.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 51st to the 75th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 51F->51, 75F->75)");
+ input(.@input, 51, 75);
+ next();
+ if (.@input < 51 || .@input > 75) {
+ mes("You can only enter a number from 51 to 75.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Levels 76-99 ==========================================
@@ -1627,27 +1543,24 @@ OnTouch_:
end;
OnInstanceInit:
- callfunc "F_Tower_Monster",
- 76,
- instance_mapname("4@tower"),
- instance_npcname("Immortal Furnace#3")+"::OnMyMobDead";
+ callfunc("F_Tower_Monster", 76, instance_mapname("4@tower"), instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("4@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("Immortal Furnace#3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- initnpctimer;
+ initnpctimer();
//SetItemPartyInMap in_102floor 76
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Monsters on the 76th Level - %d"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Monsters on the 76th Level - " + .@mob_dead_num,bc_map,"0x00ff99";
end;
OnTimer5000:
- mapannounce instance_mapname("4@tower"),"All Monsters on the 76th Level have been defeated.",bc_map,"0xffff00";
- donpcevent instance_npcname("76FGate102tower")+"::OnEnable";
- stopnpctimer;
+ mapannounce(instance_mapname("4@tower"), _("All Monsters on the 76th Level have been defeated."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("76FGate102tower")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1679,23 +1592,23 @@ OnTimer5000:
end;
OnInstanceInit:
- disablenpc instance_npcname("99FGate102tower");
+ disablenpc(instance_npcname("99FGate102tower"));
end;
OnEnable:
- enablenpc instance_npcname("99FGate102tower");
- initnpctimer;
+ enablenpc(instance_npcname("99FGate102tower"));
+ initnpctimer();
end;
OnTouch_:
- getitem Dark_Ashes,1;
- warp instance_mapname("5@tower"),101,72;
+ getitem(Dark_Ashes, 1);
+ warp(instance_mapname("5@tower"), 101, 72);
end;
OnTimer120000:
- disablenpc instance_npcname("99FGate102tower");
- donpcevent instance_npcname("99FGate102tower-2")+"::OnEnable";
- stopnpctimer;
+ disablenpc(instance_npcname("99FGate102tower"));
+ donpcevent(instance_npcname("99FGate102tower-2")+"::OnEnable");
+ stopnpctimer();
end;
}
@@ -1703,89 +1616,88 @@ OnTimer120000:
end;
OnInstanceInit:
- disablenpc instance_npcname("99FGate102tower-2");
+ disablenpc(instance_npcname("99FGate102tower-2"));
end;
OnEnable:
- enablenpc instance_npcname("99FGate102tower-2");
+ enablenpc(instance_npcname("99FGate102tower-2"));
end;
OnTouch_:
- warp instance_mapname("5@tower"),101,72;
+ warp(instance_mapname("5@tower"), 101, 72);
end;
}
4@tower,71,1,0 script #Manager Mode4 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- mes "This NPC manages the tower from the 76th to the 99th Level.";
- mes "Please enter the Level number to open.";
- mes "(i.g.: 76F->76, 99F->99)";
- input .@input,76,99;
- next;
- if (.@input < 76 || .@input > 99)
- mes "You can only enter a number from 76 to 99.";
- else {
- donpcevent instance_npcname(.@input+"FGate102tower")+"::OnEnable";
- mes "*** Level "+ .@input + " is now being opened. ***";
+ mes("This NPC manages the tower from the 76th to the 99th Level.");
+ mes("Please enter the Level number to open.");
+ mes("(i.g.: 76F->76, 99F->99)");
+ input(.@input, 76, 99);
+ next();
+ if (.@input < 76 || .@input > 99) {
+ mes("You can only enter a number from 76 to 99.");
+ } else {
+ donpcevent(instance_npcname(.@input+"FGate102tower")+"::OnEnable");
+ mesf("*** Level %d is now being opened. ***", .@input);
}
}
- close;
+ close();
}
//== Level 100 =============================================
5@tower,106,109,2 script Lucid Crystal#102 CLEAR_NPC,{
if (in_102tower < 10) {
- mes "^0000ffA mysterious voice echoes through the room as you touch the lucid crystal radiating a strong light.^000000";
- next;
- mes "[Mysterious Voice]";
- mes "Welcome to my place, intruders. I've had fun watching you endure all the difficulties I've set before you.";
- next;
- mes "[Mysterious Voice]";
- mes "Unfortunately, the time has come to end the show.";
- next;
- mes "[Mysterious Voice]";
- mes "It's still too early to celebrate your victory against my right-hand man Knothen because he isn't completely destroyed!";
- next;
- mes "[Mysterious Voice]";
- mes "I shall resurrect him for your next show. Defeat him again, and then I'll gladly accept your challenge.";
- next;
- mes "[Mysterious Voice]";
- mes "Good-bye for now.";
- mes "Once again, I had such a great time, humans. I look forward to seeing you again.";
- next;
- mes "^0000ffAs soon as the voice stopped talking, an irresistible force lifted and moved you somewhere else.";
- close2;
+ mes("^0000ffA mysterious voice echoes through the room as you touch the lucid crystal radiating a strong light.^000000");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Welcome to my place, intruders. I've had fun watching you endure all the difficulties I've set before you.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Unfortunately, the time has come to end the show.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("It's still too early to celebrate your victory against my right-hand man Knothen because he isn't completely destroyed!");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I shall resurrect him for your next show. Defeat him again, and then I'll gladly accept your challenge.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("Good-bye for now.");
+ mes("Once again, I had such a great time, humans. I look forward to seeing you again.");
+ next();
+ mes("^0000ffAs soon as the voice stopped talking, an irresistible force lifted and moved you somewhere else.");
+ close2();
in_102tower = 10;
- warp "alberta",223,36;
- }
- else {
- mes "^0000ffThe radiating crystal piece seems to beckon you, just like last time.^000000";
- next;
- mes "[Mysterious Voice]";
- mes "I must have underestimated you... I didn't expect to see you again.";
- next;
- mes "[Mysterious Voice]";
- mes "I can smell your sweat, hear the gasps of your exhaustion in combat. Ah~ The human desire for victory always excites me.";
- next;
- mes "[Mysterious Voice]";
- mes "I now allow you to come receive an audience from me. Come to me, to Nacht Sieger the Hegemon-King of the Darkness!";
- close2;
- warp instance_mapname("6@tower"),32,12;
+ warp("alberta", 223, 36);
+ } else {
+ mes("^0000ffThe radiating crystal piece seems to beckon you, just like last time.^000000");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I must have underestimated you... I didn't expect to see you again.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I can smell your sweat, hear the gasps of your exhaustion in combat. Ah~ The human desire for victory always excites me.");
+ next();
+ mes("[Mysterious Voice]");
+ mes("I now allow you to come receive an audience from me. Come to me, to Nacht Sieger the Hegemon-King of the Darkness!");
+ close2();
+ warp(instance_mapname("6@tower"), 32, 12);
}
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Lucid Crystal#102");
+ disablenpc(instance_npcname("Lucid Crystal#102"));
end;
OnEnable:
- enablenpc instance_npcname("Lucid Crystal#102");
- donpcevent instance_npcname("#102Effect1")+"::OnEnable";
+ enablenpc(instance_npcname("Lucid Crystal#102"));
+ donpcevent(instance_npcname("#102Effect1")+"::OnEnable");
end;
}
@@ -1793,22 +1705,22 @@ OnEnable:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102Effect1");
+ disablenpc(instance_npcname("#102Effect1"));
end;
OnDisable:
- disablenpc instance_npcname("#102Effect1");
+ disablenpc(instance_npcname("#102Effect1"));
end;
OnEnable:
- enablenpc instance_npcname("#102Effect1");
- initnpctimer;
+ enablenpc(instance_npcname("#102Effect1"));
+ initnpctimer();
end;
OnTimer500:
- specialeffect EF_ENHANCE;
- stopnpctimer;
- donpcevent instance_npcname("#102Effect2")+"::OnEnable";
+ specialeffect(EF_ENHANCE);
+ stopnpctimer();
+ donpcevent(instance_npcname("#102Effect2")+"::OnEnable");
end;
}
@@ -1816,22 +1728,22 @@ OnTimer500:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102Effect2");
+ disablenpc(instance_npcname("#102Effect2"));
end;
OnDisable:
- disablenpc instance_npcname("#102Effect2");
+ disablenpc(instance_npcname("#102Effect2"));
end;
OnEnable:
- enablenpc instance_npcname("#102Effect2");
- initnpctimer;
+ enablenpc(instance_npcname("#102Effect2"));
+ initnpctimer();
end;
OnTimer500:
- specialeffect EF_ENHANCE;
- stopnpctimer;
- donpcevent instance_npcname("#102Effect1")+"::OnEnable";
+ specialeffect(EF_ENHANCE);
+ stopnpctimer();
+ donpcevent(instance_npcname("#102Effect1")+"::OnEnable");
end;
}
@@ -1839,17 +1751,17 @@ OnTimer500:
end;
OnInstanceInit:
- donpcevent instance_npcname("#102FShadowDust")+"::OnEnable";
- monster instance_mapname("5@tower"),83,85,"Entweihen Crothen",1957,1,instance_npcname("#102FShadowDust1")+"::OnMyMobDead";
+ donpcevent(instance_npcname("#102FShadowDust")+"::OnEnable");
+ monster(instance_mapname("5@tower"), 83, 85, _("Entweihen Crothen"), ENTWEIHEN, 1, instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("5@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#102FShadowDust1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- mapannounce .@map$, "Mysterious Voice: Who are you to dare intrude upon my sanctuary?!",bc_map,"0xffff00";
- donpcevent instance_npcname("#102FShadowDust")+"::OnDisable";
- donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable";
+ mapannounce(.@map$, _("Mysterious Voice: Who are you to dare intrude upon my sanctuary?!"), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("#102FShadowDust")+"::OnDisable");
+ donpcevent(instance_npcname("Lucid Crystal#102")+"::OnEnable");
//SetItemPartyInMap in_102floor 100
}
end;
@@ -1859,74 +1771,86 @@ OnMyMobDead:
end;
OnInstanceInit:
- disablenpc instance_npcname("#102FShadowDust");
+ disablenpc(instance_npcname("#102FShadowDust"));
end;
OnDisable:
- killmonsterall instance_mapname("5@tower");
+ killmonsterall(instance_mapname("5@tower"));
end;
OnEnable:
.@map$ = instance_mapname("5@tower");
- monster .@map$,72,93,"Thorny Skeleton",1958,1;
- monster .@map$,70,87,"Thorn of Magic",1960,1;
- monster .@map$,68,83,"Thorn of Pureness",1961,1;
- monster .@map$,70,80,"Thorny Skeleton",1958,1;
- monster .@map$,74,81,"Thorn of Magic",1960,1;
- monster .@map$,78,72,"Thorn of Magic",1960,1;
- monster .@map$,81,70,"Thorny Skeleton",1958,1;
- monster .@map$,78,84,"Thorn of Recovery",1959,1;
- monster .@map$,85,72,"Thorn of Magic",1960,1;
- monster .@map$,91,74,"Thorny Skeleton",1958,1;
- monster .@map$,79,77,"Thorn of Pureness",1961,1;
- monster .@map$,82,80,"Thorn of Recovery",1959,1;
- monster .@map$,87,83,"Thorn of Recovery",1959,1;
- monster .@map$,80,92,"Thorn of Pureness",1961,1;
- monster .@map$,81,89,"Thorny Skeleton",1958,1;
- monster .@map$,85,93,"Thorn of Magic",1960,1;
- monster .@map$,86,90,"Thorn of Recovery",1959,1;
- monster .@map$,88,88,"Thorny Skeleton",1958,1;
- monster .@map$,91,87,"Thorn of Magic",1960,1;
- monster .@map$,95,94,"Thorn of Magic",1960,1;
- monster .@map$,91,96,"Thorny Skeleton",1958,1;
- monster .@map$,90,82,"Thorn of Pureness",1961,1;
- monster .@map$,96,98,"Thorn of Magic",1960,1;
- monster .@map$,83,76,"Thorny Skeleton",1958,1;
- monster .@map$,74,85,"Thorny Skeleton",1958,1;
- switch(rand(1,3)) {
- case 1: monster .@map$,82,85,"Thorny Skeleton",1958,1; break;
- case 2: monster .@map$,82,85,"Thorn of Magic",1960,1; break;
- case 3: monster .@map$,82,85,"Thorn of Pureness",1961,1; break;
+ monster(.@map$, 72, 93, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 70, 87, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 68, 83, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 70, 80, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 74, 81, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 78, 72, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 81, 70, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 78, 84, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 85, 72, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 91, 74, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 79, 77, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 82, 80, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 87, 83, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 80, 92, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 81, 89, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 85, 93, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 86, 90, _("Thorn of Recovery"), G_ENTWEIHEN_H, 1);
+ monster(.@map$, 88, 88, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 91, 87, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 95, 94, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 91, 96, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 90, 82, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ monster(.@map$, 96, 98, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ monster(.@map$, 83, 76, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ monster(.@map$, 74, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ switch (rand(1, 3)) {
+ case 1:
+ monster(.@map$, 82, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ break;
+ case 2:
+ monster(.@map$, 82, 85, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ break;
+ case 3:
+ monster(.@map$, 82, 85, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ break;
}
- switch(rand(1,3)) {
- case 1: monster .@map$,84,85,"Thorny Skeleton",1958,1; break;
- case 2: monster .@map$,84,85,"Thorn of Magic",1960,1; break;
- case 3: monster .@map$,84,85,"Thorn of Pureness",1961,1; break;
+ switch (rand(1, 3)) {
+ case 1:
+ monster(.@map$, 84, 85, _("Thorny Skeleton"), G_ENTWEIHEN_R, 1);
+ break;
+ case 2:
+ monster(.@map$, 84, 85, _("Thorn of Magic"), G_ENTWEIHEN_M, 1);
+ break;
+ case 3:
+ monster(.@map$, 84, 85, _("Thorn of Pureness"), G_ENTWEIHEN_S, 1);
+ break;
}
end;
}
5@tower,71,1,0 script #Manager Mode5 CLEAR_NPC,{
- callfunc "F_GM_NPC";
- mes "This NPC manages the crystal on the 100th Level. Please enter the password.";
- .@i = callfunc("F_GM_NPC","dmc2008",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("This NPC manages the crystal on the 100th Level. Please enter the password.");
+ .@i = callfunc("F_GM_NPC", "dmc2008", 1);
+ next();
if (.@i == 1) {
- donpcevent instance_npcname("Lucid Crystal#102")+"::OnEnable";
- mes "The 100th Level's crystal has been activated.";
+ donpcevent(instance_npcname("Lucid Crystal#102")+"::OnEnable");
+ mes("The 100th Level's crystal has been activated.");
} else
- mes "Please enter the correct password.";
- close;
+ mes("Please enter the correct password.");
+ close();
}
//== Level 101 =============================================
6@tower,45,89,2 script Life Spring#1 CLEAR_NPC,{
- mes "^0066ffYou took a sip of the spring's clear water, and you feel invigorated.^000000";
- heal (MaxHp-Hp),(MaxSp-Sp);
- close;
+ mes("^0066ffYou took a sip of the spring's clear water, and you feel invigorated.^000000");
+ heal((MaxHp - Hp), (MaxSp - Sp));
+ close();
OnInstanceInit:
- donpcevent instance_npcname("Life Spring#2")+"::OnEnable";
+ donpcevent(instance_npcname("Life Spring#2")+"::OnEnable");
end;
}
@@ -1934,13 +1858,13 @@ OnInstanceInit:
end;
OnEnable:
- specialeffect EF_BUBBLE;
- initnpctimer;
+ specialeffect(EF_BUBBLE);
+ initnpctimer();
end;
OnTimer2000:
- stopnpctimer;
- donpcevent instance_npcname("Life Spring#3")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("Life Spring#3")+"::OnEnable");
end;
}
@@ -1948,13 +1872,13 @@ OnTimer2000:
end;
OnEnable:
- specialeffect EF_BUBBLE;
- initnpctimer;
+ specialeffect(EF_BUBBLE);
+ initnpctimer();
end;
OnTimer2000:
- stopnpctimer;
- donpcevent instance_npcname("Life Spring#2")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("Life Spring#2")+"::OnEnable");
end;
}
@@ -1964,14 +1888,14 @@ OnTimer2000:
end;
OnInstanceInit:
- areamonster instance_mapname("6@tower"),154,73,156,75,"Watcher's Son",1627,10,instance_npcname("Tyrant's Throne#")+"::OnMyMobDead";
+ areamonster(instance_mapname("6@tower"), 154, 73, 156, 75, _("Watcher's Son"), ANOPHELES, 10, instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
end;
OnMyMobDead:
- .@mob_dead_num = mobcount(instance_mapname("6@tower"),instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(instance_mapname("6@tower"), instance_npcname("Tyrant's Throne#")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#1st Beeper")+"::OnEnable";
- disablenpc instance_npcname("Tyrant's Throne#");
+ donpcevent(instance_npcname("#1st Beeper")+"::OnEnable");
+ disablenpc(instance_npcname("Tyrant's Throne#"));
}
end;
}
@@ -1980,42 +1904,42 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Guests, huh? I hope you've come here knowing that you'll be buried in this place. If you didn't know, well... it's too late!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Guests, huh? I hope you've come here knowing that you'll be buried in this place. If you didn't know, well... it's too late!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"This is why you adventurers always end up dead.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("This is why you adventurers always end up dead."), bc_map, "0x00ffcc");
end;
OnTimer10500:
- mapannounce instance_mapname("6@tower"),"I may applaud you for your courage... Of course, I intend to play with you a little bit first.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("I may applaud you for your courage... Of course, I intend to play with you a little bit first."), bc_map, "0x00ffcc");
end;
OnTimer15500:
- mapannounce instance_mapname("6@tower"),"You know, I like watching humans running around in fear.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("You know, I like watching humans running around in fear."), bc_map, "0x00ffcc");
end;
OnTimer20500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"Let's see who runs fastest. Are you ready?",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Bone Guardian",1152,50,instance_npcname("#1st Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Bone Guardian",1152,50,instance_npcname("#1st Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("Let's see who runs fastest. Are you ready?"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Bone Guardian"), ORC_SKELETON, 50, instance_npcname("#1st Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Bone Guardian"), ORC_SKELETON, 50, instance_npcname("#1st Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#1st Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#1st Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#2nd Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#2nd Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 101
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2023,34 +1947,34 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Well, I guess they aren't too challenging for you.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Well, I guess they aren't too challenging for you."), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Let's speed up a little bit, shall we?",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Let's speed up a little bit, shall we?"), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"I demand an encore!",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Wind Guardian",1263,30,instance_npcname("#2nd Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Wind Guardian",1263,30,instance_npcname("#2nd Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("I demand an encore!"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Wind Guardian"), WIND_GHOST, 30, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Wind Guardian"), WIND_GHOST, 30, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#2nd Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#2nd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#3rd Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#3rd Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 102
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2058,34 +1982,34 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Yes, this is getting exciting!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Yes, this is getting exciting!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"I'll remember you as one of a few that have managed to entertain me.",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("I'll remember you as one of a few that have managed to entertain me."), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"How would you like to play one more round?",bc_map,"0x00ffcc";
- stopnpctimer;
- areamonster .@map$,151,66,153,106,"Sword Edge Guardian",1132,20,instance_npcname("#3rd Beeper")+"::OnMyMobDead";
- areamonster .@map$,158,66,160,106,"Sword Edge Guardian",1132,20,instance_npcname("#3rd Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("How would you like to play one more round?"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ areamonster(.@map$, 151, 66, 153, 106, _("Sword Edge Guardian"), KHALITZBURG, 20, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
+ areamonster(.@map$, 158, 66, 160, 106, _("Sword Edge Guardian"), KHALITZBURG, 20, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("6@tower");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#3rd Beeper")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#3rd Beeper")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#4th Beeper")+"::OnEnable";
+ donpcevent(instance_npcname("#4th Beeper")+"::OnEnable");
//SetItemPartyInMap in_102floor 103
+ } else {
+ mapannounce(.@map$, sprintf(_$("Remaining Targets %dea"), .@mob_dead_num), bc_map, C_SPRINGGREEN);
}
- else
- mapannounce .@map$,"Remaining Targets " + .@mob_dead_num + "ea",bc_map,"0x00ff99";
end;
}
@@ -2093,106 +2017,106 @@ OnMyMobDead:
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"Okay, the time has come to make my appearance!",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Okay, the time has come to make my appearance!"), bc_map, "0x00ffcc");
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Do you want to know who I am?",bc_map,"0x00ffcc";
+ mapannounce(instance_mapname("6@tower"), _("Do you want to know who I am?"), bc_map, "0x00ffcc");
end;
OnTimer10500:
.@map$ = instance_mapname("6@tower");
- mapannounce .@map$,"You'll soon know. Mine is the face of death!",bc_map,"0x00ffcc";
- stopnpctimer;
- monster .@map$,156,147,"Nacht Sieger",1956,1,instance_npcname("#4th Beeper")+"::OnMyMobDead";
+ mapannounce(.@map$, _("You'll soon know. Mine is the face of death!"), bc_map, "0x00ffcc");
+ stopnpctimer();
+ monster(.@map$, 156, 147, _("Nacht Sieger"), NAGHT_SIEGER, 1, instance_npcname("#4th Beeper")+"::OnMyMobDead");
end;
OnMyMobDead:
- donpcevent instance_npcname("Lost Soul#102")+"::OnEnable";
+ donpcevent(instance_npcname("Lost Soul#102")+"::OnEnable");
end;
}
6@tower,169,127,2 script Lost Soul#102 4_M_NFDEADSWDMAN,{
- if (checkweight(Knife,1) == 0) {
- mes "You're carrying too much stuff. Why don't you put some of it away, and then come back?";
- close;
+ if (checkweight(Knife, 1) == 0) {
+ mes("You're carrying too much stuff. Why don't you put some of it away, and then come back?");
+ close();
}
- mes "[Lost Souls]";
- mes "It's you that have liberated us from the evil Nacht Sieger.";
- next;
- mes "[Lost Souls]";
- mes "Thank you so much. Now we can escape from this cold and dark place... to heaven.";
- next;
- if ((countitem(Twin_Edge_B) > 0) && (countitem(Twin_Edge_R) > 0)) {
- mes "[Lost Souls]";
- mes "Hey, you have the remnants of Nacht Sieger with you.";
- next;
- mes "[Lost Souls]";
- mes "They may appear to be one-handed swords, but I can put them together to make a two-handed one if you want. That's the only way I can repay you for freeing me.";
- next;
- switch(select("Make a Two-Handed Sword.", "No, thanks.")) {
+ mes("[Lost Souls]");
+ mes("It's you that have liberated us from the evil Nacht Sieger.");
+ next();
+ mes("[Lost Souls]");
+ mes("Thank you so much. Now we can escape from this cold and dark place... to heaven.");
+ next();
+ if (countitem(Twin_Edge_B) > 0 && countitem(Twin_Edge_R) > 0) {
+ mes("[Lost Souls]");
+ mes("Hey, you have the remnants of Nacht Sieger with you.");
+ next();
+ mes("[Lost Souls]");
+ mes("They may appear to be one-handed swords, but I can put them together to make a two-handed one if you want. That's the only way I can repay you for freeing me.");
+ next();
+ switch (select("Make a Two-Handed Sword.", "No, thanks.")) {
case 1:
- mes "[Lost Souls]";
- mes "If it is already upgraded or has a card inside, those effects will be disappear. Is this ok with you?";
- next;
- switch(select("It's fine with me. Please make one.", "No way!")) {
+ mes("[Lost Souls]");
+ mes("If it is already upgraded or has a card inside, those effects will be disappear. Is this ok with you?");
+ next();
+ switch (select("It's fine with me. Please make one.", "No way!")) {
case 1:
- mes "[Lost Souls]";
- mes "Good, then I'll combine these to create a two-handed sword.";
- next;
- delitem Twin_Edge_B,1;
- delitem Twin_Edge_R,1;
- getitem Violet_Fear,1;
+ mes("[Lost Souls]");
+ mes("Good, then I'll combine these to create a two-handed sword.");
+ next();
+ delitem(Twin_Edge_B, 1);
+ delitem(Twin_Edge_R, 1);
+ getitem(Violet_Fear, 1);
break;
case 2:
- mes "[Lost Souls]";
- mes "I see. I guess you aren't as greedy or ambitious as those other adventurers.";
- next;
+ mes("[Lost Souls]");
+ mes("I see. I guess you aren't as greedy or ambitious as those other adventurers.");
+ next();
break;
}
break;
case 2:
- mes "[Lost Souls]";
- mes "I see. I guess you aren't as greedy or ambitious as those other adventurers.";
- next;
+ mes("[Lost Souls]");
+ mes("I see. I guess you aren't as greedy or ambitious as those other adventurers.");
+ next();
break;
}
}
- mes "[Lost Souls]";
- mes "I'd like to talk to you more, but I've... I've got to go now.";
- next;
- mes "[Lost Souls]";
- mes "Farewell, young adventurer. I wish you good luck.";
- close2;
- warp "alberta",223,36;
+ mes("[Lost Souls]");
+ mes("I'd like to talk to you more, but I've... I've got to go now.");
+ next();
+ mes("[Lost Souls]");
+ mes("Farewell, young adventurer. I wish you good luck.");
+ close2();
+ warp("alberta", 223, 36);
end;
OnInstanceInit:
- disablenpc instance_npcname("Lost Soul#102");
+ disablenpc(instance_npcname("Lost Soul#102"));
end;
OnEnable:
- initnpctimer;
- enablenpc instance_npcname("Lost Soul#102");
- donpcevent instance_npcname("#Effect30")+"::OnEnable";
+ initnpctimer();
+ enablenpc(instance_npcname("Lost Soul#102"));
+ donpcevent(instance_npcname("#Effect30")+"::OnEnable");
//SetItemPartyInMap in_102floor 104
end;
OnTimer500:
- mapannounce instance_mapname("6@tower"),"This... This can't be happening! I can't be defeated!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("6@tower"), _("This... This can't be happening! I can't be defeated!"), bc_map, C_YELLOW);
end;
OnTimer5500:
- mapannounce instance_mapname("6@tower"),"Nooo! My soul... My shell...! Nooo~!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("6@tower"), _("Nooo! My soul... My shell...! Nooo~!"), bc_map, C_YELLOW);
end;
OnTimer10500:
- mapannounce instance_mapname("6@tower"),"Nacht Sieger's body has turned into dark ashes that scattered in the wind.",bc_map,"0x00ffcc";
- stopnpctimer;
+ mapannounce(instance_mapname("6@tower"), _("Nacht Sieger's body has turned into dark ashes that scattered in the wind."), bc_map, "0x00ffcc");
+ stopnpctimer();
end;
}
@@ -2200,17 +2124,17 @@ OnTimer10500:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Effect30");
+ disablenpc(instance_npcname("#Effect30"));
end;
OnEnable:
- specialeffect EF_CONE;
- initnpctimer;
+ specialeffect(EF_CONE);
+ initnpctimer();
end;
OnTimer1000:
- stopnpctimer;
- donpcevent instance_npcname("#Effect31")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("#Effect31")+"::OnEnable");
end;
}
@@ -2218,16 +2142,16 @@ OnTimer1000:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Effect31");
+ disablenpc(instance_npcname("#Effect31"));
end;
OnEnable:
- specialeffect EF_CONE;
- initnpctimer;
+ specialeffect(EF_CONE);
+ initnpctimer();
end;
OnTimer1000:
- stopnpctimer;
- donpcevent instance_npcname("#Effect30")+"::OnEnable";
+ stopnpctimer();
+ donpcevent(instance_npcname("#Effect30")+"::OnEnable");
end;
}
diff --git a/npc/instances/NydhoggsNest.txt b/npc/instances/NydhoggsNest.txt
index 19627e6a0..46ffdaef3 100644
--- a/npc/instances/NydhoggsNest.txt
+++ b/npc/instances/NydhoggsNest.txt
@@ -35,1497 +35,1508 @@
nyd_dun02,100,201,3 script Yggdrasil Gatekeeper HIDDEN_NPC,8,8,{
if (ins_nyd == 0) {
- mes "A great stone gate stands before you. The sculpture of a terrible dragon spreads its powerful looking wings.";
- next;
- mes "Near the bottom of the gate, Laphine tribeswomen have been turned to stone and now look like they are part of the great door.";
- next;
- switch(select("Move closer to look more carefully.", "Step back.")) {
+ mes("A great stone gate stands before you. The sculpture of a terrible dragon spreads its powerful looking wings.");
+ next();
+ mes("Near the bottom of the gate, Laphine tribeswomen have been turned to stone and now look like they are part of the great door.");
+ next();
+ switch (select("Move closer to look more carefully.", "Step back.")) {
case 1:
specialeffect(EF_HOLYHIT, AREA, playerattached());
- pushpc 3,3;
+ pushpc(3, 3);
if (ep13_1_edq == 14)
ep13_1_edq = 15;
- mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...";
- next;
- mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation.";
- next;
- mes "It would be better to go back to camp and inform the others and ask for help.";
+ mes("A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...");
+ next();
+ mes("Perhaps there's a great hidden secret beyond the gate, beyond expectation.");
+ next();
+ mes("It would be better to go back to camp and inform the others and ask for help.");
if (ep13_1_edq != 15) {
- next;
- mes "You'll have to obtain the others trust in the expendition camp by working hard.";
+ next();
+ mes("You'll have to obtain the others trust in the expendition camp by working hard.");
}
ins_nyd = 1;
- close;
+ close();
case 2:
- close;
+ close();
}
} else if (ins_nyd == 1) {
- mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...";
- next;
- mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation.";
- next;
- mes "It would be better to go back to camp and inform the others and ask for help.";
+ mes("A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...");
+ next();
+ mes("Perhaps there's a great hidden secret beyond the gate, beyond expectation.");
+ next();
+ mes("It would be better to go back to camp and inform the others and ask for help.");
if (ep13_1_edq == 14 || ep13_1_edq == 15) {
ep13_1_edq = 15;
- close;
+ close();
}
- next;
- mes "You'll have to obtain the others trust in the expendition camp by working hard.";
- close;
+ next();
+ mes("You'll have to obtain the others trust in the expendition camp by working hard.");
+ close();
} else if (ins_nyd == 111 || ins_nyd == 112) {
specialeffect(EF_CHANGECOLD, AREA, playerattached());
- mes "The strange sensation surrounding your body has disappeared";
- next;
- mes "When you touch the stone gate, you hear a commanding voice.";
- next;
- mes "[??????]";
- mes "Wingless one... Our promised words...";
- next;
- switch(select("'Guardian's spell'!", "Take a step back.")) {
+ mes("The strange sensation surrounding your body has disappeared");
+ next();
+ mes("When you touch the stone gate, you hear a commanding voice.");
+ next();
+ mes("[??????]");
+ mes("Wingless one... Our promised words...");
+ next();
+ switch (select("'Guardian's spell'!", "Take a step back.")) {
case 1:
- mes "[??????]";
- mes "Promised words... Guardian's spell... proof of their existence.";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "In the name of Yggdrasiliad, I will accept you as a servant of the Guardian.";
- next;
+ mes("[??????]");
+ mes("Promised words... Guardian's spell... proof of their existence.");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("In the name of Yggdrasiliad, I will accept you as a servant of the Guardian.");
+ next();
specialeffect(EF_CHANGECOLD, AREA, playerattached());
ins_nyd = 200;
- mes "[Yggdrasil Gatekeeper]";
- mes "I accept your entrance through the Guardian's gate. You are now considered a faithful servant of the Guardian Nidhoggur.";
- next;
- mes "The voice has disappeared, and the dark power is calming down from behind the stone gate.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("I accept your entrance through the Guardian's gate. You are now considered a faithful servant of the Guardian Nidhoggur.");
+ next();
+ mes("The voice has disappeared, and the dark power is calming down from behind the stone gate.");
+ close();
case 2:
- close;
+ close();
}
} else if (ins_nyd == 131 || ins_nyd == 132 || ins_nyd > 199) {
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Nidhoggur's Nest";
+ .@md_name$ = _("Nidhoggur's Nest");
- .@ins_nyd_check = questprogress(3135,PLAYTIME); // 3 Day cooldown
- .@ins_nyd_check2 = questprogress(3136,PLAYTIME); // 4 Hour play limit
+ .@ins_nyd_check = questprogress(3135, PLAYTIME); // 3 Day cooldown
+ .@ins_nyd_check2 = questprogress(3136, PLAYTIME); // 4 Hour play limit
- mes "As I put my hands on the stone gate, a voice sounded from the depth of my heart.";
- next;
+ mes("As I put my hands on the stone gate, a voice sounded from the depth of my heart.");
+ next();
if (!.@ins_nyd_check && !.@ins_nyd_check2) {
- if (!instance_check_party(.@party_id,2,70)) {
- mes "[Yggdrasil Gatekeeper]";
- mes "Where are the other servants, so you can work together? Each servant cannot be admitted here individually...";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "Come with at least 1 more servant... Only party leaders can accept admission to Nidhoggur's Nest.";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "And only 1 representative of you needs to talk to me, so don't annoy me...";
- close;
+ if (!instance_check_party(.@party_id, 2, 70)) {
+ mes("[Yggdrasil Gatekeeper]");
+ mes("Where are the other servants, so you can work together? Each servant cannot be admitted here individually...");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("Come with at least 1 more servant... Only party leaders can accept admission to Nidhoggur's Nest.");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("And only 1 representative of you needs to talk to me, so don't annoy me...");
+ close();
}
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Yggdrasil Gatekeeper]";
- mes "The loyal servants of the Guardian... what can I do for you?";
- next;
- switch(select("Please allow me to enter.", "I want to go in.", "I want to leave.")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Yggdrasil Gatekeeper]");
+ mes("The loyal servants of the Guardian... what can I do for you?");
+ next();
+ switch (select("Please allow me to enter.", "I want to go in.", "I want to leave.")) {
case 1:
.@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "[Yggdrasil Gatekeeper]";
- mes "The Guardian seems to wish to be alone. I will go in and check, please wait out here.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("The Guardian seems to wish to be alone. I will go in and check, please wait out here.");
+ close();
}
for (.@i = 1; .@i <= 2; ++.@i) {
- if( instance_attachmap(.@i + "@nyd", .@instance) == "" )
+ if (instance_attachmap(.@i + "@nyd", .@instance) == "")
break;
}
- if( .@i < 2 ) {
+ if (.@i < 2) {
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 144000,300,.@instance;
+ instance_set_timeout(144000, 300, .@instance);
instance_init(.@instance);
- mes "[Yggdrasil Gatekeeper]";
- mes "I've recorded your request, are you ready to go inside?";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "If you are ready, I will allow you to enter.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("I've recorded your request, are you ready to go inside?");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("If you are ready, I will allow you to enter.");
+ close();
case 2:
- callsub L_Enter;
+ callsub(L_Enter);
case 3:
- close;
+ close();
}
}
- mes "[Yggdrasil Gatekeeper]";
- mes "If you have the dungeon generated already, you can enter it.";
- next;
- if(select("I want to go in.", "I want to leave.") == 2)
- close;
- callsub L_Enter;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ if (select("I want to go in.", "I want to leave.") == 2)
+ close();
+ callsub(L_Enter);
} else {
.@instance = has_instance2("1@nyd");
- if (.@instance >= 0) {
+ if (.@instance >= 0)
instance_attach(.@instance);
- }
if (.@ins_nyd_check == 1) {
if ('ins_nyd2 == 3 || 'ins_nyd2 == 4) {
- mes "[Yggdrasil Gatekeeper]";
- mes "With the defeat of Nidhoggur's Shadow, the roots of the World Tree Yggdrasil are also affected.";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "After Nidhoggur's Shadow disappears, at least 3 days is needed for stabilizing.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("With the defeat of Nidhoggur's Shadow, the roots of the World Tree Yggdrasil are also affected.");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("After Nidhoggur's Shadow disappears, at least 3 days is needed for stabilizing.");
+ close();
}
- mes "[Yggdrasil Gatekeeper]";
- mes "If you have the dungeon generated already, you can enter it.";
- next;
- if(select("I want to go in.", "I want to leave.") == 2)
- close;
- callsub L_Enter;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("If you have the dungeon generated already, you can enter it.");
+ next();
+ if (select("I want to go in.", "I want to leave.") == 2)
+ close();
+ callsub(L_Enter);
} else if (.@ins_nyd_check == 2) {
if (.@ins_nyd_check2 == 1) {
- mes "[Yggdrasil Gatekeeper]";
- mes "The time limit to enter the dungeon has expired. You must wait for the World Tree to stabilize its power before trying to re-enter.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("The time limit to enter the dungeon has expired. You must wait for the World Tree to stabilize its power before trying to re-enter.");
+ close();
} else if (.@ins_nyd_check2 == 2) {
- mes "[Yggdrasil Gatekeeper]";
- mes "The World Tree Yggdrasil has stabilized. Would you like to enter Nidhoggur's Nest again?";
- next;
- mes "[Yggdrasil Gatekeeper]";
- mes "If you would like to enter again, please register with me.";
- erasequest 3135;
- erasequest 3136;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("The World Tree Yggdrasil has stabilized. Would you like to enter Nidhoggur's Nest again?");
+ next();
+ mes("[Yggdrasil Gatekeeper]");
+ mes("If you would like to enter again, please register with me.");
+ erasequest(3135);
+ erasequest(3136);
'ins_nyd2 = 0;
- close;
+ close();
}
}
}
- close;
+ close();
} else {
- mes "A great stone gate stands before you. The sculpture of a terrible dragon spreads its powerful looking wings.";
- next;
- mes "Near the bottom of the gate, Laphine tribeswomen have been turned to stone and now look like they are part of the great door.";
- next;
- switch(select("Move closer to look more carefully.", "Step back.")) {
+ mes("A great stone gate stands before you. The sculpture of a terrible dragon spreads its powerful looking wings.");
+ next();
+ mes("Near the bottom of the gate, Laphine tribeswomen have been turned to stone and now look like they are part of the great door.");
+ next();
+ switch (select("Move closer to look more carefully.", "Step back.")) {
case 1:
specialeffect(EF_HOLYHIT, AREA, playerattached());
- pushpc 3,3;
- mes "A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...";
- next;
- mes "Perhaps there's a great hidden secret beyond the gate, beyond expectation.";
- close;
+ pushpc(3, 3);
+ mes("A mysterious power prevents you from getting too close. It looks like there is something strong beyond the door...");
+ next();
+ mes("Perhaps there's a great hidden secret beyond the gate, beyond expectation.");
+ close();
case 2:
- close;
+ close();
}
}
- close;
+ close();
L_Enter:
if (has_instance("1@nyd") == "") {
- mes "[Yggdrasil Gatekeeper]";
- mes "You did not request for entrance. Please let your leader request entrance.";
- close;
+ mes("[Yggdrasil Gatekeeper]");
+ mes("You did not request for entrance. Please let your leader request entrance.");
+ close();
} else {
- mapannounce "nyd_dun02", getpartyname(getcharid(CHAR_ID_PARTY))+"'s party member "+strcharinfo(PC_NAME)+" has entered Nidhoggur's Nest.",bc_map,"0x00ff99";
- if (!questprogress(3135)) setquest 3135;
- if (!questprogress(3136)) setquest 3136;
- warp "1@nyd",32,37;
- close;
+ mapannounce("nyd_dun02", sprintf(_$("%s's party member %s has entered Nidhoggur's Nest."), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN);
+ if (!questprogress(3135))
+ setquest(3135);
+ if (!questprogress(3136))
+ setquest(3136);
+ warp("1@nyd", 32, 37);
+ close();
}
OnTouch_:
if (ins_nyd == 0) {
specialeffect(EF_CHANGECOLD, AREA, playerattached());
- specialeffect EF_CHANGECOLD;
+ specialeffect(EF_CHANGECOLD);
}
end;
}
mid_camp,271,299,3 script Historian Magnifier#edq 4_M_SAGE_C,3,3,{
- mes "[Historian Magniffer]";
+ mes("[Historian Magniffer]");
if (ins_nyd == 1) {
- mes "Sure, the mainland also has lots of interesting adventures... Hello, I am Magnifier, a historian dispatched from the Prontera royal court.";
- next;
- mes "[Historian Magniffer]";
- mes "Finding another line of work might make for a really worthy job, but only a historian gets to know the world over..";
- next;
- mes "[Historian Magniffer]";
- mes "How this world is organized... and the way of the future! With our studies of the past and present we can predict what is to come.";
- next;
- mes "[Historian Magniffer]";
- mes "We are expecting a lot from you, expert adventurer. So, if you find anything... just tell me.";
- close;
+ mes("Sure, the mainland also has lots of interesting adventures... Hello, I am Magnifier, a historian dispatched from the Prontera royal court.");
+ next();
+ mes("[Historian Magniffer]");
+ mes("Finding another line of work might make for a really worthy job, but only a historian gets to know the world over..");
+ next();
+ mes("[Historian Magniffer]");
+ mes("How this world is organized... and the way of the future! With our studies of the past and present we can predict what is to come.");
+ next();
+ mes("[Historian Magniffer]");
+ mes("We are expecting a lot from you, expert adventurer. So, if you find anything... just tell me.");
+ close();
} else if (ins_nyd == 2) {
- mes "Does Commander Agip want to talk to me? Let's listen to his story.";
- next;
- mes "[Historian Magniffer]";
- mes "Did you find the cave that the fairy tribes treat as a holy place? You are a really tough cookie. What did you find?";
- next;
- mes "[Historian Magnifier]";
- mes "...";
- next;
- mes "... ...";
- next;
- mes "[Historian Magnifier]";
- mes "Wait a second... I have a brilliant idea.";
- next;
- mes "[Historian Magnifier]";
- mes "Let's see... This book... No... this one...? Hmm... Maybe this...";
- next;
- mes "[Historian Magnifier]";
- mes "...";
- next;
- mes "[Historian Magnifier]";
- mes "... ...";
- next;
- mes "[Historian Magnifier]";
- mes "Oh, here it is! World Tree Yggdrasil and God's tribes... This is their book!";
- next;
- mes "[Historian Magnifier]";
- mes "Maybe you found the central line to enter into the World Tree Yggdrasil!";
- next;
- mes "[Historian Magnifier]";
- mes "If that's true, you've found the greatest discovery since the harnessing of mana. Isn't this exciting?";
- next;
- mes "[Historian Magnifier]";
- mes "But we need a lot more information... Are they refusing you admission?";
- next;
- mes "[Historian Magnifier]";
- mes "I will send a message to my assistant who is in the Prontera Library. So, help her find more information.";
- next;
- mes "[Historian Magnifier]";
- mes "I will definitely help you find a way to enter the World Tree directly so, just believe in me! Okay~!!";
+ mes("Does Commander Agip want to talk to me? Let's listen to his story.");
+ next();
+ mes("[Historian Magniffer]");
+ mes("Did you find the cave that the fairy tribes treat as a holy place? You are a really tough cookie. What did you find?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("...");
+ next();
+ mes("... ...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Wait a second... I have a brilliant idea.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Let's see... This book... No... this one...? Hmm... Maybe this...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("... ...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Oh, here it is! World Tree Yggdrasil and God's tribes... This is their book!");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Maybe you found the central line to enter into the World Tree Yggdrasil!");
+ next();
+ mes("[Historian Magnifier]");
+ mes("If that's true, you've found the greatest discovery since the harnessing of mana. Isn't this exciting?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("But we need a lot more information... Are they refusing you admission?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I will send a message to my assistant who is in the Prontera Library. So, help her find more information.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I will definitely help you find a way to enter the World Tree directly so, just believe in me! Okay~!!");
ins_nyd = 3;
- close;
+ close();
} else if (ins_nyd == 3) {
- mes "Why are you standing there? Go to my assistant in the Prontera Library!";
- close;
+ mes("Why are you standing there? Go to my assistant in the Prontera Library!");
+ close();
} else if (ins_nyd == 4) {
- mes "You've come back... Good, how's Naomi? Actually, I don't need to worry about her. She is always cheerful. Haha.";
- next;
- mes "[Historian Magnifier]";
- mes "You look like you have a lot on your mind... Your face is full of curiosity and questions.";
- next;
- mes "[Historian Magnifier]";
- mes "So, did you read the whole story that I have prepared?";
- next;
- switch(select("Not yet.", "I read all the stories.")) {
+ mes("You've come back... Good, how's Naomi? Actually, I don't need to worry about her. She is always cheerful. Haha.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("You look like you have a lot on your mind... Your face is full of curiosity and questions.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("So, did you read the whole story that I have prepared?");
+ next();
+ switch (select("Not yet.", "I read all the stories.")) {
case 1:
- mes "[Historian Magnifier]";
- mes "Sheesh~ I prepared these stories for you carefully, but you didn't bother to check anything out did you?";
- next;
- mes "[Historian Magnifier]";
- mes "It would be better if you returned after reading all of them. That's very basic data of what we should do for the future.";
- close;
+ mes("[Historian Magnifier]");
+ mes("Sheesh~ I prepared these stories for you carefully, but you didn't bother to check anything out did you?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("It would be better if you returned after reading all of them. That's very basic data of what we should do for the future.");
+ close();
case 2:
- mes "[Historian Magnifier]";
- mes "Hm, good job. Maybe I don't need to check anything else, right?";
- next;
- mes "[Historian Magnifier]";
- mes "I sent you to figure out which basic materials will be needed for the jobs ahead of us. You should bring research reports...";
- next;
- mes "[Historian Magnifier]";
- mes "You might complain about why I didn't bring any myself... That's because I trust your abilities, don't ever take anything for granted.";
- next;
- mes "[Historian Magnifier]";
- mes "But a while ago, while you were tranferring reports from Commander Agip to the mainland, you lost those reports... remember?";
- next;
- mes "[Historian Magnifier]";
- mes "So far, nothing's come up... Was it that somebody attacked you?";
- next;
- mes "[Historian Magnifier]";
- mes "Somehow, the truth will come out, but we should be careful of shocking the natives if we go there unannounced and they're not prepared for our arrival.";
- next;
- mes "[Historian Magnifier]";
- mes "I've talked too much... Anyway, as you know through my report, you've found a great thing!";
- next;
- mes "[Historian Magnifier]";
- mes "Firstly, we should find out more about the place. I expect we can, but... we can't do much without help from others.";
- next;
- mes "[Historian Magnifier]";
- mes "I have heard about recent expeditions of adventurers that have tried to contact the tribes... Have you heard anything about this?";
- next;
- mes "[Historian Magnifier]";
- mes "Anyway, let's try to contact them first, to be clear about any caves or treasures.";
- next;
- mes "[Historian Magnifier]";
- mes "For now, you try to contact the Sapha and Laphine tribes, and try to extract information from them.";
- next;
- mes "[Historian Magnifier]";
- mes "I'll also keep searching here. If you find anything, come back and let me know.";
+ mes("[Historian Magnifier]");
+ mes("Hm, good job. Maybe I don't need to check anything else, right?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I sent you to figure out which basic materials will be needed for the jobs ahead of us. You should bring research reports...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("You might complain about why I didn't bring any myself... That's because I trust your abilities, don't ever take anything for granted.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("But a while ago, while you were tranferring reports from Commander Agip to the mainland, you lost those reports... remember?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("So far, nothing's come up... Was it that somebody attacked you?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Somehow, the truth will come out, but we should be careful of shocking the natives if we go there unannounced and they're not prepared for our arrival.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I've talked too much... Anyway, as you know through my report, you've found a great thing!");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Firstly, we should find out more about the place. I expect we can, but... we can't do much without help from others.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I have heard about recent expeditions of adventurers that have tried to contact the tribes... Have you heard anything about this?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Anyway, let's try to contact them first, to be clear about any caves or treasures.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("For now, you try to contact the Sapha and Laphine tribes, and try to extract information from them.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I'll also keep searching here. If you find anything, come back and let me know.");
ins_nyd = 5;
- close;
+ close();
}
- } else if ((ins_nyd == 5) || (ins_nyd == 51) || (ins_nyd == 52)) {
- mes "Okay, let's try to contact them first, to be clear about any caves or treasures.";
- next;
- mes "[Historian Magnifier]";
- mes "For now, you try to contact the Sapha and Laphine tribes, and try to extract more information.";
- next;
- mes "[Historian Magnifier]";
- mes "I'll also keep searching here. If you find anything, come back and let me know.";
- close;
- } else if ((ins_nyd == 61) || (ins_nyd == 62)) {
- mes "Ah, you've come at a proper time. I found a curious thing while looking for reports from Arunafeltz.";
- next;
- mes "[Historian Magnifier]";
- mes "Right now, we are standing on part of one of the roots of the World Tree Yggdrasil.";
- next;
- mes "[Historian Magnifier]";
- mes "This spot is connected to World Tree by the root. I think we can expect confrontations between the Sapha and Laphine here eventually, don't you think?";
- next;
- mes "[Historian Magnifier]";
- mes "As I expected, the cave is the entrance to go to one of Yggdrasil's roots...";
- next;
- mes "[Historian Magnifier]";
- mes "Did you find anything about the Sapha and Laphine?";
- next;
- mes "...";
- next;
- mes "... ...";
- next;
- mes "[Historian Magnifier]";
- mes "Both sides act ambiguously, so... I'm getting worried...";
- next;
- mes "[Historian Magnifier]";
- mes "The two tribes have some trouble amongst their top leaders. It's not anything official, but...";
- next;
- mes "[Historian Magnifier]";
- mes "Let's report to Commander Agip about the situation so far. Then, we wait on his decision.";
+ } else if (ins_nyd == 5 || ins_nyd == 51 || ins_nyd == 52) {
+ mes("Okay, let's try to contact them first, to be clear about any caves or treasures.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("For now, you try to contact the Sapha and Laphine tribes, and try to extract more information.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("I'll also keep searching here. If you find anything, come back and let me know.");
+ close();
+ } else if (ins_nyd == 61 || ins_nyd == 62) {
+ mes("Ah, you've come at a proper time. I found a curious thing while looking for reports from Arunafeltz.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Right now, we are standing on part of one of the roots of the World Tree Yggdrasil.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("This spot is connected to World Tree by the root. I think we can expect confrontations between the Sapha and Laphine here eventually, don't you think?");
+ next();
+ mes("[Historian Magnifier]");
+ mes("As I expected, the cave is the entrance to go to one of Yggdrasil's roots...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Did you find anything about the Sapha and Laphine?");
+ next();
+ mes("...");
+ next();
+ mes("... ...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Both sides act ambiguously, so... I'm getting worried...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("The two tribes have some trouble amongst their top leaders. It's not anything official, but...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Let's report to Commander Agip about the situation so far. Then, we wait on his decision.");
ins_nyd = 7;
- close;
- } else if ((ins_nyd == 7) || (ins_nyd == 8)) {
- mes "Report to Commander Hibba Agip about what we have discovered, since time is dependent on his decision.";
- close;
- } else if ((ins_nyd == 121) || (ins_nyd == 122) || (ins_nyd == 131) || (ins_nyd == 132) || (ins_nyd ==14)) {
- mes "So that's how it is... we were right about some parts of it... it's called the Guardian's Nest.";
- next;
- mes "[Historian Magnifier]";
- mes "We have gained a large amount of knowledge today, but...";
- next;
- mes "[Historian Magnifier]";
- mes "What we have figured out... how is it going to influence mankind? It's so unpredictable...";
- next;
- mes "[Historian Magnifier]";
- mes "This is only the beginning...we will be quite busy from now on.";
- next;
- mes "[Historian Magnifier]";
- mes "First, report to Commander Agip, then act according to the situation. Let me organize my research findings...";
- close;
+ close();
+ } else if (ins_nyd == 7 || ins_nyd == 8) {
+ mes("Report to Commander Hibba Agip about what we have discovered, since time is dependent on his decision.");
+ close();
+ } else if (ins_nyd == 121 || ins_nyd == 122 || ins_nyd == 131 || ins_nyd == 132 || ins_nyd == 14) {
+ mes("So that's how it is... we were right about some parts of it... it's called the Guardian's Nest.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("We have gained a large amount of knowledge today, but...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("What we have figured out... how is it going to influence mankind? It's so unpredictable...");
+ next();
+ mes("[Historian Magnifier]");
+ mes("This is only the beginning...we will be quite busy from now on.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("First, report to Commander Agip, then act according to the situation. Let me organize my research findings...");
+ close();
} else {
- mes "Sure, the mainland also has lots of interesting adventures... Hello, I am Magnifier, a historian dispatched from the Prontera royal court.";
- next;
- mes "[Historian Magnifier]";
- mes "Finding another line of work might make for a really worthy job, but only a historian gets to know the world over..";
- next;
- mes "[Historian Magnifier]";
- mes "How this world is organized... and the way of the future! With our studies of the past and present we can predict what is to come.";
- next;
- mes "[Historian Magnifier]";
- mes "We are expecting a lot from you, expert adventurer. So, if you find anything... just tell me.";
- close;
+ mes("Sure, the mainland also has lots of interesting adventures... Hello, I am Magnifier, a historian dispatched from the Prontera royal court.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("Finding another line of work might make for a really worthy job, but only a historian gets to know the world over..");
+ next();
+ mes("[Historian Magnifier]");
+ mes("How this world is organized... and the way of the future! With our studies of the past and present we can predict what is to come.");
+ next();
+ mes("[Historian Magnifier]");
+ mes("We are expecting a lot from you, expert adventurer. So, if you find anything... just tell me.");
+ close();
}
}
prt_in,171,94,3 script Assistant Naomi#edq 4_F_HUWOMAN,3,3,{
- mes "[Assistant Naomi]";
+ mes("[Assistant Naomi]");
.@name$ = strcharinfo(PC_NAME);
if (ins_nyd == 3) {
- mes "The doctor never ever tries to come back, and there're too many things to do... How can I do it all...";
- next;
- mes "[Assistant Naomi]";
- mes "Hey, you. Please move these books. Put them into shelf 3 row B.";
- next;
- mes "["+.@name$+"]";
- mes "Ah...um..I...am...";
- next;
- mes "[Assistant Naomi]";
- mes "Don't you see I am too busy? Don't hesitate. Just do it.";
- next;
- switch(select("Look busy, and take a step back.", "Help her just this once.")) {
+ mes("The doctor never ever tries to come back, and there're too many things to do... How can I do it all...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Hey, you. Please move these books. Put them into shelf 3 row B.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("Ah...um..I...am...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Don't you see I am too busy? Don't hesitate. Just do it.");
+ next();
+ switch (select("Look busy, and take a step back.", "Help her just this once.")) {
case 1:
- mes "[Assistant Naomi]";
- mes "Gosh! Where is-? Where did-? Ugh! It's so difficult!";
- close;
+ mes("[Assistant Naomi]");
+ mes("Gosh! Where is-? Where did-? Ugh! It's so difficult!");
+ close();
case 2:
- mes "[Assistant Naomi]";
- mes "Ah... if you're done moving those, then these should go in shelf 3 row B.";
- next;
- mes "["+.@name$+"]";
- mes "Ah...I...see...";
- next;
- mes "[Assistant Naomi]";
- mes "Now, I am almost done... Who are you? Are you a new assistant to Dr. Magnifier?";
- next;
- mes "["+.@name$+"]";
- mes "He asked me to bring some reports. Didn't he say anything?";
- next;
- mes "[Assistant Naomi]";
- mes "Hmm... I haven't seen him in over a year! What's he doing now?";
- next;
- mes "["+.@name$+"]";
- mes "He said that he would send a message to you... didn't you get it?";
- next;
- mes "[Assistant Naomi]";
- mes "Message? ...Let's see... I never expected him to write a message...";
- next;
- mes "[Assistant Naomi]";
- mes "I will check the mailbox, wait a minute. If you get bored read those books.";
- next;
- mes "...";
- next;
- mes "... ...";
- next;
- mes "It's too messy due to lots of stacked books and files. Dr. Magnifier looks like he has a ton of reports.";
- next;
- mes "["+.@name$+"]";
- mes "'Birth of the World', 'The Fiction of Odin's Myth', 'God's Battle Then After', 'Dreams of the Tribes'. There are a variety of books...";
- next;
- mes "...";
- next;
- mes "[Assistant Naomi]";
- mes "Oh, sorry I took so long. There was too much mail, so it took me a while to find stuff.";
- next;
- mes "[Assistant Naomi]";
- mes "He has sent me mail over 20 times. I did not know that...";
- next;
- mes "[Assistant Naomi]";
- mes "Ah, here's the message about you. He's said to share the information on research and reports.";
- next;
- mes "["+.@name$+"]";
- mes "What is the Doctor's area of expertise?";
- next;
- mes "[Assistant Naomi]";
- mes "Ever since 5 years ago, he has been curious about how the world started, and so he began his search for the God of creation.";
- next;
- mes "[Assistant Naomi]";
- mes "He researches combat between Odin and the Gods, and about the Gods' origins and life.";
- next;
- mes "["+.@name$+"]";
- mes "So, did he already know that the Rebirth of Satan Morocc has occured before?";
- next;
- mes "[Assistant Naomi]";
- mes "I can't be sure, but he thought someday it would occur. It broke out earlier than he expected though.";
- next;
- mes "["+.@name$+"]";
- mes "But Rune-Midgarts approved this research?";
- next;
- mes "[Assistant Naomi]";
- mes "Our academics are not a religion. And they too have curiosity about this world's history.";
- next;
- mes "[Assistant Naomi]";
- mes "The combat of Odin vs. the Gods, and the God's sons and their purpose... The Doctor has researched this his whole life.";
- next;
- mes "["+.@name$+"]";
- mes "But those reports haven't come out yet. Have they?";
- next;
- mes "[Assistant Naomi]";
- mes "That's why he sent you here. By the way, this isn't the first time I've heard this.";
- next;
- mes "[Assistant Naomi]";
- mes "After the establishment of the Rune-Midgarts Kingdom and Arunafeltz, the rumors have spread in secret about their tribes, myths, etc.";
- next;
- mes "[Assistant Naomi]";
- mes "Anyway, I should make sure that you read all these books, and I'll just keep doing my work.";
- next;
- mes "["+.@name$+"]";
- mes "Shouldn't I have filed the books?";
- next;
- mes "[Assistant Naomi]";
- mes "The Doctor said he will pick up the books through another person. Besides, don't you need the basic information on what to do?";
- next;
- mes "[Assistant Naomi]";
- mes "Before you go back to the Doctor, you had better read these books. So, I will go back to work.";
+ mes("[Assistant Naomi]");
+ mes("Ah... if you're done moving those, then these should go in shelf 3 row B.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("Ah...I...see...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Now, I am almost done... Who are you? Are you a new assistant to Dr. Magnifier?");
+ next();
+ mesf("[%s]", .@name$);
+ mes("He asked me to bring some reports. Didn't he say anything?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Hmm... I haven't seen him in over a year! What's he doing now?");
+ next();
+ mesf("[%s]", .@name$);
+ mes("He said that he would send a message to you... didn't you get it?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Message? ...Let's see... I never expected him to write a message...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("I will check the mailbox, wait a minute. If you get bored read those books.");
+ next();
+ mes("...");
+ next();
+ mes("... ...");
+ next();
+ mes("It's too messy due to lots of stacked books and files. Dr. Magnifier looks like he has a ton of reports.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("'Birth of the World', 'The Fiction of Odin's Myth', 'God's Battle Then After', 'Dreams of the Tribes'. There are a variety of books...");
+ next();
+ mes("...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Oh, sorry I took so long. There was too much mail, so it took me a while to find stuff.");
+ next();
+ mes("[Assistant Naomi]");
+ mes("He has sent me mail over 20 times. I did not know that...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Ah, here's the message about you. He's said to share the information on research and reports.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("What is the Doctor's area of expertise?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Ever since 5 years ago, he has been curious about how the world started, and so he began his search for the God of creation.");
+ next();
+ mes("[Assistant Naomi]");
+ mes("He researches combat between Odin and the Gods, and about the Gods' origins and life.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("So, did he already know that the Rebirth of Satan Morocc has occured before?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("I can't be sure, but he thought someday it would occur. It broke out earlier than he expected though.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("But Rune-Midgarts approved this research?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Our academics are not a religion. And they too have curiosity about this world's history.");
+ next();
+ mes("[Assistant Naomi]");
+ mes("The combat of Odin vs. the Gods, and the God's sons and their purpose... The Doctor has researched this his whole life.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("But those reports haven't come out yet. Have they?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("That's why he sent you here. By the way, this isn't the first time I've heard this.");
+ next();
+ mes("[Assistant Naomi]");
+ mes("After the establishment of the Rune-Midgarts Kingdom and Arunafeltz, the rumors have spread in secret about their tribes, myths, etc.");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Anyway, I should make sure that you read all these books, and I'll just keep doing my work.");
+ next();
+ mesf("[%s]", .@name$);
+ mes("Shouldn't I have filed the books?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("The Doctor said he will pick up the books through another person. Besides, don't you need the basic information on what to do?");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Before you go back to the Doctor, you had better read these books. So, I will go back to work.");
ins_nyd = 4;
- close;
+ close();
}
} else if (ins_nyd == 4) {
- mes "Browse around, to take a look at the books.";
- next;
- switch(select("Discovery of Heterogeneity", "Report of Indigenous Tribes")) {
+ mes("Browse around, to take a look at the books.");
+ next();
+ switch (select("Discovery of Heterogeneity", "Report of Indigenous Tribes")) {
case 1:
- mes "Satan Morocc has known that he didn't resurrect normally or by himself.";
- next;
- mes "Continuously, adventurers from Rune-Midgarts have attacked him and he is slowly losing his power. He would need more time to resurrect completely.";
- next;
- mes "Satan Morroc stopped to destroy the city of Morroc, turning it into a ruined desert, then started to rip the world apart.";
- next;
- mes "Satan Morroc was worried about those who would give chase, so he created Morocc clones to keep watch behind him.";
- next;
- mes "Modeled after Morocc, their appearance made it difficult to go around the time-space gap.";
- next;
- mes "Still the adventurers gave chase. They came from all over the world, trying to approach the Dimensional Gorge.";
- next;
- mes "The reports of these adventurers have been sent to representatives of all kingdoms, and an expedition team has been created to find out more information.";
- next;
- mes "The scientists of Schwartzwalt created a combination metal, using fragments of metals found in the dimensional gorge.";
- next;
- mes "The Schwaltzvalt Republic requested approval to find the source of the new metal, and since Rune-Midgart couldn't complete the test themselves, they finally accepted.";
- next;
- mes "They associated together to gather volunteers. The Assassin Guild was the first to volunteer.";
- next;
- mes "The Assassins have a terrible past with Satan Morroc, so they gathered 18 members to chase him down.";
- next;
- mes "About 3 hours later, all 18 members returned without any problem, and each man and woman shared the information that they had collected.";
- next;
- mes "They had discovered another world with a definitively different nature and environment. And indeed, people could also live there.";
- next;
- mes "The most surprising thing is the flow of time. The 18 assassins had stayed for about 2 weeks in there, yet they returned within 3 hours after departing.";
- next;
- mes "The last thing to be tested... was to send adventurers who volunteered to explore the new world.";
- next;
- mes "There was a flood of adventurer applications. Lots of volunteers disappeared over the dimensional gorge, and they brought back new data.";
- next;
- mes "The new world could support 3 completely different eco-systems dependant upon the race of people that lived there.";
- next;
- mes "The heterogenous phenomenon needed to be studied thoroughly and carefully in order to under the relationship between thair world and ours.";
- next;
- mes "Just when it was expected to be impossible to travel into a different world, the first page of a new chapter was opened.";
- close;
+ mes("Satan Morocc has known that he didn't resurrect normally or by himself.");
+ next();
+ mes("Continuously, adventurers from Rune-Midgarts have attacked him and he is slowly losing his power. He would need more time to resurrect completely.");
+ next();
+ mes("Satan Morroc stopped to destroy the city of Morroc, turning it into a ruined desert, then started to rip the world apart.");
+ next();
+ mes("Satan Morroc was worried about those who would give chase, so he created Morocc clones to keep watch behind him.");
+ next();
+ mes("Modeled after Morocc, their appearance made it difficult to go around the time-space gap.");
+ next();
+ mes("Still the adventurers gave chase. They came from all over the world, trying to approach the Dimensional Gorge.");
+ next();
+ mes("The reports of these adventurers have been sent to representatives of all kingdoms, and an expedition team has been created to find out more information.");
+ next();
+ mes("The scientists of Schwartzwalt created a combination metal, using fragments of metals found in the dimensional gorge.");
+ next();
+ mes("The Schwaltzvalt Republic requested approval to find the source of the new metal, and since Rune-Midgart couldn't complete the test themselves, they finally accepted.");
+ next();
+ mes("They associated together to gather volunteers. The Assassin Guild was the first to volunteer.");
+ next();
+ mes("The Assassins have a terrible past with Satan Morroc, so they gathered 18 members to chase him down.");
+ next();
+ mes("About 3 hours later, all 18 members returned without any problem, and each man and woman shared the information that they had collected.");
+ next();
+ mes("They had discovered another world with a definitively different nature and environment. And indeed, people could also live there.");
+ next();
+ mes("The most surprising thing is the flow of time. The 18 assassins had stayed for about 2 weeks in there, yet they returned within 3 hours after departing.");
+ next();
+ mes("The last thing to be tested... was to send adventurers who volunteered to explore the new world.");
+ next();
+ mes("There was a flood of adventurer applications. Lots of volunteers disappeared over the dimensional gorge, and they brought back new data.");
+ next();
+ mes("The new world could support 3 completely different eco-systems dependant upon the race of people that lived there.");
+ next();
+ mes("The heterogenous phenomenon needed to be studied thoroughly and carefully in order to under the relationship between thair world and ours.");
+ next();
+ mes("Just when it was expected to be impossible to travel into a different world, the first page of a new chapter was opened.");
+ close();
case 2:
- mes "Long ago, there wasn't a sun, moon, or stars; just empty earth... and Ymir was born. Then, by making sons, Ymir grew.";
- next;
- mes "But, his sons grew as well and he was killed by Odin, Vili, and Ve; 3 brothers, Gods, that attacked from different sides.";
- next;
- mes "At that time of Ymir's fall his blood flooded the world... killing all in it's path.";
- next;
- mes "Only Hvergelmir of the Sapha tribe escaped from this flooding of blood. And he swore vengeance in Jotunheim, which is covered with foggy snow.";
- next;
- mes "Currently, one of the Sapha tribe has been discovered from beyond the Dimensional Gorge.";
- next;
- mes "Other than the Sapha tribe, there was another tribe beyond the time-space gap, known as the Laphine.";
- next;
- mes "The Laphine tribes gathered as well for an expedition to explore the time-space gap and figure out the World Tree's strange symptoms and perharps a cure method.";
- next;
- mes "The Laphine tribe was charged with the management of Yggdrasil, to establish their lands close to Asgard, and to protect the balance of Yggdrasil's magic power.";
- next;
- mes "The Laphine tribe has never contacted anyone outside of Asgard. But since they found that Yggdrasil's power if weakening...";
- next;
- mes "They have declared they will attend to the high courts for the first time in 1000 human years, since the end of the battles of Gods vs. Magicians.";
- close;
+ mes("Long ago, there wasn't a sun, moon, or stars; just empty earth... and Ymir was born. Then, by making sons, Ymir grew.");
+ next();
+ mes("But, his sons grew as well and he was killed by Odin, Vili, and Ve; 3 brothers, Gods, that attacked from different sides.");
+ next();
+ mes("At that time of Ymir's fall his blood flooded the world... killing all in it's path.");
+ next();
+ mes("Only Hvergelmir of the Sapha tribe escaped from this flooding of blood. And he swore vengeance in Jotunheim, which is covered with foggy snow.");
+ next();
+ mes("Currently, one of the Sapha tribe has been discovered from beyond the Dimensional Gorge.");
+ next();
+ mes("Other than the Sapha tribe, there was another tribe beyond the time-space gap, known as the Laphine.");
+ next();
+ mes("The Laphine tribes gathered as well for an expedition to explore the time-space gap and figure out the World Tree's strange symptoms and perharps a cure method.");
+ next();
+ mes("The Laphine tribe was charged with the management of Yggdrasil, to establish their lands close to Asgard, and to protect the balance of Yggdrasil's magic power.");
+ next();
+ mes("The Laphine tribe has never contacted anyone outside of Asgard. But since they found that Yggdrasil's power if weakening...");
+ next();
+ mes("They have declared they will attend to the high courts for the first time in 1000 human years, since the end of the battles of Gods vs. Magicians.");
+ close();
}
} else {
- mes "The doctor never ever tries to come back, and there're too many things to do... How can I do it all...";
- next;
- mes "[Assistant Naomi]";
- mes "Don't you see that I'm too busy? Don't dawdle, just go!";
- close;
+ mes("The doctor never ever tries to come back, and there're too many things to do... How can I do it all...");
+ next();
+ mes("[Assistant Naomi]");
+ mes("Don't you see that I'm too busy? Don't dawdle, just go!");
+ close();
}
}
splendide,198,178,3 script Grumbling Soldier#edq 4_M_FAIRYSOLDIER,3,3,{
- mes "[Grumbling Soldier]";
- if (isequipped(2782) == 1) {
- mes "Nowadays, the world has turned unstable. I can't even fly comfortably anymore.";
- next;
+ mes("[Grumbling Soldier]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
+ mes("Nowadays, the world has turned unstable. I can't even fly comfortably anymore.");
+ next();
if (ins_nyd == 5) {
- switch(select("What's with the cave up north?", "Who are the Sapha tribesmen?", "Hmm. We can talk later.")) {
+ switch (select("What's with the cave up north?", "Who are the Sapha tribesmen?", "Hmm. We can talk later.")) {
case 1:
- mes "[Grumbling Soldier]";
- mes "What? If you wander around there... you might return with injuries.";
- next;
- mes "[Grumbling Soldier]";
- mes "I don't know exactly how to explain it, but it's like it has a bad mood. There are lots of terrible monsters there.";
- next;
- mes "[Grumbling Soldier]";
- mes "They whisper to each other, so... something is there... But I don't care...";
- next;
- mes "[Grumbling Soldier]";
- mes "Might be... those Sapha tribesmen have dug in the cave before... They do have a special talent for digging.";
+ mes("[Grumbling Soldier]");
+ mes("What? If you wander around there... you might return with injuries.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("I don't know exactly how to explain it, but it's like it has a bad mood. There are lots of terrible monsters there.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("They whisper to each other, so... something is there... But I don't care...");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("Might be... those Sapha tribesmen have dug in the cave before... They do have a special talent for digging.");
ins_nyd = 51;
- close;
+ close();
case 2:
- mes "[Grumbling Soldier]";
- mes "Oh! It is because of them that we have been living here, a lowdown and dirty city, for over one hundred years.";
- next;
- mes "[Grumbling Soldier]";
- mes "They don't care if there's trouble with the Yggdrasil.";
- next;
- mes "[Grumbling Soldier]";
- mes "They are surely full of bad ideas, so... they have destroyed the Yggdrasil's root.";
- next;
- mes "[Grumbling Soldier]";
- mes "We are here to make sure that the Sapha don't make things worse.";
- close;
+ mes("[Grumbling Soldier]");
+ mes("Oh! It is because of them that we have been living here, a lowdown and dirty city, for over one hundred years.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("They don't care if there's trouble with the Yggdrasil.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("They are surely full of bad ideas, so... they have destroyed the Yggdrasil's root.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("We are here to make sure that the Sapha don't make things worse.");
+ close();
case 3:
- close;
+ close();
}
} else {
- mes "[Grumbling Soldier]";
- mes "Nowadays, the world has turned unstable. I can't even fly comfortably anymore.";
- next;
- mes "[Grumbling Soldier]";
- mes "What can you expect when Manuk giants start to dig into the world to destroy the Yggdrasil...";
- next;
- mes "[Grumbling Soldier]";
- mes "And the worst thing is... that strange things are strutting along the streets of the towns...";
- next;
- mes "[Grumbling Soldier]";
- mes "Yes, you... What do you think about the way the government is handling this...?";
- next;
- mes "[Grumbling Soldier]";
- mes "Although they ignore your track record, still, one should be careful...";
- close;
+ mes("[Grumbling Soldier]");
+ mes("Nowadays, the world has turned unstable. I can't even fly comfortably anymore.");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("What can you expect when Manuk giants start to dig into the world to destroy the Yggdrasil...");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("And the worst thing is... that strange things are strutting along the streets of the towns...");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("Yes, you... What do you think about the way the government is handling this...?");
+ next();
+ mes("[Grumbling Soldier]");
+ mes("Although they ignore your track record, still, one should be careful...");
+ close();
}
} else {
- mes "SeLarsmar Di marThusVil U SeMushVohl";
- close;
+ mes("SeLarsmar Di marThusVil U SeMushVohl");
+ close();
}
}
splendide,240,164,3 script Sighing Soldier#edq 4_M_FAIRYSOLDIER2,3,3,{
- mes "[Sighing Soldier]";
- if (isequipped(2782) == 1) {
- mes "When will we be finished with this combat with the Sapha? Ugghhhh...";
- next;
+ mes("[Sighing Soldier]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
+ mes("When will we be finished with this combat with the Sapha? Ugghhhh...");
+ next();
if (ins_nyd == 5) {
- switch(select("What's with the cave up north?", "Who are the Sapha tribesmen?", "Hmm. We can talk later.")) {
+ switch (select("What's with the cave up north?", "Who are the Sapha tribesmen?", "Hmm. We can talk later.")) {
case 1:
- mes "[Sighing Soldier]";
- mes "Well... I'm not sure, but we have avoided going to that area.";
- next;
- mes "[Sighing Soldier]";
- mes "Sometimes, the dispatched researchers hang around here... I feel bad that there's nothing to see... without any reason...";
- next;
- mes "[Sighing Soldier]";
- mes "But the command officers make sure that there's something hidden in there.";
- next;
- mes "[Sighing Soldier]";
- mes "We don't know if the monsters there are strong, so we never checked it out. But on a personal level, nobody wants to go there...";
+ mes("[Sighing Soldier]");
+ mes("Well... I'm not sure, but we have avoided going to that area.");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Sometimes, the dispatched researchers hang around here... I feel bad that there's nothing to see... without any reason...");
+ next();
+ mes("[Sighing Soldier]");
+ mes("But the command officers make sure that there's something hidden in there.");
+ next();
+ mes("[Sighing Soldier]");
+ mes("We don't know if the monsters there are strong, so we never checked it out. But on a personal level, nobody wants to go there...");
ins_nyd = 51;
- close;
+ close();
case 2:
- mes "[Sighing Soldier]";
- mes "I don't know what others think about it... but we've had some trouble with our attitude against the Sapha tribes.";
- next;
- mes "[Sighing Soldier]";
- mes "We didn't try to solve the problems with talk. We attacked them first.";
- next;
- mes "[Sighing Soldier]";
- mes "Maybe... our command officers don't want to accept other species different than us...";
- next;
- mes "[Sighing Soldier]";
- mes "Don't misunderstand... Recently, we have talked about your particular species and our commanders feel grateful to you.";
- next;
- mes "[Sighing Soldier]";
- mes "Anyway... I'm just exhausted during this useless and nerve-wracking situation... Sigh.";
- close;
+ mes("[Sighing Soldier]");
+ mes("I don't know what others think about it... but we've had some trouble with our attitude against the Sapha tribes.");
+ next();
+ mes("[Sighing Soldier]");
+ mes("We didn't try to solve the problems with talk. We attacked them first.");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Maybe... our command officers don't want to accept other species different than us...");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Don't misunderstand... Recently, we have talked about your particular species and our commanders feel grateful to you.");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Anyway... I'm just exhausted during this useless and nerve-wracking situation... Sigh.");
+ close();
case 3:
- close;
+ close();
}
} else {
- mes "[Sighing Soldier]";
- mes "When will we be finished with this combat with the Sapha? Ugghhhh...";
- next;
- mes "[Sighing Soldier]";
- mes "Frankly, I don't think of you or any Sapha is our enemy. Sigh...";
- next;
- mes "[Sighing Soldier]";
- mes "Is there no way to resolve this by communicating? There's no meaning in useless combat! Geez.";
- close;
+ mes("[Sighing Soldier]");
+ mes("When will we be finished with this combat with the Sapha? Ugghhhh...");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Frankly, I don't think of you or any Sapha is our enemy. Sigh...");
+ next();
+ mes("[Sighing Soldier]");
+ mes("Is there no way to resolve this by communicating? There's no meaning in useless combat! Geez.");
+ close();
}
} else {
- mes "VohlLarsmar Ha DielCyatas";
- close;
+ mes("VohlLarsmar Ha DielCyatas");
+ close();
}
}
spl_in01,109,60,3 script Commander Lebiordirr#edq 4_F_FAIRY,3,3,{
- mes "[Commander Lebiordirr]";
- if (isequipped(2782) == 1) {
+ mes("[Commander Lebiordirr]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
if (ins_nyd == 51) {
- mes "Are you...? Are you the one collecting information from my soldiers...?";
- next;
- mes "[Commander Lebiordirr]";
- mes "You should be cautious. Our tribe has respected the existence of you humans but...";
- next;
- mes "[Commander Lebiordirr]";
- mes "I've taken a great risk in allowing you in here. So be wary.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Don't attract too much attention because that would make your people look bad.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Now, we don't need to talk much about this, so just go back where you came from.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Unless you have any messages for me...? Your face says you do...";
- next;
- if(select("No. Nothing. We can talk later.", "I intend to stay. For good reasons.")==1) close;
- mes "[Splendide Guard]";
- mes "Sir, I can drag this pest out right now.";
- next;
- mes "[Commander Lebiordirr]";
- mes "No. Let's hear an explanation. Good? Now, if you want...";
- next;
- mes "[Commander Lebiordirr]";
- mes "I have known that, recently, time has broken... so, you're here exploring for a solution, no?";
- next;
- mes "[Commander Lebiordirr]";
- mes "Our tribe has respected you, so just forget about the searching and exploring around here.";
- next;
- mes "[Commander Lebiordirr]";
- mes "I heard that you are to search for any treasure in the closed cave to the north.";
- next;
- mes "[Commander Lebiordirr]";
- mes "That place is banned by order of the Laphine tribe. So, people can't just go there without permission.";
- next;
- mes "[Commander Lebiordirr]";
- mes "If you can't follow this rule, I will stop associating with you and ban all of your people from here.";
- next;
- mes "[Commander Lebiordirr]";
- mes "We still have an unstable relationship with the Sapha, we usually don't worry about outsiders.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Now, if you understand this, inform your friends.";
+ mes("Are you...? Are you the one collecting information from my soldiers...?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("You should be cautious. Our tribe has respected the existence of you humans but...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("I've taken a great risk in allowing you in here. So be wary.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Don't attract too much attention because that would make your people look bad.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Now, we don't need to talk much about this, so just go back where you came from.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Unless you have any messages for me...? Your face says you do...");
+ next();
+ if (select("No. Nothing. We can talk later.", "I intend to stay. For good reasons.") == 1)
+ close();
+ mes("[Splendide Guard]");
+ mes("Sir, I can drag this pest out right now.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("No. Let's hear an explanation. Good? Now, if you want...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("I have known that, recently, time has broken... so, you're here exploring for a solution, no?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Our tribe has respected you, so just forget about the searching and exploring around here.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("I heard that you are to search for any treasure in the closed cave to the north.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("That place is banned by order of the Laphine tribe. So, people can't just go there without permission.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("If you can't follow this rule, I will stop associating with you and ban all of your people from here.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("We still have an unstable relationship with the Sapha, we usually don't worry about outsiders.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Now, if you understand this, inform your friends.");
ins_nyd = 61;
- close;
+ close();
} else if (ins_nyd == 61) {
- mes "If you can't follow this rule, I will stop associating with you and ban all of your people from here.";
- next;
- mes "[Commander Lebiordirr]";
- mes "We still have an unstable relationship with the Sapha, we usually don't worry about outsiders.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Now, if you understand this, inform your friends.";
- close;
+ mes("If you can't follow this rule, I will stop associating with you and ban all of your people from here.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("We still have an unstable relationship with the Sapha, we usually don't worry about outsiders.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Now, if you understand this, inform your friends.");
+ close();
} else if (ins_nyd == 81) {
- mes "Why have you come back, outsider?";
- next;
+ mes("Why have you come back, outsider?");
+ next();
select("To ask the Laphines about exploring...");
- mes "[Commander Lebiordirr]";
- mes "Exploring what? Choose your words wisely?";
- next;
- mes "[Commander Lebiordirr]";
- mes "Do we not understand each other? What do you want?";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("Exploring what? Choose your words wisely?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Do we not understand each other? What do you want?");
+ next();
select("I must explore the cave.");
- mes "[Commander Lebiordirr]";
- mes "That means... that you are ignoring my warning? Is this your decision or are you just following orders?";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("That means... that you are ignoring my warning? Is this your decision or are you just following orders?");
+ next();
select("I'm just following orders");
- mes "[Commander Lebiordirr]";
- mes "Are you trying to insult me on purpose, outsider?";
- next;
- mes "[Commander Lebiordirr]";
- mes "Why do you want to explore? It better be a very good reason.";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("Are you trying to insult me on purpose, outsider?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Why do you want to explore? It better be a very good reason.");
+ next();
select("It's about Dr. Magnifier's report...");
- mes "[Commander Lebiordirr]";
- mes "So... What do I care about an outsider's report?";
- next;
- mes "[Commander Lebiordirr]";
- mes "To protect the Yggdrasil! That's the Laphine's fate. Can you say that about yourself?";
- next;
- mes "[Commander Lebiordirr]";
- mes "Do you have any proof of your birth with Odin and Yggdrasil's blessings?";
- next;
- mes "[Commander Lebiordirr]";
- mes "I shouldn't say anymore. Please don't take this as being rude but, please go now!";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("So... What do I care about an outsider's report?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("To protect the Yggdrasil! That's the Laphine's fate. Can you say that about yourself?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Do you have any proof of your birth with Odin and Yggdrasil's blessings?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("I shouldn't say anymore. Please don't take this as being rude but, please go now!");
+ next();
select("Then I'll ask the Sapha for help.");
- mes "[Commander Lebiordirr]";
- mes "What are you talking about, outsider?";
- next;
- mes "[Splendide Guard]";
- mes "Sir, I can get rid of this rude outsider if you wish?";
- next;
- mes "[Commander Lebiordirr]";
- mes "No, wait... The Sapha tribesmen know the meaning of that place? Did you ask to associate with them?";
- next;
- mes "[Commander Lebiordirr]";
- mes "Ah... How tricky... Are you testing us?";
- next;
- mes "[Splendide Guard]";
- mes "Calm down, sir. I will throw this outsider into prison.";
- next;
- mes "[Commander Lebiordirr]";
- mes "No... No, wait. Ok, I will accept it. I can accept your admission into the Holy Sekos.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Okay. If you are a servant of the Yggdrasil as you claim to be, I will allow you admission. But I am not responsible for your actions.";
- next;
- mes "[Commander Lebiordirr]";
- mes "And make sure that if you find anything out of the ordinary in there, that you share it with us!";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("What are you talking about, outsider?");
+ next();
+ mes("[Splendide Guard]");
+ mes("Sir, I can get rid of this rude outsider if you wish?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("No, wait... The Sapha tribesmen know the meaning of that place? Did you ask to associate with them?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Ah... How tricky... Are you testing us?");
+ next();
+ mes("[Splendide Guard]");
+ mes("Calm down, sir. I will throw this outsider into prison.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("No... No, wait. Ok, I will accept it. I can accept your admission into the Holy Sekos.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Okay. If you are a servant of the Yggdrasil as you claim to be, I will allow you admission. But I am not responsible for your actions.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("And make sure that if you find anything out of the ordinary in there, that you share it with us!");
+ next();
select("But of course!");
- mes "[Commander Lebiordirr]";
- mes "So... since I have agreed to allow your exploration... Arioss, help them, and take the results.";
- next;
- mes "[Aide Arioss]";
- mes "Sir... are you sure? This is an invasion of the Holy Sekos...";
- next;
- mes "[Commander Lebiordirr]";
- mes "Invasion is a harsh word. I am allowing them entrance. Better them than a dirty giant. It might just save our lives...";
- next;
- mes "[Commander Lebiordirr]";
- mes "Here, outsider. Arioss will explain the situation with the giants. Talk with him...";
+ mes("[Commander Lebiordirr]");
+ mes("So... since I have agreed to allow your exploration... Arioss, help them, and take the results.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Sir... are you sure? This is an invasion of the Holy Sekos...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Invasion is a harsh word. I am allowing them entrance. Better them than a dirty giant. It might just save our lives...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Here, outsider. Arioss will explain the situation with the giants. Talk with him...");
ins_nyd = 91;
- close;
- } else if ((ins_nyd == 91) || (ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
- mes "Outsider. Arioss here will explain the situation with the giants, talk with him...";
- close;
- } else if ((ins_nyd == 72) || (ins_nyd == 82) || (ins_nyd == 92) || (ins_nyd == 102) || (ins_nyd == 112) || (ins_nyd == 122) || (ins_nyd == 132)) {
- mes "Welcome to the Laphine camp in Splendide, outsider... I am Lebiordirr. I am in charge here.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Be cautious of your actions. We already have lots of problems with the Sapha tribe as it is.";
- next;
- mes "[Commander Lebiordirr]";
- mes "If you are cautious with your actions, I won't place any harm on you. Fare well.";
- close;
+ close();
+ } else if (ins_nyd == 91 || ins_nyd == 101 || ins_nyd == 111 || ins_nyd == 200 || ins_nyd == 201 || ins_nyd == 202) {
+ mes("Outsider. Arioss here will explain the situation with the giants, talk with him...");
+ close();
+ } else if (ins_nyd == 72 || ins_nyd == 82 || ins_nyd == 92 || ins_nyd == 102 || ins_nyd == 112 || ins_nyd == 122 || ins_nyd == 132) {
+ mes("Welcome to the Laphine camp in Splendide, outsider... I am Lebiordirr. I am in charge here.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Be cautious of your actions. We already have lots of problems with the Sapha tribe as it is.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("If you are cautious with your actions, I won't place any harm on you. Fare well.");
+ close();
} else if (ins_nyd == 203) {
- mes "I was waiting for you. You came back safe, that's good news. Did you find anything?";
- next;
+ mes("I was waiting for you. You came back safe, that's good news. Did you find anything?");
+ next();
select("Explain about the guardian Nidhoggur's leave.");
- mes "[Commander Lebiordirr]";
- mes "What? The Guardian is not in his nest...?";
- next;
- mes "[Commander Lebiordirr]";
- mes "And because of his disppearance, the Guardian's Shadow is currently destorying the roots of the World Tree...?";
- next;
- mes "[Commander Lebiordirr]";
- mes "That's unbelievable. You must be insulting the Guardian's and our pride. I did not provide you with our help for that.";
- next;
- mes "[Aide Arioss]";
- mes "It's not like that, Commander, they speak the truth.";
- next;
- mes "[Commander Lebiordirr]";
- mes "What are you saying? Arioss, do not forget your place as the Guardian's priest.";
- next;
- mes "[Aide Arioss]";
- mes "Even though I have not seen it with my own eyes, this does explain why we lost communication with the great World Tree Yggdrasil.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Do not speak of His Highness, the World Tree Yggdrasil's name so lightly.";
- next;
+ mes("[Commander Lebiordirr]");
+ mes("What? The Guardian is not in his nest...?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("And because of his disppearance, the Guardian's Shadow is currently destorying the roots of the World Tree...?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("That's unbelievable. You must be insulting the Guardian's and our pride. I did not provide you with our help for that.");
+ next();
+ mes("[Aide Arioss]");
+ mes("It's not like that, Commander, they speak the truth.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("What are you saying? Arioss, do not forget your place as the Guardian's priest.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Even though I have not seen it with my own eyes, this does explain why we lost communication with the great World Tree Yggdrasil.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Do not speak of His Highness, the World Tree Yggdrasil's name so lightly.");
+ next();
select("Pass along World Tree Yggdrasil's words.");
- mes "[Commander Lebiordirr]";
- mes "His Highness, the World Tree Yggdrasil, said that?";
- next;
- mes "[Commander Lebiordirr]";
- mes "The reason behind all of this... is not because of the Sapha tribe, but because of the sudden leave of the Guardian? And the Guaridan has given up on his identity?";
- next;
- mes "[Commander Lebiordirr]";
- mes "This must be reported... reported to the High Priest of Alfheim... Unbelievable.";
- next;
- mes "[Aide Arioss]";
- mes "Commander... do we need to alert the rest of the tribe...?";
- next;
- mes "[Commander Lebiordirr]";
- mes "You don't need to worry about this, Arioss. As commander, I will handle it. You just pretend nothing happened...";
- next;
- mes "[Commander Lebiordirr]";
- mes "Strange one, thank you for your cooperation in such situations... Please forget what has happened today...";
- next;
- mes "[Commander Lebiordirr]";
- mes "Arioss, please compensate this strange one for the help. I need to go rest...";
- next;
- mes "[Aide Arioss]";
- mes "Commander...";
+ mes("[Commander Lebiordirr]");
+ mes("His Highness, the World Tree Yggdrasil, said that?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("The reason behind all of this... is not because of the Sapha tribe, but because of the sudden leave of the Guardian? And the Guaridan has given up on his identity?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("This must be reported... reported to the High Priest of Alfheim... Unbelievable.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Commander... do we need to alert the rest of the tribe...?");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("You don't need to worry about this, Arioss. As commander, I will handle it. You just pretend nothing happened...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Strange one, thank you for your cooperation in such situations... Please forget what has happened today...");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Arioss, please compensate this strange one for the help. I need to go rest...");
+ next();
+ mes("[Aide Arioss]");
+ mes("Commander...");
ins_nyd = 121;
- close;
- } else if ((ins_nyd == 121) || (ins_nyd == 131)) {
- mes "Strange one, thank you for your cooperation in such situations... Please forget what has happened today...";
- close;
+ close();
+ } else if (ins_nyd == 121 || ins_nyd == 131) {
+ mes("Strange one, thank you for your cooperation in such situations... Please forget what has happened today...");
+ close();
} else {
- mes "Welcome to the Laphine camp in Splendide, outsider... I am Lebiordirr. I am in charge here.";
- next;
- mes "[Commander Lebiordirr]";
- mes "Be cautious of your actions. We already have lots of problems with the Sapha tribe as it is.";
- next;
- mes "[Commander Lebiordirr]";
- mes "If you are cautious with your actions, I won't place any harm on you. Fare well.";
- close;
+ mes("Welcome to the Laphine camp in Splendide, outsider... I am Lebiordirr. I am in charge here.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("Be cautious of your actions. We already have lots of problems with the Sapha tribe as it is.");
+ next();
+ mes("[Commander Lebiordirr]");
+ mes("If you are cautious with your actions, I won't place any harm on you. Fare well.");
+ close();
}
} else {
- mes "ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee...";
- close;
+ mes("ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee...");
+ close();
}
}
spl_in01,104,56,3 script Aide Arioss#edq 4_F_FAIRYKID2,3,3,{
- mes "[Aide Arioss]";
- if (isequipped(2782) == 1) {
+ mes("[Aide Arioss]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
if (ins_nyd == 91) {
- mes "Sigh, since it's Commander Lebiordirr's wish, I will cooperate with you...";
- next;
- mes "[Aide Arioss]";
- mes "You want to go there to find out exactly what that place is?";
- next;
- mes "[Aide Arioss]";
- mes "Alright...it's as you have assumed, a place connecting to the World Tree. It's also the Guardian's Nest.";
- next;
+ mes("Sigh, since it's Commander Lebiordirr's wish, I will cooperate with you...");
+ next();
+ mes("[Aide Arioss]");
+ mes("You want to go there to find out exactly what that place is?");
+ next();
+ mes("[Aide Arioss]");
+ mes("Alright...it's as you have assumed, a place connecting to the World Tree. It's also the Guardian's Nest.");
+ next();
select("Guardian's Nest?");
- mes "[Aide Arioss]";
- mes "Yes, that's the nest of Nidhoggur, the Guardian of the World Tree...";
- next;
- mes "[Aide Arioss]";
- mes "Only a marked guardian's servant from the Laphine tribe is allowed to enter.";
- next;
- mes "[Aide Arioss]";
- mes "That place was initially closed off from the public, but then the giants of the Sapha tribe turned things around...";
- next;
- mes "[Aide Arioss]";
- mes "To obtain more minerals, they started to dig with madness.";
- next;
- mes "[Aide Arioss]";
- mes "In the end, they have harmed a part of the World Tree's root that lies very close to their mine, and thus, the World Tree became very ill.";
- next;
- mes "[Aide Arioss]";
- mes "After we have arrived here knowing the facts, the World Tree was already in a very bad state due to the many factories built by the Sapha tribe.";
- next;
- mes "[Aide Arioss]";
- mes "Even though, for a long time, we have been attacking the Sapha tribe, trying to force them to leave, they are not so easily defeated, leading to this stalemate.";
- next;
- mes "[Aide Arioss]";
- mes "During this time, your people have travelled through the space-time gap to this land.";
- next;
- mes "[Aide Arioss]";
- mes "Because of those many unexpected reasons, the Guardian's nest, which was meant to stay hidden deep underground, has been discovered by your race...";
- next;
- mes "[Aide Arioss]";
- mes "Now you understand how serious this situation is. Because of the Sapha tribe, we are no longer able to approach the Guardian, and seek his teachings of wisdom.";
- next;
- mes "[Aide Arioss]";
- mes "It's very insulting to our pride... but if you can help us enter that place again, and speak to the Guardian, maybe we can find a solution...";
- next;
- mes "[Aide Arioss]";
- mes "Then we'll leave it to you. As for your request, I will do my best to cooperate.";
- next;
- mes "[Aide Arioss]";
- mes "I have already told you what you wanted to know... If you need anything else, just let me know.";
+ mes("[Aide Arioss]");
+ mes("Yes, that's the nest of Nidhoggur, the Guardian of the World Tree...");
+ next();
+ mes("[Aide Arioss]");
+ mes("Only a marked guardian's servant from the Laphine tribe is allowed to enter.");
+ next();
+ mes("[Aide Arioss]");
+ mes("That place was initially closed off from the public, but then the giants of the Sapha tribe turned things around...");
+ next();
+ mes("[Aide Arioss]");
+ mes("To obtain more minerals, they started to dig with madness.");
+ next();
+ mes("[Aide Arioss]");
+ mes("In the end, they have harmed a part of the World Tree's root that lies very close to their mine, and thus, the World Tree became very ill.");
+ next();
+ mes("[Aide Arioss]");
+ mes("After we have arrived here knowing the facts, the World Tree was already in a very bad state due to the many factories built by the Sapha tribe.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Even though, for a long time, we have been attacking the Sapha tribe, trying to force them to leave, they are not so easily defeated, leading to this stalemate.");
+ next();
+ mes("[Aide Arioss]");
+ mes("During this time, your people have travelled through the space-time gap to this land.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Because of those many unexpected reasons, the Guardian's nest, which was meant to stay hidden deep underground, has been discovered by your race...");
+ next();
+ mes("[Aide Arioss]");
+ mes("Now you understand how serious this situation is. Because of the Sapha tribe, we are no longer able to approach the Guardian, and seek his teachings of wisdom.");
+ next();
+ mes("[Aide Arioss]");
+ mes("It's very insulting to our pride... but if you can help us enter that place again, and speak to the Guardian, maybe we can find a solution...");
+ next();
+ mes("[Aide Arioss]");
+ mes("Then we'll leave it to you. As for your request, I will do my best to cooperate.");
+ next();
+ mes("[Aide Arioss]");
+ mes("I have already told you what you wanted to know... If you need anything else, just let me know.");
ins_nyd = 101;
- close;
+ close();
} else if (ins_nyd == 101) {
- mes "Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?";
- next;
- mes "[Aide Arioss]";
- mes "That's because only the ones chosen by the Guardian may enter.";
- next;
- mes "[Aide Arioss]";
- mes "We have been the Guardian's servants for generations, and have been protecting the World Tree ever since.";
- next;
- mes "[Aide Arioss]";
- mes "Before we were captured and brought here, there were 3 servants including me. Our task was to heal the World Tree.";
- next;
- mes "[Aide Arioss]";
- mes "One was killed in our last war with the Sapha tribe... and the other has been taken captive.";
- next;
- mes "[Aide Arioss]";
- mes "I will give you my proof. Don't worry, I'm just temporarily marking you as a guardian's servant.";
+ mes("Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?");
+ next();
+ mes("[Aide Arioss]");
+ mes("That's because only the ones chosen by the Guardian may enter.");
+ next();
+ mes("[Aide Arioss]");
+ mes("We have been the Guardian's servants for generations, and have been protecting the World Tree ever since.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Before we were captured and brought here, there were 3 servants including me. Our task was to heal the World Tree.");
+ next();
+ mes("[Aide Arioss]");
+ mes("One was killed in our last war with the Sapha tribe... and the other has been taken captive.");
+ next();
+ mes("[Aide Arioss]");
+ mes("I will give you my proof. Don't worry, I'm just temporarily marking you as a guardian's servant.");
specialeffect(EF_HOLYHIT, AREA, playerattached());
- next;
- mes "[Aide Arioss]";
- mes "Also, remember this spell, it's needed to open the gate of the Guardian.";
- next;
- mes "[Aide Arioss]";
- mes "AnomarDu Ha OdesUdenVer Ie ";
- next;
- mes "[Aide Arioss]";
- mes "remuAlaAsh Mu ModtasAn Yu Dur";
- next;
- mes "[Aide Arioss]";
- mes "TalsehrDur So CyaReMush Di DielAlaWos Ie RuffserIman Ie ";
- next;
- mes "[Aide Arioss]";
- mes "Go find the fairy guarding the gate, and say this spell.";
- next;
- mes "[Aide Arioss]";
- mes "The proof and the spell will confirm that you are one of the Guardian's servants.";
- next;
- mes "[Aide Arioss]";
- mes "Please meet the Guardian, and come back with an answer to everything. I believe in you.";
+ next();
+ mes("[Aide Arioss]");
+ mes("Also, remember this spell, it's needed to open the gate of the Guardian.");
+ next();
+ mes("[Aide Arioss]");
+ mes("AnomarDu Ha OdesUdenVer Ie ");
+ next();
+ mes("[Aide Arioss]");
+ mes("remuAlaAsh Mu ModtasAn Yu Dur");
+ next();
+ mes("[Aide Arioss]");
+ mes("TalsehrDur So CyaReMush Di DielAlaWos Ie RuffserIman Ie ");
+ next();
+ mes("[Aide Arioss]");
+ mes("Go find the fairy guarding the gate, and say this spell.");
+ next();
+ mes("[Aide Arioss]");
+ mes("The proof and the spell will confirm that you are one of the Guardian's servants.");
+ next();
+ mes("[Aide Arioss]");
+ mes("Please meet the Guardian, and come back with an answer to everything. I believe in you.");
ins_nyd = 111;
- close;
- } else if ((ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
- mes "Please meet with the Guardian and take a wise answer from him. I will trust you.";
- close;
- } else if ((ins_nyd == 72) || (ins_nyd == 82) || (ins_nyd == 92) || (ins_nyd == 102) || (ins_nyd == 112)) {
- mes "... ...";
- next;
- mes "Not even caring about this a single bit? What a stupid woman...";
- close;
+ close();
+ } else if (ins_nyd == 101 || ins_nyd == 111 || ins_nyd == 200 || ins_nyd == 201 || ins_nyd == 202) {
+ mes("Please meet with the Guardian and take a wise answer from him. I will trust you.");
+ close();
+ } else if (ins_nyd == 72 || ins_nyd == 82 || ins_nyd == 92 || ins_nyd == 102 || ins_nyd == 112) {
+ mes("... ...");
+ next();
+ mes("Not even caring about this a single bit? What a stupid woman...");
+ close();
} else if (ins_nyd == 121) {
- mes "Things have actually become like this... as priests of the Guardian, it's our responsibility...";
- next;
- mes "[Aide Arioss]";
- mes "I represent the entire Laphine tribe, and show you our gratitude. This must all be very hard for our commander...";
- next;
- mes "[Aide Arioss]";
- mes "It can't compare with the effort you have put in for us... but please accept our token of friendship.";
- getexp 1500000,350000;
- getitem Splendide_Coin,10;
+ mes("Things have actually become like this... as priests of the Guardian, it's our responsibility...");
+ next();
+ mes("[Aide Arioss]");
+ mes("I represent the entire Laphine tribe, and show you our gratitude. This must all be very hard for our commander...");
+ next();
+ mes("[Aide Arioss]");
+ mes("It can't compare with the effort you have put in for us... but please accept our token of friendship.");
+ getexp(1500000, 350000);
+ getitem(Splendide_Coin, 10);
ins_nyd = 131;
- mes "[Aide Arioss]";
- mes "If we can help you with anything in the future, we will do all we can to assist you. Once again, thank you.";
- close;
+ mes("[Aide Arioss]");
+ mes("If we can help you with anything in the future, we will do all we can to assist you. Once again, thank you.");
+ close();
} else if (ins_nyd == 131) {
- mes "If we can help you with anything in the future, we will do all we can to assist you. Once again, thank you.";
- close;
+ mes("If we can help you with anything in the future, we will do all we can to assist you. Once again, thank you.");
+ close();
} else {
- mes "... ...";
- next;
- mes "Never give attention to... um... a blunt woman...";
- close;
+ mes("... ...");
+ next();
+ mes("Never give attention to... um... a blunt woman...");
+ close();
}
} else {
- mes "AmanVilShar Ie DorLuShar Mu Re";
- close;
+ mes("AmanVilShar Ie DorLuShar Mu Re");
+ close();
}
}
spl_in01,110,21,0 script trap#s_edq FAKE_NPC,10,10,{
OnTouch_:
- if ((isequipped(2782) == 1) && (ins_nyd == 51)) {
- mes "[Splendide Guard]";
- mes "That man is currently under arrest.";
- next;
- mes "[Splendide Guard]";
- mes "You'd better behave, Aide Arioss says that different races shall be treated the same way.";
- warp "spl_in01",109,58;
- close;
+ if (isequipped(Ring_Of_Wise_King) == 1 && ins_nyd == 51) {
+ mes("[Splendide Guard]");
+ mes("That man is currently under arrest.");
+ next();
+ mes("[Splendide Guard]");
+ mes("You'd better behave, Aide Arioss says that different races shall be treated the same way.");
+ warp("spl_in01", 109, 58);
+ close();
}
end;
}
spl_in01,101,52,5 script Splendide Guard#1_edq 4_M_FAIRYSOLDIER,1,1,{
- mes "[Splendide Guard]";
- if (isequipped(2782) == 1) mes "This is the Splendide office. Don't act impolitely.";
- else mes "ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee ";
- close;
+ mes("[Splendide Guard]");
+ if (isequipped(Ring_Of_Wise_King) == 1)
+ mes("This is the Splendide office. Don't act impolitely.");
+ else
+ mes("ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee ");
+ close();
}
spl_in01,118,52,3 script Splendide Guard#2_edq 4_M_FAIRYSOLDIER,1,1,{
- mes "[Splendide Guard]";
- if (isequipped(2782) == 1) mes "This is the Splendide office. Don't act impolitely.";
- else mes "ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee ";
- close;
+ mes("[Splendide Guard]");
+ if (isequipped(Ring_Of_Wise_King) == 1)
+ mes("This is the Splendide office. Don't act impolitely.");
+ else
+ mes("ThusDurnah Ra SharVeldIyaz U UorAmanDur Yee neaOsaAdor Yee ");
+ close();
}
man_in01,311,57,3 script Neat Etorr#edq 4_MAN_NITT,3,3,{
- mes "[Neat Etorr]";
- if (isequipped(2782) == 1) {
+ mes("[Neat Etorr]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
if (ins_nyd == 52) {
- mes "Guest from the other world, please excuse our rudeness...";
- next;
- mes "[Neat Etorr]";
- mes "As the leader of the Sapha tribe, I have something very important to tell you. That is why I asked for you...";
- next;
- mes "[Neat Etorr]";
- mes "Your race has come to this land not long ago through the space-time gap.";
- next;
- mes "[Neat Etorr]";
- mes "You should have already seen what is going on. We have been at war with the Laphine tribe for a very long time.";
- next;
- mes "[Neat Etorr]";
- mes "Recently, because you do not understand the current situations, you have done some things that I, as a leader, can't ignore any longer.";
- next;
- mes "[Neat Etorr]";
- mes "I hope that your people will becareful of your actions on this land, and terminate any unnecessary interventions.";
- next;
- if(select("Leave quietly.", "Don't know what he's talking about, and ask for details.")==1) close;
- mes "[Manuk Field Elite Soldier]";
- mes "Are we really just letting these people go after they have stirred up problems on our land?";
- next;
- mes "[Neat Etorr]";
- mes "After what happened, I don't think they know what else they can do. Let me explain.";
- next;
- mes "[Neat Etorr]";
- mes "For now, we have acknowledged your race, and have been tolerant towards your activities.";
- next;
- mes "[Neat Etorr]";
- mes "But we have recently started to suspect you of being the Laphine tribe's eyes and ears.";
- next;
- mes "[Neat Etorr]";
- mes "Not long ago, We have heard that you have found remains in an abandoned cave in the north, and have been conducting investigations and researches regarding it.";
- next;
- mes "[Neat Etorr]";
- mes "We have captured a Laphine tribe priest during the last war, and we have heard that you have had contact with said captive.";
- next;
- mes "[Neat Etorr]";
- mes "That captive is the only reference for our tribe, so we have taken good care of her. She is related to your current investigation.";
- next;
- mes "[Neat Etorr]";
- mes "For your people, who have no direct connections, it is not a place satisfy your curiosity. I hope that you stop your investigations, and mind your own business.";
- next;
- mes "[Neat Etorr]";
- mes "If you don't accept our request, then do not expect any cooperations between our races in the future.";
- next;
- mes "[Neat Etorr]";
- mes "Because of the war against the Laphine tribe, everything is a mess. But even then, we cannot allow a foreign race to interfere.";
- next;
- mes "[Neat Etorr]";
- mes "You have heard it all, now please report back to your race.";
+ mes("Guest from the other world, please excuse our rudeness...");
+ next();
+ mes("[Neat Etorr]");
+ mes("As the leader of the Sapha tribe, I have something very important to tell you. That is why I asked for you...");
+ next();
+ mes("[Neat Etorr]");
+ mes("Your race has come to this land not long ago through the space-time gap.");
+ next();
+ mes("[Neat Etorr]");
+ mes("You should have already seen what is going on. We have been at war with the Laphine tribe for a very long time.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Recently, because you do not understand the current situations, you have done some things that I, as a leader, can't ignore any longer.");
+ next();
+ mes("[Neat Etorr]");
+ mes("I hope that your people will becareful of your actions on this land, and terminate any unnecessary interventions.");
+ next();
+ if (select("Leave quietly.", "Don't know what he's talking about, and ask for details.") == 1)
+ close();
+ mes("[Manuk Field Elite Soldier]");
+ mes("Are we really just letting these people go after they have stirred up problems on our land?");
+ next();
+ mes("[Neat Etorr]");
+ mes("After what happened, I don't think they know what else they can do. Let me explain.");
+ next();
+ mes("[Neat Etorr]");
+ mes("For now, we have acknowledged your race, and have been tolerant towards your activities.");
+ next();
+ mes("[Neat Etorr]");
+ mes("But we have recently started to suspect you of being the Laphine tribe's eyes and ears.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Not long ago, We have heard that you have found remains in an abandoned cave in the north, and have been conducting investigations and researches regarding it.");
+ next();
+ mes("[Neat Etorr]");
+ mes("We have captured a Laphine tribe priest during the last war, and we have heard that you have had contact with said captive.");
+ next();
+ mes("[Neat Etorr]");
+ mes("That captive is the only reference for our tribe, so we have taken good care of her. She is related to your current investigation.");
+ next();
+ mes("[Neat Etorr]");
+ mes("For your people, who have no direct connections, it is not a place satisfy your curiosity. I hope that you stop your investigations, and mind your own business.");
+ next();
+ mes("[Neat Etorr]");
+ mes("If you don't accept our request, then do not expect any cooperations between our races in the future.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Because of the war against the Laphine tribe, everything is a mess. But even then, we cannot allow a foreign race to interfere.");
+ next();
+ mes("[Neat Etorr]");
+ mes("You have heard it all, now please report back to your race.");
ins_nyd = 62;
- close;
+ close();
} else if (ins_nyd == 62) {
- mes "That captive is the only reference for our tribe, so we have taken good care of her. She is related to your current investigation.";
- next;
- mes "[Neat Etorr]";
- mes "For your people, who have no direct connections, it is not a place to satisfy your curiosity. I hope that you stop your investigations, and mind your own business.";
- next;
- mes "[Neat Etorr]";
- mes "If you don't accept our request, then do not expect any cooperations between our races in the future.";
- close;
+ mes("That captive is the only reference for our tribe, so we have taken good care of her. She is related to your current investigation.");
+ next();
+ mes("[Neat Etorr]");
+ mes("For your people, who have no direct connections, it is not a place to satisfy your curiosity. I hope that you stop your investigations, and mind your own business.");
+ next();
+ mes("[Neat Etorr]");
+ mes("If you don't accept our request, then do not expect any cooperations between our races in the future.");
+ close();
} else if (ins_nyd == 72) {
- mes "Recently, because you do not understand the current situations, you have done some things that I, as a leader, can't ignore any longer.";
- next;
- mes "[Neat Etorr]";
- mes "I hope that your people will becareful of your actions on this land, and terminate any unnecessary interventions.";
- close;
+ mes("Recently, because you do not understand the current situations, you have done some things that I, as a leader, can't ignore any longer.");
+ next();
+ mes("[Neat Etorr]");
+ mes("I hope that your people will becareful of your actions on this land, and terminate any unnecessary interventions.");
+ close();
} else if (ins_nyd == 82) {
- mes "Do you need me for something, strange one?";
- next;
+ mes("Do you need me for something, strange one?");
+ next();
select("Received invitation from the Sapha tribe to cooperate and investigate.");
- mes "[Neat Etorr]";
- mes "Cooperate and investigate? What do you mean?";
- next;
- mes "[Neat Etorr]";
- mes "It seems like you did not understand what I said. What are you thinking?";
- next;
+ mes("[Neat Etorr]");
+ mes("Cooperate and investigate? What do you mean?");
+ next();
+ mes("[Neat Etorr]");
+ mes("It seems like you did not understand what I said. What are you thinking?");
+ next();
select("Please allow me to investigate the cave.");
- mes "[Neat Etorr]";
- mes "From what I can tell, you are disrespecting my request. Is this your intention, or your people's intention?";
- next;
+ mes("[Neat Etorr]");
+ mes("From what I can tell, you are disrespecting my request. Is this your intention, or your people's intention?");
+ next();
select("It's our intention.");
- mes "[Neat Etorr]";
- mes "Ah, it is not an easy decision. You frighten me.";
- next;
- mes "[Neat Etorr]";
- mes "But may I ask why you want to do this?";
- next;
+ mes("[Neat Etorr]");
+ mes("Ah, it is not an easy decision. You frighten me.");
+ next();
+ mes("[Neat Etorr]");
+ mes("But may I ask why you want to do this?");
+ next();
select("Explain Professor Magnifier's theory.");
- mes "[Neat Etorr]";
- mes "It's surprising that you are able to obtain such results. We also have a similar theory.";
- next;
- mes "[Neat Etorr]";
- mes "At least we also think that we must use the Laphine prisoner to get information.";
- next;
- mes "[Neat Etorr]";
- mes "This problem has been the root of our conflicts with the Laphine tribe. Of course, it may also be an opportunity to resolve them.";
- next;
- mes "[Neat Etorr]";
- mes "Therefore, it's more of a reason to depend on our own powers. There is no room for you to interfere. Please give up.";
- next;
+ mes("[Neat Etorr]");
+ mes("It's surprising that you are able to obtain such results. We also have a similar theory.");
+ next();
+ mes("[Neat Etorr]");
+ mes("At least we also think that we must use the Laphine prisoner to get information.");
+ next();
+ mes("[Neat Etorr]");
+ mes("This problem has been the root of our conflicts with the Laphine tribe. Of course, it may also be an opportunity to resolve them.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Therefore, it's more of a reason to depend on our own powers. There is no room for you to interfere. Please give up.");
+ next();
select("Give up request, and ask Laphine tribe for help instead.");
- mes "[Manuk Field Elite Soldier]";
- mes "You finally showed your true face. I knew you were a spy from the Laphine tribe!";
- next;
- mes "[Neat Etorr]";
- mes "Ah...you'd go as far as saying that. What good will it do for you, helping the Laphine tribe?";
- next;
- mes "[Neat Etorr]";
- mes "Those obnoxious dwarves offended our right of living, and are trying to get rid of us.";
- next;
- mes "[Neat Etorr]";
- mes "The reason we don't allow anyone to enter that site is because it's full of suspicions.";
- next;
- mes "[Neat Etorr]";
- mes "Alright, I'll approve of your request, and let you investigate the secret the Laphine tribe has hidden inside the cave.";
- next;
- mes "[Neat Etorr]";
- mes "If you promise to share all of your research results and findings, we will accept your request.";
- next;
+ mes("[Manuk Field Elite Soldier]");
+ mes("You finally showed your true face. I knew you were a spy from the Laphine tribe!");
+ next();
+ mes("[Neat Etorr]");
+ mes("Ah...you'd go as far as saying that. What good will it do for you, helping the Laphine tribe?");
+ next();
+ mes("[Neat Etorr]");
+ mes("Those obnoxious dwarves offended our right of living, and are trying to get rid of us.");
+ next();
+ mes("[Neat Etorr]");
+ mes("The reason we don't allow anyone to enter that site is because it's full of suspicions.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Alright, I'll approve of your request, and let you investigate the secret the Laphine tribe has hidden inside the cave.");
+ next();
+ mes("[Neat Etorr]");
+ mes("If you promise to share all of your research results and findings, we will accept your request.");
+ next();
select("Of course.");
- mes "[Neat Etorr]";
- mes "Alright, from now on, we will cooperate with you, and allow you to directly communicate with the Laphine prisoner.";
- next;
- mes "[Manuk Field Elite Soldier]";
- mes "Commander...are you sure of this? We don't even know if they're friend or foe...";
- next;
- mes "[Neat Etorr]";
- mes "With just our powers, it's impossible to figure out what the Laphine is up to. I think the past has proven that.";
- next;
- mes "[Neat Etorr]";
- mes "What they're doing right now could potentially lead us to a solution.";
- next;
- mes "[Neat Etorr]";
- mes "Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.";
+ mes("[Neat Etorr]");
+ mes("Alright, from now on, we will cooperate with you, and allow you to directly communicate with the Laphine prisoner.");
+ next();
+ mes("[Manuk Field Elite Soldier]");
+ mes("Commander...are you sure of this? We don't even know if they're friend or foe...");
+ next();
+ mes("[Neat Etorr]");
+ mes("With just our powers, it's impossible to figure out what the Laphine is up to. I think the past has proven that.");
+ next();
+ mes("[Neat Etorr]");
+ mes("What they're doing right now could potentially lead us to a solution.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.");
ins_nyd = 92;
- close;
- } else if ((ins_nyd == 92) || (ins_nyd == 102) || (ins_nyd == 112) || (ins_nyd == 200) || (ins_nyd == 201) || (ins_nyd == 202)) {
- mes "Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.";
- close;
- } else if ((ins_nyd == 71) || (ins_nyd == 81) || (ins_nyd == 91) || (ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 121) || (ins_nyd == 131)) {
- mes "Outsider. Welcome to Manuk, the village of the Sapha. I am its representative, Neat Etorr.";
- next;
- mes "[Neat Etorr]";
- mes "We are just a small village, nothing special... but rest comfortably.";
- close;
+ close();
+ } else if (ins_nyd == 92 || ins_nyd == 102 || ins_nyd == 112 || ins_nyd == 200 || ins_nyd == 201 || ins_nyd == 202) {
+ mes("Strange one, we hope our cooperation will be a good one. Now please go interrogate the Laphine prisoner.");
+ close();
+ } else if (ins_nyd == 71 || ins_nyd == 81 || ins_nyd == 91 || ins_nyd == 101 || ins_nyd == 111 || ins_nyd == 121 || ins_nyd == 131) {
+ mes("Outsider. Welcome to Manuk, the village of the Sapha. I am its representative, Neat Etorr.");
+ next();
+ mes("[Neat Etorr]");
+ mes("We are just a small village, nothing special... but rest comfortably.");
+ close();
} else if (ins_nyd == 203) {
- mes "I was waiting for you. It's good that you're safe. Did you find anything?";
- next;
+ mes("I was waiting for you. It's good that you're safe. Did you find anything?");
+ next();
select("Explain the sudden leave of the Guardian.");
- mes "[Neat Etorr]";
- mes "So... that's the nest of the Guardian of the World Tree, the sacred grounds for the Laphine tribe.";
- next;
- mes "[Neat Etorr]";
- mes "But because of the angry leave of the Guardian, his shadow is wreaking havoc on the World Tree?";
- next;
- mes "[Neat Etorr]";
- mes "If what you're saying is true, then there is no more reason for us to continue fighting the Laphine tribe...";
- next;
- mes "[Neat Etorr]";
- mes "What a huge discovery... So Nidhoggur is no longer the Guardian of the World Tree...?";
- next;
- mes "[Neat Etorr]";
- mes "Nidhoggur's Shadow came to exist in this world, and harmed the roots of the World Tree... what a disaster.";
- next;
+ mes("[Neat Etorr]");
+ mes("So... that's the nest of the Guardian of the World Tree, the sacred grounds for the Laphine tribe.");
+ next();
+ mes("[Neat Etorr]");
+ mes("But because of the angry leave of the Guardian, his shadow is wreaking havoc on the World Tree?");
+ next();
+ mes("[Neat Etorr]");
+ mes("If what you're saying is true, then there is no more reason for us to continue fighting the Laphine tribe...");
+ next();
+ mes("[Neat Etorr]");
+ mes("What a huge discovery... So Nidhoggur is no longer the Guardian of the World Tree...?");
+ next();
+ mes("[Neat Etorr]");
+ mes("Nidhoggur's Shadow came to exist in this world, and harmed the roots of the World Tree... what a disaster.");
+ next();
select("Pass along the World Tree Yggdrasil's message.");
- mes "[Neat Etorr]";
- mes "Is that what the priest of the Guardian said?";
- next;
- mes "[Neat Etorr]";
- mes "From now on, we need to talk about this with the Laphine tribe.";
- next;
- mes "[Neat Etorr]";
- mes "But of course...we don't know if they're reasonable enough...hehe.";
- next;
- mes "[Neat Etorr]";
- mes "This is all we needed from you...What is left is business between us and the Laphine tribe.";
- next;
- mes "[Neat Etorr]";
- mes "Thank you for helping us with such a huge problem. You may forget about it now.";
- next;
- mes "[Neat Etorr]";
- mes "It's not a lot, but please this as a token of our appreciation.";
- getexp 1500000,350000;
- getitem Manuk_Coin,10;
+ mes("[Neat Etorr]");
+ mes("Is that what the priest of the Guardian said?");
+ next();
+ mes("[Neat Etorr]");
+ mes("From now on, we need to talk about this with the Laphine tribe.");
+ next();
+ mes("[Neat Etorr]");
+ mes("But of course...we don't know if they're reasonable enough...hehe.");
+ next();
+ mes("[Neat Etorr]");
+ mes("This is all we needed from you...What is left is business between us and the Laphine tribe.");
+ next();
+ mes("[Neat Etorr]");
+ mes("Thank you for helping us with such a huge problem. You may forget about it now.");
+ next();
+ mes("[Neat Etorr]");
+ mes("It's not a lot, but please this as a token of our appreciation.");
+ getexp(1500000, 350000);
+ getitem(Manuk_Coin, 10);
ins_nyd = 132;
- close;
+ close();
} else if (ins_nyd == 132) {
- mes "Strange one, thank you for helping us in the time of need. I will never forget your kindness.";
- close;
+ mes("Strange one, thank you for helping us in the time of need. I will never forget your kindness.");
+ close();
} else {
- mes "Outsider. Welcome to the Manuk village of Sapha. I am its representative, Neat Etorr.";
- next;
- mes "[Neat Etorr]";
- mes "We are just a small village, nothing special... but rest comfortably.";
- close;
+ mes("Outsider. Welcome to the Manuk village of Sapha. I am its representative, Neat Etorr.");
+ next();
+ mes("[Neat Etorr]");
+ mes("We are just a small village, nothing special... but rest comfortably.");
+ close();
}
} else {
- mes "Tkeh likek Ohek QekhlHkl PkedlioH.";
- close;
+ mes("Tkeh likek Ohek QekhlHkl PkedlioH.");
+ close();
}
}
man_in01,286,61,5 script Manuk Guard#1_edq 4_MAN_GALTUN,1,1,{
- mes "[Manuk Guard]";
- if (isequipped(2782) == 1) mes "I'm guarding this Laphine prisoner. Leave me alone.";
- else mes "Klekod Oi Thekd Pheid Okei.";
- close;
+ mes("[Manuk Guard]");
+ if (isequipped(Ring_Of_Wise_King) == 1)
+ mes("I'm guarding this Laphine prisoner. Leave me alone.");
+ else
+ mes("Klekod Oi Thekd Pheid Okei.");
+ close();
}
man_in01,295,61,3 script Manuk Guard#2_edq 4_MAN_GALTUN,1,1,{
- mes "[Manuk Guard]";
- if (isequipped(2782) == 1) mes "I'm guarding this Laphine prisoner. Leave me alone.";
- else mes "Liek QUekdk Ohei Vue.";
- close;
+ mes("[Manuk Guard]");
+ if (isequipped(Ring_Of_Wise_King) == 1)
+ mes("I'm guarding this Laphine prisoner. Leave me alone.");
+ else
+ mes("Liek QUekdk Ohei Vue.");
+ close();
}
man_in01,291,62,3 script Laphine Prisoner#edq 4_F_FAIRYKID2,3,3,{
- mes "[Laphine Prisoner]";
- if (isequipped(2782) == 1) {
+ mes("[Laphine Prisoner]");
+ if (isequipped(Ring_Of_Wise_King) == 1) {
if (ins_nyd == 5) {
- mes "You... are not of the Sapha tribe... Are you... an outsider?";
- next;
- mes "[Laphine Prisoner]";
- mes "Have you ever come in contact with the Laphine tribe? Have you ever been to Splendide?";
- next;
- mes "[Laphine Prisoner]";
- mes "Please, talk to my people in Splendide. They will come to help me.";
- next;
- switch(select("What happened to you?", "What's in the cave to the north?", "Tell me about your tribe.", "I will leave you alone.")) {
+ mes("You... are not of the Sapha tribe... Are you... an outsider?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Have you ever come in contact with the Laphine tribe? Have you ever been to Splendide?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Please, talk to my people in Splendide. They will come to help me.");
+ next();
+ switch (select("What happened to you?", "What's in the cave to the north?", "Tell me about your tribe.", "I will leave you alone.")) {
case 1:
- mes "[Laphine Prisoner]";
- mes "During out last battle with the Sapha tribe... they caught me and took me prisoner.";
- next;
- mes "[Laphine Prisoner]";
- mes "The Sapha tribe attacked first. They are destroying the World Tree.";
- next;
- mes "[Laphine Prisoner]";
- mes "That's why the war started. But I don't want to fight with the Sapha tribe anymore...";
- next;
- mes "[Laphine Prisoner]";
- mes "If it wasn't for that... I wouldn't survive here...";
- next;
- mes "[Laphine Prisoner]";
- mes "Please. Bring this news to all of Splendide. Send someone to save me... or they might kill me.";
- close;
+ mes("[Laphine Prisoner]");
+ mes("During out last battle with the Sapha tribe... they caught me and took me prisoner.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("The Sapha tribe attacked first. They are destroying the World Tree.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("That's why the war started. But I don't want to fight with the Sapha tribe anymore...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("If it wasn't for that... I wouldn't survive here...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Please. Bring this news to all of Splendide. Send someone to save me... or they might kill me.");
+ close();
case 2:
- mes "[Laphine Prisoner]";
- mes "There is...";
- next;
- mes "[Laphine Prisoner]";
- mes "No... I can't tell you... It's the secret of our tribe...";
- next;
- mes "[Laphine Prisoner]";
- mes "I just want to say this...if the Sapha tribe intrude that place, we will never forgive them!";
+ mes("[Laphine Prisoner]");
+ mes("There is...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("No... I can't tell you... It's the secret of our tribe...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("I just want to say this...if the Sapha tribe intrude that place, we will never forgive them!");
ins_nyd = 52;
- close;
+ close();
case 3:
- mes "[Laphine Prisoner]";
- mes "The Laphines have protected the Yggdrasil World Tree for generations.";
- next;
- mes "[Laphine Prisoner]";
- mes "We live in a... different time, different land... we came for an expedition.";
- next;
- mes "[Laphine Prisoner]";
- mes "After we received reports from our spy about the World Tree's strange symptoms, we recgnized the Manuk's existence.";
- next;
- mes "[Laphine Prisoner]";
- mes "They are mining metal, and in so doing, destroying the World Tree's roots...";
- next;
- mes "[Laphine Prisoner]";
- mes "So we dispatched an expedition here. Soonafter, the war with the Sapha began...";
- close;
+ mes("[Laphine Prisoner]");
+ mes("The Laphines have protected the Yggdrasil World Tree for generations.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("We live in a... different time, different land... we came for an expedition.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("After we received reports from our spy about the World Tree's strange symptoms, we recgnized the Manuk's existence.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("They are mining metal, and in so doing, destroying the World Tree's roots...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("So we dispatched an expedition here. Soonafter, the war with the Sapha began...");
+ close();
case 4:
- close;
+ close();
}
} else if (ins_nyd == 92) {
- mes "The sapha tribe went as far as cooperating with an unknown race?";
- next;
- mes "[Laphine Prisoner]";
- mes "What is your purpose? Why do you want to know what that place is?";
- next;
- mes "[Laphine Prisoner]";
- mes "lright...it's as you have assumed, a place connecting to the World Tree. It's also the Guardian's Nest.";
- next;
+ mes("The sapha tribe went as far as cooperating with an unknown race?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("What is your purpose? Why do you want to know what that place is?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("lright...it's as you have assumed, a place connecting to the World Tree. It's also the Guardian's Nest.");
+ next();
select("Guardian's Nest?");
- mes "[Laphine Prisoner]";
- mes "Yes, that's the nest of Nidhoggur, the Guardian of the World Tree...";
- next;
- mes "[Laphine Prisoner]";
- mes "Only a marked guardian's servant from the Laphine tribe is allowed to enter.";
- next;
- mes "[Laphine Prisoner]";
- mes "That place was initially closed off from the public, but then the giants of the Sapha tribe turned things around...";
- next;
- mes "[Laphine Prisoner]";
- mes "To obtain more minerals, they started to dig with madness.";
- next;
- mes "[Laphine Prisoner]";
- mes "In the end, they have harmed a part of the World Tree's root that lies very close to their mine, and thus, the World Tree became very ill.";
- next;
- mes "[Laphine Prisoner]";
- mes "After we have arrived here knowing the facts, the World Tree was already in a very bad state due to the many factories built by the Sapha tribe.";
- next;
- mes "[Laphine Prisoner]";
- mes "Even though, for a long time, we have been attacking the Sapha tribe, trying to force them to leave, they are not so easily defeated, leading to this stalemate.";
- next;
- mes "[Laphine Prisoner]";
- mes "During this time, your people have travelled through the space-time gap to this land.";
- next;
- mes "[Laphine Prisoner]";
- mes "Because of those many unexpected reasons, the Guardian's nest, which was meant to stay hidden deep underground, has been discovered by your race...";
- next;
- mes "[Laphine Prisoner]";
- mes "Now you understand how serious this situation is. Because of the Sapha tribe, we are no longer able to approach the Guardian, and seek his teachings of wisdom.";
- next;
- mes "[Laphine Prisoner]";
- mes "Hmph...even if I don't cooperate, I know you will find other means to get in...";
- next;
- mes "[Laphine Prisoner]";
- mes "Looking at the current situation of the Laphine tribe, we do not have enough power to surround the Manuk fields, and chase the giants away.";
- next;
- mes "[Laphine Prisoner]";
- mes "Okay, if it has already become like this, I will help you. There are no dead-ends. If you keep going, you will find a solution.";
- next;
- mes "[Laphine Prisoner]";
- mes "Even if I don't say anything, my situation will not change.";
- next;
- mes "[Laphine Prisoner]";
- mes "I have already told you everything you wanted to hear. If you have any other requests, please let me know.";
+ mes("[Laphine Prisoner]");
+ mes("Yes, that's the nest of Nidhoggur, the Guardian of the World Tree...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Only a marked guardian's servant from the Laphine tribe is allowed to enter.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("That place was initially closed off from the public, but then the giants of the Sapha tribe turned things around...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("To obtain more minerals, they started to dig with madness.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("In the end, they have harmed a part of the World Tree's root that lies very close to their mine, and thus, the World Tree became very ill.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("After we have arrived here knowing the facts, the World Tree was already in a very bad state due to the many factories built by the Sapha tribe.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Even though, for a long time, we have been attacking the Sapha tribe, trying to force them to leave, they are not so easily defeated, leading to this stalemate.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("During this time, your people have travelled through the space-time gap to this land.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Because of those many unexpected reasons, the Guardian's nest, which was meant to stay hidden deep underground, has been discovered by your race...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Now you understand how serious this situation is. Because of the Sapha tribe, we are no longer able to approach the Guardian, and seek his teachings of wisdom.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Hmph...even if I don't cooperate, I know you will find other means to get in...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Looking at the current situation of the Laphine tribe, we do not have enough power to surround the Manuk fields, and chase the giants away.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Okay, if it has already become like this, I will help you. There are no dead-ends. If you keep going, you will find a solution.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Even if I don't say anything, my situation will not change.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("I have already told you everything you wanted to hear. If you have any other requests, please let me know.");
ins_nyd = 102;
- close;
+ close();
} else if (ins_nyd == 102) {
- mes "Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?";
- next;
- mes "[Laphine Prisoner]";
- mes "That's because only the ones chosen by the Guardian may enter.";
- next;
- mes "[Laphine Prisoner]";
- mes "We have been the Guardian's servants for generations, and have been protecting the World Tree ever since.";
- next;
- mes "[Laphine Prisoner]";
- mes "Before we were captured and brought here, there were 3 servants including me. Our task was to heal the World Tree.";
- next;
- mes "[Laphine Prisoner]";
- mes "One was killed in our last war with the Sapha tribe...and I have been taken captive.";
- next;
- mes "[Laphine Prisoner]";
- mes "I will give you my proof. Don't worry, I'm just temporarily marking you as a guardian's servant.";
+ mes("Ah, you said that there is a strange power blocking the entrance to the Guardian's nest, right?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("That's because only the ones chosen by the Guardian may enter.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("We have been the Guardian's servants for generations, and have been protecting the World Tree ever since.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Before we were captured and brought here, there were 3 servants including me. Our task was to heal the World Tree.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("One was killed in our last war with the Sapha tribe...and I have been taken captive.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("I will give you my proof. Don't worry, I'm just temporarily marking you as a guardian's servant.");
specialeffect(EF_HOLYHIT, AREA, playerattached());
- next;
- mes "[Laphine Prisoner]";
- mes "Also, remember this spell, it's needed to open the gate of the Guardian.";
- next;
- mes "[Laphine Prisoner]";
- mes "AnomarDu Ha OdesUdenVer Ie ";
- next;
- mes "[Laphine Prisoner]";
- mes "remuAlaAsh Mu ModtasAn Yu Dur";
- next;
- mes "[Laphine Prisoner]";
- mes "TalsehrDur So CyaReMush Di DielAlaWos Ie RuffserIman Ie ";
- next;
- mes "[Laphine Prisoner]";
- mes "Go find the fairy guarding the gate, and say this spell.";
- next;
- mes "[Laphine Prisoner]";
- mes "he proof and the spell will confirm that you are one of the Guardian's servants.";
- next;
- mes "[Laphine Prisoner]";
- mes "Please meet the Guardian, and come back with an answer to everything. And tell the answer to...";
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Also, remember this spell, it's needed to open the gate of the Guardian.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("AnomarDu Ha OdesUdenVer Ie ");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("remuAlaAsh Mu ModtasAn Yu Dur");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("TalsehrDur So CyaReMush Di DielAlaWos Ie RuffserIman Ie ");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Go find the fairy guarding the gate, and say this spell.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("he proof and the spell will confirm that you are one of the Guardian's servants.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Please meet the Guardian, and come back with an answer to everything. And tell the answer to...");
ins_nyd = 112;
- close;
- } else if ((ins_nyd == 71) || (ins_nyd == 81) || (ins_nyd == 91) || (ins_nyd == 101) || (ins_nyd == 111) || (ins_nyd == 121) || (ins_nyd == 131)) {
- mes "... ...";
- next;
- mes "[Manuk Guard]";
- mes "Hey, outsider! Step away from the prisoner!";
- close;
+ close();
+ } else if (ins_nyd == 71 || ins_nyd == 81 || ins_nyd == 91 || ins_nyd == 101 || ins_nyd == 111 || ins_nyd == 121 || ins_nyd == 131) {
+ mes("... ...");
+ next();
+ mes("[Manuk Guard]");
+ mes("Hey, outsider! Step away from the prisoner!");
+ close();
} else if (ins_nyd == 112) {
- mes "Please meet the Guardian, and come back with an answer to everything. And tell the answer to...";
- close;
+ mes("Please meet the Guardian, and come back with an answer to everything. And tell the answer to...");
+ close();
} else if (ins_nyd == 132) {
- mes "Yes...I heard your conversation with the Sapha tribe...";
- next;
- mes "[Laphine Prisoner]";
- mes "If our tribe were to really trust in the Sapha tribe...I don't know.";
- next;
- mes "[Laphine Prisoner]";
- mes "Our hatred towards them has already reached an abnormal level...";
- next;
- mes "[Laphine Prisoner]";
- mes "Those giants...can they really be trusted?";
- next;
- mes "[Laphine Prisoner]";
- mes "It's...it's better if you don't believe the one called Etorr...the minds of the Sapha tribe is unpredictable.";
- close;
+ mes("Yes...I heard your conversation with the Sapha tribe...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("If our tribe were to really trust in the Sapha tribe...I don't know.");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Our hatred towards them has already reached an abnormal level...");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("Those giants...can they really be trusted?");
+ next();
+ mes("[Laphine Prisoner]");
+ mes("It's...it's better if you don't believe the one called Etorr...the minds of the Sapha tribe is unpredictable.");
+ close();
} else {
- mes "... ...";
- next;
- mes "[Manuk Guard]";
- mes "Hey, outsider! Step away from the prisoner!";
- close;
+ mes("... ...");
+ next();
+ mes("[Manuk Guard]");
+ mes("Hey, outsider! Step away from the prisoner!");
+ close();
}
} else {
- mes "AmanVilShar Ie DorLuShar Mu Re";
- close;
+ mes("AmanVilShar Ie DorLuShar Mu Re");
+ close();
}
}
man_in01,282,42,0 script trap#edq2 FAKE_NPC,10,10,{
OnTouch_:
- if ((isequipped(2782) == 1) && (ins_nyd == 52)) {
- mes "[Manuk Field Elite Soldier]";
- mes "This is Neat Etorr's order. Please come with us to see him.";
- next;
- mes "[Manuk Field Elite Soldier]";
- mes "Bring him to Neat Etorr. All soldiers be prepared.";
- warp "man_in01",311,54;
- close;
+ if (isequipped(Ring_Of_Wise_King) == 1 && ins_nyd == 52) {
+ mes("[Manuk Field Elite Soldier]");
+ mes("This is Neat Etorr's order. Please come with us to see him.");
+ next();
+ mes("[Manuk Field Elite Soldier]");
+ mes("Bring him to Neat Etorr. All soldiers be prepared.");
+ warp("man_in01", 311, 54);
+ close();
}
end;
}
@@ -1533,149 +1544,150 @@ OnTouch_:
//== First floor ===========================================
1@nyd,213,277,5 script Murdered Yggdrasilid#1F 4_F_FAIRYKID2,5,5,{
if ('ins_nyd2 == 0) {
- mes "When a faint light enters your heart, a voice sounds in your head.";
- next;
- mes "[World Tree World Tree Yggdrasil]";
- mes "It's all over... servants of the Guardian... Hurry up and leave this place.";
- next;
- while(1) {
- switch(select("Who are you?", "What do you mean?")) {
+ mes("When a faint light enters your heart, a voice sounds in your head.");
+ next();
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("It's all over... servants of the Guardian... Hurry up and leave this place.");
+ next();
+ while (true) {
+ switch (select("Who are you?", "What do you mean?")) {
case 1:
- mes "[World Tree World Tree Yggdrasil]";
- mes "I... I am the World Tree Yggdrasil, servant of the Guardian of Nidhoggur, as well as the High Priest leading the Laphine Tribe.";
- next;
- mes "[World Tree World Tree Yggdrasil]";
- mes "So you're not priestess of the Laphine Tribe... How did you get in? No, there's no time to answer that.";
- next;
- mes "[World Tree World Tree Yggdrasil]";
- mes "Hurry... and leave... leave this place before it's too late.";
- next;
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("I... I am the World Tree Yggdrasil, servant of the Guardian of Nidhoggur, as well as the High Priest leading the Laphine Tribe.");
+ next();
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("So you're not priestess of the Laphine Tribe... How did you get in? No, there's no time to answer that.");
+ next();
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("Hurry... and leave... leave this place before it's too late.");
+ next();
break;
case 2:
- mes "[World Tree World Tree Yggdrasil]";
- mes "The guardian... something's wrong with the guardian. I don't know what made him like this.";
- next;
- mes "[World Tree World Tree Yggdrasil]";
- mes "This... this is no longer the nest of the Guardian of the World Tree Yggdrasil.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Darkness took over the Guardian and destroyed all living things... now this place has become the cursed home of monsters.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Now the vile Nidhoggur's Shadow is wreaking havoc here...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Now's not too late, hurry and get out... tell the Laphine Tribe about this... tell the commanders of Alfheim...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "My soul... it has been trapped here. You're the only ones I can trust now.";
- next;
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("The guardian... something's wrong with the guardian. I don't know what made him like this.");
+ next();
+ mes("[World Tree World Tree Yggdrasil]");
+ mes("This... this is no longer the nest of the Guardian of the World Tree Yggdrasil.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Darkness took over the Guardian and destroyed all living things... now this place has become the cursed home of monsters.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Now the vile Nidhoggur's Shadow is wreaking havoc here...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Now's not too late, hurry and get out... tell the Laphine Tribe about this... tell the commanders of Alfheim...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("My soul... it has been trapped here. You're the only ones I can trust now.");
+ next();
.@exit = 1;
}
- if (.@exit) break;
+ if (.@exit)
+ break;
}
select("Nidhoggur's Shadow?");
- mes "[World Tree Yggdrasil]";
- mes "The Guardian Nidhoggur... he's not in the nest.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "He...for some reason abandoned his own shadow, and left.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "All that's left, is the ugly Shadow of the Guardian of Nidhoggur...the Shadow that is going mad.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "The Shadow sucked all the nutrients from the World Tree Yggdrasil, and has gone mad when there is nothing more left to obtain. Now, he wants this land.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Once the ugly Shadow leaves here to steal power from the other World Yggdrasil Trees, there will be great destruction. This world will become hell.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "You must... tell the commanders of Alfheim about this, and come up with a plan. Only them...";
- next;
+ mes("[World Tree Yggdrasil]");
+ mes("The Guardian Nidhoggur... he's not in the nest.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("He...for some reason abandoned his own shadow, and left.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("All that's left, is the ugly Shadow of the Guardian of Nidhoggur...the Shadow that is going mad.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("The Shadow sucked all the nutrients from the World Tree Yggdrasil, and has gone mad when there is nothing more left to obtain. Now, he wants this land.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Once the ugly Shadow leaves here to steal power from the other World Yggdrasil Trees, there will be great destruction. This world will become hell.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("You must... tell the commanders of Alfheim about this, and come up with a plan. Only them...");
+ next();
select("Is there nothing else we can do?");
- mes "[World Tree Yggdrasil]";
- mes "With our current powers...it is impossible to defeat the Guardian.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "But the one going mad is not the Guardian, but his dark Shadow...maybe we can trap him here...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Are you willing to accept this mission? Even if it means to pay with your life?";
- next;
- if(select("Leave it to us.", "We can't do it.") == 2)
- close;
- mes "[World Tree Yggdrasil]";
- mes "I thank you deeply for your decision. I will use what is left of my powers to open up the path towards the Guardian's Nest.";
- next;
- mes "[World Tree Yggdrasil]";
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms of the Sanctuary will start immediately.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "The gate will open soon. Go defeat all of the guardians... you must kill them all in 30 minutes before the gate opens...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "30 minutes... that's the limit of my powers. Please hurry.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "And... Be careful... Be careful of the shadow's power.";
+ mes("[World Tree Yggdrasil]");
+ mes("With our current powers...it is impossible to defeat the Guardian.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("But the one going mad is not the Guardian, but his dark Shadow...maybe we can trap him here...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Are you willing to accept this mission? Even if it means to pay with your life?");
+ next();
+ if (select("Leave it to us.", "We can't do it.") == 2)
+ close();
+ mes("[World Tree Yggdrasil]");
+ mes("I thank you deeply for your decision. I will use what is left of my powers to open up the path towards the Guardian's Nest.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms of the Sanctuary will start immediately.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("The gate will open soon. Go defeat all of the guardians... you must kill them all in 30 minutes before the gate opens...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("30 minutes... that's the limit of my powers. Please hurry.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("And... Be careful... Be careful of the shadow's power.");
'ins_nyd2 = 1;
- donpcevent instance_npcname("ins_nyd_1f_timer")+"::OnEnable";
- donpcevent instance_npcname("nyd_call_mon_1")+"::OnEnable";
- close;
+ donpcevent(instance_npcname("ins_nyd_1f_timer")+"::OnEnable");
+ donpcevent(instance_npcname("nyd_call_mon_1")+"::OnEnable");
+ close();
} else {
- mes "The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms will start immediately.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "The gate will open soon. Go defeat all of the guardians... you must kill them all in 30 minutes before the gate opens...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "30 minutes... that's the limit of my powers. Please hurry.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "And... Be careful... Be careful of the shadow's power.";
- close;
+ mes("The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms will start immediately.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("The gate will open soon. Go defeat all of the guardians... you must kill them all in 30 minutes before the gate opens...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("30 minutes... that's the limit of my powers. Please hurry.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("And... Be careful... Be careful of the shadow's power.");
+ close();
}
} else if ('ins_nyd2 == 1) {
- mes "[World Tree Yggdrasil]";
- mes "The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms will start immediately.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "The gate will open soon. Go defeat all of the guardians.";
- close;
+ mes("[World Tree Yggdrasil]");
+ mes("The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North. The defensive mechanisms will start immediately.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Defeat all of Nidhoggur's guardians and go through the waterfall into the nest... and stop Nidhoggur's Shadow there.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("The gate will open soon. Go defeat all of the guardians.");
+ close();
} else if ('ins_nyd2 == 2) {
- mes "[World Tree Yggdrasil]";
- mes "The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Use your powers... and destroy the vile Shadow...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "This is... all I can do for you...";
- close;
+ mes("[World Tree Yggdrasil]");
+ mes("The path to the Guardian's Nest is just past the waterfall by the large World Tree Yggdrasil to the North.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Use your powers... and destroy the vile Shadow...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("This is... all I can do for you...");
+ close();
} else {
- mes "[World Tree Yggdrasil]";
- mes "Those who want to taint the sacred Sanctuary of the Guardian... Get out.";
- warp "mid_camp",100,100;
+ mes("[World Tree Yggdrasil]");
+ mes("Those who want to taint the sacred Sanctuary of the Guardian... Get out.");
+ warp("mid_camp", 100, 100);
}
end;
OnTouch:
if ('ins_nyd2 == 0) {
- mes "What's a woman from the Laphine Tribe doing here...";
- next;
- mes "What's happening? Let's go check it out.";
- close;
+ mes("What's a woman from the Laphine Tribe doing here...");
+ next();
+ mes("What's happening? Let's go check it out.");
+ close();
}
end;
@@ -1686,38 +1698,38 @@ OnInstanceInit: // Temporary fix for @reloadscript.
1@nyd,1,1,0 script nyd_call_mon_1 FAKE_NPC,{
OnInstanceInit:
- enablenpc instance_npcname("nyd_call_mon_1");
+ enablenpc(instance_npcname("nyd_call_mon_1"));
end;
OnEnable:
.@map$ = instance_mapname("1@nyd");
- monster .@map$,220,250,"Nidhoggur's Guardian#1",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,220,252,"Nidhoggur's Guardian#2",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,240,270,"Nidhoggur's Guardian#3",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,240,272,"Nidhoggur's Guardian#4",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,200,200,"Nidhoggur's Guardian#5",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,210,210,"Nidhoggur's Guardian#6",2020,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,225,265,"Nidhoggur's Guardian#7",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,225,270,"Nidhoggur's Guardian#8",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,245,235,"Nidhoggur's Guardian#9",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,255,255,"Nidhoggur's Guardian#10",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,225,245,"Nidhoggur's Guardian#11",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- monster .@map$,230,280,"Nidhoggur's Guardian#12",2021,1,instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- mapannounce .@map$, "Nidhoggur's Guardian : Protect the Guardian's Sanctuary. Get rid of the intruders.",bc_map,"0x00ff99";
+ monster(.@map$, 220, 250, _("Nidhoggur's Guardian#1"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 220, 252, _("Nidhoggur's Guardian#2"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 240, 270, _("Nidhoggur's Guardian#3"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 240, 272, _("Nidhoggur's Guardian#4"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 200, 200, _("Nidhoggur's Guardian#5"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 210, 210, _("Nidhoggur's Guardian#6"), RHYNCHO, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 225, 265, _("Nidhoggur's Guardian#7"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 225, 270, _("Nidhoggur's Guardian#8"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 245, 235, _("Nidhoggur's Guardian#9"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 255, 255, _("Nidhoggur's Guardian#10"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 225, 245, _("Nidhoggur's Guardian#11"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ monster(.@map$, 230, 280, _("Nidhoggur's Guardian#12"), PHYLLA, 1, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ mapannounce(.@map$, _("Nidhoggur's Guardian : Protect the Guardian's Sanctuary. Get rid of the intruders."), bc_map, C_SPRINGGREEN);
end;
OnDisable:
- killmonster instance_mapname("1@nyd"),instance_npcname("nyd_call_mon_1")+"::OnMyMobDead";
- disablenpc instance_npcname("nyd_call_mon_1");
+ killmonster(instance_mapname("1@nyd"), instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
+ disablenpc(instance_npcname("nyd_call_mon_1"));
end;
OnMyMobDead:
.@map$ = instance_mapname("1@nyd");
.@mob_dead_num = mobcount(.@map$, instance_npcname("nyd_call_mon_1")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- mapannounce .@map$, "All of Nidhoggur's Guardians have been defeated!",bc_map,"0x00ff99";
- donpcevent instance_npcname("ins_nyd_1f_timer")+"::OnDisable";
- donpcevent instance_npcname("nyd_to2f_warp")+"::OnEnable";
+ mapannounce(.@map$, _("All of Nidhoggur's Guardians have been defeated!"), bc_map, C_SPRINGGREEN);
+ donpcevent(instance_npcname("ins_nyd_1f_timer")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_to2f_warp")+"::OnEnable");
'ins_nyd2 = 2;
}
end;
@@ -1725,145 +1737,145 @@ OnMyMobDead:
1@nyd,1,2,0 script ins_nyd_1f_timer FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("ins_nyd_1f_timer");
+ disablenpc(instance_npcname("ins_nyd_1f_timer"));
end;
OnEnable:
- enablenpc instance_npcname("ins_nyd_1f_timer");
- initnpctimer;
+ enablenpc(instance_npcname("ins_nyd_1f_timer"));
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("ins_nyd_1f_timer");
- stopnpctimer;
- killmonsterall instance_mapname("1@nyd");
+ disablenpc(instance_npcname("ins_nyd_1f_timer"));
+ stopnpctimer();
+ killmonsterall(instance_mapname("1@nyd"));
end;
OnTimer900000:
- mapannounce instance_mapname("1@nyd"), "World Tree Yggdrasil : There's not much time left. Please hurry.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@nyd"), _("World Tree Yggdrasil : There's not much time left. Please hurry."), bc_map, C_YELLOW);
end;
OnTimer1200000:
- mapannounce instance_mapname("1@nyd"), "World Tree Yggdrasil : My powers are slowly disappearing. Please hurry.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@nyd"), _("World Tree Yggdrasil : My powers are slowly disappearing. Please hurry."), bc_map, C_YELLOW);
end;
OnTimer1500000:
- mapannounce instance_mapname("1@nyd"), "World Tree Yggdrasil : I'm... almost at my limit... please hurry up.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@nyd"), _("World Tree Yggdrasil : I'm... almost at my limit... please hurry up."), bc_map, C_YELLOW);
end;
OnTimer1800000:
- mapannounce instance_mapname("1@nyd"), "World Tree Yggdrasil : You've failed... but I will use what power I have left... to send you out of here.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@nyd"), _("World Tree Yggdrasil : You've failed... but I will use what power I have left... to send you out of here."), bc_map, C_YELLOW);
end;
OnTimer1830000:
- mapannounce instance_mapname("1@nyd"), "Opening of the Gate has failed.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@nyd"), _("Opening of the Gate has failed."), bc_map, C_YELLOW);
end;
OnTimer1850000:
- donpcevent instance_npcname("ins_nyd_1f_timer")+"::OnDisable";
- donpcevent instance_npcname("nyd_call_mon_1")+"::OnDisable";
- instance_warpall "mid_camp",310,150;
- stopnpctimer;
+ donpcevent(instance_npcname("ins_nyd_1f_timer")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_call_mon_1")+"::OnDisable");
+ instance_warpall("mid_camp", 310, 150);
+ stopnpctimer();
end;
}
1@nyd,195,320,0 script nyd_to2f_warp WARPNPC,5,5,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("nyd_to2f_warp");
+ disablenpc(instance_npcname("nyd_to2f_warp"));
end;
OnEnable:
- enablenpc instance_npcname("nyd_to2f_warp");
+ enablenpc(instance_npcname("nyd_to2f_warp"));
end;
OnTouch:
'ins_nyd2 = 3;
- warp instance_mapname("2@nyd"),200,10;
+ warp(instance_mapname("2@nyd"), 200, 10);
end;
}
1@nyd,1,1,0 script ins_nyd1_spawn_mobs FAKE_NPC,{
OnInstanceInit:
.@map$ = instance_mapname("1@nyd");
- monster .@map$,0,0,"Ancient Tree",2019,40,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyTreeDead";
- monster .@map$,0,0,"Rhyncho",2020,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyRhynDead";
- monster .@map$,0,0,"Phylla",2021,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPhyDead";
- monster .@map$,0,0,"Aqua Elemental",2016,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyAquaDead";
- monster .@map$,0,0,"Dark Pinguicula",2015,30,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPingDead";
+ monster(.@map$, 0, 0, _("Ancient Tree"), ANCIENT_TREE, 40, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyTreeDead");
+ monster(.@map$, 0, 0, _("Rhyncho"), RHYNCHO, 30, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyRhynDead");
+ monster(.@map$, 0, 0, _("Phylla"), PHYLLA, 30, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPhyDead");
+ monster(.@map$, 0, 0, _("Aqua Elemental"), AQUA_ELEMENTAL, 30, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyAquaDead");
+ monster(.@map$, 0, 0, _("Dark Pinguicula"), PINGUICULA_D, 30, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPingDead");
end;
OnMyTreeDead:
- monster instance_mapname("1@nyd"),0,0,"Ancient Tree",2019,1,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyTreeDead";
+ monster(instance_mapname("1@nyd"), 0, 0, _("Ancient Tree"), ANCIENT_TREE, 1, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyTreeDead");
end;
OnMyRhynDead:
- monster instance_mapname("1@nyd"),0,0,"Rhyncho",2020,1,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyRhynDead";
+ monster(instance_mapname("1@nyd"), 0, 0, _("Rhyncho"), RHYNCHO, 1, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyRhynDead");
end;
OnMyPhyDead:
- monster instance_mapname("1@nyd"),0,0,"Phylla",2021,1,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPhyDead";
+ monster(instance_mapname("1@nyd"), 0, 0, _("Phylla"), PHYLLA, 1, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPhyDead");
end;
OnMyAquaDead:
- monster instance_mapname("1@nyd"),0,0,"Aqua Elemental",2016,1,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyAquaDead";
+ monster(instance_mapname("1@nyd"), 0, 0, _("Aqua Elemental"), AQUA_ELEMENTAL, 1, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyAquaDead");
end;
OnMyPingDead:
- monster instance_mapname("1@nyd"),0,0,"Dark Pinguicula",2015,1,instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPingDead";
+ monster(instance_mapname("1@nyd"), 0, 0, _("Dark Pinguicula"), PINGUICULA_D, 1, instance_npcname("ins_nyd1_spawn_mobs")+"::OnMyPingDead");
end;
}
//== Second Floor ==========================================
2@nyd,200,14,0 script nyd_2f_enter FAKE_NPC,6,6,{
OnTouch_:
- donpcevent instance_npcname("nyd_2f_enter_broad")+"::OnEnable";
- disablenpc instance_npcname("nyd_2f_enter");
+ donpcevent(instance_npcname("nyd_2f_enter_broad")+"::OnEnable");
+ disablenpc(instance_npcname("nyd_2f_enter"));
end;
}
2@nyd,1,1,0 script nyd_2f_enter_broad FAKE_NPC,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("nyd_2f_enter_broad");
+ disablenpc(instance_npcname("nyd_2f_enter_broad"));
end;
OnEnable:
- enablenpc instance_npcname("nyd_2f_enter_broad");
- initnpctimer;
+ enablenpc(instance_npcname("nyd_2f_enter_broad"));
+ initnpctimer();
end;
OnTimer12000:
- mapannounce instance_mapname("2@nyd"), "Nidhoggur's Shadow : No more... I can't stand this anymore...",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@nyd"), _("Nidhoggur's Shadow : No more... I can't stand this anymore..."), bc_map, C_YELLOW);
end;
OnTimer15000:
- mapannounce instance_mapname("2@nyd"), "Nidhoggur's Shadow : I need... I need the World Tree Yggdrasil's powers...",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@nyd"), _("Nidhoggur's Shadow : I need... I need the World Tree Yggdrasil's powers..."), bc_map, C_YELLOW);
end;
OnTimer18000:
- mapannounce instance_mapname("2@nyd"), "Nidhoggur's Shadow : Destroy... everything...",bc_map,"0xFFFF00";
- stopnpctimer;
- disablenpc instance_npcname("nyd_2f_enter_broad");
+ mapannounce(instance_mapname("2@nyd"), _("Nidhoggur's Shadow : Destroy... everything..."), bc_map, C_YELLOW);
+ stopnpctimer();
+ disablenpc(instance_npcname("nyd_2f_enter_broad"));
end;
}
2@nyd,199,178,0 script nyd_2f_ddr_control FAKE_NPC,6,6,{
OnTouch:
specialeffect(EF_HOLYHIT, AREA, playerattached());
- mes "From below the gorgeous stones, a strange breeze is forming.";
- next;
- mes "The strange power slowly surrounds your body, the dimension is starting to shift.";
- close2;
- warp instance_mapname("2@nyd"),199,255;
+ mes("From below the gorgeous stones, a strange breeze is forming.");
+ next();
+ mes("The strange power slowly surrounds your body, the dimension is starting to shift.");
+ close2();
+ warp(instance_mapname("2@nyd"), 199, 255);
end;
}
2@nyd,199,268,0 script nyd_2f_boss_enter FAKE_NPC,8,8,{
OnTouch_:
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnEnable";
- disablenpc instance_npcname("nyd_2f_boss_enter");
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ donpcevent(instance_npcname("nyd_2f_boss_enter_call")+"::OnEnable");
+ disablenpc(instance_npcname("nyd_2f_boss_enter"));
end;
}
end;
@@ -1871,74 +1883,74 @@ OnTouch_:
2@nyd,2,2,0 script nyd_2f_boss_enter_call FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("nyd_2f_boss_enter_call");
+ disablenpc(instance_npcname("nyd_2f_boss_enter_call"));
end;
OnEnable:
- enablenpc instance_npcname("nyd_2f_boss_enter_call");
+ enablenpc(instance_npcname("nyd_2f_boss_enter_call"));
.@map$ = instance_mapname("2@nyd");
- monster .@map$,199,327,"Nidhoggur's Shadow",2022,1,instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead";
- mapannounce .@map$, "Nidhoggur's Shadow : I will devour all of you... you and the World Tree Yggdrasil.",bc_map,"0x00ff99";
- //donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnGo";
- initnpctimer;
+ monster(.@map$, 199, 327, _("Nidhoggur's Shadow"), S_NYDHOG, 1, instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead");
+ mapannounce(.@map$, _("Nidhoggur's Shadow : I will devour all of you... you and the World Tree Yggdrasil."), bc_map, C_SPRINGGREEN);
+ //donpcevent(instance_npcname("nyd_2f_boss_enter_call")+"::OnGo");
+ initnpctimer();
end;
OnDisable:
- killmonster instance_mapname("2@nyd"),instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead";
- disablenpc instance_npcname("nyd_2f_boss_enter_call");
+ killmonster(instance_mapname("2@nyd"), instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead");
+ disablenpc(instance_npcname("nyd_2f_boss_enter_call"));
end;
OnTimer180000:
- stopnpctimer;
+ stopnpctimer();
OnWarpColor:
.@map$ = instance_mapname("2@nyd");
- switch(rand(1,4)) {
+ switch (rand(1, 4)) {
case 1:
- mapannounce .@map$, "Nidhoggur's Shadow : In this chaos... your blood is just what I need.",bc_map,"0xFFFF00";
- donpcevent instance_npcname("nyd_2f_white")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_yellow")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_green")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_red")+"::OnEnable";
- instance_warpall .@map$,115,278;
+ mapannounce(.@map$, _("Nidhoggur's Shadow : In this chaos... your blood is just what I need."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("nyd_2f_white")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_yellow")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_green")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_red")+"::OnEnable");
+ instance_warpall(.@map$, 115, 278);
end;
case 2:
- mapannounce .@map$, "Nidhoggur's Shadow : I will freeze every last drop of your blood.",bc_map,"0xFFFF00";
- donpcevent instance_npcname("nyd_2f_red")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_yellow")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_green")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_white")+"::OnEnable";
- instance_warpall .@map$,115,373;
+ mapannounce(.@map$, _("Nidhoggur's Shadow : I will freeze every last drop of your blood."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("nyd_2f_red")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_yellow")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_green")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_white")+"::OnEnable");
+ instance_warpall(.@map$, 115, 373);
end;
case 3:
- mapannounce .@map$, "Nidhoggur's Shadow : Sleep for eternity in an empty illusion.",bc_map,"0xFFFF00";
- donpcevent instance_npcname("nyd_2f_red")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_white")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_green")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_yellow")+"::OnEnable";
- instance_warpall .@map$,284,278;
+ mapannounce(.@map$, _("Nidhoggur's Shadow : Sleep for eternity in an empty illusion."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("nyd_2f_red")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_white")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_green")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_yellow")+"::OnEnable");
+ instance_warpall(.@map$, 284, 278);
end;
case 4:
- mapannounce .@map$, "Nidhoggur's Shadow : I'll let you enjoy the pain of dying slowly.",bc_map,"0xFFFF00";
- donpcevent instance_npcname("nyd_2f_red")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_white")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_yellow")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_green")+"::OnEnable";
- instance_warpall .@map$,284,374;
+ mapannounce(.@map$, _("Nidhoggur's Shadow : I'll let you enjoy the pain of dying slowly."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("nyd_2f_red")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_white")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_yellow")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_green")+"::OnEnable");
+ instance_warpall(.@map$, 284, 374);
end;
}
end;
OnMyMobDead:
.@map$ = instance_mapname("2@nyd");
- if (mobcount(.@map$,instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead") < 1) {
- mapannounce .@map$, "Nidhoggur's Shadow : World Tree Yggdrasil's guardian... his powers are disappearing...",bc_map,"0x00ff99";
- donpcevent instance_npcname("World Tree Yggdrasil#2F")+"::OnEnable";
- donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_boss_enter_logic")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_red_c")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_white_c")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_yellow_c")+"::OnDisable";
- donpcevent instance_npcname("nyd_2f_green_c")+"::OnDisable";
+ if (mobcount(.@map$, instance_npcname("nyd_2f_boss_enter_call")+"::OnMyMobDead") < 1) {
+ mapannounce(.@map$, _("Nidhoggur's Shadow : World Tree Yggdrasil's guardian... his powers are disappearing..."), bc_map, C_SPRINGGREEN);
+ donpcevent(instance_npcname("World Tree Yggdrasil#2F")+"::OnEnable");
+ donpcevent(instance_npcname("nyd_2f_boss_enter_call")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_boss_enter_logic")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_red_c")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_white_c")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_yellow_c")+"::OnDisable");
+ donpcevent(instance_npcname("nyd_2f_green_c")+"::OnDisable");
'ins_nyd2 = 4;
end;
}
@@ -1947,203 +1959,203 @@ OnMyMobDead:
2@nyd,2,4,0 script nyd_2f_boss_enter_logic FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("nyd_2f_boss_enter_logic");
+ disablenpc(instance_npcname("nyd_2f_boss_enter_logic"));
end;
OnEnable:
- stopnpctimer;
- initnpctimer;
+ stopnpctimer();
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- disablenpc instance_npcname("nyd_2f_boss_enter_logic");
+ stopnpctimer();
+ disablenpc(instance_npcname("nyd_2f_boss_enter_logic"));
end;
OnTimer180000:
- stopnpctimer;
- donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnWarpColor";
+ stopnpctimer();
+ donpcevent(instance_npcname("nyd_2f_boss_enter_call")+"::OnWarpColor");
end;
}
2@nyd,202,324,5 script World Tree Yggdrasil#2F 4_F_FAIRYKID2,3,3,{
- mes "[World Tree Yggdrasil]";
- mes "Thank you. You're the saviour of humans and the Laphine Tribe.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "You've defeated Nidhoggur's Shadow. But...It's not gone for good. Its powers are merely put to sleep.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "But you have won us plenty of time. This is great.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Please go and report this to those in charge of Splendide and Manuk.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "As you have seen, neither the Sapha tribe nor the Laphine tribe is at fault for the weakening of the World Tree. It's all because of the Guardian's Shadow...";
- next;
- mes "[World Tree Yggdrasil]";
- mes "The Guardian's insanity...is caused by powers unknown to us... You must tell this to everyone.";
- next;
- mes "[World Tree Yggdrasil]";
- mes "Now... Allow me to escort you out of the cursed nest.";
- next;
- switch(select("Please let me out.", "I want to look around for a while.")) {
+ mes("[World Tree Yggdrasil]");
+ mes("Thank you. You're the saviour of humans and the Laphine Tribe.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("You've defeated Nidhoggur's Shadow. But...It's not gone for good. Its powers are merely put to sleep.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("But you have won us plenty of time. This is great.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Please go and report this to those in charge of Splendide and Manuk.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("As you have seen, neither the Sapha tribe nor the Laphine tribe is at fault for the weakening of the World Tree. It's all because of the Guardian's Shadow...");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("The Guardian's insanity...is caused by powers unknown to us... You must tell this to everyone.");
+ next();
+ mes("[World Tree Yggdrasil]");
+ mes("Now... Allow me to escort you out of the cursed nest.");
+ next();
+ switch (select("Please let me out.", "I want to look around for a while.")) {
case 1:
'ins_nyd2 = 0;
ins_nyd = 203;
- //setquest 3135;
- warp "nyd_dun02",98,196;
+ //setquest(3135);
+ warp("nyd_dun02", 98, 196);
end;
case 2:
- mes "[World Tree Yggdrasil]";
- mes "Is that so... I'll be around if you want to leave.";
- close;
+ mes("[World Tree Yggdrasil]");
+ mes("Is that so... I'll be around if you want to leave.");
+ close();
}
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("World Tree Yggdrasil#2F");
+ disablenpc(instance_npcname("World Tree Yggdrasil#2F"));
end;
OnEnable:
- enablenpc instance_npcname("World Tree Yggdrasil#2F");
- mapannounce instance_mapname("2@nyd"), "World Tree Yggdrasil : You did good. Have everyone go to the Magic Circle in the middle, and get ready for the destruction of the nest.",bc_map,"0x00ff99";
+ enablenpc(instance_npcname("World Tree Yggdrasil#2F"));
+ mapannounce(instance_mapname("2@nyd"), _("World Tree Yggdrasil : You did good. Have everyone go to the Magic Circle in the middle, and get ready for the destruction of the nest."), bc_map, C_SPRINGGREEN);
end;
}
2@nyd,115,278,0 script nyd_2f_red FAKE_NPC,5,5,{
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp1")+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp2")+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp3")+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_c")+"::OnEnable";
- initnpctimer;
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp1")+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp2")+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp3")+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_c")+"::OnEnable");
+ initnpctimer();
end;
OnDisable:
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp1")+"::OnDisable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp2")+"::OnDisable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME)+"_warp3")+"::OnDisable";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp1")+"::OnDisable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp2")+"::OnDisable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME)+"_warp3")+"::OnDisable");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- if (compare(strnpcinfo(NPC_NAME),"red")) {
- percentheal -50,0;
- percentheal -30,0;
- sc_start SC_BLOODING,60000,0;
- } else if (compare(strnpcinfo(NPC_NAME),"white")) {
- percentheal -50,0;
- sc_start SC_FREEZE,20000,0;
- } else if (compare(strnpcinfo(NPC_NAME),"yellow")) {
- percentheal 0,-50;
- sc_start SC_SLEEP,20000,0;
- sc_start SC_CONFUSION,60000,0;
- } else if (compare(strnpcinfo(NPC_NAME),"green")) {
- percentheal -50,-50;
- sc_start SC_POISON,60000,0;
+ if (compare(strnpcinfo(NPC_NAME), "red")) {
+ percentheal(-50, 0);
+ percentheal(-30, 0);
+ sc_start(SC_BLOODING, 60000, 0);
+ } else if (compare(strnpcinfo(NPC_NAME), "white")) {
+ percentheal(-50, 0);
+ sc_start(SC_FREEZE, 20000, 0);
+ } else if (compare(strnpcinfo(NPC_NAME), "yellow")) {
+ percentheal(0, -50);
+ sc_start(SC_SLEEP, 20000, 0);
+ sc_start(SC_CONFUSION, 60000, 0);
+ } else if (compare(strnpcinfo(NPC_NAME), "green")) {
+ percentheal(-50, -50);
+ sc_start(SC_POISON, 60000, 0);
}
end;
OnTimer10000:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- stopnpctimer;
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ stopnpctimer();
end;
}
2@nyd,6,6,0 script nyd_2f_red_c FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
- initnpctimer;
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ initnpctimer();
.@map$ = instance_mapname("2@nyd");
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- if (compare(strnpcinfo(NPC_NAME),"red")) {
- monster .@map$,120,285,"Nidhoggur's Guardian#1",2020,1,.@label$;
- monster .@map$,119,286,"Nidhoggur's Guardian#2",2020,1,.@label$;
- monster .@map$,120,270,"Nidhoggur's Guardian#3",2020,1,.@label$;
- monster .@map$,119,269,"Nidhoggur's Guardian#4",2021,1,.@label$;
- monster .@map$,118,270,"Nidhoggur's Guardian#5",2021,1,.@label$;
- } else if (compare(strnpcinfo(NPC_NAME),"white")) {
- monster .@map$,120,380,"Nidhoggur's Guardian#1",2020,1,.@label$;
- monster .@map$,119,381,"Nidhoggur's Guardian#2",2020,1,.@label$;
- monster .@map$,120,367,"Nidhoggur's Guardian#3",2020,1,.@label$;
- monster .@map$,119,366,"Nidhoggur's Guardian#4",2021,1,.@label$;
- monster .@map$,118,365,"Nidhoggur's Guardian#5",2021,1,.@label$;
- } else if (compare(strnpcinfo(NPC_NAME),"yellow")) {
- monster .@map$,282,284,"Nidhoggur's Guardian#1",2020,1,.@label$;
- monster .@map$,283,283,"Nidhoggur's Guardian#2",2020,1,.@label$;
- monster .@map$,280,275,"Nidhoggur's Guardian#3",2020,1,.@label$;
- monster .@map$,281,276,"Nidhoggur's Guardian#4",2021,1,.@label$;
- monster .@map$,281,277,"Nidhoggur's Guardian#5",2021,1,.@label$;
- } else if (compare(strnpcinfo(NPC_NAME),"green")) {
- monster .@map$,282,378,"Nidhoggur's Guardian#1",2020,1,.@label$;
- monster .@map$,283,377,"Nidhoggur's Guardian#2",2020,1,.@label$;
- monster .@map$,280,368,"Nidhoggur's Guardian#3",2020,1,.@label$;
- monster .@map$,281,368,"Nidhoggur's Guardian#4",2021,1,.@label$;
- monster .@map$,281,367,"Nidhoggur's Guardian#5",2021,1,.@label$;
+ if (compare(strnpcinfo(NPC_NAME), "red")) {
+ monster(.@map$, 120, 285, _("Nidhoggur's Guardian#1"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 119, 286, _("Nidhoggur's Guardian#2"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 120, 270, _("Nidhoggur's Guardian#3"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 119, 269, _("Nidhoggur's Guardian#4"), PHYLLA, 1, .@label$);
+ monster(.@map$, 118, 270, _("Nidhoggur's Guardian#5"), PHYLLA, 1, .@label$);
+ } else if (compare(strnpcinfo(NPC_NAME), "white")) {
+ monster(.@map$, 120, 380, _("Nidhoggur's Guardian#1"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 119, 381, _("Nidhoggur's Guardian#2"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 120, 367, _("Nidhoggur's Guardian#3"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 119, 366, _("Nidhoggur's Guardian#4"), PHYLLA, 1, .@label$);
+ monster(.@map$, 118, 365, _("Nidhoggur's Guardian#5"), PHYLLA, 1, .@label$);
+ } else if (compare(strnpcinfo(NPC_NAME), "yellow")) {
+ monster(.@map$, 282, 284, _("Nidhoggur's Guardian#1"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 283, 283, _("Nidhoggur's Guardian#2"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 280, 275, _("Nidhoggur's Guardian#3"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 281, 276, _("Nidhoggur's Guardian#4"), PHYLLA, 1, .@label$);
+ monster(.@map$, 281, 277, _("Nidhoggur's Guardian#5"), PHYLLA, 1, .@label$);
+ } else if (compare(strnpcinfo(NPC_NAME), "green")) {
+ monster(.@map$, 282, 378, _("Nidhoggur's Guardian#1"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 283, 377, _("Nidhoggur's Guardian#2"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 280, 368, _("Nidhoggur's Guardian#3"), RHYNCHO, 1, .@label$);
+ monster(.@map$, 281, 368, _("Nidhoggur's Guardian#4"), PHYLLA, 1, .@label$);
+ monster(.@map$, 281, 367, _("Nidhoggur's Guardian#5"), PHYLLA, 1, .@label$);
}
end;
OnMyMobDead:
.@map$ = instance_mapname("2@nyd");
- if (mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
- mapannounce .@map$, "Nidhoggur's Shadow : You're not bad... but I will be your opponent this time.",bc_map,"0x00ff99";
- donpcevent instance_npcname("nyd_2f_boss_enter_logic")+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable";
+ if (mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
+ mapannounce(.@map$, _("Nidhoggur's Shadow : You're not bad... but I will be your opponent this time."), bc_map, C_SPRINGGREEN);
+ donpcevent(instance_npcname("nyd_2f_boss_enter_logic")+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable");
end;
}
end;
/*
OnReset: // Label not called.
- killmonster instance_mapname("2@nyd"),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable";
+ killmonster(instance_mapname("2@nyd"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable");
end;
*/
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("2@nyd"),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead"; //custom
- donpcevent instance_npcname(substr(strnpcinfo(NPC_NAME),0,getstrlen(strnpcinfo(NPC_NAME))-3))+"::OnDisable";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ stopnpctimer();
+ killmonster(instance_mapname("2@nyd"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead"); //custom
+ donpcevent(instance_npcname(substr(strnpcinfo(NPC_NAME), 0, getstrlen(strnpcinfo(NPC_NAME)) - 3))+"::OnDisable");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTimer180000:
- killmonster instance_mapname("2@nyd"),instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- stopnpctimer;
- donpcevent instance_npcname("nyd_2f_boss_enter_call")+"::OnWarpColor";
+ killmonster(instance_mapname("2@nyd"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
+ stopnpctimer();
+ donpcevent(instance_npcname("nyd_2f_boss_enter_call")+"::OnWarpColor");
end;
}
2@nyd,130,298,0 script nyd_2f_red_warp1 FAKE_NPC,6,6,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- if (compare(strnpcinfo(NPC_NAME),"red"))
- warp instance_mapname("2@nyd"),115,278;
- else if (compare(strnpcinfo(NPC_NAME),"white"))
- warp instance_mapname("2@nyd"),115,373;
- else if (compare(strnpcinfo(NPC_NAME),"yellow"))
- warp instance_mapname("2@nyd"),284,278;
- else if (compare(strnpcinfo(NPC_NAME),"green"))
- warp instance_mapname("2@nyd"),284,374;
+ if (compare(strnpcinfo(NPC_NAME), "red"))
+ warp(instance_mapname("2@nyd"), 115, 278);
+ else if (compare(strnpcinfo(NPC_NAME), "white"))
+ warp(instance_mapname("2@nyd"), 115, 373);
+ else if (compare(strnpcinfo(NPC_NAME), "yellow"))
+ warp(instance_mapname("2@nyd"), 284, 278);
+ else if (compare(strnpcinfo(NPC_NAME), "green"))
+ warp(instance_mapname("2@nyd"), 284, 374);
end;
}
2@nyd,142,296,0 duplicate(nyd_2f_red_warp1) nyd_2f_red_warp2 FAKE_NPC,6,6
@@ -2170,129 +2182,133 @@ OnTouch:
2@nyd,1,1,0 script ins_nyd2_spawn_mobs FAKE_NPC,{
OnInstanceInit:
.@map$ = instance_mapname("2@nyd"); //temp fix since all mobs spawn on the same (inaccessable) area
- areamonster .@map$,14,20,382,180,"Rhyncho",2020,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyRhynDead";
- areamonster .@map$,14,20,382,180,"Phylla",2021,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPhyDead";
- areamonster .@map$,14,20,382,180,"Dark Shadow",2023,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyDarkshaDead";
- areamonster .@map$,14,20,382,180,"Dark Pinguicula",2015,40,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPingDead";
+ areamonster(.@map$, 14, 20, 382, 180, _("Rhyncho"), RHYNCHO, 40, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyRhynDead");
+ areamonster(.@map$, 14, 20, 382, 180, _("Phylla"), PHYLLA, 40, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPhyDead");
+ areamonster(.@map$, 14, 20, 382, 180, _("Dark Shadow"), DARK_SHADOW, 40, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyDarkshaDead");
+ areamonster(.@map$, 14, 20, 382, 180, _("Dark Pinguicula"), PINGUICULA_D, 40, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPingDead");
end;
OnMyRhynDead:
- areamonster instance_mapname("2@nyd"),14,20,382,180,"Rhyncho",2020,1,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyRhynDead";
+ areamonster(instance_mapname("2@nyd"), 14, 20, 382, 180, _("Rhyncho"), RHYNCHO, 1, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyRhynDead");
end;
OnMyPhyDead:
- areamonster instance_mapname("2@nyd"),14,20,382,180,"Phylla",2021,1,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPhyDead";
+ areamonster(instance_mapname("2@nyd"), 14, 20, 382, 180, _("Phylla"), PHYLLA, 1, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPhyDead");
end;
OnMyDarkshaDead:
- areamonster instance_mapname("2@nyd"),14,20,382,180,"Dark Shadow",2023,1,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyDarkshaDead";
+ areamonster(instance_mapname("2@nyd"), 14, 20, 382, 180, _("Dark Shadow"), DARK_SHADOW, 1, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyDarkshaDead");
end;
OnMyPingDead:
- areamonster instance_mapname("2@nyd"),14,20,382,180,"Dark Pinguicula",2015,1,instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPingDead";
+ areamonster(instance_mapname("2@nyd"), 14, 20, 382, 180, _("Dark Pinguicula") , PINGUICULA_D, 1, instance_npcname("ins_nyd2_spawn_mobs")+"::OnMyPingDead");
end;
}
//== GM Management NPCs ====================================
sec_in02,36,167,3 script Nidhoggur Manager 4_M_FAIRYSOLDIER,1,1,{
- callfunc "F_GM_NPC";
- mes "Enter the password.";
- next;
- if (callfunc("F_GM_NPC","1854",1) == 0) {
- mes "Incorrect password.";
- close;
+ callfunc("F_GM_NPC");
+ mes("Enter the password.");
+ next();
+ if (callfunc("F_GM_NPC", "1854", 1) == 0) {
+ mes("Incorrect password.");
+ close();
}
- mes "What do you need to do?";
- next;
- switch(select("Reset variables to allow entrance to Nidhoggur", "change variable 'ins_nyd'", "Remove 3 day timer 3135", "Confirm variable number")) {
+ mes("What do you need to do?");
+ next();
+ switch (select("Reset variables to allow entrance to Nidhoggur", "change variable 'ins_nyd'", "Remove 3 day timer 3135", "Confirm variable number")) {
case 1:
ins_nyd = 200;
ins_nyd2 = 0;
- erasequest 3135;
- mes "ins_nyd set to 200 ins_nyd2 set to 0";
- mes "quest 3135 erased.";
- close;
+ erasequest(3135);
+ mes("ins_nyd set to 200 ins_nyd2 set to 0");
+ mes("quest 3135 erased.");
+ close();
case 2:
- mes "Which variable do you want to change?";
- next;
- switch(select("ins_nyd", "ins_nyd2")) {
- case 1: .@var$ = "ins_nyd"; break;
- case 2: .@var$ = "ins_nyd2"; break;
+ mes("Which variable do you want to change?");
+ next();
+ switch (select("ins_nyd", "ins_nyd2")) {
+ case 1:
+ .@var$ = "ins_nyd";
+ break;
+ case 2:
+ .@var$ = "ins_nyd2";
+ break;
}
- mes "Input the variable number";
- next;
- input .@input;
- setd .@var$, .@input;
- mes .@var$+" has been set to "+.@input+" .";
- close;
+ mes("Input the variable number");
+ next();
+ input(.@input);
+ setd(.@var$, .@input);
+ mesf("%s has been set to %d.", .@var$, .@input);
+ close();
case 3:
- mes "The 3 day timer will be removed when you close this dialog.";
- next;
- erasequest 3135;
- mes "Finished removing Quest Timer.";
- close;
+ mes("The 3 day timer will be removed when you close this dialog.");
+ next();
+ erasequest(3135);
+ mes("Finished removing Quest Timer.");
+ close();
case 4:
- mes "ins_nyd is at "+ins_nyd+".";
- mes "ins_nyd2 is at "+ins_nyd2+".";
- close;
+ mesf("ins_nyd is at %d.", ins_nyd);
+ mesf("ins_nyd2 is at %d.", ins_nyd2);
+ close();
}
}
nyd_dun02,7,7,2 script Purification Admin#nyd2 CLEAR_NPC,2,0,{
- callfunc "F_GM_NPC";
- mes "Please enter the password";
- .@i = callfunc("F_GM_NPC","dragonslayer",1);
- next;
+ callfunc("F_GM_NPC");
+ mes("Please enter the password");
+ .@i = callfunc("F_GM_NPC", "dragonslayer", 1);
+ next();
if (.@i == 0) {
- mes "Enter the password exactly.";
- close;
+ mes("Enter the password exactly.");
+ close();
}
- switch(select("Generate Purification Stone", "Remove Purification Stone", "Turn Entrance NPC OFF", "Turn Entrance NPC On", "Cancel")) {
+ switch (select("Generate Purification Stone", "Remove Purification Stone", "Turn Entrance NPC OFF", "Turn Entrance NPC On", "Cancel")) {
case 1:
- mes "Purification stone has been created and will stay on for 30 minutes.";
- donpcevent "Purification Stone#nyd2::OnEnable";
- close;
+ mes("Purification stone has been created and will stay on for 30 minutes.");
+ donpcevent("Purification Stone#nyd2::OnEnable");
+ close();
case 2:
- mes "The Purification Stone has been destroyed.";
- donpcevent "Purification Stone#nyd2::OnDisable";
- close;
+ mes("The Purification Stone has been destroyed.");
+ donpcevent("Purification Stone#nyd2::OnDisable");
+ close();
case 3:
- mes "The Yggdrasil Gatekeeper at nyd_dun02 100 201 is now OFF.";
- disablenpc "Yggdrasil Gatekeeper";
- close;
+ mes("The Yggdrasil Gatekeeper at nyd_dun02 100 201 is now OFF.");
+ disablenpc("Yggdrasil Gatekeeper");
+ close();
case 4:
- mes "The Yggdrasil Gatekeeper at nyd_dun02 100 201 is now On.";
- enablenpc "Yggdrasil Gatekeeper";
- close;
+ mes("The Yggdrasil Gatekeeper at nyd_dun02 100 201 is now On.");
+ enablenpc("Yggdrasil Gatekeeper");
+ close();
case 5:
- close;
+ close();
}
}
nyd_dun02,88,195,4 script Purification Stone#nyd2 2_MONEMUS,{
- erasequest 3135;
- erasequest 3136;
+ erasequest(3135);
+ erasequest(3136);
ins_nyd = 200;
ins_nyd2 = 0;
- mes "^0000FFThe records and after-effect related to the Nidhoggur's Nest have been removed. You can generate and enter the dungeon again.^000000";
- close;
+ mes("^0000FFThe records and after-effect related to the Nidhoggur's Nest have been removed. You can generate and enter the dungeon again.^000000");
+ close();
OnInit:
- disablenpc "Purification Stone#nyd2";
+ disablenpc("Purification Stone#nyd2");
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- disablenpc "Purification Stone#nyd2";
+ stopnpctimer();
+ disablenpc("Purification Stone#nyd2");
end;
OnTimer1000:
- enablenpc "Purification Stone#nyd2";
+ enablenpc("Purification Stone#nyd2");
end;
OnTimer1740000:
- mapannounce "nyd_dun02","The Purification Stone will be destroyed in one minute.",bc_map,"0x00FF99",FW_NORMAL,12;
+ mapannounce("nyd_dun02", _("The Purification Stone will be destroyed in one minute."), bc_map, C_SPRINGGREEN, FW_NORMAL, 12);
end;
OnTimer1800000:
- disablenpc "Purification Stone#nyd2";
+ disablenpc("Purification Stone#nyd2");
end;
}
diff --git a/npc/instances/OrcsMemory.txt b/npc/instances/OrcsMemory.txt
index 28cc9bbd5..1aaf2fd42 100644
--- a/npc/instances/OrcsMemory.txt
+++ b/npc/instances/OrcsMemory.txt
@@ -38,132 +38,136 @@ gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{
.@party_id = getcharid(CHAR_ID_PARTY);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Orc's Memory";
+ .@md_name$ = _("Orc's Memory");
- if (!instance_check_party(.@party_id,2,30,80)) {
- mes "Only users between Levels ^ff000030 ~ 80^000000 can enter this Dungeon.";
- close;
+ if (!instance_check_party(.@party_id, 2, 30, 80)) {
+ mes("Only users between Levels ^ff000030 ~ 80^000000 can enter this Dungeon.");
+ close();
}
- .@orctime = questprogress(12059,PLAYTIME);
+ .@orctime = questprogress(12059, PLAYTIME);
if (.@orctime == 2) {
- mes "^0000ffAll records and after-effects related to the Orc's Memory Dungeon are deleted. You can now regenerate or re-enter the dungeon.^000000";
- erasequest 12059;
- close;
+ mes("^0000ffAll records and after-effects related to the Orc's Memory Dungeon are deleted. You can now regenerate or re-enter the dungeon.^000000");
+ erasequest(12059);
+ close();
}
if (.@orctime == 1) {
- mes "You can enter the Dungeon if it has been generated.";
- next;
- if(select("Enter the Dungeon "+.@md_name$, "Cancel") == 2)
- close;
+ mes("You can enter the Dungeon if it has been generated.");
+ next();
+ .@str$ = sprintf(_$("Enter the Dungeon %s"), .@md_name$);
+ if (select(.@str$, "Cancel") == 2)
+ close();
// Fall through to access the dungeon
} else { // !.@orctime
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "Party status confirmed. Would you like to book entrance to the "+.@md_name$+"?";
- next;
- switch(select("Reserve the "+.@md_name$, "Enter the Dungeon", "Cancel")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mesf("Party status confirmed. Would you like to book entrance to the %s?", .@md_name$);
+ next();
+ .@str$ = sprintf(_$("Reserve the %s"), .@md_name$);
+ switch (select(.@str$, "Enter the Dungeon", "Cancel")) {
case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Party Name: "+.@p_name$;
- mes "Party Leader: "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+" ^000000 - Reservation Failed.";
- close;
+ mesf("Party Name: %s", .@p_name$);
+ mesf("Party Leader: %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s ^000000 - Reservation Failed.", .@md_name$);
+ close();
}
- mes "^0000ff"+.@md_name$+"^000000- Attempting to book an entrance";
+ mesf("^0000ff%s^000000- Attempting to book an entrance", .@md_name$);
for (.@i = 1; .@i <= 2; ++.@i) {
- if( instance_attachmap(.@i + "@orcs", .@instance) == "" )
+ if (instance_attachmap(.@i + "@orcs", .@instance) == "")
break;
}
- if( .@i < 2 ) {
+ if (.@i < 2) {
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 7200,300,.@instance;
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "After making a reservation, you have to select 'Enter the Dungeon' from the menu if you wish to enter the "+.@md_name$+".";
- close;
+ mesf("After making a reservation, you have to select 'Enter the Dungeon' from the menu if you wish to enter the %s.", .@md_name$);
+ close();
case 2:
break; // Fall through to access the dungeon (after the else)
case 3:
- close;
+ close();
}
- } else if (select(.@md_name$ + " Enter the Memorial Dungeon", "Cancel") == 2)
+ } else if (select(sprintf(_$("%s Enter the Memorial Dungeon"), .@md_name$), "Cancel") == 2) {
end;
+ }
// Else access the dungeon
}
// Dungeon access
if (has_instance("1@orcs") == "") {
- mes "Memorial Dungeon "+.@md_name$+" does not exist.";
- mes "The party leader has not reserved entrance to the dungeon yet.";
- next;
- mes "Once the reservation is complete, the dungeon will be generated.";
- mes "If your dungeon has been destroyed you must wait 7 days before re-entering.";
- close;
+ mesf("Memorial Dungeon %s does not exist.", .@md_name$);
+ mes("The party leader has not reserved entrance to the dungeon yet.");
+ next();
+ mes("Once the reservation is complete, the dungeon will be generated.");
+ mes("If your dungeon has been destroyed you must wait 7 days before re-entering.");
+ close();
}
- mapannounce "gef_fild10", strcharinfo(PC_NAME) + " of the party, " + .@p_name$ + " is entering the "+.@md_name$+".",bc_map,"0x00ff99";
- if (!questprogress(12059)) setquest 12059;
- warp "1@orcs",179,15;
+ mapannounce("gef_fild10", sprintf(_$("%s of the party, %s is entering the %s."), strcharinfo(PC_NAME), .@p_name$, .@md_name$), bc_map, C_SPRINGGREEN);
+ if (!questprogress(12059))
+ setquest(12059);
+ warp("1@orcs", 179, 15);
end;
}
gef_fild10,238,202,6 script Mad Scientist#orc 4_LGTSCIENCE,{
if (BaseLevel < 50) {
- mes "The Mad Scientist doesn't seem to notice you and keeps mumbling to himself...";
- close;
+ mes("The Mad Scientist doesn't seem to notice you and keeps mumbling to himself...");
+ close();
}
if (mad == 0) {
- mes "[Mad Scientist]";
- mes "Haha, no Orcs are coming near me!";
- mes "The power of the Dimensional Gorge is undefeatable!!";
- next;
- switch(select("Orcs don't attack you?", "You wish!")) {
+ mes("[Mad Scientist]");
+ mes("Haha, no Orcs are coming near me!");
+ mes("The power of the Dimensional Gorge is undefeatable!!");
+ next();
+ switch (select("Orcs don't attack you?", "You wish!")) {
case 1:
- mes "[Mad Scientist]";
- mes "Yeah, yeah.. I know it's hard to belive. I don't blame ya.";
- mes "I used to study the Dimensional Gorge discovered near Morroc.";
- mes "According to my research, the minerals found there have enormous power inside them!";
- next;
+ mes("[Mad Scientist]");
+ mes("Yeah, yeah.. I know it's hard to belive. I don't blame ya.");
+ mes("I used to study the Dimensional Gorge discovered near Morroc.");
+ mes("According to my research, the minerals found there have enormous power inside them!");
+ next();
break;
case 2:
- mes "[Mad Scientist]";
- mes "You are a pretty distrustful person, huh?";
- next;
+ mes("[Mad Scientist]");
+ mes("You are a pretty distrustful person, huh?");
+ next();
break;
}
select("Oh? Like what, travel to alternate space?");
- mes "[Mad Scientist]";
- mes "Very smart! I have actually just done that! See that statue over there? It's not your normal Monolith!";
- next;
- mes "[Mad Scientist]";
- mes "I have created it with a combination of our technology and the unlimited energy I discovered from the Gorge! Want to try it?";
- next;
+ mes("[Mad Scientist]");
+ mes("Very smart! I have actually just done that! See that statue over there? It's not your normal Monolith!");
+ next();
+ mes("[Mad Scientist]");
+ mes("I have created it with a combination of our technology and the unlimited energy I discovered from the Gorge! Want to try it?");
+ next();
select("...Um, that doesn't sound legal?");
- mes "[Mad Scientist]";
- mes "Hey, since when did something so interesting have to be legal!? How about it! You can talk to the Orcs! C'mon!";
- next;
- mes "[Mad Scientist]";
- mes "Chances are they'll just give you lots of instructions once they see you, so just wing it! They're always saying the same thing, to the point where I memorized them!";
- next;
- switch(select("Alright... What do I do?", "Umm, maybe not.")) {
+ mes("[Mad Scientist]");
+ mes("Hey, since when did something so interesting have to be legal!? How about it! You can talk to the Orcs! C'mon!");
+ next();
+ mes("[Mad Scientist]");
+ mes("Chances are they'll just give you lots of instructions once they see you, so just wing it! They're always saying the same thing, to the point where I memorized them!");
+ next();
+ switch (select("Alright... What do I do?", "Umm, maybe not.")) {
case 1:
- mes "[Mad Scientist]";
- mes "Very good! Just sit in the hands of this statue! And try to act natural when you're in there!";
+ mes("[Mad Scientist]");
+ mes("Very good! Just sit in the hands of this statue! And try to act natural when you're in there!");
mad = 1;
- close;
+ close();
case 2:
- mes "[Mad Scientist]";
- mes "Oh fine, be that way!";
- close;
+ mes("[Mad Scientist]");
+ mes("Oh fine, be that way!");
+ close();
}
} else if (mad == 1) {
- mes "[Mad Scientist]";
- mes "Hmm? Put your hand on that Monemus Statue if you want to experience traveling through dimensions!";
- close;
+ mes("[Mad Scientist]");
+ mes("Hmm? Put your hand on that Monemus Statue if you want to experience traveling through dimensions!");
+ close();
} else {
mad = 1;
end;
@@ -175,60 +179,53 @@ gef_fild10,238,202,6 script Mad Scientist#orc 4_LGTSCIENCE,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Resurrect Monsters1");
+ disablenpc(instance_npcname("#Resurrect Monsters1"));
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@orcs"),instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
+ stopnpctimer();
+ killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
end;
OnEnable:
- enablenpc instance_npcname("#Resurrect Monsters1");
- monster instance_mapname("1@orcs"),0,0,"Orc Warrior",1023,30,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#Resurrect Monsters1"));
+ monster(instance_mapname("1@orcs"), 0, 0, _("Orc Warrior"), ORK_WARRIOR, 30, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@orcs");
- .@mob_dead_num = 30 - mobcount(.@map$,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ .@mob_dead_num = 30 - mobcount(.@map$, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
- .@mob_ran = rand(1,30);
+ .@mob_ran = rand(1, 30);
if (.@mob_ran > 29) {
- monster .@map$,0,0,"Orc Warrior",1023,.@mob_dead_num,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
- }
- else if ((.@mob_ran > 28) && (.@mob_ran < 30)) {
- monster .@map$,0,0,"High Orc",1213,.@mob_dead_num,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
- if (rand(1,10) == 9) {
- mapannounce .@map$, "High Orc: We need more defenses! Get more people here!",bc_map,"0xff4444";
- }
- }
- else if ((.@mob_ran > 26) && (.@mob_ran < 29)) {
- areamonster .@map$,41,91,51,81,"High Orc",1213,.@mob_dead_num,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
- if (rand(1,10) == 9) {
- mapannounce .@map$, "Where are the High Orcs!? Get them to stop the enemies!",bc_map,"0xff4444";
- }
- }
- else {
- areamonster .@map$,17,187,27,177,"High Orc",1213,.@mob_dead_num,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
- if (rand(1,5) == 3) {
- mapannounce .@map$, "Caution: The army's starting to concentrate at Zone No. 4.",bc_map,"0x77ff77";
- }
- if (rand(1,100) == 50) {
- initnpctimer;
- }
+ monster(.@map$, 0, 0, _("Orc Warrior"), ORK_WARRIOR, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ } else if (.@mob_ran > 28 && .@mob_ran < 30) {
+ monster(.@map$, 0, 0, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ if (rand(1, 10) == 9)
+ mapannounce(.@map$, _("High Orc: We need more defenses! Get more people here!"), bc_map, "0xff4444");
+ } else if (.@mob_ran > 26 && .@mob_ran < 29) {
+ areamonster(.@map$, 41, 91, 51, 81, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ if (rand(1, 10) == 9)
+ mapannounce(.@map$, _("Where are the High Orcs!? Get them to stop the enemies!"), bc_map, "0xff4444");
+ } else {
+ areamonster(.@map$, 17, 187, 27, 177, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ if (rand(1, 5) == 3)
+ mapannounce(.@map$, _("Caution: The army's starting to concentrate at Zone No. 4."), bc_map, "0x77ff77");
+ if (rand(1, 100) == 50)
+ initnpctimer();
}
}
end;
OnTimer10:
- mapannounce instance_mapname("1@orcs"), "Shouts of the Chief Orc of Safeguards: Looks like this will take longer than expected. Summon the Stalactic Golems!",bc_map,"0xff4444";
+ mapannounce(instance_mapname("1@orcs"), _("Shouts of the Chief Orc of Safeguards: Looks like this will take longer than expected. Summon the Stalactic Golems!"), bc_map, "0xff4444");
end;
OnTimer4010:
.@map$ = instance_mapname("1@orcs");
- mapannounce .@map$, "Stalactic Golems are digging out of the deep underground.",bc_map,"0x77ff77";
- areamonster .@map$,17,187,27,177,"Stalactic Golem",1278,20,instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead";
- stopnpctimer;
+ mapannounce(.@map$, _("Stalactic Golems are digging out of the deep underground."), bc_map, "0x77ff77");
+ areamonster(.@map$, 17, 187, 27, 177, _("Stalactic Golem"), STALACTIC_GOLEM, 20, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead");
+ stopnpctimer();
end;
}
@@ -236,30 +233,27 @@ OnTimer4010:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Resurrect Monsters2");
+ disablenpc(instance_npcname("#Resurrect Monsters2"));
end;
OnDisable:
- killmonster instance_mapname("1@orcs"),instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
end;
OnEnable:
- enablenpc instance_npcname("#Resurrect Monsters2");
- monster instance_mapname("1@orcs"),0,0,"Trained Wolf",1106,15,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#Resurrect Monsters2"));
+ monster(instance_mapname("1@orcs"), 0, 0, _("Trained Wolf"), DESERT_WOLF, 15, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@orcs");
- .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
- if (rand(1,30) > 15) {
- if (.@mob_dead_num > 0) {
- monster .@map$,0,0,"Trained Wolf",1106,.@mob_dead_num,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead";
- }
- }
- else {
- if (.@mob_dead_num > 0) {
- areamonster .@map$,17,187,27,177,"Trained Wolf",1106,.@mob_dead_num,instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead";
- }
+ .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
+ if (rand(1, 30) > 15) {
+ if (.@mob_dead_num > 0)
+ monster(.@map$, 0, 0, _("Trained Wolf"), DESERT_WOLF, .@mob_dead_num, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
+ } else {
+ if (.@mob_dead_num > 0)
+ areamonster(.@map$, 17, 187, 27, 177, _("Trained Wolf"), DESERT_WOLF, .@mob_dead_num, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead");
}
end;
}
@@ -268,39 +262,34 @@ OnMyMobDead:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Resurrect Monsters3");
+ disablenpc(instance_npcname("#Resurrect Monsters3"));
end;
OnDisable:
- killmonster instance_mapname("1@orcs"),instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
end;
OnEnable:
- enablenpc instance_npcname("#Resurrect Monsters3");
- monster instance_mapname("1@orcs"),0,0,"Orc Archer",1189,15,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#Resurrect Monsters3"));
+ monster(instance_mapname("1@orcs"), 0, 0, _("Orc Archer"), ORC_ARCHER, 15, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@orcs");
- .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
- .@mob_ran = rand(1,30);
+ .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
+ .@mob_ran = rand(1, 30);
if (.@mob_ran > 29) {
+ if (.@mob_dead_num > 0)
+ monster(.@map$, 0, 0, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
+ } else if (.@mob_ran > 26 && .@mob_ran < 30) {
if (.@mob_dead_num > 0) {
- monster .@map$,0,0,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
- }
- }
- else if ((.@mob_ran > 26) && (.@mob_ran < 30)) {
- if (.@mob_dead_num > 0) {
- areamonster .@map$,43,155,47,159,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
- if (rand(1,3) == 3) {
- mapannounce .@map$, "High Orc: Attack them from behind! Cut off their support!",bc_map,"0xff4444";
- }
- }
- }
- else {
- if (.@mob_dead_num > 0) {
- areamonster .@map$,17,187,27,177,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead";
+ areamonster(.@map$, 43, 155, 47, 159, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
+ if (rand(1, 3) == 3)
+ mapannounce(.@map$, _("High Orc: Attack them from behind! Cut off their support!"), bc_map, "0xff4444");
}
+ } else {
+ if (.@mob_dead_num > 0)
+ areamonster(.@map$, 17, 187, 27, 177, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead");
}
end;
}
@@ -309,25 +298,24 @@ OnMyMobDead:
end;
OnInstanceInit:
- enablenpc instance_npcname("#Resurrect Monsters4");
- areamonster instance_mapname("1@orcs"),98,35,178,115,"Anopheles",1627,10,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#Resurrect Monsters4"));
+ areamonster(instance_mapname("1@orcs"), 98, 35, 178, 115, _("Anopheles"), ANOPHELES, 10, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@orcs");
- .@mob_dead_num = 10 - mobcount(.@map$,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
- if (.@mob_dead_num > 0) {
- monster .@map$,0,0,"Anopheles",1627,.@mob_dead_num,instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead";
- }
+ .@mob_dead_num = 10 - mobcount(.@map$, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
+ if (.@mob_dead_num > 0)
+ monster(.@map$, 0, 0, _("Anopheles"), ANOPHELES, .@mob_dead_num, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
end;
OnDisable:
- killmonster instance_mapname("1@orcs"),instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead");
end;
}
1@orcs,180,29,4 script Kruger#1-1 4_ORCWARRIOR,{
- donpcevent instance_npcname("Kruger#1-2")+"::OnEnable";
+ donpcevent(instance_npcname("Kruger#1-2")+"::OnEnable");
end;
}
@@ -335,164 +323,164 @@ OnDisable:
end;
OnInstanceInit:
- disablenpc instance_npcname("Kruger#1-2");
+ disablenpc(instance_npcname("Kruger#1-2"));
end;
OnEnable:
- disablenpc instance_npcname("Kruger#1-1");
- enablenpc instance_npcname("Kruger#1-2");
- initnpctimer;
+ disablenpc(instance_npcname("Kruger#1-1"));
+ enablenpc(instance_npcname("Kruger#1-2"));
+ initnpctimer();
end;
OnTimer10:
- mapannounce instance_mapname("1@orcs"), "Kruger: Damn... What took you so long!! I don't have all day!!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: Damn... What took you so long!! I don't have all day!!"), bc_map, C_YELLOW);
end;
OnTimer5710:
- mapannounce instance_mapname("1@orcs"), "Kruger: My plan was to let our comrades open the gate, but it's all ruined since I got busted by the Orc Shaman.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: My plan was to let our comrades open the gate, but it's all ruined since I got busted by the Orc Shaman."), bc_map, C_YELLOW);
end;
OnTimer14610:
- mapannounce instance_mapname("1@orcs"), "Shouts of the Chief Orc of Safeguards: I smell a rat.. Send some patrols to the entrance!!",bc_map,"0xff4444";
+ mapannounce(instance_mapname("1@orcs"), _("Shouts of the Chief Orc of Safeguards: I smell a rat.. Send some patrols to the entrance!!"), bc_map, "0xff4444");
end;
OnTimer20210:
- mapannounce instance_mapname("1@orcs"), "Kruger: Darn it.. They'll be here any minute. Ok. Listen to me now.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: Darn it.. They'll be here any minute. Ok. Listen to me now."), bc_map, C_YELLOW);
end;
OnTimer24910:
- mapannounce instance_mapname("1@orcs"), "Kruger: The Orc Shaman has sealed the 1st basement by dividing it into 4 zones. Each zone has one Enchanted Orc who has the power to unseal the next zone.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: The Orc Shaman has sealed the 1st basement by dividing it into 4 zones. Each zone has one Enchanted Orc who has the power to unseal the next zone."), bc_map, C_YELLOW);
end;
OnTimer34310:
- mapannounce instance_mapname("1@orcs"), "Kruger: Find those Enchanted Orcs and get rid of them to move to the next zone.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: Find those Enchanted Orcs and get rid of them to move to the next zone."), bc_map, C_YELLOW);
end;
OnTimer39710:
- mapannounce instance_mapname("1@orcs"), "Kruger: Try to avoid encountering Orcs other then the Enchanted ones. Everytime you kill a normal Orc, High Orcs will gather at the last path to the 2nd floor.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: Try to avoid encountering Orcs other then the Enchanted ones. Everytime you kill a normal Orc, High Orcs will gather at the last path to the 2nd floor."), bc_map, C_YELLOW);
end;
OnTimer49210:
- mapannounce instance_mapname("1@orcs"), "Kruger: In the worst case, the path to the 2nd floor could be completely blocked. For your own sake, you should be as sneaky as possible.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger: In the worst case, the path to the 2nd floor could be completely blocked. For your own sake, you should be as sneaky as possible."), bc_map, C_YELLOW);
end;
OnTimer56310:
- mapannounce instance_mapname("1@orcs"), "Mission: Sneak in and get rid of the 'Enchanted Orcs'. Avoiding battles with other Orcs is the best way of getting into the 2nd floor.",bc_map,"0x44ffff";
- donpcevent instance_npcname("#Resurrect Monsters1")+"::OnEnable";
- donpcevent instance_npcname("#Resurrect Monsters2")+"::OnEnable";
- donpcevent instance_npcname("#Resurrect Monsters3")+"::OnEnable";
- disablenpc instance_npcname("Kruger#1-2");
+ mapannounce(instance_mapname("1@orcs"), _("Mission: Sneak in and get rid of the 'Enchanted Orcs'. Avoiding battles with other Orcs is the best way of getting into the 2nd floor."), bc_map, "0x44ffff");
+ donpcevent(instance_npcname("#Resurrect Monsters1")+"::OnEnable");
+ donpcevent(instance_npcname("#Resurrect Monsters2")+"::OnEnable");
+ donpcevent(instance_npcname("#Resurrect Monsters3")+"::OnEnable");
+ disablenpc(instance_npcname("Kruger#1-2"));
end;
OnTimer60000:
- areamonster instance_mapname("1@orcs"),137,83,143,89,"Enchanted Orc",1023,1,instance_npcname("B1 Area Mobs")+"::OnMyMobDead";
- stopnpctimer;
+ areamonster(instance_mapname("1@orcs"), 137, 83, 143, 89, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead");
+ stopnpctimer();
end;
}
1@orcs,168,125,0 script B1 Area 1 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("B1 Area 1");
+ disablenpc(instance_npcname("B1 Area 1"));
end;
OnEnable:
- enablenpc instance_npcname("B1 Area 1");
- areamonster instance_mapname("1@orcs"),103,105,109,111,"Enchanted Orc",1023,1,instance_npcname("B1 Area Mobs")+"::OnMyMobDead1";
+ enablenpc(instance_npcname("B1 Area 1"));
+ areamonster(instance_mapname("1@orcs"), 103, 105, 109, 111, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead1");
end;
OnTouch:
- warp instance_mapname("1@orcs"),168,130;
+ warp(instance_mapname("1@orcs"), 168, 130);
end;
OnContinue:
- donpcevent instance_npcname("B1 Area 2")+"::OnEnable";
- initnpctimer;
+ donpcevent(instance_npcname("B1 Area 2")+"::OnEnable");
+ initnpctimer();
end;
OnTimer10300:
- mapannounce instance_mapname("1@orcs"), "Kruger's Whisper: The Orcs here used to be my companions. They just lost their will ever since the Orc Shaman started to control them with her magic.",bc_map,"0xff4499";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: The Orcs here used to be my companions. They just lost their will ever since the Orc Shaman started to control them with her magic."), bc_map, "0xff4499");
end;
OnTimer18700:
- mapannounce instance_mapname("1@orcs"), "Kruger's Whisper: There's nothing we can do but to defeat the Orc Shaman if we want to save the remaining tribes.",bc_map,"0xff4499";
- stopnpctimer;
+ mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: There's nothing we can do but to defeat the Orc Shaman if we want to save the remaining tribes."), bc_map, "0xff4499");
+ stopnpctimer();
end;
}
1@orcs,89,94,0 script B1 Area 2 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("B1 Area 2");
+ disablenpc(instance_npcname("B1 Area 2"));
end;
OnEnable:
- enablenpc instance_npcname("B1 Area 2");
- areamonster instance_mapname("1@orcs"),32,40,38,46,"Enchanted Orc",1023,1,instance_npcname("B1 Area Mobs")+"::OnMyMobDead2";
+ enablenpc(instance_npcname("B1 Area 2"));
+ areamonster(instance_mapname("1@orcs"), 32, 40, 38, 46, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead2");
end;
OnTouch:
- warp instance_mapname("1@orcs"),85,85;
+ warp(instance_mapname("1@orcs"), 85, 85);
end;
OnContinue:
- donpcevent instance_npcname("B1 Area 3")+"::OnEnable";
- initnpctimer;
+ donpcevent(instance_npcname("B1 Area 3")+"::OnEnable");
+ initnpctimer();
end;
OnTimer30300:
- mapannounce instance_mapname("1@orcs"), "Kruger's Whisper: I saw the bodies of our tribe. It seems that the Orc Shaman used those Orcs for her rituals.",bc_map,"0xff4499";
+ mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: I saw the bodies of our tribe. It seems that the Orc Shaman used those Orcs for her rituals."), bc_map, "0xff4499");
end;
OnTimer37600:
- mapannounce instance_mapname("1@orcs"), "Kruger's Whisper: ... It all has to do with me. I am responsible for this evil.",bc_map,"0xff4499";
- stopnpctimer;
+ mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: ... It all has to do with me. I am responsible for this evil."), bc_map, "0xff4499");
+ stopnpctimer();
end;
}
1@orcs,38,105,0 script B1 Area 3 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("B1 Area 3");
+ disablenpc(instance_npcname("B1 Area 3"));
end;
OnEnable:
- enablenpc instance_npcname("B1 Area 3");
- areamonster instance_mapname("1@orcs"),19,177,25,183,"Enchanted Orc",1023,1,instance_npcname("B1 Area Mobs")+"::OnMyMobDead3";
+ enablenpc(instance_npcname("B1 Area 3"));
+ areamonster(instance_mapname("1@orcs"), 19, 177, 25, 183, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead3");
end;
OnTouch:
- warp instance_mapname("1@orcs"),38,110;
+ warp(instance_mapname("1@orcs"), 38, 110);
end;
OnContinue:
- donpcevent instance_npcname("B1 Area 4")+"::OnEnable";
- initnpctimer;
+ donpcevent(instance_npcname("B1 Area 4")+"::OnEnable");
+ initnpctimer();
end;
OnTimer30300:
- mapannounce instance_mapname("1@orcs"), "Please, hang in there!",bc_map,"0xff4499";
+ mapannounce(instance_mapname("1@orcs"), _("Please, hang in there!"), bc_map, "0xff4499");
end;
OnTimer32700:
- mapannounce instance_mapname("1@orcs"), "We'll get some rest when we get to the 2nd basement after passing through here.",bc_map,"0xff4499";
- stopnpctimer;
+ mapannounce(instance_mapname("1@orcs"), _("We'll get some rest when we get to the 2nd basement after passing through here."), bc_map, "0xff4499");
+ stopnpctimer();
end;
}
1@orcs,21,189,0 script B1 Area 4 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("B1 Area 4");
+ disablenpc(instance_npcname("B1 Area 4"));
end;
OnEnable:
- enablenpc instance_npcname("B1 Area 4");
- donpcevent instance_npcname("#Resurrect Monsters1")+"::OnDisable";
- donpcevent instance_npcname("#Resurrect Monsters2")+"::OnDisable";
- donpcevent instance_npcname("#Resurrect Monsters3")+"::OnDisable";
- donpcevent instance_npcname("#Resurrect Monsters4")+"::OnDisable";
+ enablenpc(instance_npcname("B1 Area 4"));
+ donpcevent(instance_npcname("#Resurrect Monsters1")+"::OnDisable");
+ donpcevent(instance_npcname("#Resurrect Monsters2")+"::OnDisable");
+ donpcevent(instance_npcname("#Resurrect Monsters3")+"::OnDisable");
+ donpcevent(instance_npcname("#Resurrect Monsters4")+"::OnDisable");
end;
OnTouch:
- warp instance_mapname("2@orcs"),32,171;
+ warp(instance_mapname("2@orcs"), 32, 171);
end;
}
@@ -500,19 +488,19 @@ OnTouch:
end;
OnMyMobDead:
- donpcevent instance_npcname("B1 Area 1")+"::OnEnable";
+ donpcevent(instance_npcname("B1 Area 1")+"::OnEnable");
end;
OnMyMobDead1:
- donpcevent instance_npcname("B1 Area 1")+"::OnContinue";
+ donpcevent(instance_npcname("B1 Area 1")+"::OnContinue");
end;
OnMyMobDead2:
- donpcevent instance_npcname("B1 Area 2")+"::OnContinue";
+ donpcevent(instance_npcname("B1 Area 2")+"::OnContinue");
end;
OnMyMobDead3:
- donpcevent instance_npcname("B1 Area 3")+"::OnContinue";
+ donpcevent(instance_npcname("B1 Area 3")+"::OnContinue");
end;
}
@@ -521,57 +509,51 @@ OnMyMobDead3:
end;
OnInstanceInit:
- disablenpc instance_npcname("#2Resurrect Monsters1");
+ disablenpc(instance_npcname("#2Resurrect Monsters1"));
end;
OnEnable:
- enablenpc instance_npcname("#2Resurrect Monsters1");
- monster instance_mapname("2@orcs"),0,0,"Vengeful Orc",1152,30,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#2Resurrect Monsters1"));
+ monster(instance_mapname("2@orcs"), 0, 0, _("Vengeful Orc"), ORC_SKELETON, 30, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("2@orcs"),instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
+ stopnpctimer();
+ killmonster(instance_mapname("2@orcs"), instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@orcs");
- .@mob_dead_num = 30 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ .@mob_dead_num = 30 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
if (.@mob_dead_num > 0) {
- .@mob_ran = rand(1,30);
+ .@mob_ran = rand(1, 30);
if (.@mob_ran > 29) {
- monster .@map$,0,0,"Vengeful Orc",1152,.@mob_dead_num,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
- }
- else if ((.@mob_ran > 28) && (.@mob_ran < 30)) {
- monster .@map$,0,0,"High Orc",1213,.@mob_dead_num,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
- }
- else if ((.@mob_ran > 26) && (.@mob_ran < 29)) {
- areamonster .@map$,157,112,167,122,"High Orc",1213,.@mob_dead_num,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
- if (rand(1,10) == 9) {
- mapannounce .@map$, "Warning: High Orcs are gathering near area 3.",bc_map,"0xff4444";
- }
- }
- else {
- areamonster .@map$,173,13,183,23,"High Orc",1213,.@mob_dead_num,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
- if (rand(1,5) == 3) {
- mapannounce .@map$, "Caution: The Forces have started to concentrate at the Shaman's Altar.",bc_map,"0x77ff77";
- }
- if (rand(1,70) == 50) {
- initnpctimer;
- }
+ monster(.@map$, 0, 0, _("Vengeful Orc"), ORC_SKELETON, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ } else if (.@mob_ran > 28 && .@mob_ran < 30) {
+ monster(.@map$, 0, 0, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ } else if (.@mob_ran > 26 && .@mob_ran < 29) {
+ areamonster(.@map$, 157, 112, 167, 122, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ if (rand(1, 10) == 9)
+ mapannounce(.@map$, _("Warning: High Orcs are gathering near area 3."), bc_map, "0xff4444");
+ } else {
+ areamonster(.@map$, 173, 13, 183, 23, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ if (rand(1, 5) == 3)
+ mapannounce(.@map$, _("Caution: The Forces have started to concentrate at the Shaman's Altar."), bc_map, "0x77ff77");
+ if (rand(1, 70) == 50)
+ initnpctimer();
}
}
end;
OnTimer10:
- mapannounce instance_mapname("2@orcs"), "Voice from somewhere: Foolish... Do you really think the altar would fall like that?",bc_map,"0xff4444";
+ mapannounce(instance_mapname("2@orcs"), _("Voice from somewhere: Foolish... Do you really think the altar would fall like that?"), bc_map, "0xff4444");
end;
OnTimer4010:
.@map$ = instance_mapname("2@orcs");
- mapannounce .@map$, "[ Wraiths were summoned by an unknown power ]",bc_map,"0x77ff77";
- areamonster .@map$,167,25,177,35,"Wraith",1475,30,instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead";
- stopnpctimer;
+ mapannounce(.@map$, _("[ Wraiths were summoned by an unknown power ]"), bc_map, "0x77ff77");
+ areamonster(.@map$, 167, 25, 177, 35, _("Wraith"), G_WRAITH, 30, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead");
+ stopnpctimer();
end;
}
@@ -579,40 +561,36 @@ OnTimer4010:
end;
OnInstanceInit:
- disablenpc instance_npcname("#2Resurrect Monsters3");
+ disablenpc(instance_npcname("#2Resurrect Monsters3"));
end;
OnEnable:
- enablenpc instance_npcname("#2Resurrect Monsters3");
- monster instance_mapname("2@orcs"),0,0,"Orc Zombie",1153,15,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#2Resurrect Monsters3"));
+ monster(instance_mapname("2@orcs"), 0, 0, _("Orc Zombie"), ORC_ZOMBIE, 15, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@orcs");
- .@mob_dead_num = 15 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
- .@mob_ran = rand(1,30);
+ .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
+ .@mob_ran = rand(1, 30);
if (.@mob_ran > 29) {
if (.@mob_dead_num > 0) {
- monster .@map$,0,0,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
}
- }
- else if ((.@mob_ran > 6) && (.@mob_ran < 30)) {
- if (.@mob_dead_num > 0) {
- areamonster .@map$,168,10,184,26,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
- if (rand(1,15) == 3) {
- mapannounce .@map$, "Warning: Orc Archer teams are gathering near the altar.",bc_map,"0xff4444";
- }
- }
- }
- else {
+ } else if (.@mob_ran > 6 && .@mob_ran < 30) {
if (.@mob_dead_num > 0) {
- areamonster .@map$,168,21,184,21,"Orc Archer",1189,.@mob_dead_num,instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
+ areamonster(.@map$, 168, 10, 184, 26, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
+ if (rand(1, 15) == 3)
+ mapannounce(.@map$, _("Warning: Orc Archer teams are gathering near the altar."), bc_map, "0xff4444");
}
+ } else {
+ if (.@mob_dead_num > 0)
+ areamonster(.@map$, 168, 21, 184, 21, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
}
end;
OnDisable:
- killmonster instance_mapname("2@orcs"),instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead";
+ killmonster(instance_mapname("2@orcs"), instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead");
end;
}
@@ -620,21 +598,20 @@ OnDisable:
end;
OnInstanceInit:
- enablenpc instance_npcname("#2Resurrect Monsters4");
- monster instance_mapname("2@orcs"),0,0,"Anopheles",1627,10,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#2Resurrect Monsters4"));
+ monster(instance_mapname("2@orcs"), 0, 0, _("Anopheles"), ANOPHELES, 10, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@orcs");
- .@mob_dead_num = 10 - mobcount(.@map$,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
- if (.@mob_dead_num > 0) {
- monster .@map$,0,0,"Anopheles",1627,1,instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead";
- }
+ .@mob_dead_num = 10 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
+ if (.@mob_dead_num > 0)
+ monster(.@map$, 0, 0, _("Anopheles"), ANOPHELES, 1, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead");
end;
}
2@orcs,35,169,4 script Kruger#2-1 4_ORCWARRIOR,{
- donpcevent instance_npcname("Kruger#2-2")+"::OnEnable";
+ donpcevent(instance_npcname("Kruger#2-2")+"::OnEnable");
end;
}
@@ -642,72 +619,73 @@ OnMyMobDead:
end;
OnInstanceInit:
- disablenpc instance_npcname("Kruger#2-2");
+ disablenpc(instance_npcname("Kruger#2-2"));
end;
OnEnable:
- disablenpc instance_npcname("Kruger#2-1");
- enablenpc instance_npcname("Kruger#2-2");
- initnpctimer;
+ disablenpc(instance_npcname("Kruger#2-1"));
+ enablenpc(instance_npcname("Kruger#2-2"));
+ initnpctimer();
end;
OnTimer10:
- mapannounce instance_mapname("2@orcs"), "Kruger's Whisper: I'll tell you how to get to the Shaman's altar.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: I'll tell you how to get to the Shaman's altar."), bc_map, C_YELLOW);
end;
OnTimer3510:
- mapannounce instance_mapname("2@orcs"), "Kruger's Whisper: Do you see the braziers that light the path? Unseal the next zone by strengthening their flames.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Do you see the braziers that light the path? Unseal the next zone by strengthening their flames."), bc_map, C_YELLOW);
end;
OnTimer10710:
- mapannounce instance_mapname("2@orcs"), "Kruger's Whisper: Of course those monsters won't let you touch the braziers that easily.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Of course those monsters won't let you touch the braziers that easily."), bc_map, C_YELLOW);
end;
OnTimer16310:
- mapannounce instance_mapname("2@orcs"), "Kruger's Whisper: But still, try keep the battles not too noticable so the Shaman won't guard the altar with her army squad.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: But still, try keep the battles not too noticable so the Shaman won't guard the altar with her army squad."), bc_map, C_YELLOW);
end;
OnTimer21910:
- mapannounce instance_mapname("2@orcs"), "Kruger's Whisper: Only the Party Leader can strengthen the flames, so protect your leader.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Only the Party Leader can strengthen the flames, so protect your leader."), bc_map, C_YELLOW);
end;
OnTimer23910:
- mapannounce instance_mapname("2@orcs"), "Mission: Unseal the zone by lighting the braziers. They can only be lit in a certain order, so be careful.",bc_map,"0x4444ff";
- donpcevent instance_npcname("#2Resurrect Monsters1")+"::OnEnable";
- donpcevent instance_npcname("#2Resurrect Monsters3")+"::OnEnable";
- donpcevent instance_npcname("Torch#1-1")+"::OnEnable";
- disablenpc instance_npcname("Kruger#2-2");
+ mapannounce(instance_mapname("2@orcs"), _("Mission: Unseal the zone by lighting the braziers. They can only be lit in a certain order, so be careful."), bc_map, "0x4444ff");
+ donpcevent(instance_npcname("#2Resurrect Monsters1")+"::OnEnable");
+ donpcevent(instance_npcname("#2Resurrect Monsters3")+"::OnEnable");
+ donpcevent(instance_npcname("Torch#1-1")+"::OnEnable");
+ disablenpc(instance_npcname("Kruger#2-2"));
end;
}
2@orcs,26,164,0 script Torch#1-1 CLEAR_NPC,{
- if(getpartyleader(getcharid(CHAR_ID_PARTY),2) != getcharid(CHAR_ID_CHAR)) end;
- progressbar "ffff00",5;
- setarray .@id[0], atoi(charat(strnpcinfo(NPC_NAME_HIDDEN),0)), atoi(charat(strnpcinfo(NPC_NAME_HIDDEN),2));
+ if (getpartyleader(getcharid(CHAR_ID_PARTY), 2) != getcharid(CHAR_ID_CHAR))
+ end;
+ progressbar(sprintf("0x%x", C_YELLOW), 5);
+ setarray(.@id[0], atoi(charat(strnpcinfo(NPC_NAME_HIDDEN), 0)), atoi(charat(strnpcinfo(NPC_NAME_HIDDEN), 2)));
if (.@id[1] == 4)
- donpcevent instance_npcname("#Warp2-"+.@id[0])+"::OnEnable";
+ donpcevent(instance_npcname("#Warp2-"+.@id[0])+"::OnEnable");
else
- donpcevent instance_npcname("Torch#"+.@id[0]+"-"+(.@id[1]+1))+"::OnEnable";
- initnpctimer;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ donpcevent(instance_npcname("Torch#"+.@id[0]+"-"+(.@id[1]+1))+"::OnEnable");
+ initnpctimer();
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnInstanceInit:
if (strnpcinfo(NPC_NAME) != "Torch#2-1" && strnpcinfo(NPC_NAME) != "Torch#3-1")
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTimer100:
- specialeffect EF_FIREPILLAR;
+ specialeffect(EF_FIREPILLAR);
end;
OnTimer2000:
- specialeffect EF_FIREPILLARBOMB;
- stopnpctimer;
+ specialeffect(EF_FIREPILLARBOMB);
+ stopnpctimer();
end;
}
2@orcs,55,155,0 duplicate(Torch#1-1) Torch#1-2 CLEAR_NPC
@@ -716,27 +694,27 @@ OnTimer2000:
2@orcs,48,100,0 script #Warp2-1 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("#Warp2-1");
+ disablenpc(instance_npcname("#Warp2-1"));
end;
OnEnable:
.@map$ = instance_mapname("2@orcs");
- monster .@map$,109,156,"Safeguard Chief",1981,1,instance_npcname("#Mobs Control")+"::OnMyMobDead1";
- mapannounce .@map$, "The Chief Orc of Safeguards: Oh!! Looks like I have company. Defeat me if you can!!",bc_map,"0xff8888";
+ monster(.@map$, 109, 156, _("Safeguard Chief"), I_HIGH_ORC, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead1");
+ mapannounce(.@map$, _("The Chief Orc of Safeguards: Oh!! Looks like I have company. Defeat me if you can!!"), bc_map, "0xff8888");
end;
OnContinue:
- enablenpc instance_npcname("#Warp2-1");
- initnpctimer;
+ enablenpc(instance_npcname("#Warp2-1"));
+ initnpctimer();
end;
OnTimer10000:
- areamonster instance_mapname("2@orcs"),28,158,40,170,"Safeguard Chief",1981,1,instance_npcname("#Mobs Control")+"::OnMyMobDead1";
- stopnpctimer;
+ areamonster(instance_mapname("2@orcs"), 28, 158, 40, 170, _("Safeguard Chief"), I_HIGH_ORC, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead1");
+ stopnpctimer();
end;
OnTouch:
- warp instance_mapname("2@orcs"),47,93;
+ warp(instance_mapname("2@orcs"), 47, 93);
end;
}
@@ -747,27 +725,27 @@ OnTouch:
2@orcs,101,55,0 script #Warp2-2 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("#Warp2-2");
+ disablenpc(instance_npcname("#Warp2-2"));
end;
OnEnable:
.@map$ = instance_mapname("2@orcs");
- monster .@map$,67,64,"Orc Sniper",1982,1,instance_npcname("#Mobs Control")+"::OnMyMobDead2";
- mapannounce .@map$, "Orc Sniper: Hah! Pretty impressive that you made it this far, but your foolish little trip ends here...",bc_map,"0xff8888";
+ monster(.@map$, 67, 64, _("Orc Sniper"), I_ORC_ARCHER, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead2");
+ mapannounce(.@map$, _("Orc Sniper: Hah! Pretty impressive that you made it this far, but your foolish little trip ends here..."), bc_map, "0xff8888");
end;
OnContinue:
- enablenpc instance_npcname("#Warp2-2");
- initnpctimer;
+ enablenpc(instance_npcname("#Warp2-2"));
+ initnpctimer();
end;
OnTimer10000:
- areamonster instance_mapname("2@orcs"),40,91,52,103,"Orc Sniper",1982,1,instance_npcname("#Mobs Control")+"::OnMyMobDead2";
- stopnpctimer;
+ areamonster(instance_mapname("2@orcs"), 40, 91, 52, 103, _("Orc Sniper"), I_ORC_ARCHER, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead2");
+ stopnpctimer();
end;
OnTouch:
- warp instance_mapname("2@orcs"),107,55;
+ warp(instance_mapname("2@orcs"), 107, 55);
end;
}
@@ -778,41 +756,41 @@ OnTouch:
2@orcs,167,104,0 script #Warp2-3 WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("#Warp2-3");
+ disablenpc(instance_npcname("#Warp2-3"));
end;
OnEnable:
.@map$ = instance_mapname("2@orcs");
- monster .@map$,152,147,"Depraved Orc Spirit",1983,1,instance_npcname("#Mobs Control")+"::OnMyMobDead3";
- mapannounce .@map$, "Depraved Orc Spirit: I smell flesh! Hungry! Wanna try some human meat!!",bc_map,"0xff8888";
+ monster(.@map$, 152, 147, _("Depraved Orc Spirit"), I_ORC_SKELETON, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead3");
+ mapannounce(.@map$, _("Depraved Orc Spirit: I smell flesh! Hungry! Wanna try some human meat!!"), bc_map, "0xff8888");
end;
OnContinue:
- areamonster instance_mapname("2@orcs"),117,61,129,73,"Depraved Orc Spirit",1983,1;
- donpcevent instance_npcname("#Boss Control")+"::OnEnable";
- enablenpc instance_npcname("#Warp2-3");
- initnpctimer;
+ areamonster(instance_mapname("2@orcs"), 117, 61, 129, 73, _("Depraved Orc Spirit"), I_ORC_SKELETON, 1);
+ donpcevent(instance_npcname("#Boss Control")+"::OnEnable");
+ enablenpc(instance_npcname("#Warp2-3"));
+ initnpctimer();
end;
OnTimer10:
- mapannounce instance_mapname("2@orcs"), "Shaman Cargalache: Hahaha!! So, you finally made it here. The assassin you sent was just terrible. That stupid Orc is getting cold under my feet.",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Shaman Cargalache: Hahaha!! So, you finally made it here. The assassin you sent was just terrible. That stupid Orc is getting cold under my feet."), bc_map, C_YELLOW);
end;
OnTimer6810:
- mapannounce instance_mapname("2@orcs"), "Shaman Cargalache: My loyal slave, go get those intruders!",bc_map,"0xffff00";
+ mapannounce(instance_mapname("2@orcs"), _("Shaman Cargalache: My loyal slave, go get those intruders!"), bc_map, C_YELLOW);
end;
OnTimer10310:
- mapannounce instance_mapname("2@orcs"), "Depraved Orc Hero: Whatever you say, my lord.",bc_map,"0xff7777";
+ mapannounce(instance_mapname("2@orcs"), _("Depraved Orc Hero: Whatever you say, my lord."), bc_map, "0xff7777");
end;
OnTimer13110:
- mapannounce instance_mapname("2@orcs"), "Caution: You have been discovered by Shaman Cargalache. Kruger's plan to assassinate the Shaman has failed. You must defeat Cargalache and find traces of Kruger.",bc_map,"0x8888ff";
- stopnpctimer;
+ mapannounce(instance_mapname("2@orcs"), _("Caution: You have been discovered by Shaman Cargalache. Kruger's plan to assassinate the Shaman has failed. You must defeat Cargalache and find traces of Kruger."), bc_map, "0x8888ff");
+ stopnpctimer();
end;
OnTouch:
- warp instance_mapname("2@orcs"),167,95;
+ warp(instance_mapname("2@orcs"), 167, 95);
end;
}
@@ -820,93 +798,87 @@ OnTouch:
end;
OnInstanceInit:
- disablenpc instance_npcname("#Boss Control");
+ disablenpc(instance_npcname("#Boss Control"));
end;
OnEnable:
.@map$ = instance_mapname("2@orcs");
- monster .@map$,185,8,"Shaman Cargalache",1984,1,instance_npcname("#Boss Control")+"::OnMyMobDead";
- monster .@map$,179,15,"Depraved Orc Hero",1087,1;
- enablenpc instance_npcname("#Boss Control");
+ monster(.@map$, 185, 8, _("Shaman Cargalache"), I_ORC_LADY, 1, instance_npcname("#Boss Control")+"::OnMyMobDead");
+ monster(.@map$, 179, 15, _("Depraved Orc Hero"), ORK_HERO, 1);
+ enablenpc(instance_npcname("#Boss Control"));
end;
OnMyMobDead:
- donpcevent instance_npcname("Kruger#")+"::OnEnable";
+ donpcevent(instance_npcname("Kruger#")+"::OnEnable");
.@map$ = instance_mapname("2@orcs");
- .@mob_ran = rand(1,5);
- if (.@mob_ran == 1) {
- mapannounce .@map$, "Shaman Cargalache: How... How could this be... How could someone like you...!!",bc_map,"0xffff00";
- }
- else if (.@mob_ran == 2) {
- mapannounce .@map$, "Shaman Cargalache: How is it that I've been overpowered by mere humans!",bc_map,"0xffff00";
- }
- else if (.@mob_ran == 3) {
- mapannounce .@map$, "Shaman Cargalache: This... This can't be the end...",bc_map,"0xffff00";
- }
- else if (.@mob_ran == 4) {
- mapannounce .@map$, "Shaman Cargalache: I... Can't die... Yet...!",bc_map,"0xffff00";
- }
- else {
- mapannounce .@map$, "Shaman Cargalache: Defeated by these fools... It can't be happening...!",bc_map,"0xffff00";
- }
- donpcevent instance_npcname("#2Resurrect Monsters1")+"::OnDisable";
- donpcevent instance_npcname("#2Resurrect Monsters3")+"::OnDisable";
- donpcevent instance_npcname("#Warp Outside Orc Dun")+"::OnEnable";
+ .@mob_ran = rand(1, 5);
+ if (.@mob_ran == 1)
+ mapannounce(.@map$, _("Shaman Cargalache: How... How could this be... How could someone like you...!!"), bc_map, C_YELLOW);
+ else if (.@mob_ran == 2)
+ mapannounce(.@map$, _("Shaman Cargalache: How is it that I've been overpowered by mere humans!"), bc_map, C_YELLOW);
+ else if (.@mob_ran == 3)
+ mapannounce(.@map$, _("Shaman Cargalache: This... This can't be the end..."), bc_map, C_YELLOW);
+ else if (.@mob_ran == 4)
+ mapannounce(.@map$, _("Shaman Cargalache: I... Can't die... Yet...!"), bc_map, C_YELLOW);
+ else
+ mapannounce(.@map$, _("Shaman Cargalache: Defeated by these fools... It can't be happening...!"), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("#2Resurrect Monsters1")+"::OnDisable");
+ donpcevent(instance_npcname("#2Resurrect Monsters3")+"::OnDisable");
+ donpcevent(instance_npcname("#Warp Outside Orc Dun")+"::OnEnable");
end;
}
2@orcs,182,8,0 script #Warp Outside Orc Dun WARPNPC,3,3,{
OnInstanceInit:
- disablenpc instance_npcname("#Warp Outside Orc Dun");
+ disablenpc(instance_npcname("#Warp Outside Orc Dun"));
end;
OnEnable:
- enablenpc instance_npcname("#Warp Outside Orc Dun");
+ enablenpc(instance_npcname("#Warp Outside Orc Dun"));
end;
OnTouch:
- warp "gef_fild10",240,197;
+ warp("gef_fild10", 240, 197);
end;
}
2@orcs,172,13,0 script Kruger# 4_ORCWARRIOR2,{
if (yong_odun < 2) {
- mes "[Kruger]";
- mes "*Coughing*";
- mes ""+strcharinfo(PC_NAME)+", it's you...";
- next;
- mes "["+strcharinfo(PC_NAME)+"] ";
- mes "Don't move! You are wounded!";
- next;
- mes "[Kruger]";
- mes "It's... all right.. I'm dying...";
- mes "....";
- mes "The Shaman? What about the Shaman?";
- next;
- mes "["+strcharinfo(PC_NAME)+"] ";
- mes "The Shaman's dead now. Who was that Shaman really?";
- next;
- mes "Kruger seemed to be relieved as he hears of the death of the Shaman, but you notice the bitter expression on his face.";
- next;
- mes "[Kruger]";
- mes "I.. I just couldn't kill my own daughter...";
- mes "Thank you, I'm sure she's finally free from the nightmare that used to choke her soul.";
- next;
- mes "Kruger was about to say something more, but he breathed his last breath before he could...";
+ mes("[Kruger]");
+ mes("*Coughing*");
+ mesf("%s, it's you...", strcharinfo(PC_NAME));
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("Don't move! You are wounded!");
+ next();
+ mes("[Kruger]");
+ mes("It's... all right.. I'm dying...");
+ mes("....");
+ mes("The Shaman? What about the Shaman?");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("The Shaman's dead now. Who was that Shaman really?");
+ next();
+ mes("Kruger seemed to be relieved as he hears of the death of the Shaman, but you notice the bitter expression on his face.");
+ next();
+ mes("[Kruger]");
+ mes("I.. I just couldn't kill my own daughter...");
+ mes("Thank you, I'm sure she's finally free from the nightmare that used to choke her soul.");
+ next();
+ mes("Kruger was about to say something more, but he breathed his last breath before he could...");
yong_odun = 2;
- close;
- }
- else {
- mes "You can see the dead body of Kruger, peacefully lying on the ground.";
- close;
+ close();
+ } else {
+ mes("You can see the dead body of Kruger, peacefully lying on the ground.");
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("Kruger#");
+ disablenpc(instance_npcname("Kruger#"));
end;
OnEnable:
- enablenpc instance_npcname("Kruger#");
+ enablenpc(instance_npcname("Kruger#"));
end;
}
@@ -914,14 +886,14 @@ OnEnable:
end;
OnMyMobDead1:
- donpcevent instance_npcname("#Warp2-1")+"::OnContinue";
+ donpcevent(instance_npcname("#Warp2-1")+"::OnContinue");
end;
OnMyMobDead2:
- donpcevent instance_npcname("#Warp2-2")+"::OnContinue";
+ donpcevent(instance_npcname("#Warp2-2")+"::OnContinue");
end;
OnMyMobDead3:
- donpcevent instance_npcname("#Warp2-3")+"::OnContinue";
+ donpcevent(instance_npcname("#Warp2-3")+"::OnContinue");
end;
}
diff --git a/npc/instances/SealedShrine.txt b/npc/instances/SealedShrine.txt
index 1b1022dcf..3bc3d951a 100644
--- a/npc/instances/SealedShrine.txt
+++ b/npc/instances/SealedShrine.txt
@@ -37,65 +37,64 @@
//== Sealed Catacomb Entrance ==============================
monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
- cutin "ins_cata_pri_n",2;
- mes "[Friar Patrick]";
- mes "The peace of this world cannot last forever... The hands of Evil are reaching into the world again...";
- next;
- mes "[Friar Patrick]";
- mes "What brought you to this place?";
- next;
+ cutin("ins_cata_pri_n", 2);
+ mes("[Friar Patrick]");
+ mes("The peace of this world cannot last forever... The hands of Evil are reaching into the world again...");
+ next();
+ mes("[Friar Patrick]");
+ mes("What brought you to this place?");
+ next();
if (countitem(Bapho_Doll) > 0) {
.@doll = 1;
.@selection = select("What is this place?", "I want to enter.", "About the Cursed Baphomet Doll.", "Cancel.");
- }
- else {
+ } else {
.@selection = select("What is this place?", "I want to enter.", "Cancel.");
}
- switch(.@selection) {
+ switch (.@selection) {
case 1:
- mes "[Friar Patrick]";
- mes "Huh... Don't you know? This is St. Capitolina Monastery where the Brothers who wish to become monks train and pray.";
- next;
- mes "[Friar Patrick]";
- mes "And this place is... What can I say... Yes. It's the grave of the Devil. Grave...";
- next;
- mes "[Friar Patrick]";
- mes "The very place where the great Devil who once demolished this world is sleeping.";
- next;
- switch(select("Tell me more.", "Stop talking.")) {
+ mes("[Friar Patrick]");
+ mes("Huh... Don't you know? This is St. Capitolina Monastery where the Brothers who wish to become monks train and pray.");
+ next();
+ mes("[Friar Patrick]");
+ mes("And this place is... What can I say... Yes. It's the grave of the Devil. Grave...");
+ next();
+ mes("[Friar Patrick]");
+ mes("The very place where the great Devil who once demolished this world is sleeping.");
+ next();
+ switch (select("Tell me more.", "Stop talking.")) {
case 1:
- cutin "ins_cata_pri_n",2;
- mes "[Friar Patrick]";
- mes "Baphomet... is the name of the Devil... I think you have heard of his name.";
- next;
- mes "[Friar Patrick]";
- mes "Numerous brave men and brothers have trained in this monastery...";
- next;
- mes "[Friar Patrick]";
- mes "Under this gravestone in front of you... Baphomet is sealed.";
- next;
- mes "[Friar Patrick]";
- mes "But... As we speak Satan Morocc is marshalling his powerful magic in order to affect all life on this continent.";
- next;
- mes "[Friar Patrick]";
- mes "Baphomet also... has awakened and is preparing for his revival, into this world, by weakening the power of the seal through the power of Satan Morocc...";
- next;
- mes "[Friar Patrick]";
- mes "Now... I'm looking for someone brave enough to reseal Baphomet in its shrine... as we once did many years ago...";
- next;
- mes "[Friar Patrick]";
- mes "Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...";
- next;
- mes "[Friar Patrick]";
- mes "Train more and use your skills to protect the world from evil's looming presence...";
+ cutin("ins_cata_pri_n", 2);
+ mes("[Friar Patrick]");
+ mes("Baphomet... is the name of the Devil... I think you have heard of his name.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Numerous brave men and brothers have trained in this monastery...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Under this gravestone in front of you... Baphomet is sealed.");
+ next();
+ mes("[Friar Patrick]");
+ mes("But... As we speak Satan Morocc is marshalling his powerful magic in order to affect all life on this continent.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Baphomet also... has awakened and is preparing for his revival, into this world, by weakening the power of the seal through the power of Satan Morocc...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Now... I'm looking for someone brave enough to reseal Baphomet in its shrine... as we once did many years ago...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Train more and use your skills to protect the world from evil's looming presence...");
break;
case 2:
- cutin "ins_cata_pri_n",2;
- mes "[Friar Patrick]";
- mes "Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...";
- next;
- mes "[Friar Patrick]";
- mes "Train more and use your skills to protect the world from evil's looming presence...";
+ cutin("ins_cata_pri_n", 2);
+ mes("[Friar Patrick]");
+ mes("Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Train more and use your skills to protect the world from evil's looming presence...");
break;
}
break;
@@ -104,332 +103,327 @@ monk_test,309,146,3 script Friar Patrick#edq 4_M_OLDFRIAR,{
.@party_id = getcharid(CHAR_ID_PARTY);
- mes "[Friar Patrick]";
- mes "Do you mean you'll go to the shrine and reseal Baphomet?";
- next;
+ mes("[Friar Patrick]");
+ mes("Do you mean you'll go to the shrine and reseal Baphomet?");
+ next();
// 12 hour cooldown
- .@ins_bapho_check = questprogress(3040,PLAYTIME);
+ .@ins_bapho_check = questprogress(3040, PLAYTIME);
// Two hour play limit
- //.@ins_bapho_check2 = questprogress(3045,PLAYTIME);
+ //.@ins_bapho_check2 = questprogress(3045, PLAYTIME);
if (!.@ins_bapho_check) {
- if (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR) && instance_check_party(.@party_id,2,75)) {
- mes "[Friar Patrick]";
- mes "Party name is "+getpartyname(.@party_id)+"...";
- mes "Name of the leader is "+strcharinfo(PC_NAME)+"...";
- .@instance = instance_create("Sealed Catacomb",.@party_id);
+ if (getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR) && instance_check_party(.@party_id, 2, 75)) {
+ mes("[Friar Patrick]");
+ mesf("Party name is %s...", getpartyname(.@party_id));
+ mesf("Name of the leader is %s...", strcharinfo(PC_NAME));
+ .@instance = instance_create(_("Sealed Catacomb"), .@party_id);
if (.@instance < 0) {
- mes "Umm... But it seems that there is a problem here... I'll check quickly. Please wait.";
- }
- else {
+ mes("Umm... But it seems that there is a problem here... I'll check quickly. Please wait.");
+ } else {
for (.@i = 1; .@i <= 2; .@i++) {
- if( instance_attachmap(.@i + "@cata", .@instance) == "" ) {
- mes "Failed to attach "+.@i+"@cata as a map!";
+ if (instance_attachmap(.@i + "@cata", .@instance) == "") {
+ mesf("Failed to attach %d@cata as a map!", .@i);
instance_destroy(.@instance);
- close;
+ close();
}
}
- instance_set_timeout 7200,300,.@instance;
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "Okay... I'll adjust the shrine's seal so that you and your group can enter.";
- next;
- mes "[Friar Patrick]";
- mes "You will see a sign when the seal has broken. Please wait until the sign appears...";
- next;
- mes "[Friar Patrick]";
- mes "When you see the sign, put your hands on the gravestone... Then you can move inside.";
- next;
- mes "[Friar Patrick]";
- mes "One thing that you should remember is... Anyone who enters this shrine will be cursed by Baphomet and cannot enter or leave while they are cursed.";
- next;
- mes "[Friar Patrick]";
- mes "And one more thing... In this cursed area, some skills, which are protected by outer physical power are prohibited by the effect of the seal.";
- next;
- mes "[Friar Patrick]";
- mes "For example, the skills like ^0000FFSafety Wall and Assumptio^000000... So you'd better prepare before entering the shrine.";
+ mes("Okay... I'll adjust the shrine's seal so that you and your group can enter.");
+ next();
+ mes("[Friar Patrick]");
+ mes("You will see a sign when the seal has broken. Please wait until the sign appears...");
+ next();
+ mes("[Friar Patrick]");
+ mes("When you see the sign, put your hands on the gravestone... Then you can move inside.");
+ next();
+ mes("[Friar Patrick]");
+ mes("One thing that you should remember is... Anyone who enters this shrine will be cursed by Baphomet and cannot enter or leave while they are cursed.");
+ next();
+ mes("[Friar Patrick]");
+ mes("And one more thing... In this cursed area, some skills, which are protected by outer physical power are prohibited by the effect of the seal.");
+ next();
+ mes("[Friar Patrick]");
+ mes("For example, the skills like ^0000FFSafety Wall and Assumptio^000000... So you'd better prepare before entering the shrine.");
}
+ } else {
+ mes("[Friar Patrick]");
+ mes("Umm... I recognize your courage, but... I can't permit anyone to enter this place. I can only permit the leader of a party to enter first.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Once the party leader is permitted, the rest of the party can enter. This is a rule of this monastery, so please understand.");
}
- else {
- mes "[Friar Patrick]";
- mes "Umm... I recognize your courage, but... I can't permit anyone to enter this place. I can only permit the leader of a party to enter first.";
- next;
- mes "[Friar Patrick]";
- mes "Once the party leader is permitted, the rest of the party can enter. This is a rule of this monastery, so please understand.";
- }
+ } else if (.@ins_bapho_check == 1) {
+ mes("[Friar Patrick]");
+ mes("It seems you have entered this shrine recently... You cannot reenter because Baphomet's Curse still remains. Baphomet's Curse disappears only after a certain amount of time has passed.");
+ } else if (.@ins_bapho_check == 2) {
+ mes("[Friar Patrick]");
+ mes("Umm... It seems that Baphomet's Curse has weakened. I can remove it now.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Haaaaaaap... Hocus Pocus Wingardium Abracadabra!!!!!");
+ next();
+ erasequest(3040);
+ if (questprogress(3041))
+ erasequest(3041);
+ if (questprogress(3045))
+ erasequest(3045);
+ mes("[Friar Patrick]");
+ mes("Huu... It's over. Now that I've released Baphomet's Curse, you can enter again.");
}
- else if (.@ins_bapho_check == 1) {
- mes "[Friar Patrick]";
- mes "It seems you have entered this shrine recently... You cannot reenter because Baphomet's Curse still remains. Baphomet's Curse disappears only after a certain amount of time has passed.";
- }
- else if (.@ins_bapho_check == 2) {
- mes "[Friar Patrick]";
- mes "Umm... It seems that Baphomet's Curse has weakened. I can remove it now.";
- next;
- mes "[Friar Patrick]";
- mes "Haaaaaaap... Hocus Pocus Wingardium Abracadabra!!!!!";
- next;
- erasequest 3040;
- if (questprogress(3041)) erasequest 3041;
- if (questprogress(3045)) erasequest 3045;
- mes "[Friar Patrick]";
- mes "Huu... It's over. Now that I've released Baphomet's Curse, you can enter again.";
- }
- }
- else {
- mes "[Friar Patrick]";
- mes "Umm... You should train more to enter this dangerous place... You should reach at least Lv 75 to enter here.";
- next;
- mes "[Friar Patrick]";
- mes "Please train more and come again.";
+ } else {
+ mes("[Friar Patrick]");
+ mes("Umm... You should train more to enter this dangerous place... You should reach at least Lv 75 to enter here.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Please train more and come again.");
}
break;
case 3:
if (.@doll == 1) {
- mes "[Friar Patrick]";
- mes "That is... the villainous doll that you are holding... Let me see it.";
- next;
- mes "[Friar Patrick]";
- mes "... ... ...";
- next;
- mes "[Friar Patrick]";
- mes "That's correct... I can feel Baphomet's evil inside... So, what will you do with the doll?";
- next;
- mes "[Friar Patrick]";
- mes "It is just a dangerous and useless thing if you do nothing with it... I'll introduce someone who can help you... Do you want to see him?";
- next;
- mes "[Friar Patrick]";
- mes "Go to see ^0000FFRust Blackhand^000000 who is near the main building of the monastery... He will make this doll helpful to you.";
- setquest 3042;
+ mes("[Friar Patrick]");
+ mes("That is... the villainous doll that you are holding... Let me see it.");
+ next();
+ mes("[Friar Patrick]");
+ mes("... ... ...");
+ next();
+ mes("[Friar Patrick]");
+ mes("That's correct... I can feel Baphomet's evil inside... So, what will you do with the doll?");
+ next();
+ mes("[Friar Patrick]");
+ mes("It is just a dangerous and useless thing if you do nothing with it... I'll introduce someone who can help you... Do you want to see him?");
+ next();
+ mes("[Friar Patrick]");
+ mes("Go to see ^0000FFRust Blackhand^000000 who is near the main building of the monastery... He will make this doll helpful to you.");
+ setquest(3042);
break;
}
case 4:
- mes "[Friar Patrick]";
- mes "Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...";
- next;
- mes "[Friar Patrick]";
- mes "Train more and use your skills to protect the world from evil's looming presence...";
+ mes("[Friar Patrick]");
+ mes("Anyone who fights for good will know, deep inside, that evil is threatening to conquer this world...");
+ next();
+ mes("[Friar Patrick]");
+ mes("Train more and use your skills to protect the world from evil's looming presence...");
break;
}
- close2;
- cutin "",255;
+ close2();
+ cutin("", 255);
end;
}
monk_test,306,151,3 script Grave of Baphomet#edq HIDDEN_NPC,{
- if (countitem(Token_Of_Apostle)) delitem Token_Of_Apostle,countitem(Token_Of_Apostle);
- mes "This gravestone has a carving of a wicked devil with large horns. It arouses an ominous feeling.";
- next;
- if(select("Touch the stone.", "Step back.") == 2)
- close;
+ if (countitem(Token_Of_Apostle))
+ delitem(Token_Of_Apostle, countitem(Token_Of_Apostle));
+ mes("This gravestone has a carving of a wicked devil with large horns. It arouses an ominous feeling.");
+ next();
+ if (select("Touch the stone.", "Step back.") == 2)
+ close();
// 12 hour cooldown
- .@ins_bapho_check = questprogress(3040,PLAYTIME);
+ .@ins_bapho_check = questprogress(3040, PLAYTIME);
// Two hour play limit
- //.@ins_bapho_check2 = questprogress(3045,PLAYTIME);
+ //.@ins_bapho_check2 = questprogress(3045, PLAYTIME);
if (!.@ins_bapho_check) {
if (has_instance("1@cata") == "") {
- mes "It's cold to the touch. It doesn't respond.";
- close;
+ mes("It's cold to the touch. It doesn't respond.");
+ close();
} else {
- mapannounce "monk_test","[" + strcharinfo(PC_NAME) + "] member of the [" + getpartyname(.@party_id) + "] party has entered the Sealed Shrine.",bc_map,"0x00ff99";
- setquest 3040;
- warp "1@cata",100,224;
+ mapannounce("monk_test", sprintf(_$("[%s] member of the [%s] party has entered the Sealed Shrine."), strcharinfo(PC_NAME), getpartyname(.@party_id)), bc_map, C_SPRINGGREEN);
+ setquest(3040);
+ warp("1@cata", 100, 224);
end;
}
} else if (.@ins_bapho_check == 1) {
- mes "[Friar Patrick]";
- mes "It seems you have entered this shrine recently... You cannot reenter because the curse of Baphomet still remains.";
- mes "The curse of Baphomet disappears after a certain amount of time after you entered.";
- close;
+ mes("[Friar Patrick]");
+ mes("It seems you have entered this shrine recently... You cannot reenter because the curse of Baphomet still remains.");
+ mes("The curse of Baphomet disappears after a certain amount of time after you entered.");
+ close();
} else if (.@ins_bapho_check == 2) {
- mes "[Friar Patrick]";
- mes "Umm... It seems the curse of Baphomet weakened. I'll clear the bad curse.";
- next;
- mes "[Friar Patrick]";
- mes "Haaaaaaap... Wingardium Leviosa Expecto Patronum !!!!!";
+ mes("[Friar Patrick]");
+ mes("Umm... It seems the curse of Baphomet weakened. I'll clear the bad curse.");
+ next();
+ mes("[Friar Patrick]");
+ mes("Haaaaaaap... Wingardium Leviosa Expecto Patronum !!!!!");
specialeffect(EF_HOLYHIT, AREA, playerattached());
- erasequest 3040;
- if (questprogress(3041)) erasequest 3041;
- if (questprogress(3045)) erasequest 3045;
- next;
- mes "[Friar Patrick]";
- mes "Huu... It's over. Now I released all of the curses on you. You can enter again.";
- close;
+ erasequest(3040);
+ if (questprogress(3041))
+ erasequest(3041);
+ if (questprogress(3045))
+ erasequest(3045);
+ next();
+ mes("[Friar Patrick]");
+ mes("Huu... It's over. Now I released all of the curses on you. You can enter again.");
+ close();
}
}
prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
.@new_maje = questprogress(3043);
- mes "[Rust Blackhand]";
- mes "Who are you? What do you want me for?";
- next;
- mes "[Rust Blackhand]";
- mes "You're not a monk, then what do you want?";
- next;
+ mes("[Rust Blackhand]");
+ mes("Who are you? What do you want me for?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("You're not a monk, then what do you want?");
+ next();
if (.@new_maje == 1) {
- mes "[Rust Blackhand]";
- mes "Did you bring all of the ingredients?";
- next;
- if (countitem(Bapho_Doll) && countitem(Magestic_Goat) && (countitem(Dark_Crystal) > 29) && (countitem(Dark_Debris) > 49) && (Zeny >= 990000)) {
- mes "[Rust Blackhand]";
- mes "kkk... You prepared the ingredients well. Why don't you leave it there and wait?";
- next;
- mes "[Rust Blackhand]";
- mes "Hmm... It's been such a long time since I last saw these wicked horns... kkk... Let me start...";
- next;
- mes "...";
- next;
- mes "... ...";
- next;
- mes "... ... ...";
- next;
- delitem Bapho_Doll,1;
- delitem Magestic_Goat,1;
- delitem Dark_Crystal,30;
- delitem Dark_Debris,50;
+ mes("[Rust Blackhand]");
+ mes("Did you bring all of the ingredients?");
+ next();
+ if (countitem(Bapho_Doll) && countitem(Magestic_Goat) && countitem(Dark_Crystal) > 29 && countitem(Dark_Debris) > 49 && Zeny >= 990000) {
+ mes("[Rust Blackhand]");
+ mes("kkk... You prepared the ingredients well. Why don't you leave it there and wait?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Hmm... It's been such a long time since I last saw these wicked horns... kkk... Let me start...");
+ next();
+ mes("...");
+ next();
+ mes("... ...");
+ next();
+ mes("... ... ...");
+ next();
+ delitem(Bapho_Doll, 1);
+ delitem(Magestic_Goat, 1);
+ delitem(Dark_Crystal, 30);
+ delitem(Dark_Debris, 50);
Zeny -= 990000;
- completequest 3043;
- getitem L_Magestic_Goat,1;
- mes "[Rust Blackhand]";
- mes "It's done. You may be excited, of course. I understand...";
- next;
- mes "[Rust Blackhand]";
- mes "I don't accept complaints or A/S requests, so use it with care. I must go...";
- close;
- }
- else {
- mes "[Rust Blackhand]";
- mes "Huu... You don't understand what I said. You cannot make anything with these ingredients.";
- next;
- mes "[Rust Blackhand]";
- mes "I'll tell you the ingredients one more time, so please gather them correctly.";
- next;
- mes "[Rust Blackhand]";
- mes "^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.";
- close;
+ completequest(3043);
+ getitem(L_Magestic_Goat, 1);
+ mes("[Rust Blackhand]");
+ mes("It's done. You may be excited, of course. I understand...");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I don't accept complaints or A/S requests, so use it with care. I must go...");
+ close();
+ } else {
+ mes("[Rust Blackhand]");
+ mes("Huu... You don't understand what I said. You cannot make anything with these ingredients.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I'll tell you the ingredients one more time, so please gather them correctly.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.");
+ close();
}
- }
- else if (!.@new_maje && countitem(Bapho_Doll) > 0) {
- switch(select("About the Cursed Baphomet Doll", "Stop talking.")) {
+ } else if (!.@new_maje && countitem(Bapho_Doll) > 0) {
+ switch (select("About the Cursed Baphomet Doll", "Stop talking.")) {
case 1:
- mes "[Rust Blackhand]";
- mes "What?... Hmmm... Did you get the doll? You're pretty good, unlike your appearance...";
- next;
- mes "[Rust Blackhand]";
- mes "Let me see... Needless to say, Patric must have sent you here to deal with the doll, right?";
- next;
- mes "[Rust Blackhand]";
- mes "Cool... I'll help you make the evil doll useful. What? What can I do?";
- next;
- mes "[Rust Blackhand]";
- mes "I can make the strong and large horns of the wicked devil Baphomet for you. A helm that has his immense power.";
- next;
- mes "[Rust Blackhand]";
- mes "It is called the ^4d4dffGigantic Magestic Goat^000000. You'll realize that the Magestic Goat you're familiar with is nothing in comparison.";
- next;
- mes "[Rust Blackhand]";
- mes "The Cursed Baphomet Doll is the most important ingredient... I'll make you if you want. What would you like to do?";
- next;
- switch(select("I want to make one!", "I don't need one.")) {
+ mes("[Rust Blackhand]");
+ mes("What?... Hmmm... Did you get the doll? You're pretty good, unlike your appearance...");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Let me see... Needless to say, Patric must have sent you here to deal with the doll, right?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Cool... I'll help you make the evil doll useful. What? What can I do?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I can make the strong and large horns of the wicked devil Baphomet for you. A helm that has his immense power.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("It is called the ^4d4dffGigantic Magestic Goat^000000. You'll realize that the Magestic Goat you're familiar with is nothing in comparison.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("The Cursed Baphomet Doll is the most important ingredient... I'll make you if you want. What would you like to do?");
+ next();
+ switch (select("I want to make one!", "I don't need one.")) {
case 1:
- mes "[Rust Blackhand]";
- mes "kkk... Yes, wise men take their chances when the opportunity comes. I'll tell you the ingredients. Don't forget, and bring them all.";
- next;
- mes "[Rust Blackhand]";
- mes "^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.";
- next;
- mes "[Rust Blackhand]";
- mes "You can get the Magestic Goat from the weak Baphomet in the Labyrinth Forest. Crystal of Darkness and Fragment of Darkness are from the Incarnation of Morocc.";
- next;
- mes "[Rust Blackhand]";
- mes "I'm sure that you can get the ingredients because you sealed the real Baphomet. Can't you? kkk...";
- next;
- mes "[Rust Blackhand]";
- mes "You'll never know how great this hat is until you get one. If you understood, go and get the ingredients.";
+ mes("[Rust Blackhand]");
+ mes("kkk... Yes, wise men take their chances when the opportunity comes. I'll tell you the ingredients. Don't forget, and bring them all.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("You can get the Magestic Goat from the weak Baphomet in the Labyrinth Forest. Crystal of Darkness and Fragment of Darkness are from the Incarnation of Morocc.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I'm sure that you can get the ingredients because you sealed the real Baphomet. Can't you? kkk...");
+ next();
+ mes("[Rust Blackhand]");
+ mes("You'll never know how great this hat is until you get one. If you understood, go and get the ingredients.");
if (questprogress(3042))
- erasequest 3042;
- setquest 3043;
- close;
+ erasequest(3042);
+ setquest(3043);
+ close();
case 2:
- mes "[Rust Blackhand]";
- mes "Huh... Do you? Do whatever you want... Do you really want to let this opportunity go to waste?";
- next;
- mes "[Rust Blackhand]";
- mes "Tut, tut... I don't care if the wicked doll threatens your life all the time!";
- close;
+ mes("[Rust Blackhand]");
+ mes("Huh... Do you? Do whatever you want... Do you really want to let this opportunity go to waste?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Tut, tut... I don't care if the wicked doll threatens your life all the time!");
+ close();
}
case 2:
- mes "[Rust Blackhand]";
- mes "What a dull boy he is... huh...";
- close;
+ mes("[Rust Blackhand]");
+ mes("What a dull boy he is... huh...");
+ close();
}
- }
- else if (!.@new_maje && !countitem(Bapho_Doll)) {
- mes "[Rust Blackhand]";
- mes "If you don't have business with me, go away! As you see, I make equipment for the Brothers at the monastery, not for adventurers like you. Do you understand?";
- close;
- }
- else if (.@new_maje == 2 && countitem(Bapho_Doll)) {
- switch(select("About the Cursed Baphomet Doll", "Stop talking.")) {
+ } else if (!.@new_maje && !countitem(Bapho_Doll)) {
+ mes("[Rust Blackhand]");
+ mes("If you don't have business with me, go away! As you see, I make equipment for the Brothers at the monastery, not for adventurers like you. Do you understand?");
+ close();
+ } else if (.@new_maje == 2 && countitem(Bapho_Doll)) {
+ switch (select("About the Cursed Baphomet Doll", "Stop talking.")) {
case 1:
- mes "[Rust Blackhand]";
- mes "What?... You again? What do you want this time?";
- next;
- mes "[Rust Blackhand]";
- mes "What? You got another doll from the wicked devil? Umm... You're much better than I thought...";
- next;
- mes "[Rust Blackhand]";
- mes "Alright... I'll help you again.";
- next;
- mes "[Rust Blackhand]";
- mes "If you want to make the doll into a ^4d4dffGigantic Magestic Goat^000000 again, I can make you another.";
- next;
- mes "[Rust Blackhand]";
- mes "I'll tell you the ingredients again. So, do you want to make?";
- next;
- switch(select("I want.", "No, I don't want.")) {
+ mes("[Rust Blackhand]");
+ mes("What?... You again? What do you want this time?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("What? You got another doll from the wicked devil? Umm... You're much better than I thought...");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Alright... I'll help you again.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("If you want to make the doll into a ^4d4dffGigantic Magestic Goat^000000 again, I can make you another.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I'll tell you the ingredients again. So, do you want to make?");
+ next();
+ switch (select("I want.", "No, I don't want.")) {
case 1:
- mes "[Rust Blackhand]";
- mes "kkk... Yes, wise men take their chances when the opportunity comes. I'll tell you the ingredients. Don't forget, and bring them all.";
- next;
- mes "[Rust Blackhand]";
- mes "^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.";
- next;
- mes "[Rust Blackhand]";
- mes "You can get the Magestic Goat from the weak Baphomet in the Labyrinth Forest. Crystal of Darkness and Fragment of Darkness are from the Incarnation of Morocc.";
- next;
- mes "[Rust Blackhand]";
- mes "I'm sure that you can get the ingredients because you sealed the real Baphomet. Can't you? kkk...";
- next;
- mes "[Rust Blackhand]";
- mes "You'll never know how great this hat is until you get one. If you understood, go and get the ingredients.";
+ mes("[Rust Blackhand]");
+ mes("kkk... Yes, wise men take their chances when the opportunity comes. I'll tell you the ingredients. Don't forget, and bring them all.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("^0000FFCursed Baphomet Doll, Magestic Goat, 30 Crystal of Darkness, 50 Fragment of Darkness^000000, and the most important, production cost is ^0000FF990000^000000 Zeny.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("You can get the Magestic Goat from the weak Baphomet in the Labyrinth Forest. Crystal of Darkness and Fragment of Darkness are from the Incarnation of Morocc.");
+ next();
+ mes("[Rust Blackhand]");
+ mes("I'm sure that you can get the ingredients because you sealed the real Baphomet. Can't you? kkk...");
+ next();
+ mes("[Rust Blackhand]");
+ mes("You'll never know how great this hat is until you get one. If you understood, go and get the ingredients.");
if (questprogress(3042))
- erasequest 3042;
- erasequest 3043;
- setquest 3043;
- close;
+ erasequest(3042);
+ erasequest(3043);
+ setquest(3043);
+ close();
case 2:
- mes "[Rust Blackhand]";
- mes "Huh... Do you? Do whatever you want... Do you really want to let this opportunity go to waste?";
- next;
- mes "[Rust Blackhand]";
- mes "Tut, tut... I don't care if the wicked doll threatens your life all the time!";
- close;
+ mes("[Rust Blackhand]");
+ mes("Huh... Do you? Do whatever you want... Do you really want to let this opportunity go to waste?");
+ next();
+ mes("[Rust Blackhand]");
+ mes("Tut, tut... I don't care if the wicked doll threatens your life all the time!");
+ close();
}
case 2:
- mes "[Rust Blackhand]";
- mes "What a dull boy he is... huh...";
- close;
+ mes("[Rust Blackhand]");
+ mes("What a dull boy he is... huh...");
+ close();
}
- }
- else if (.@new_maje == 2 && !countitem(Bapho_Doll)) {
- mes "[Rust Blackhand]";
- mes "Why are you hanging around here? If you don't want a ^4d4dffGigantic Magestic Goat^000000, go away.";
- close;
+ } else if (.@new_maje == 2 && !countitem(Bapho_Doll)) {
+ mes("[Rust Blackhand]");
+ mes("Why are you hanging around here? If you don't want a ^4d4dffGigantic Magestic Goat^000000, go away.");
+ close();
}
}
@@ -437,18 +431,17 @@ prt_monk,261,91,3 script Rust Blackhand#edq 4_M_DWARF,{
1@cata,1,2,0 script ins_baphomet_lotto FAKE_NPC,{
OnInstanceInit:
// Pick one "true" Gravestone and 12 "false" Gravestones.
- .@true = rand(1,13);
- for (.@i = 1; .@i <= 13; ++.@i) {
- disablenpc instance_npcname("Gravestone#1F_"+.@i+((.@i == .@true)?"T":"F"));
- }
- disablenpc instance_npcname("ins_baphomet_lotto");
+ .@true = rand(1, 13);
+ for (.@i = 1; .@i <= 13; ++.@i)
+ disablenpc(instance_npcname("Gravestone#1F_"+.@i+((.@i == .@true)?"T":"F")));
+ disablenpc(instance_npcname("ins_baphomet_lotto"));
end;
}
1@cata,3,2,0 script ins_baphomet_lotto2 FAKE_NPC,{
OnEnable:
for (.@i = 1; .@i <= 12; ++.@i)
- enablenpc instance_npcname("Bobbing Torch#"+.@i);
+ enablenpc(instance_npcname("Bobbing Torch#"+.@i));
end;
}
@@ -456,33 +449,32 @@ OnEnable:
OnEnable:
.@label$ = instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead";
.@map$ = instance_mapname("1@cata");
- monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1291,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1291,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1291,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1132,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1117,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1132,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1117,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1132,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1291,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1117,1,.@label$;
- monster .@map$,0,0,"Apostle of Baphomet",1869,1,.@label$;
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), FLAME_SKULL, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), WRAITH_DEAD, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), FLAME_SKULL, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), WRAITH_DEAD, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), FLAME_SKULL, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), WRAITH_DEAD, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), FLAME_SKULL, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), KHALITZBURG, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), EVIL_DRUID, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), KHALITZBURG, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), EVIL_DRUID, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), KHALITZBURG, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), WRAITH_DEAD, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), EVIL_DRUID, 1, .@label$);
+ monster(.@map$, 0, 0, _("Apostle of Baphomet"), FLAME_SKULL, 1, .@label$);
end;
OnDisable:
- killmonster instance_mapname("1@cata"),instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@cata"), instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@cata");
- if (mobcount(.@map$,instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead") < 1) {
- mapannounce .@map$, "All apostles of Baphomet are dead!",bc_map,"0x00ff99";
- }
- getitem Token_Of_Apostle,1;
+ if (mobcount(.@map$, instance_npcname("ins_baphomet_lotto3")+"::OnMyMobDead") < 1)
+ mapannounce(.@map$, _("All apostles of Baphomet are dead!"), bc_map, C_SPRINGGREEN);
+ getitem(Token_Of_Apostle, 1);
end;
}
@@ -490,102 +482,98 @@ OnMyMobDead:
1@cata,141,221,0 script Gravestone# CLEAR_NPC,3,3,{
.@party_id = getcharid(CHAR_ID_PARTY);
if ('ins_baphomet == 0) {
- mes "The gravestone is trembling...";
- next;
- mes "When touching the gravestone, I hear a voice.";
- next;
+ mes("The gravestone is trembling...");
+ next();
+ mes("When touching the gravestone, I hear a voice.");
+ next();
specialeffect(EF_CONE, AREA, playerattached());
- mes "[Voice of the Gravestone]";
- mes "I have waited and waited for a brave adventurer like you who will come back here again...";
- next;
- while(1) {
- switch(select("Who are you?", "Waited for me?", "Cancel.")) {
+ mes("[Voice of the Gravestone]");
+ mes("I have waited and waited for a brave adventurer like you who will come back here again...");
+ next();
+ while (true) {
+ switch (select("Who are you?", "Waited for me?", "Cancel.")) {
case 1:
- mes "[Voice of the Gravestone]";
- mes "I was one of the warriors to stop Baphomet like you. Now, I'm dead and only my soul remains...";
- next;
- mes "[Voice of the Gravestone]";
- mes "As you know... We don't have much time. You can't stop Baphomet by yourselves. The power of the devil has strengthened over the years.";
- next;
- mes "[Voice of the Gravestone]";
- mes "In the past, my companions and I sealed Baphomet at the altar located on the 2nd basement and blocked the entrance.";
- next;
- mes "[Voice of the Gravestone]";
- mes "I moved my soul's essence to my pendant, so that I could remain in this world. That's when I became this grave's guardian.";
- next;
+ mes("[Voice of the Gravestone]");
+ mes("I was one of the warriors to stop Baphomet like you. Now, I'm dead and only my soul remains...");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("As you know... We don't have much time. You can't stop Baphomet by yourselves. The power of the devil has strengthened over the years.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("In the past, my companions and I sealed Baphomet at the altar located on the 2nd basement and blocked the entrance.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("I moved my soul's essence to my pendant, so that I could remain in this world. That's when I became this grave's guardian.");
+ next();
break;
case 2:
- mes "[Voice of the Gravestone]";
- mes "Baphomet's power is about to break the seal that we made. If you don't reactivate them... Baphomet's revival will only be a matter of time.";
- next;
- mes "[Voice of the Gravestone]";
- mes "To open the entrance, you must substantialize my soul. I'll open the entrance and reactivate the weakened seals after I am substantilized.";
- next;
- mes "[Voice of the Gravestone]";
- mes "To substantialize my soul, you should find my pendant. You can find my body near a grave here.";
- next;
- mes "[Voice of the Gravestone]";
- mes "If your ^0000FFparty leader^000000 brings me the pendant, my soul can be substantialized. So, hurry up.";
+ mes("[Voice of the Gravestone]");
+ mes("Baphomet's power is about to break the seal that we made. If you don't reactivate them... Baphomet's revival will only be a matter of time.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("To open the entrance, you must substantialize my soul. I'll open the entrance and reactivate the weakened seals after I am substantilized.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("To substantialize my soul, you should find my pendant. You can find my body near a grave here.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("If your ^0000FFparty leader^000000 brings me the pendant, my soul can be substantialized. So, hurry up.");
'ins_baphomet = 1;
- close;
+ close();
case 3:
- mes "I can feel the voice becoming faint.";
- close;
+ mes("I can feel the voice becoming faint.");
+ close();
}
}
- }
- else if ('ins_baphomet == 1) {
- mes "[Voice of the Gravestone]";
- mes "To open the entrance, you must substantialize my soul. I'll open the entrance and reactivate the weakened seals after I am substantilized.";
- next;
- mes "[Voice of the Gravestone]";
- mes "To substantialize my soul, you should find my pendant. You can find my body near a grave here.";
- next;
- mes "[Voice of the Gravestone]";
- mes "If your ^0000FFparty leader^000000 brings me the pendant, my soul can be substantialized. So, hurry up.";
- close;
- }
- else if (('ins_baphomet == 2) && (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR))) {
- mes "[Voice of the Gravestone]";
- mes "Did you find the pendant?";
- next;
+ } else if ('ins_baphomet == 1) {
+ mes("[Voice of the Gravestone]");
+ mes("To open the entrance, you must substantialize my soul. I'll open the entrance and reactivate the weakened seals after I am substantilized.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("To substantialize my soul, you should find my pendant. You can find my body near a grave here.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("If your ^0000FFparty leader^000000 brings me the pendant, my soul can be substantialized. So, hurry up.");
+ close();
+ } else if ('ins_baphomet == 2 && getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ mes("[Voice of the Gravestone]");
+ mes("Did you find the pendant?");
+ next();
if (countitem(Soul_Pendant) > 0) {
- specialeffect EF_MAPPILLAR;
- mes "[Voice of the Gravestone]";
- mes "Yes... This is... My pendant...";
- next;
- delitem Soul_Pendant,1;
- enablenpc instance_npcname("Ancient Hero's Soul#1F");
- disablenpc instance_npcname("Gravestone#");
- mes "[Voice of the Gravestone]";
- mes "Now I can substantialize my soul. I'll wait for you in front of the altar of fire located at the center of this grave. Let's meet there.";
- next;
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : I'll wait for you in front of the altar of fire located at the center",bc_map,"0xFFFF00";
- mes "I can feel the voice becoming faint.";
- close;
- }
- else {
- mes "[Voice of the Gravestone]";
- mes "Are you still there? Bring back my pendant as soon as possible.";
- next;
- mes "[Voice of the Gravestone]";
- mes "You can find my body near a grave here. Go and get my pendant there.";
- close;
+ specialeffect(EF_MAPPILLAR);
+ mes("[Voice of the Gravestone]");
+ mes("Yes... This is... My pendant...");
+ next();
+ delitem(Soul_Pendant, 1);
+ enablenpc(instance_npcname("Ancient Hero's Soul#1F"));
+ disablenpc(instance_npcname("Gravestone#"));
+ mes("[Voice of the Gravestone]");
+ mes("Now I can substantialize my soul. I'll wait for you in front of the altar of fire located at the center of this grave. Let's meet there.");
+ next();
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : I'll wait for you in front of the altar of fire located at the center"), bc_map, C_YELLOW);
+ mes("I can feel the voice becoming faint.");
+ close();
+ } else {
+ mes("[Voice of the Gravestone]");
+ mes("Are you still there? Bring back my pendant as soon as possible.");
+ next();
+ mes("[Voice of the Gravestone]");
+ mes("You can find my body near a grave here. Go and get my pendant there.");
+ close();
}
- }
- else {
- mes "[Voice of the Gravestone]";
- mes "I want to talk to ^0000FFa representative among your party^000000. Everyone else, wait here.";
- close;
+ } else {
+ mes("[Voice of the Gravestone]");
+ mes("I want to talk to ^0000FFa representative among your party^000000. Everyone else, wait here.");
+ close();
}
end;
OnTouch:
if ('ins_baphomet == 0) {
- mes "'Krrrr... Krrrr...'";
- next;
- mes "I can feel something odd at the grave. It's like someone is calling out silently...";
- close;
+ mes("'Krrrr... Krrrr...'");
+ next();
+ mes("I can feel something odd at the grave. It's like someone is calling out silently...");
+ close();
}
end;
@@ -596,220 +584,210 @@ OnInstanceInit: // Temporary fix for @reloadscript.
1@cata,176,119,4 script Ancient Hero's Soul#1F 4_M_CHAMPSOUL,{
.@party_id = getcharid(CHAR_ID_PARTY);
- cutin "ins_cata_champ_n",2;
+ cutin("ins_cata_champ_n", 2);
if ('ins_baphomet == 2) {
- mes "[Ancient Hero's Soul]";
- mes "With your help, my soul can be substantialized. I want to talk more, but we do not have enough time...";
- next;
- mes "[Ancient Hero's Soul]";
- mes "I must be substantialized within the next hour. To reach the Main Altar underground, you must help me perform the ceremony for opening each seal.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Now I'll tell you what should you do. First, collect ^0000FFEssence of Fire^000000 from the torches on the graves...";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Second, all members who will enter the underground must carry a symbol, called the Token of Apostle.";
- next;
- while(1) {
- cutin "ins_cata_champ_n",2;
- switch(select("What is Essence of Fire?", "What is a Token of Apostle?", "What should I do?", "I am ready.")) {
+ mes("[Ancient Hero's Soul]");
+ mes("With your help, my soul can be substantialized. I want to talk more, but we do not have enough time...");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("I must be substantialized within the next hour. To reach the Main Altar underground, you must help me perform the ceremony for opening each seal.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Now I'll tell you what should you do. First, collect ^0000FFEssence of Fire^000000 from the torches on the graves...");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Second, all members who will enter the underground must carry a symbol, called the Token of Apostle.");
+ next();
+ while (true) {
+ cutin("ins_cata_champ_n", 2);
+ switch (select("What is Essence of Fire?", "What is a Token of Apostle?", "What should I do?", "I am ready.")) {
case 1:
++.@ins_baphomet_1f_1;
- mes "[Ancient Hero's Soul]";
- mes "You can see the torches here and there. These torches are the essence of Thor, the god of Thunder. They are inherited from our predecessors to stop the darkness of Baphomet...";
- next;
- mes "[Ancient Hero's Soul]";
- mes "To open the sealed underground gate, I must be purified by the ^0000FFEssence of Fire^000000 which has the power of Thor. Collect ^0000FF10 Essence of Fire^000000 from the torches.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "One thing you must remember is... ^0000FFEssence of Fire^000000 can only be collected by the Inheritor of Faith.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "I'll give the token of the Inheritor of Faith to the party leader. Only the party leader can collect the ^0000FFEssence of Fire^000000.";
- next;
+ mes("[Ancient Hero's Soul]");
+ mes("You can see the torches here and there. These torches are the essence of Thor, the god of Thunder. They are inherited from our predecessors to stop the darkness of Baphomet...");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("To open the sealed underground gate, I must be purified by the ^0000FFEssence of Fire^000000 which has the power of Thor. Collect ^0000FF10 Essence of Fire^000000 from the torches.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("One thing you must remember is... ^0000FFEssence of Fire^000000 can only be collected by the Inheritor of Faith.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("I'll give the token of the Inheritor of Faith to the party leader. Only the party leader can collect the ^0000FFEssence of Fire^000000.");
+ next();
break;
case 2:
++.@ins_baphomet_1f_2;
- mes "[Ancient Hero's Soul]";
- mes "At that time, it was impossible to get rid of Devil Baphomet by ourselves. After numerous heroes sacrificed their lives, we could barely seal him under this Abbey.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "However, Baphomet never gave up. He continuously strengthened his power. And his power has brought new life to this shrine.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Some of these monsters have magical powers. Baphomet calls them his 'Apostles'.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "The apostles are cloning themselves to fill the shrine with their evil energy. They are the monsters here in this catacomb.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Kill the Apostles. They can only be distinguished from their clones because they will possess a ^0000FFToken of Apostle^000000...";
- next;
- mes "[Ancient Hero's Soul]";
- mes "If each party member possesses a ^0000FFToken of Apostle^000000, Baphomet will not be able to perceive your entrance to the Main Altar underground.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "If Baphomet perceives you when you pass through the sealed gate, he may release his tremendous magical power. Then, this abbey will be demolished.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Kill the apostles and get the ^0000FFToken of Apostle^000000.";
- next;
+ mes("[Ancient Hero's Soul]");
+ mes("At that time, it was impossible to get rid of Devil Baphomet by ourselves. After numerous heroes sacrificed their lives, we could barely seal him under this Abbey.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("However, Baphomet never gave up. He continuously strengthened his power. And his power has brought new life to this shrine.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Some of these monsters have magical powers. Baphomet calls them his 'Apostles'.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("The apostles are cloning themselves to fill the shrine with their evil energy. They are the monsters here in this catacomb.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Kill the Apostles. They can only be distinguished from their clones because they will possess a ^0000FFToken of Apostle^000000...");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("If each party member possesses a ^0000FFToken of Apostle^000000, Baphomet will not be able to perceive your entrance to the Main Altar underground.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("If Baphomet perceives you when you pass through the sealed gate, he may release his tremendous magical power. Then, this abbey will be demolished.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Kill the apostles and get the ^0000FFToken of Apostle^000000.");
+ next();
break;
case 3:
++.@ins_baphomet_1f_3;
- if (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR)) {
- mes "[Ancient Hero's Soul]";
- mes "You look like the leader of this party. You need to go and get ^0000FF10 Essence of Fire^000000 from the torches.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Now I'll carve you the symbol which shows you're a inheritor of faith. Be aware that no one in your party but you can collect the Essence of Fire.";
- next;
+ if (getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ mes("[Ancient Hero's Soul]");
+ mes("You look like the leader of this party. You need to go and get ^0000FF10 Essence of Fire^000000 from the torches.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Now I'll carve you the symbol which shows you're a inheritor of faith. Be aware that no one in your party but you can collect the Essence of Fire.");
+ next();
specialeffect(EF_HOLYHIT, AREA, playerattached());
- mes "[Ancient Hero's Soul]";
- mes "You should also carry a ^0000FFToken of Apostle^000000, so find one for yourself too.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "When all of you are ready to go, let me know. I'll open the sealed gate when you're ready.";
- next;
- }
- else {
- mes "[Ancient Hero's Soul]";
- mes "Make sure that your party leader has listened to my explanation of what you and your companions must do.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Kill the Apostles of Baphomet and find their ^0000FFToken of Apostle^000000.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "It might be better to kill all of them because there is no way to differentiate them from their clones.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Are you ready?";
- mes "Make sure that you have listened to all that I have to say before saying that you are ready.";
- next;
+ mes("[Ancient Hero's Soul]");
+ mes("You should also carry a ^0000FFToken of Apostle^000000, so find one for yourself too.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("When all of you are ready to go, let me know. I'll open the sealed gate when you're ready.");
+ next();
+ } else {
+ mes("[Ancient Hero's Soul]");
+ mes("Make sure that your party leader has listened to my explanation of what you and your companions must do.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Kill the Apostles of Baphomet and find their ^0000FFToken of Apostle^000000.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("It might be better to kill all of them because there is no way to differentiate them from their clones.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Are you ready?");
+ mes("Make sure that you have listened to all that I have to say before saying that you are ready.");
+ next();
}
break;
case 4:
- if ((.@ins_baphomet_1f_1 > 0) && (.@ins_baphomet_1f_2 > 0) && (.@ins_baphomet_1f_3 > 0)) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "Are you ready to go? Then I'll open this sealed gate now.";
- next;
+ if (.@ins_baphomet_1f_1 > 0 && .@ins_baphomet_1f_2 > 0 && .@ins_baphomet_1f_3 > 0) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("Are you ready to go? Then I'll open this sealed gate now.");
+ next();
.@exitloop = 1;
- }
- else {
- cutin "ins_cata_champ_a",2;
- mes "[Ancient Hero's Soul]";
- mes "It may be difficult but I wish you luck braving the perils of this catacomb.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Remember, you need to collect ^0000FF10 Essence of Fire^000000 from the torches and the ^0000FFToken of Apostle^000000 from the Apostles of Baphomet.";
- next;
+ } else {
+ cutin("ins_cata_champ_a", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("It may be difficult but I wish you luck braving the perils of this catacomb.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Remember, you need to collect ^0000FF10 Essence of Fire^000000 from the torches and the ^0000FFToken of Apostle^000000 from the Apostles of Baphomet.");
+ next();
}
break;
}
- if (.@exitloop) break;
+ if (.@exitloop)
+ break;
}
- if (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR)) {
- mes "[Ancient Hero's Soul]";
- mes "To remind you again, I must be substantialized within the next hour. So everyone, finish your work within that time!";
+ if (getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ mes("[Ancient Hero's Soul]");
+ mes("To remind you again, I must be substantialized within the next hour. So everyone, finish your work within that time!");
'ins_baphomet = 3;
- donpcevent instance_npcname("ins_baphomet_1f_timer")+"::OnEnable";
- donpcevent instance_npcname("ins_baphomet_lotto2")+"::OnEnable";
- donpcevent instance_npcname("ins_baphomet_lotto3")+"::OnEnable";
- }
- else {
- mes "[Ancient Hero's Soul]";
- mes "To remind you again, I can be substantialized for the next hour. So everyone, finish your work within that time.";
+ donpcevent(instance_npcname("ins_baphomet_1f_timer")+"::OnEnable");
+ donpcevent(instance_npcname("ins_baphomet_lotto2")+"::OnEnable");
+ donpcevent(instance_npcname("ins_baphomet_lotto3")+"::OnEnable");
+ } else {
+ mes("[Ancient Hero's Soul]");
+ mes("To remind you again, I can be substantialized for the next hour. So everyone, finish your work within that time.");
//'ins_baphomet = 3;
}
- close2;
- cutin "",255;
+ close2();
+ cutin("", 255);
end;
- }
- else if (('ins_baphomet == 3) && (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR))) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "Did you get 10 ^0000FFEssence of Fire^000000 and ^0000FFToken of Apostle^000000?";
- next;
- if ((countitem(Essence_Of_Fire) > 9) && (countitem(Token_Of_Apostle) > 0)) {
- delitem Essence_Of_Fire,countitem(Essence_Of_Fire);
+ } else if ('ins_baphomet == 3 && getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("Did you get 10 ^0000FFEssence of Fire^000000 and ^0000FFToken of Apostle^000000?");
+ next();
+ if (countitem(Essence_Of_Fire) > 9 && countitem(Token_Of_Apostle) > 0) {
+ delitem(Essence_Of_Fire, countitem(Essence_Of_Fire));
'ins_baphomet = 4;
- mes "[Ancient Hero's Soul]";
- mes "Okay. You've done your work. Now check your companions and tell me when everyone has finished their work.";
- }
- else {
- mes "[Ancient Hero's Soul]";
- mes "Not ready yet? You should prepare 10 ^0000FFEssence of Fire^000000 and ^0000FFToken of Apostle^000000.";
+ mes("[Ancient Hero's Soul]");
+ mes("Okay. You've done your work. Now check your companions and tell me when everyone has finished their work.");
+ } else {
+ mes("[Ancient Hero's Soul]");
+ mes("Not ready yet? You should prepare 10 ^0000FFEssence of Fire^000000 and ^0000FFToken of Apostle^000000.");
}
- close2;
- cutin "",255;
+ close2();
+ cutin("", 255);
end;
- }
- else if ('ins_baphomet == 3) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "Do you have a ^0000FFToken of Apostle^000000?";
- next;
+ } else if ('ins_baphomet == 3) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("Do you have a ^0000FFToken of Apostle^000000?");
+ next();
if (countitem(Token_Of_Apostle) > 0) {
'ins_baphomet = 4;
- mes "[Ancient Hero's Soul]";
- mes "Okay. You've done your work. Tell your representative to check your companions and come to me when everyone has finished their work.";
- }
- else {
- mes "[Ancient Hero's Soul]";
- mes "Not ready yet? You should prepare ^0000FFToken of Apostle^000000.";
+ mes("[Ancient Hero's Soul]");
+ mes("Okay. You've done your work. Tell your representative to check your companions and come to me when everyone has finished their work.");
+ } else {
+ mes("[Ancient Hero's Soul]");
+ mes("Not ready yet? You should prepare ^0000FFToken of Apostle^000000.");
}
- close2;
- cutin "",255;
+ close2();
+ cutin("", 255);
end;
- }
- else if (('ins_baphomet == 4) && (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR))) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "Are you ready? I opened the sealed gate. To pass the gate, you should carry a ^0000FFToken of Apostle^000000.";
- next;
+ } else if ('ins_baphomet == 4 && getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("Are you ready? I opened the sealed gate. To pass the gate, you should carry a ^0000FFToken of Apostle^000000.");
+ next();
'ins_baphomet = 5;
- specialeffect EF_TELEPORTATION;
- enablenpc instance_npcname("ins_bapho_to_2f");
- mes "[Ancient Hero's Soul]";
- mes "Now you can go to the main altar. It is located in the bottom right corner of this floor.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Your real battle will begin... I'll follow you soon and find a way to help you.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "Go ahead, warriors.";
- cutin "",255;
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : Now you can go to the Main Altar's gate. It is located in the Southeast",bc_map,"0xFFFF00";
- close;
- }
- else if ('ins_baphomet == 4) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "Are you ready? I opened the sealed gate. To pass the gate, you should carry a ^0000FFToken of Apostle^000000.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "I'll complete opening the sealed gate when your representative tells me that you're ready.";
- cutin "",255;
- close;
- }
- else if ('ins_baphomet == 5) {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "What are you doing? The entrance of the main altar is opened now, go and fight! The entrance is near the bottom right side of this floor.";
- cutin "",255;
- close;
- }
- else {
- cutin "ins_cata_champ_n",2;
- mes "[Ancient Hero's Soul]";
- mes "I have nothing to say to you...";
- cutin "",255;
- close;
+ specialeffect(EF_TELEPORTATION);
+ enablenpc(instance_npcname("ins_bapho_to_2f"));
+ mes("[Ancient Hero's Soul]");
+ mes("Now you can go to the main altar. It is located in the bottom right corner of this floor.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Your real battle will begin... I'll follow you soon and find a way to help you.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("Go ahead, warriors.");
+ cutin("", 255);
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : Now you can go to the Main Altar's gate. It is located in the Southeast"), bc_map, C_YELLOW);
+ close();
+ } else if ('ins_baphomet == 4) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("Are you ready? I opened the sealed gate. To pass the gate, you should carry a ^0000FFToken of Apostle^000000.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("I'll complete opening the sealed gate when your representative tells me that you're ready.");
+ cutin("", 255);
+ close();
+ } else if ('ins_baphomet == 5) {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("What are you doing? The entrance of the main altar is opened now, go and fight! The entrance is near the bottom right side of this floor.");
+ cutin("", 255);
+ close();
+ } else {
+ cutin("ins_cata_champ_n", 2);
+ mes("[Ancient Hero's Soul]");
+ mes("I have nothing to say to you...");
+ cutin("", 255);
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("Ancient Hero's Soul#1F");
+ disablenpc(instance_npcname("Ancient Hero's Soul#1F"));
end;
}
@@ -817,38 +795,37 @@ OnInstanceInit:
1@cata,281,12,0 script ins_bapho_to_2f WARPNPC,1,1,{
OnTouch:
if (countitem(Token_Of_Apostle) > 0) {
- delitem Token_Of_Apostle,countitem(Token_Of_Apostle);
+ delitem(Token_Of_Apostle, countitem(Token_Of_Apostle));
'ins_baphomet = 5;
- warp instance_mapname("2@cata"),80,144;
+ warp(instance_mapname("2@cata"), 80, 144);
end;
- }
- else {
- mes "[Ancient Hero's Soul]";
- mes "Where is your Token of Apostle? I said you should carry the Token of Apostle to pass this gate.";
- close;
+ } else {
+ mes("[Ancient Hero's Soul]");
+ mes("Where is your Token of Apostle? I said you should carry the Token of Apostle to pass this gate.");
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("ins_bapho_to_2f");
+ disablenpc(instance_npcname("ins_bapho_to_2f"));
end;
}
//== Gravestones ===========================================
- script Gravestone#SS1 FAKE_NPC,{
if ('ins_baphomet == 1) {
- getitem Soul_Pendant,1;
+ getitem(Soul_Pendant, 1);
'ins_baphomet = 2;
- mes "A small object is shining under a leaning grave.";
- next;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "I think this is the pendant...";
- close;
- }
- else {
- mes "I can only feel gloom from this Gravestone.";
- close;
+ mes("A small object is shining under a leaning grave.");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("I think this is the pendant...");
+ close();
+ } else {
+ mes("I can only feel gloom from this Gravestone.");
+ close();
}
}
+
1@cata,86,214,0 duplicate(Gravestone#SS1) Gravestone#1F_1T CLEAR_NPC
1@cata,200,209,0 duplicate(Gravestone#SS1) Gravestone#1F_2T CLEAR_NPC
1@cata,230,195,0 duplicate(Gravestone#SS1) Gravestone#1F_3T CLEAR_NPC
@@ -864,9 +841,10 @@ OnInstanceInit:
1@cata,267,30,0 duplicate(Gravestone#SS1) Gravestone#1F_13T CLEAR_NPC
- script Gravestone#SS2 FAKE_NPC,{
- mes "I can only feel gloom from this Gravestone.";
- close;
+ mes("I can only feel gloom from this Gravestone.");
+ close();
}
+
1@cata,86,214,0 duplicate(Gravestone#SS2) Gravestone#1F_1F CLEAR_NPC
1@cata,200,209,0 duplicate(Gravestone#SS2) Gravestone#1F_2F CLEAR_NPC
1@cata,230,195,0 duplicate(Gravestone#SS2) Gravestone#1F_3F CLEAR_NPC
@@ -884,41 +862,39 @@ OnInstanceInit:
//== Bobbing Torches =======================================
- script Bobbing Torch#SS FAKE_NPC,{
.@party_id = getcharid(CHAR_ID_PARTY);
- if (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR)) {
- if (('ins_baphomet == 3) && (countitem(Essence_Of_Fire) < 11)) {
- mes "A huge torch appearing as if it can burn everything is bobbing up and down in front of me.";
- next;
- mes "The grand appearance and heat of the fire makes me step back... But I pluck up my courage and reach out to pick up the torch.";
- next;
+ if (getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ if ('ins_baphomet == 3 && countitem(Essence_Of_Fire) < 11) {
+ mes("A huge torch appearing as if it can burn everything is bobbing up and down in front of me.");
+ next();
+ mes("The grand appearance and heat of the fire makes me step back... But I pluck up my courage and reach out to pick up the torch.");
+ next();
specialeffect(EF_HOLYHIT, AREA, playerattached());
- getitem Essence_Of_Fire,1;
- mes "The symbol of inheritor shines. Then a small crystal falls into my hand from the torch.";
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- close;
- }
- else if (('ins_baphomet == 3) && (countitem(Essence_Of_Fire) > 10)) {
- mes "You have 10 Essence of Fire already, so you don't need to collect any more.";
- close;
- }
- else {
- mes "You don't need to collect Essence of Fire anymore.";
- close;
+ getitem(Essence_Of_Fire, 1);
+ mes("The symbol of inheritor shines. Then a small crystal falls into my hand from the torch.");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ close();
+ } else if ('ins_baphomet == 3 && countitem(Essence_Of_Fire) > 10) {
+ mes("You have 10 Essence of Fire already, so you don't need to collect any more.");
+ close();
+ } else {
+ mes("You don't need to collect Essence of Fire anymore.");
+ close();
}
- }
- else {
- mes "A huge torch appearing as if it can burn everything is bobbing up and down in front of me..";
- next;
- mes "[Unknown Voice]";
- mes "You are not a inheritor of faith. Do not desecrate the Essence of Fire with your disrespectful hands.";
+ } else {
+ mes("A huge torch appearing as if it can burn everything is bobbing up and down in front of me..");
+ next();
+ mes("[Unknown Voice]");
+ mes("You are not a inheritor of faith. Do not desecrate the Essence of Fire with your disrespectful hands.");
specialeffect(EF_FIRESPLASHHIT, AREA, playerattached());
- percentheal -50,0;
- close;
+ percentheal(-50, 0);
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
+
1@cata,267,210,0 duplicate(Bobbing Torch#SS) Bobbing Torch#1 CLEAR_NPC
1@cata,85,182,0 duplicate(Bobbing Torch#SS) Bobbing Torch#2 CLEAR_NPC
1@cata,267,154,0 duplicate(Bobbing Torch#SS) Bobbing Torch#3 CLEAR_NPC
@@ -934,186 +910,193 @@ OnInstanceInit:
1@cata,1,1,0 script ins_baphomet_1f_timer FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("ins_baphomet_1f_timer");
+ disablenpc(instance_npcname("ins_baphomet_1f_timer"));
end;
OnEnable:
- enablenpc instance_npcname("ins_baphomet_1f_timer");
- initnpctimer;
+ enablenpc(instance_npcname("ins_baphomet_1f_timer"));
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("ins_baphomet_1f_timer");
- stopnpctimer;
+ disablenpc(instance_npcname("ins_baphomet_1f_timer"));
+ stopnpctimer();
end;
OnTimer1800000:
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : We don't have enough time! Hurry up!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : We don't have enough time! Hurry up!"), bc_map, C_YELLOW);
end;
OnTimer2400000:
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : My body is disappearing... Hurry up!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : My body is disappearing... Hurry up!"), bc_map, C_YELLOW);
end;
OnTimer3000000:
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : Everything is over... There is no other way but to wait for the next chance...",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : Everything is over... There is no other way but to wait for the next chance..."), bc_map, C_YELLOW);
end;
OnTimer3050000:
- mapannounce instance_mapname("1@cata"), "Ancient Hero's Soul : We failed... However... We still have a chance. I hope you will train yourselves until the time comes.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@cata"), _("Ancient Hero's Soul : We failed... However... We still have a chance. I hope you will train yourselves until the time comes."), bc_map, C_YELLOW);
end;
OnTimer3100000:
- mapannounce instance_mapname("1@cata"), "You've failed to open the seal of main altar.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("1@cata"), _("You've failed to open the seal of main altar."), bc_map, C_YELLOW);
end;
OnTimer3500000:
- instance_warpall "monk_test",310,150;
- stopnpctimer;
+ instance_warpall("monk_test", 310, 150);
+ stopnpctimer();
end;
}
2@cata,80,144,0 script ins_2f_enter FAKE_NPC,3,3,{
OnTouch:
- donpcevent instance_npcname("ins_2f_enter_broad")+"::OnEnable";
- disablenpc instance_npcname("ins_2f_enter");
+ donpcevent(instance_npcname("ins_2f_enter_broad")+"::OnEnable");
+ disablenpc(instance_npcname("ins_2f_enter"));
end;
}
2@cata,1,1,0 script ins_2f_enter_broad FAKE_NPC,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("ins_2f_enter_broad");
+ disablenpc(instance_npcname("ins_2f_enter_broad"));
end;
OnEnable:
- enablenpc instance_npcname("ins_2f_enter_broad");
- initnpctimer;
+ enablenpc(instance_npcname("ins_2f_enter_broad"));
+ initnpctimer();
end;
OnTimer10000:
- mapannounce instance_mapname("2@cata"), "Baphomet : Humans... interfering again...",bc_map,"0xdb7093";
+ mapannounce(instance_mapname("2@cata"), _("Baphomet : Humans... interfering again..."), bc_map, "0xdb7093");
end;
OnTimer13000:
- mapannounce instance_mapname("2@cata"), "Apostle of Baphomet : Humans! Humans have invaded our sanctum!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Apostle of Baphomet : Humans! Humans have invaded our sanctum!"), bc_map, C_YELLOW);
end;
OnTimer16000:
- mapannounce instance_mapname("2@cata"), "Apostle of Baphomet : Kill the humans! Do not stop the revival of our Master!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Apostle of Baphomet : Kill the humans! Do not stop the revival of our Master!"), bc_map, C_YELLOW);
end;
OnTimer18000:
- mapannounce instance_mapname("2@cata"), "Apostle of Baphomet : Hurry up and release the seals of the altars! Our Master's return is upon us!",bc_map,"0xFFFF00";
- stopnpctimer;
- disablenpc instance_npcname("ins_2f_enter_broad");
+ mapannounce(instance_mapname("2@cata"), _("Apostle of Baphomet : Hurry up and release the seals of the altars! Our Master's return is upon us!"), bc_map, C_YELLOW);
+ stopnpctimer();
+ disablenpc(instance_npcname("ins_2f_enter_broad"));
end;
}
2@cata,50,67,0 script slave_left FAKE_NPC,5,5,{
OnTouch:
.@map$ = instance_mapname("2@cata");
- mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
- monster .@map$,55,67,"Apostle of Baphomet",1869,1;
- monster .@map$,51,67,"Apostle of Baphomet",1291,1;
- monster .@map$,58,67,"Apostle of Baphomet",1292,1;
- monster .@map$,53,67,"Apostle of Baphomet",1291,1;
- monster .@map$,54,67,"Apostle of Baphomet",1869,1;
- monster .@map$,55,67,"Apostle of Baphomet",1291,1;
- monster .@map$,56,67,"Apostle of Baphomet",1117,1;
- monster .@map$,58,66,"Apostle of Baphomet",1869,1;
- monster .@map$,56,66,"Apostle of Baphomet",1117,1;
- monster .@map$,60,66,"Apostle of Baphomet",1132,1;
- monster .@map$,59,66,"Apostle of Baphomet",1117,1;
- monster .@map$,54,66,"Apostle of Baphomet",1132,1;
- monster .@map$,55,66,"Apostle of Baphomet",1292,1;
- monster .@map$,56,66,"Apostle of Baphomet",1132,1;
- monster .@map$,50,65,"Apostle of Baphomet",1867,1;
- monster .@map$,61,65,"Apostle of Baphomet",1292,1;
- disablenpc instance_npcname("slave_left");
+ mapannounce(.@map$, _("Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!"), bc_map, C_YELLOW);
+ monster(.@map$, 55, 67, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 51, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 58, 67, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 53, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 54, 67, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 55, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 56, 67, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 58, 66, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 56, 66, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 60, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 59, 66, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 54, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 55, 66, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 56, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 50, 65, _("Apostle of Baphomet"), BANSHEE, 1);
+ monster(.@map$, 61, 65, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ disablenpc(instance_npcname("slave_left"));
end;
}
2@cata,109,67,0 script slave_right FAKE_NPC,5,5,{
OnTouch:
.@map$ = instance_mapname("2@cata");
- mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
- monster .@map$,105,67,"Apostle of Baphomet",1869,1;
- monster .@map$,104,67,"Apostle of Baphomet",1291,1;
- monster .@map$,107,67,"Apostle of Baphomet",1869,1;
- monster .@map$,106,67,"Apostle of Baphomet",1291,1;
- monster .@map$,102,67,"Apostle of Baphomet",1869,1;
- monster .@map$,103,67,"Apostle of Baphomet",1291,1;
- monster .@map$,103,67,"Apostle of Baphomet",1117,1;
- monster .@map$,109,66,"Apostle of Baphomet",1117,1;
- monster .@map$,108,66,"Apostle of Baphomet",1132,1;
- monster .@map$,101,66,"Apostle of Baphomet",1117,1;
- monster .@map$,106,66,"Apostle of Baphomet",1292,1;
- monster .@map$,102,66,"Apostle of Baphomet",1132,1;
- monster .@map$,104,66,"Apostle of Baphomet",1292,1;
- monster .@map$,103,66,"Apostle of Baphomet",1132,1;
- monster .@map$,109,65,"Apostle of Baphomet",1867,1;
- monster .@map$,108,65,"Apostle of Baphomet",1292,1;
- disablenpc instance_npcname("slave_right");
+ mapannounce(.@map$, _("Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!"), bc_map, C_YELLOW);
+ monster(.@map$, 105, 67, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 104, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 107, 67, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 106, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 102, 67, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 103, 67, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 103, 67, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 109, 66, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 108, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 101, 66, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 106, 66, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 102, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 104, 66, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 103, 66, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 109, 65, _("Apostle of Baphomet"), BANSHEE, 1);
+ monster(.@map$, 108, 65, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ disablenpc(instance_npcname("slave_right"));
end;
}
2@cata,79,39,0 script slave_down FAKE_NPC,5,5,{
OnTouch:
.@map$ = instance_mapname("2@cata");
- mapannounce .@map$, "Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!",bc_map,"0xFFFF00";
- monster .@map$,78,41,"Apostle of Baphomet",1869,1;
- monster .@map$,79,42,"Apostle of Baphomet",1291,1;
- monster .@map$,78,46,"Apostle of Baphomet",1869,1;
- monster .@map$,81,41,"Apostle of Baphomet",1291,1;
- monster .@map$,81,42,"Apostle of Baphomet",1869,1;
- monster .@map$,79,43,"Apostle of Baphomet",1291,1;
- monster .@map$,77,40,"Apostle of Baphomet",1117,1;
- monster .@map$,79,41,"Apostle of Baphomet",1132,1;
- monster .@map$,79,42,"Apostle of Baphomet",1117,1;
- monster .@map$,79,43,"Apostle of Baphomet",1132,1;
- monster .@map$,79,48,"Apostle of Baphomet",1117,1;
- monster .@map$,78,49,"Apostle of Baphomet",1132,1;
- monster .@map$,78,41,"Apostle of Baphomet",1292,1;
- monster .@map$,74,42,"Apostle of Baphomet",1292,1;
- monster .@map$,72,48,"Apostle of Baphomet",1867,1;
- monster .@map$,72,38,"Apostle of Baphomet",1292,1;
- disablenpc instance_npcname("slave_down");
+ mapannounce(.@map$, _("Apostle of Baphomet : Kill the humans! Don't let them interrupt the revival of our Master!"), bc_map, C_YELLOW);
+ monster(.@map$, 78, 41, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 79, 42, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 78, 46, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 81, 41, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 81, 42, _("Apostle of Baphomet"), FLAME_SKULL, 1);
+ monster(.@map$, 79, 43, _("Apostle of Baphomet"), WRAITH_DEAD, 1);
+ monster(.@map$, 77, 40, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 79, 41, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 79, 42, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 79, 43, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 79, 48, _("Apostle of Baphomet"), EVIL_DRUID, 1);
+ monster(.@map$, 78, 49, _("Apostle of Baphomet"), KHALITZBURG, 1);
+ monster(.@map$, 78, 41, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 74, 42, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ monster(.@map$, 72, 48, _("Apostle of Baphomet"), BANSHEE, 1);
+ monster(.@map$, 72, 38, _("Apostle of Baphomet"), MINI_DEMON, 1);
+ disablenpc(instance_npcname("slave_down"));
end;
}
//== Magical Seals =========================================
- script Magical Seal#SS FAKE_NPC,{
- .@seal_check = questprogress(3041,PLAYTIME);
+ .@seal_check = questprogress(3041, PLAYTIME);
if (.@seal_check == 1) {
specialeffect(EF_SILENCEATTACK, AREA, playerattached());
- percentheal -50,0;
- sc_start Eff_Stone,30000,0;
- mes "Your SP has not recovered yet. You lost your SP on the altar, but it seems the power of the seal has returned.";
- close;
+ percentheal(-50, 0);
+ sc_start(Eff_Stone, 30000, 0);
+ mes("Your SP has not recovered yet. You lost your SP on the altar, but it seems the power of the seal has returned.");
+ close();
}
- if (.@seal_check == 2) erasequest 3041;
- specialeffect EF_LEXDIVINA;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ if (.@seal_check == 2)
+ erasequest(3041);
+ specialeffect(EF_LEXDIVINA);
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
.@map$ = instance_mapname("2@cata");
- if (strnpcinfo(NPC_NAME_HIDDEN) == "0") areamobuseskill .@map$,79,81,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
- else if (strnpcinfo(NPC_NAME_HIDDEN) == "2") areamobuseskill .@map$,123,109,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
- else if (strnpcinfo(NPC_NAME_HIDDEN) == "4") areamobuseskill .@map$,123,22,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
- else if (strnpcinfo(NPC_NAME_HIDDEN) == "8") areamobuseskill .@map$,35,21,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
- else if (strnpcinfo(NPC_NAME_HIDDEN) == "10") areamobuseskill .@map$,35,109,10,1929,"NPC_INVINCIBLEOFF",1,0,0,e_hlp,0;
- percentheal -50,0;
- sc_start Eff_Stone,20000,0;
- setquest 3041;
- mapannounce .@map$, "The seal activated by putting magical power into the altar.",bc_map,"0x87ceeb";
- mes "I can feel the power of the altar came back by adding magical power.";
- next;
- mes "But you can't use your magic for 3 minutes because you used your SP on the altar.";
- close;
+ if (strnpcinfo(NPC_NAME_HIDDEN) == "0")
+ areamobuseskill(.@map$, 79, 81, 10, BAPHOMET_I, "NPC_INVINCIBLEOFF", 1, 0, 0, e_hlp, 0);
+ else if (strnpcinfo(NPC_NAME_HIDDEN) == "2")
+ areamobuseskill(.@map$, 123, 109, 10, BAPHOMET_I, "NPC_INVINCIBLEOFF", 1, 0, 0, e_hlp, 0);
+ else if (strnpcinfo(NPC_NAME_HIDDEN) == "4")
+ areamobuseskill(.@map$, 123, 22, 10, BAPHOMET_I, "NPC_INVINCIBLEOFF", 1, 0, 0, e_hlp, 0);
+ else if (strnpcinfo(NPC_NAME_HIDDEN) == "8")
+ areamobuseskill(.@map$, 35, 21, 10, BAPHOMET_I, "NPC_INVINCIBLEOFF", 1, 0, 0, e_hlp, 0);
+ else if (strnpcinfo(NPC_NAME_HIDDEN) == "10")
+ areamobuseskill(.@map$, 35, 109, 10, BAPHOMET_I, "NPC_INVINCIBLEOFF", 1, 0, 0, e_hlp, 0);
+ percentheal(-50, 0);
+ sc_start(Eff_Stone, 20000, 0);
+ setquest(3041);
+ mapannounce(.@map$, _("The seal activated by putting magical power into the altar."), bc_map, "0x87ceeb");
+ mes("I can feel the power of the altar came back by adding magical power.");
+ next();
+ mes("But you can't use your magic for 3 minutes because you used your SP on the altar.");
+ close();
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
+
2@cata,79,81,0 duplicate(Magical Seal#SS) Magical Seal#0 CLEAR_NPC
2@cata,123,109,0 duplicate(Magical Seal#SS) Magical Seal#2 CLEAR_NPC
2@cata,123,22,0 duplicate(Magical Seal#SS) Magical Seal#4 CLEAR_NPC
@@ -1122,137 +1105,137 @@ OnInstanceInit:
2@cata,79,65,0 script The Main Altar#ss CLEAR_NPC,{
.@party_id = getcharid(CHAR_ID_PARTY);
- if (('ins_baphomet == 5) && (getpartyleader(.@party_id,2) == getcharid(CHAR_ID_CHAR))) {
- mes "An evil power, too terrible to describe, lies under the great altar radiating a violet color.";
- next;
- mes "Complicated Magical Rune letters blink rapidly, attempting to suppress the dreadful power within.";
- next;
- mes "The bottom of the Main Altar trembles furiously.";
- next;
- specialeffect EF_METEORSTORM;
- specialeffect EF_METEORSTORM;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "Watch out! Something... Something is coming.";
+ if ('ins_baphomet == 5 && getpartyleader(.@party_id, 2) == getcharid(CHAR_ID_CHAR)) {
+ mes("An evil power, too terrible to describe, lies under the great altar radiating a violet color.");
+ next();
+ mes("Complicated Magical Rune letters blink rapidly, attempting to suppress the dreadful power within.");
+ next();
+ mes("The bottom of the Main Altar trembles furiously.");
+ next();
+ specialeffect(EF_METEORSTORM);
+ specialeffect(EF_METEORSTORM);
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("Watch out! Something... Something is coming.");
'ins_baphomet = 6;
- donpcevent instance_npcname("ins_2f_hero_broad")+"::OnEnable";
- disablenpc instance_npcname("The Main Altar#ss");
- close;
- }
- else {
- mes "An evil power, too terrible to describe, lies under the great altar radiating a violet color.";
- next;
- mes "Complicated Magical Rune letters blink rapidly, attempting to suppress the dreadful power within.";
- close;
+ donpcevent(instance_npcname("ins_2f_hero_broad")+"::OnEnable");
+ disablenpc(instance_npcname("The Main Altar#ss"));
+ close();
+ } else {
+ mes("An evil power, too terrible to describe, lies under the great altar radiating a violet color.");
+ next();
+ mes("Complicated Magical Rune letters blink rapidly, attempting to suppress the dreadful power within.");
+ close();
}
end;
}
2@cata,80,63,4 script Ancient Hero's Soul#2F 4_M_CHAMPSOUL,{
- cutin "ins_cata_champ_s",2;
- if (questprogress(3041)) erasequest 3041;
- mes "[Ancient Hero's Soul]";
- mes "Good job, my descendants... You've finished the long-cherished task that me and my bretheren could not complete.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "I really appreciate your help.";
- mes "Our souls can finally rest in peace...";
- next;
- mes "[Ancient Hero's Soul]";
- mes "The struggle for peace on this world will never end. But... my role here is finally over because there are brave heroes like you.";
- next;
- switch(select("Let me leave the shrine.", "Stop talking.")) {
+ cutin("ins_cata_champ_s", 2);
+ if (questprogress(3041))
+ erasequest(3041);
+ mes("[Ancient Hero's Soul]");
+ mes("Good job, my descendants... You've finished the long-cherished task that me and my bretheren could not complete.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("I really appreciate your help.");
+ mes("Our souls can finally rest in peace...");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("The struggle for peace on this world will never end. But... my role here is finally over because there are brave heroes like you.");
+ next();
+ switch (select("Let me leave the shrine.", "Stop talking.")) {
case 1:
- mes "[Ancient Hero's Soul]";
- mes "Okay. I'll let you and your group leave here safely.";
- next;
- mes "[Ancient Hero's Soul]";
- mes "If you leave, please say hello to Patrick for me.";
- cutin "",255;
+ mes("[Ancient Hero's Soul]");
+ mes("Okay. I'll let you and your group leave here safely.");
+ next();
+ mes("[Ancient Hero's Soul]");
+ mes("If you leave, please say hello to Patrick for me.");
+ cutin("", 255);
'ins_baphomet = 0;
- warp "monk_test",310,150;
- close;
+ warp("monk_test", 310, 150);
+ close();
case 2:
- mes "[Ancient Hero's Soul]";
- mes "Do you still have something to do here? If you're done I'll let you leave safely...";
- cutin "",255;
- close;
+ mes("[Ancient Hero's Soul]");
+ mes("Do you still have something to do here? If you're done I'll let you leave safely...");
+ cutin("", 255);
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("Ancient Hero's Soul#2F");
+ disablenpc(instance_npcname("Ancient Hero's Soul#2F"));
end;
}
2@cata,1,2,0 script ins_2f_hero_broad FAKE_NPC,{
OnEnable:
- enablenpc instance_npcname("ins_2f_hero_broad");
- initnpctimer;
+ enablenpc(instance_npcname("ins_2f_hero_broad"));
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("ins_2f_hero_broad");
+ disablenpc(instance_npcname("ins_2f_hero_broad"));
end;
OnTimer3000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : My God! The seal of the Main Altar is weakening!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : My God! The seal of the Main Altar is weakening!"), bc_map, C_YELLOW);
end;
OnTimer6000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : My descendants... Listen carefully to what I'm going to say.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : My descendants... Listen carefully to what I'm going to say."), bc_map, C_YELLOW);
end;
OnTimer9000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The altars that control the Main Altar's power are located in the Northeast, Southeast, Southwest and Northwest corners of this room.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The altars that control the Main Altar's power are located in the Northeast, Southeast, Southwest and Northwest corners of this room."), bc_map, C_YELLOW);
end;
OnTimer12000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : Find these altars and activate their seals before Baphomet revives.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : Find these altars and activate their seals before Baphomet revives."), bc_map, C_YELLOW);
end;
OnTimer15000:
- mapannounce instance_mapname("2@cata"), "Baphomet : It's too late, weaklings... Now, you'll feel the despair of death!",bc_map,"0xdb7093";
+ mapannounce(instance_mapname("2@cata"), _("Baphomet : It's too late, weaklings... Now, you'll feel the despair of death!"), bc_map, "0xdb7093");
end;
OnTimer17000:
- mapannounce instance_mapname("2@cata"), "Baphomet : No one can harm me here. You will be my first sacrifice.",bc_map,"0xdb7093";
- donpcevent instance_npcname("control_baphomet")+"::OnEnable";
- donpcevent instance_npcname("ins_2f_hero_broad2")+"::OnEnable";
- stopnpctimer;
- disablenpc instance_npcname("ins_2f_hero_broad");
+ mapannounce(instance_mapname("2@cata"), _("Baphomet : No one can harm me here. You will be my first sacrifice."), bc_map, "0xdb7093");
+ donpcevent(instance_npcname("control_baphomet")+"::OnEnable");
+ donpcevent(instance_npcname("ins_2f_hero_broad2")+"::OnEnable");
+ stopnpctimer();
+ disablenpc(instance_npcname("ins_2f_hero_broad"));
end;
}
2@cata,3,3,0 script control_baphomet FAKE_NPC,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("control_baphomet");
+ disablenpc(instance_npcname("control_baphomet"));
end;
OnEnable:
- enablenpc instance_npcname("control_baphomet");
- donpcevent instance_npcname("2f_callmon_pattern_c")+"::OnEnable";
- monster instance_mapname("2@cata"),79,64,"Baphomet#",1929,1,instance_npcname("control_baphomet")+"::OnMyMobDead";
+ enablenpc(instance_npcname("control_baphomet"));
+ donpcevent(instance_npcname("2f_callmon_pattern_c")+"::OnEnable");
+ monster(instance_mapname("2@cata"), 79, 64, "Baphomet#", BAPHOMET_I, 1, instance_npcname("control_baphomet")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@cata");
- if (mobcount(.@map$,instance_npcname("control_baphomet")+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname("control_baphomet")+"::OnMyMobDead") < 1) {
'ins_baphomet = 7;
- erasequest 3041;
- mapannounce .@map$, "Baphomet : No! Nonono! How dare these weaklings defeat me!... No!!...",bc_map,"0xdb7093";
- enablenpc instance_npcname("Ancient Hero's Soul#2F");
- disablenpc instance_npcname("slave_down");
- disablenpc instance_npcname("slave_left");
- disablenpc instance_npcname("slave_right");
- donpcevent instance_npcname("ins_2f_hero_broad")+"::OnDisable";
- donpcevent instance_npcname("ins_2f_hero_broad2")+"::OnDisable";
- donpcevent instance_npcname("ins_2f_hero_pattern_c")+"::OnDisable";
- donpcevent instance_npcname("2f_callmon_pattern_c")+"::OnDisable";
- donpcevent instance_npcname("2f_callmon_pattern")+"::OnDisable";
- donpcevent instance_npcname("ins_2f_hero_pattern")+"::OnDisable";
- donpcevent instance_npcname("ins_2f_enter_broad")+"::OnDisable";
- donpcevent instance_npcname("control_baphomet")+"::OnDisable";
- disablenpc instance_npcname("control_baphomet");
+ erasequest(3041);
+ mapannounce(.@map$, _("Baphomet : No! Nonono! How dare these weaklings defeat me!... No!!..."), bc_map, "0xdb7093");
+ enablenpc(instance_npcname("Ancient Hero's Soul#2F"));
+ disablenpc(instance_npcname("slave_down"));
+ disablenpc(instance_npcname("slave_left"));
+ disablenpc(instance_npcname("slave_right"));
+ donpcevent(instance_npcname("ins_2f_hero_broad")+"::OnDisable");
+ donpcevent(instance_npcname("ins_2f_hero_broad2")+"::OnDisable");
+ donpcevent(instance_npcname("ins_2f_hero_pattern_c")+"::OnDisable");
+ donpcevent(instance_npcname("2f_callmon_pattern_c")+"::OnDisable");
+ donpcevent(instance_npcname("2f_callmon_pattern")+"::OnDisable");
+ donpcevent(instance_npcname("ins_2f_hero_pattern")+"::OnDisable");
+ donpcevent(instance_npcname("ins_2f_enter_broad")+"::OnDisable");
+ donpcevent(instance_npcname("control_baphomet")+"::OnDisable");
+ disablenpc(instance_npcname("control_baphomet"));
}
end;
}
@@ -1260,232 +1243,232 @@ OnMyMobDead:
2@cata,2,2,0 script ins_2f_hero_broad2 FAKE_NPC,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("ins_2f_hero_broad2");
+ disablenpc(instance_npcname("ins_2f_hero_broad2"));
end;
OnEnable:
- enablenpc instance_npcname("ins_2f_hero_broad2");
- initnpctimer;
+ enablenpc(instance_npcname("ins_2f_hero_broad2"));
+ initnpctimer();
end;
OnTimer8000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : Don't be discouraged, Baphomet can still be defeated!",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : Don't be discouraged, Baphomet can still be defeated!"), bc_map, C_YELLOW);
end;
OnTimer11000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : Go to the altars and activate their seals.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : Go to the altars and activate their seals."), bc_map, C_YELLOW);
end;
OnTimer13000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : Once the seals recover their power, Baphomet will be vulnerable.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : Once the seals recover their power, Baphomet will be vulnerable."), bc_map, C_YELLOW);
end;
OnTimer16000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : You should lure Baphomet to the unsealed Altars. Otherwise, your efforts will be futile.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : You should lure Baphomet to the unsealed Altars. Otherwise, your efforts will be futile."), bc_map, C_YELLOW);
end;
OnTimer19000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : We have only 1 hour to stop Baphomet. If time runs out, the power of the seals will be useless.",bc_map,"0xFFFF00";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : We have only 1 hour to stop Baphomet. If time runs out, the power of the seals will be useless."), bc_map, C_YELLOW);
end;
OnTimer22000:
- mapannounce instance_mapname("2@cata"), "Baphomet : It's useless. Make more seals. I'll crush them all. None of you will survive!",bc_map,"0xdb7093";
+ mapannounce(instance_mapname("2@cata"), _("Baphomet : It's useless. Make more seals. I'll crush them all. None of you will survive!"), bc_map, "0xdb7093");
end;
OnTimer26000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The magical power of the central seal is running out. Go to the central seal and put the magical power.",bc_map,"0xFFFF00";
- enablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
- donpcevent instance_npcname("ins_2f_hero_pattern_c")+"::OnEnable";
- stopnpctimer;
- disablenpc instance_npcname("ins_2f_hero_broad2");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The magical power of the central seal is running out. Go to the central seal and put the magical power."), bc_map, C_YELLOW);
+ enablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
+ donpcevent(instance_npcname("ins_2f_hero_pattern_c")+"::OnEnable");
+ stopnpctimer();
+ disablenpc(instance_npcname("ins_2f_hero_broad2"));
end;
}
2@cata,4,1,0 script 2f_callmon_pattern_c FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("2f_callmon_pattern_c");
+ disablenpc(instance_npcname("2f_callmon_pattern_c"));
end;
OnEnable:
- enablenpc instance_npcname("2f_callmon_pattern_c");
- initnpctimer;
- donpcevent instance_npcname("2f_callmon_pattern_c")+"::OnGo";
+ enablenpc(instance_npcname("2f_callmon_pattern_c"));
+ initnpctimer();
+ donpcevent(instance_npcname("2f_callmon_pattern_c")+"::OnGo");
end;
OnDisable:
- stopnpctimer;
- disablenpc instance_npcname("2f_callmon_pattern_c");
+ stopnpctimer();
+ disablenpc(instance_npcname("2f_callmon_pattern_c"));
end;
OnGo:
- donpcevent instance_npcname("2f_callmon_pattern")+"::OnEnable";
+ donpcevent(instance_npcname("2f_callmon_pattern")+"::OnEnable");
end;
OnTimer3600000:
- donpcevent instance_npcname("2f_callmon_pattern_c")+"::OnDisable";
+ donpcevent(instance_npcname("2f_callmon_pattern_c")+"::OnDisable");
end;
}
2@cata,4,2,0 script 2f_callmon_pattern FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("2f_callmon_pattern");
+ disablenpc(instance_npcname("2f_callmon_pattern"));
end;
OnEnable:
- enablenpc instance_npcname("2f_callmon_pattern");
- stopnpctimer;
- initnpctimer;
+ enablenpc(instance_npcname("2f_callmon_pattern"));
+ stopnpctimer();
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("2f_callmon_pattern");
- stopnpctimer;
+ disablenpc(instance_npcname("2f_callmon_pattern"));
+ stopnpctimer();
end;
OnTimer300000:
- enablenpc instance_npcname("slave_down");
- enablenpc instance_npcname("slave_left");
- enablenpc instance_npcname("slave_right");
- donpcevent instance_npcname("2f_callmon_pattern_c")+"::OnGo";
+ enablenpc(instance_npcname("slave_down"));
+ enablenpc(instance_npcname("slave_left"));
+ enablenpc(instance_npcname("slave_right"));
+ donpcevent(instance_npcname("2f_callmon_pattern_c")+"::OnGo");
end;
}
2@cata,3,1,0 script ins_2f_hero_pattern_c FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("ins_2f_hero_pattern_c");
+ disablenpc(instance_npcname("ins_2f_hero_pattern_c"));
end;
OnEnable:
- enablenpc instance_npcname("ins_2f_hero_pattern_c");
- initnpctimer;
- donpcevent instance_npcname("ins_2f_hero_pattern_c")+"::OnGo";
+ enablenpc(instance_npcname("ins_2f_hero_pattern_c"));
+ initnpctimer();
+ donpcevent(instance_npcname("ins_2f_hero_pattern_c")+"::OnGo");
end;
OnGo:
- donpcevent instance_npcname("ins_2f_hero_pattern")+"::OnEnable";
+ donpcevent(instance_npcname("ins_2f_hero_pattern")+"::OnEnable");
end;
OnDisable:
- stopnpctimer;
- disablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
- donpcevent instance_npcname("ins_2f_hero_pattern")+"::OnDisable";
- disablenpc instance_npcname("ins_2f_hero_pattern_c");
+ stopnpctimer();
+ disablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
+ donpcevent(instance_npcname("ins_2f_hero_pattern")+"::OnDisable");
+ disablenpc(instance_npcname("ins_2f_hero_pattern_c"));
end;
OnTimer3600000:
- mapannounce instance_mapname("2@cata"), "Baphomet : krrrr... Now you can't stop me with the seals. All you can do is wait for death!",bc_map,"0xdb7093";
+ mapannounce(instance_mapname("2@cata"), _("Baphomet : krrrr... Now you can't stop me with the seals. All you can do is wait for death!"), bc_map, "0xdb7093");
end;
OnTimer3605000:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : We can't stop Baphomet with the magical power of the seals anymore. Now everything depends on God...",bc_map,"0xFFFF00";
- donpcevent instance_npcname("ins_2f_hero_pattern_c")+"::OnDisable";
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : We can't stop Baphomet with the magical power of the seals anymore. Now everything depends on God..."), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("ins_2f_hero_pattern_c")+"::OnDisable");
end;
}
2@cata,3,2,0 script ins_2f_hero_pattern FAKE_NPC,{
OnInstanceInit:
- disablenpc instance_npcname("ins_2f_hero_pattern");
+ disablenpc(instance_npcname("ins_2f_hero_pattern"));
end;
OnEnable:
- enablenpc instance_npcname("ins_2f_hero_pattern");
- initnpctimer;
+ enablenpc(instance_npcname("ins_2f_hero_pattern"));
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("ins_2f_hero_pattern");
- stopnpctimer;
+ disablenpc(instance_npcname("ins_2f_hero_pattern"));
+ stopnpctimer();
end;
OnTimer70000:
- switch(rand(1,5)) {
+ switch (rand(1, 5)) {
case 1:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The seal of the Main Altar is running out. Strengthen the Main Altar's seal!",bc_map,"0xFFFF00";
- enablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The seal of the Main Altar is running out. Strengthen the Main Altar's seal!"), bc_map, C_YELLOW);
+ enablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
break;
case 2:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The magical power of the seal at 2 o'clock is running out. Go to 2 o'clock and put the magical power in the seal.",bc_map,"0xFFFF00";
- disablenpc instance_npcname("Magical Seal#0");
- enablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The magical power of the seal at 2 o'clock is running out. Go to 2 o'clock and put the magical power in the seal."), bc_map, C_YELLOW);
+ disablenpc(instance_npcname("Magical Seal#0"));
+ enablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
break;
case 3:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The magical power of the seal at 4 o'clock is running out. Go to 4 o'clock and put the magical power in the seal.",bc_map,"0xFFFF00";
- disablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- enablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The magical power of the seal at 4 o'clock is running out. Go to 4 o'clock and put the magical power in the seal."), bc_map, C_YELLOW);
+ disablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ enablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
break;
case 4:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The magical power of the seal at 8 o'clock is running out. Go to 8 o'clock and put the magical power in the seal.",bc_map,"0xFFFF00";
- disablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- enablenpc instance_npcname("Magical Seal#8");
- disablenpc instance_npcname("Magical Seal#10");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The magical power of the seal at 8 o'clock is running out. Go to 8 o'clock and put the magical power in the seal."), bc_map, C_YELLOW);
+ disablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ enablenpc(instance_npcname("Magical Seal#8"));
+ disablenpc(instance_npcname("Magical Seal#10"));
break;
case 5:
- mapannounce instance_mapname("2@cata"), "Ancient Hero's Soul : The magical power of the seal at 10 o'clock is running out. Go to 10 o'clock and put the magical power in the seal.",bc_map,"0xFFFF00";
- disablenpc instance_npcname("Magical Seal#0");
- disablenpc instance_npcname("Magical Seal#2");
- disablenpc instance_npcname("Magical Seal#4");
- disablenpc instance_npcname("Magical Seal#8");
- enablenpc instance_npcname("Magical Seal#10");
+ mapannounce(instance_mapname("2@cata"), _("Ancient Hero's Soul : The magical power of the seal at 10 o'clock is running out. Go to 10 o'clock and put the magical power in the seal."), bc_map, C_YELLOW);
+ disablenpc(instance_npcname("Magical Seal#0"));
+ disablenpc(instance_npcname("Magical Seal#2"));
+ disablenpc(instance_npcname("Magical Seal#4"));
+ disablenpc(instance_npcname("Magical Seal#8"));
+ enablenpc(instance_npcname("Magical Seal#10"));
}
- stopnpctimer;
- donpcevent instance_npcname("ins_2f_hero_pattern_c")+"::OnGo";
+ stopnpctimer();
+ donpcevent(instance_npcname("ins_2f_hero_pattern_c")+"::OnGo");
end;
}
1@cata,1,1,0 script ins_1f_spawn_mobs FAKE_NPC,{
OnInstanceInit:
.@map$ = instance_mapname("1@cata");
- monster .@map$,0,0,"Zombie Master",1298,10;
- monster .@map$,0,0,"Wraith Dead",1291,10;
- //monster .@map$,0,0,"Ancient Mimic",1699,10;
- monster .@map$,0,0,"Flame Skull",1869,10;
- monster .@map$,0,0,"Skeleton General",1290,10;
- monster .@map$,0,0,"Zombie Master",1298,10;
- monster .@map$,0,0,"Skeleton General",1290,10;
- monster .@map$,0,0,"Flame Skull",1869,10;
- monster .@map$,0,0,"Wraith Dead",1291,10;
- monster .@map$,0,0,"Wraith Dead",1291,10;
- monster .@map$,0,0,"Khalitzburg",1132,10;
- monster .@map$,0,0,"Khalitzburg",1132,10;
- monster .@map$,0,0,"Flame Skull",1869,10;
- monster .@map$,0,0,"Flame Skull",1869,10;
- monster .@map$,0,0,"Ancient Mimic",1699,10;
- monster .@map$,0,0,"Zombie Master",1298,10;
- monster .@map$,0,0,"Ancient Mimic",1699,10;
- monster .@map$,0,0,"Zombie Master",1298,10;
- monster .@map$,0,0,"Wraith Dead",1291,10;
- monster .@map$,0,0,"Skeleton General",1290,10;
- monster .@map$,0,0,"Skeleton General",1290,10;
- monster .@map$,0,0,"Wind Ghost",1263,10;
- monster .@map$,0,0,"Wind Ghost",1263,10;
- monster .@map$,0,0,"Wind Ghost",1263,10;
- monster .@map$,0,0,"Lude",1509,10;
- monster .@map$,0,0,"Lude",1509,10;
- monster .@map$,0,0,"Evil Druid",1117,10;
- monster .@map$,0,0,"Evil Druid",1117,10;
- monster .@map$,0,0,"Evil Druid",1117,10;
- monster .@map$,0,0,"Banshee",1867,10;
- monster .@map$,0,0,"Dark Illusion",1302,1;
- disablenpc instance_npcname("ins_1f_spawn_mobs");
+ monster(.@map$, 0, 0, _("Zombie Master"), ZOMBIE_MASTER, 10);
+ monster(.@map$, 0, 0, _("Wraith Dead"), WRAITH_DEAD, 10);
+ //monster(.@map$, 0, 0, _("Ancient Mimic"), ANCIENT_MIMIC, 10);
+ monster(.@map$, 0, 0, _("Flame Skull"), FLAME_SKULL, 10);
+ monster(.@map$, 0, 0, _("Skeleton General"), SKELETON_GENERAL, 10);
+ monster(.@map$, 0, 0, _("Zombie Master"), ZOMBIE_MASTER, 10);
+ monster(.@map$, 0, 0, _("Skeleton General"), SKELETON_GENERAL, 10);
+ monster(.@map$, 0, 0, _("Flame Skull"), FLAME_SKULL, 10);
+ monster(.@map$, 0, 0, _("Wraith Dead"), WRAITH_DEAD, 10);
+ monster(.@map$, 0, 0, _("Wraith Dead"), WRAITH_DEAD, 10);
+ monster(.@map$, 0, 0, _("Khalitzburg"), KHALITZBURG, 10);
+ monster(.@map$, 0, 0, _("Khalitzburg"), KHALITZBURG, 10);
+ monster(.@map$, 0, 0, _("Flame Skull"), FLAME_SKULL, 10);
+ monster(.@map$, 0, 0, _("Flame Skull"), FLAME_SKULL, 10);
+ monster(.@map$, 0, 0, _("Ancient Mimic"), ANCIENT_MIMIC, 10);
+ monster(.@map$, 0, 0, _("Zombie Master"), ZOMBIE_MASTER, 10);
+ monster(.@map$, 0, 0, _("Ancient Mimic"), ANCIENT_MIMIC, 10);
+ monster(.@map$, 0, 0, _("Zombie Master"), ZOMBIE_MASTER, 10);
+ monster(.@map$, 0, 0, _("Wraith Dead"), WRAITH_DEAD, 10);
+ monster(.@map$, 0, 0, _("Skeleton General"), SKELETON_GENERAL, 10);
+ monster(.@map$, 0, 0, _("Skeleton General"), SKELETON_GENERAL, 10);
+ monster(.@map$, 0, 0, _("Wind Ghost"), WIND_GHOST, 10);
+ monster(.@map$, 0, 0, _("Wind Ghost"), WIND_GHOST, 10);
+ monster(.@map$, 0, 0, _("Wind Ghost"), WIND_GHOST, 10);
+ monster(.@map$, 0, 0, _("Lude"), LUDE, 10);
+ monster(.@map$, 0, 0, _("Lude"), LUDE, 10);
+ monster(.@map$, 0, 0, _("Evil Druid"), EVIL_DRUID, 10);
+ monster(.@map$, 0, 0, _("Evil Druid"), EVIL_DRUID, 10);
+ monster(.@map$, 0, 0, _("Evil Druid"), EVIL_DRUID, 10);
+ monster(.@map$, 0, 0, _("Banshee"), BANSHEE, 10);
+ monster(.@map$, 0, 0, _("Dark Illusion"), DARK_ILLUSION, 1);
+ disablenpc(instance_npcname("ins_1f_spawn_mobs"));
end;
}
diff --git a/npc/merchants/socket_enchant.txt b/npc/merchants/socket_enchant.txt
index 279aaf0ba..599d41564 100644
--- a/npc/merchants/socket_enchant.txt
+++ b/npc/merchants/socket_enchant.txt
@@ -268,17 +268,16 @@ function script Func_Socket {
mes "Ah, and don't forget to bring that " + getitemname(getarg(0)) + "!";
next;
mes "[Seiyablem]";
- if (getiteminfo(getarg(0),5)&2) // EQP_HAND_R = 2, it's a weapon
- {
+ if (getiteminfo(getarg(0), ITEMINFO_LOC) & EQP_HAND_R) {
+ // EQP_HAND_R = 2, it's a weapon
mes "I can try to add a slot now if you have the required items and zeny.";
mes "However, you should know that there's a chance that I might fail.";
mes "Therefore, I need to give you a fair warning...";
next;
mes "[Seiyablem]";
mes "If this attempt to add a Slot to your Weapon fails, then the ^FF0000Weapon^000000, ^FF0000and any Cards compounded to it will be destroyed^000000.";
- }
- else // armor
- {
+ } else {
+ // armor
mes "If you have all the required materials, my zeny service fee and the Armor, then we can go ahead with the Slot Addition attempt.";
mes "But before that, I must warn you of the risk.";
next;
diff --git a/npc/merchants/socket_enchant2.txt b/npc/merchants/socket_enchant2.txt
index 98d33b01c..29573970d 100644
--- a/npc/merchants/socket_enchant2.txt
+++ b/npc/merchants/socket_enchant2.txt
@@ -425,8 +425,8 @@ function script Func_Socket2 {
mes "[Leablem]";
mes "Did you already bring all of them?";
mes "For your information, if you fail to create a slot,";
- mes "you will lose all the item requirement as well as the target " + (getiteminfo(getarg(0),5)&2 ? "weapon" : "armor") + "."; // EQP_HAND_R = 2, it's a weapon, otherwise armor
- mes "Also remember, if the " + (getiteminfo(getarg(0),5)&2 ? "weapon" : "armor") + " has been upgraded, and has been inserted with a card,";
+ mes "you will lose all the item requirement as well as the target " + ((getiteminfo(getarg(0), ITEMINFO_LOC) & EQP_HAND_R) ? "weapon" : "armor") + "."; // EQP_HAND_R = 2, it's a weapon, otherwise armor
+ mes "Also remember, if the " + ((getiteminfo(getarg(0), ITEMINFO_LOC) & EQP_HAND_R) ? "weapon" : "armor") + " has been upgraded, and has been inserted with a card,";
mes "you will lose them even if you succeed in creating a slot.";
next;
switch(select("Ask for slot creation.", "Try next time."))
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt
index bc19ff048..9882e9d71 100644
--- a/npc/other/Global_Functions.txt
+++ b/npc/other/Global_Functions.txt
@@ -235,53 +235,137 @@ function script F_Load2Skills {
}
//== Function F_GetWeaponType ==============================
-// Determines weapon type by view
+// Determines weapon type by subtype
function script F_GetWeaponType {
- switch(getiteminfo(getarg(0),11)) {
- case 1: return "Dagger"; break;
- case 2: return "One-handed Sword"; break;
- case 3: return "Two-handed Sword"; break;
- case 4: return "One-handed Spear"; break;
- case 5: return "Two-handed Spear"; break;
- case 6: return "One-handed Axe"; break;
- case 7: return "Two-handed Axe"; break;
- case 8: return "Mace"; break;
- //case 9: return "Unused"; break;
- case 10: return "Staff"; break;
- case 11: return "Bow"; break;
- case 12: return "Knuckle"; break;
- case 13: return "Instrument"; break;
- case 14: return "Whip"; break;
- case 15: return "Book"; break;
- case 16: return "Katar"; break;
- case 17: return "Revolver"; break;
- case 18: return "Rifle"; break;
- case 19: return "Gatling gun"; break;
- case 20: return "Shotgun"; break;
- case 21: return "Grenade Launcher"; break;
- case 22: return "Shuriken"; break;
+ if (getiteminfo(getarg(0), ITEMINFO_TYPE) != IT_WEAPON)
+ return "Not a weapon";
+
+ switch (getiteminfo(getarg(0), ITEMINFO_SUBTYPE)) {
+ case W_DAGGER: return "Dagger"; break;
+ case W_1HSWORD: return "One-handed Sword"; break;
+ case W_2HSWORD: return "Two-handed Sword"; break;
+ case W_1HSPEAR: return "One-handed Spear"; break;
+ case W_2HSPEAR: return "Two-handed Spear"; break;
+ case W_1HAXE: return "One-handed Axe"; break;
+ case W_2HAXE: return "Two-handed Axe"; break;
+ case W_MACE: return "Mace"; break;
+ //case W_2HMACE: return "Two-handed Mace"; break; // Unused
+ case W_STAFF: return "Staff"; break;
+ case W_BOW: return "Bow"; break;
+ case W_KNUCKLE: return "Knuckle"; break;
+ case W_MUSICAL: return "Instrument"; break;
+ case W_WHIP: return "Whip"; break;
+ case W_BOOK: return "Book"; break;
+ case W_KATAR: return "Katar"; break;
+ case W_REVOLVER: return "Revolver"; break;
+ case W_RIFLE: return "Rifle"; break;
+ case W_GATLING: return "Gatling gun"; break;
+ case W_SHOTGUN: return "Shotgun"; break;
+ case W_GRENADE: return "Grenade Launcher"; break;
+ case W_HUUMA: return "Shuriken"; break;
+ case W_2HSTAFF: return "Two-handed Staff"; break;
default: return "Unable to Determine Equip Type"; break;
}
end;
}
+//== Function F_GetAmmoType ================================
+// Determines ammunition type by subtype
+function script F_GetAmmoType {
+ if (getiteminfo(getarg(0), ITEMINFO_TYPE) != IT_AMMO)
+ return "Not an ammunition";
+
+ switch (getiteminfo(getarg(0), ITEMINFO_SUBTYPE)) {
+ case A_ARROW: return "Arrow"; break;
+ case A_DAGGER: return "Throwing Dagger"; break;
+ case A_BULLET: return "Bullet"; break;
+ case A_SHELL: return "Shell"; break;
+ case A_GRENADE: return "Grenade"; break;
+ case A_SHURIKEN: return "Huuma Shuriken"; break;
+ case A_KUNAI: return "Kunai"; break;
+ case A_CANNONBALL: return "Cannon Ball"; break;
+ case A_THROWWEAPON: return "Throwing Weapon"; break;
+ default: return "Unable to Determine Ammunition Type"; break;
+ }
+ end;
+}
+
//== Function F_GetArmorType ===============================
// Determines equipment type by equip location
function script F_GetArmorType {
- switch(getiteminfo(getarg(0),5)) {
- case 001: return "Lower Headgear"; break;
- case 2: return "Weapon"; break;
- case 4: return "Garment"; break;
- case 8: return "Accessory"; break;
- case 16: return "Armor"; break;
- case 32: return "Shield"; break;
- case 64: return "Shoes"; break;
- case 128: return "Accessory"; break;
- case 256: return "Upper Headgear"; break;
- case 512: return "Middle Headgear"; break;
- default: return "Unable to Determine Equip Location"; break;
+ switch (getiteminfo(getarg(0), ITEMINFO_TYPE)) {
+ case IT_WEAPON:
+ return callfunc("F_GetWeaponType", getarg(0));
+ case IT_AMMO:
+ return callfunc("F_GetAmmoType", getarg(0));
+ case IT_ARMOR:
+ break;
+ default:
+ return "Unknown Equip Type";
}
- end;
+
+ .@loc = getiteminfo(getarg(0), ITEMINFO_LOC);
+
+ if ((.@loc & EQP_HELM) != 0) {
+ .@name$ = "";
+ if ((.@loc & EQP_HEAD_TOP) != 0) {
+ .@name$ += "Top";
+ }
+ if ((.@loc & EQP_HEAD_MID) != 0) {
+ if ((.@loc & EQP_HEAD_TOP) != 0)
+ .@name$ += " + ";
+ .@name$ += "Middle";
+ }
+ if ((.@loc & EQP_HEAD_LOW) != 0) {
+ if ((.@loc & (EQP_HEAD_TOP | EQP_HEAD_MID)) != 0)
+ .@name$ += " + ";
+ .@name$ += "Lower";
+ }
+ .@name$ += " Headgear";
+ return .@name$;
+ }
+ if ((.@loc & EQP_GARMENT) != 0)
+ return "Garment";
+ if ((.@loc & EQP_ACC) != 0)
+ return "Accessory";
+ if ((.@loc & EQP_ARMOR) != 0)
+ return "Armor";
+ if ((.@loc & EQP_SHIELD) != 0)
+ return "Shield";
+ if ((.@loc & EQP_SHOES) != 0)
+ return "Shoes";
+ if ((.@loc & EQP_COSTUE_GARMENT) != 0)
+ return "Costume Garment";
+ if ((.@loc & EQP_COSTUME) != 0) {
+ .@name = "Costume ";
+ if ((.@loc & EQP_COSTUME_HEAD_TOP) != 0) {
+ .@name$ += "Top";
+ }
+ if ((.@loc & EQP_COSTUME_HEAD_MID) != 0) {
+ if ((.@loc & EQP_COSTUME_HEAD_TOP) != 0)
+ .@name$ += " + ";
+ .@name$ += "Middle";
+ }
+ if ((.@loc & EQP_COSTUME_HEAD_LOW) != 0) {
+ if ((.@loc & (EQP_COSTUME_HEAD_TOP | EQP_COSTUME_HEAD_MID)) != 0)
+ .@name$ += " + ";
+ .@name$ += "Lower";
+ }
+ .@name$ += " Headgear";
+ return .@name$;
+ }
+ if ((.@loc & EQP_SHADOW_ARMOR) != 0)
+ return "Shadow Armor";
+ if ((.@loc & EQP_SHADOW_WEAPON) != 0)
+ return "Shadow Weapon";
+ if ((.@loc & EQP_SHADOW_SHIELD) != 0)
+ return "Shadow Shield";
+ if ((.@loc & EQP_SHADOW_SHOES) != 0)
+ return "Shadow Shoes";
+ if ((.@loc & EQP_SHADOW_ACC) != 0)
+ return "Shadow Accessory";
+
+ return "Unknown Equip Type";
}
//== Function Time2Str =====================================
diff --git a/npc/other/monster_race.txt b/npc/other/monster_race.txt
index 9ddafeef5..9e938c663 100644
--- a/npc/other/monster_race.txt
+++ b/npc/other/monster_race.txt
@@ -2635,7 +2635,7 @@ S_BonusReward:
mes "me a reward later?";
next;
mes "[Ei'felle]";
- if (!getiteminfo(.@arg1,13)) { //use item level to determine if the item is armor (no weapon level)
+ if (!getiteminfo(.@arg1, ITEMINFO_WLV)) { // use item level to determine if the item is armor (no weapon level)
mes "Of course, of course.";
mes "Remember, if you donate";
mes "more medals to me, then";
diff --git a/npc/quests/cooking_quest.txt b/npc/quests/cooking_quest.txt
index ad0306b2c..505561f52 100644
--- a/npc/quests/cooking_quest.txt
+++ b/npc/quests/cooking_quest.txt
@@ -2069,8 +2069,8 @@ prt_castle,45,35,5 script Madeleine Chu#cook 4_COOK,{
close;
S_SellSets:
- .@item_cost = getiteminfo(getarg(0),0);
- .@item_weight = getiteminfo(getarg(0),6);
+ .@item_cost = getiteminfo(getarg(0), ITEMINFO_BUYPRICE);
+ .@item_weight = getiteminfo(getarg(0), ITEMINFO_WEIGHT);
mes "[Madeleine Chu]";
mes "How many " + (getarg(0)==12125 ? "Outdoor":"Indoor");
mes "Cooking Kits would";
diff --git a/npc/re/instances/BakonawaLake.txt b/npc/re/instances/BakonawaLake.txt
index 2868cc589..65622171b 100644
--- a/npc/re/instances/BakonawaLake.txt
+++ b/npc/re/instances/BakonawaLake.txt
@@ -34,223 +34,234 @@
//=========================================================================
ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{
- disable_items;
- if (checkweight(Knife,1) == 0) {
- mes "You are carrying too many items. Come back after taking off some of them.";
- close;
+ disable_items();
+ if (checkweight(Knife, 1) == 0) {
+ mes("You are carrying too many items. Come back after taking off some of them.");
+ close();
}
if (MaxWeight - Weight < 10000) {
- mes "You are carrying too much weight. Come back after reducing the weight.";
- close;
+ mes("You are carrying too much weight. Come back after reducing the weight.");
+ close();
}
if (BaseLevel < 140) {
- mes "[Taho]";
- mes "Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!";
- close;
+ mes("[Taho]");
+ mes("Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!");
+ close();
}
if (malaya_bakona1 < 7 && malaya_bakona2 < 15) {
- mes "[Taho]";
- mes "We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared.";
- close;
+ mes("[Taho]");
+ mes("We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared.");
+ close();
}
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Bakonawa Lake";
+ .@md_name$ = _("Bakonawa Lake");
- .@baku_time = questprogress(12278,PLAYTIME);
+ .@baku_time = questprogress(12278, PLAYTIME);
if (!.@baku_time) {
- if (!questprogress(12279)) setquest 12279;
+ if (!questprogress(12279))
+ setquest(12279);
}
if (!.@party_id) {
- mes "[Taho]";
- mes "Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.";
- close;
+ mes("[Taho]");
+ mes("Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party.");
+ close();
}
if (!.@baku_time) {
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Taho]";
- mes "Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?";
- next;
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Taho]");
+ mes("Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?");
+ next();
.@i = select("Please weave a rope.", "Now I will go down.", "Cancel.");
} else {
- mes "[Taho]";
- mes "You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.";
- next;
+ mes("[Taho]");
+ mes("You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down.");
+ next();
.@i = select("", "Now I will go down.", "Cancel.");
}
- switch(.@i) {
+ switch (.@i) {
case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "[Taho]";
- mes "Oh, the rope got dropped. I have to make a new one.";
- close;
+ mes("[Taho]");
+ mes("Oh, the rope got dropped. I have to make a new one.");
+ close();
}
- if (instance_attachmap("1@ma_b",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ if (instance_attachmap("1@ma_b", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 7200,300,.@instance;
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "[Taho]";
- mes "Now I'm weaving, so you can go down when I'm done.";
- close;
+ mes("[Taho]");
+ mes("Now I'm weaving, so you can go down when I'm done.");
+ close();
case 2:
- if( has_instance("1@ma_b") == "" ) {
- mes "The memorial dungeon "+.@md_name$+" does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ if (has_instance("1@ma_b") == "") {
+ mesf("The memorial dungeon %s does not exist.", .@md_name$);
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "ma_scene01","A party member, "+strcharinfo(PC_NAME)+" of the party "+getpartyname(.@party_id)+" is entering the dungeon, "+.@md_name$+".",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- setquest 12278;
- warp "1@ma_b",64,51;
+ mapannounce("ma_scene01", sprintf(_$("A party member, %s of the party %s is entering the dungeon, %s."), strcharinfo(PC_NAME), getpartyname(.@party_id), .@md_name$), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ setquest(12278);
+ warp("1@ma_b", 64, 51);
end;
}
case 3:
- close;
+ close();
}
} else if (.@baku_time == 1) {
- mes "[Taho]";
- mes "The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.";
- close;
+ mes("[Taho]");
+ mes("The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time.");
+ close();
} else if (.@baku_time == 2) {
- mes "[Taho]";
- mes "It's all cleaned up around here. Now you can go down again after getting a rope.";
- erasequest 12278;
- close;
+ mes("[Taho]");
+ mes("It's all cleaned up around here. Now you can go down again after getting a rope.");
+ erasequest(12278);
+ close();
}
}
sec_in02,26,26,4 script Bakonawa's Rage 4_M_DEWZATIMAN,{
- callfunc "F_GM_NPC";
- mes "[Taho]";
- mes "My name is Minky.";
- if (callfunc("F_GM_NPC",1854,0) == 1) {
- erasequest 12278;
- erasequest 12279;
+ callfunc("F_GM_NPC");
+ mes("[Taho]");
+ mes("My name is Minky.");
+ if (callfunc("F_GM_NPC", 1854, 0) == 1) {
+ erasequest(12278);
+ erasequest(12279);
malaya_bakona1 = 7;
malaya_bakona2 = 15;
}
- close;
+ close();
}
1@ma_b,62,52,4 script Taho#nf 4_M_DEWZATIMAN,{
- mes "[Taho]";
- mes "Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on.";
- next;
- mes "[Taho]";
- mes "Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good.";
- next;
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Taho]";
- mes "Now I will make Bakonawa spring out from the lake.";
- next;
- switch(select("Hold on! I'm not ready yet!", "Let's do it!")) {
+ mes("[Taho]");
+ mes("Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on.");
+ next();
+ mes("[Taho]");
+ mes("Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good.");
+ next();
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Taho]");
+ mes("Now I will make Bakonawa spring out from the lake.");
+ next();
+ switch (select("Hold on! I'm not ready yet!", "Let's do it!")) {
case 1:
- mes "[Taho]";
- mes "Oh... alright... tell me when you are ready.";
- close;
+ mes("[Taho]");
+ mes("Oh... alright... tell me when you are ready.");
+ close();
case 2:
- mes "[Taho]";
- mes "Then I will drop a drop of Albopal to this lake.";
- next;
- mes "[Taho]";
- mes "Once Bakonawa tastes this, he will surface...";
- donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
- disablenpc instance_npcname("Taho#nf");
- close;
+ mes("[Taho]");
+ mes("Then I will drop a drop of Albopal to this lake.");
+ next();
+ mes("[Taho]");
+ mes("Once Bakonawa tastes this, he will surface...");
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnStart");
+ disablenpc(instance_npcname("Taho#nf"));
+ close();
}
} else {
- mes "[Taho]";
- mes "I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him.";
- close;
+ mes("[Taho]");
+ mes("I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him.");
+ close();
}
}
1@ma_b,36,111,4 script #Bakonawan1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan1");
+ disablenpc(instance_npcname("#Bakonawan1"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan1");
+ enablenpc(instance_npcname("#Bakonawan1"));
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Taho: I can see him there on the surface! ATTACK!!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- monster .@map$,78,81,"Bakonawa",2320,1,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; //original: (78,83)
- initnpctimer;
+ mapannounce(.@map$, _("Taho: I can see him there on the surface! ATTACK!!!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ monster(.@map$, 78, 81, _("Bakonawa"), BAKONAWA_1, 1, instance_npcname("#Bakonawan1")+"::OnMyMobDead"); //original: (78, 83)
+ initnpctimer();
end;
OnFail:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan1")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- if (mobcount(.@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("#BakonawaDeadn1")+"::OnStart";
- killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan1");
+ if (mobcount(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("#BakonawaDeadn1")+"::OnStart");
+ killmonster(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan1"));
}
end;
-OnTimer1000: callsub OnAnnounce,"10 minutes";
-OnTimer60000: callsub OnAnnounce,"9 minutes";
-OnTimer120000: callsub OnAnnounce,"8 minutes";
-OnTimer180000: callsub OnAnnounce,"7 minutes";
-OnTimer240000: callsub OnAnnounce,"6 minutes";
-OnTimer300000: callsub OnAnnounce,"5 minutes";
-OnTimer360000: callsub OnAnnounce,"4 minutes";
-OnTimer420000: callsub OnAnnounce,"3 minutes";
-OnTimer480000: callsub OnAnnounce,"2 minutes";
-OnTimer540000: callsub OnAnnounce,"1 minute";
+OnTimer1000:
+ callsub(OnAnnounce, _("10 minutes"));
+OnTimer60000:
+ callsub(OnAnnounce, _("9 minutes"));
+OnTimer120000:
+ callsub(OnAnnounce, _("8 minutes"));
+OnTimer180000:
+ callsub(OnAnnounce, _("7 minutes"));
+OnTimer240000:
+ callsub(OnAnnounce, _("6 minutes"));
+OnTimer300000:
+ callsub(OnAnnounce, _("5 minutes"));
+OnTimer360000:
+ callsub(OnAnnounce, _("4 minutes"));
+OnTimer420000:
+ callsub(OnAnnounce, _("3 minutes"));
+OnTimer480000:
+ callsub(OnAnnounce, _("2 minutes"));
+OnTimer540000:
+ callsub(OnAnnounce, _("1 minute"));
OnTimer570000:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: 30 seconds",bc_map,"0xff4400"; //FW_NORMAL 18 0 0
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), _("Time Limit: 30 seconds"), bc_map, "0xff4400"); //FW_NORMAL 18 0 0
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
OnTimer600000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan1")+"::OnFail";
- killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan1");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnFail");
+ killmonster(.@map$, instance_npcname("#Bakonawan1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan1"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,78,81,0 script #SummonPuppetsn1 HIDDEN_WARP_NPC,4,5,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#SummonPuppetsn1");
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnStart:
- stopnpctimer;
- enablenpc instance_npcname("#SummonPuppetsn1");
- initnpctimer;
+ stopnpctimer();
+ enablenpc(instance_npcname("#SummonPuppetsn1"));
+ initnpctimer();
end;
OnTouch:
- stopnpctimer;
- disablenpc instance_npcname("#SummonPuppetsn1");
+ stopnpctimer();
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnTimer5000:
- setarray .@x[0],79,71,60,61,57,89,95,96,99;
- setarray .@y[0],71,72,80,90,99,73,82,90,99;
+ setarray(.@x[0], 79, 71, 60, 61, 57, 89, 95, 96, 99);
+ setarray(.@y[0], 71, 72, 80, 90, 99, 73, 82, 90, 99);
.@map$ = instance_mapname("1@ma_b");
- for(.@i = 0; .@i<9; ++.@i) {
- .@rand = rand(1,10);
+ for (.@i = 0; .@i < 9; ++.@i) {
+ .@rand = rand(1, 10);
if (.@rand > 7)
- monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2337,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ monster(.@map$, .@x[.@i], .@y[.@i], _("Bakonawa's Will"), HIDDEN_MOB, 1, instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
else if (.@rand < 4)
- monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2343,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
+ monster(.@map$, .@x[.@i], .@y[.@i], _("Bakonawa's Will"), HIDDEN_MOB_W, 1, instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
}
end;
OnTimer50000:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#SummonPuppetsn1");
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#SummonPuppetsn1"));
end;
OnMyMobDead:
end;
@@ -259,111 +270,126 @@ OnMyMobDead:
1@ma_b,1,5,4 script #BakonawaDeadn1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#BakonawaDeadn1");
+ disablenpc(instance_npcname("#BakonawaDeadn1"));
end;
OnStart:
- enablenpc instance_npcname("#BakonawaDeadn1");
- initnpctimer;
+ enablenpc(instance_npcname("#BakonawaDeadn1"));
+ initnpctimer();
end;
OnTimer100:
- mapannounce instance_mapname("1@ma_b"),"Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer5000:
- mapannounce instance_mapname("1@ma_b"),"Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Taho: Do not engage on him even if he come above the surface. Just make loud noises!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: Do not engage on him even if he come above the surface. Just make loud noises!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer15000:
- mapannounce instance_mapname("1@ma_b"),"Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#Bakonawan2")+"::OnStart";
- stopnpctimer;
- disablenpc instance_npcname("#BakonawaDeadn1");
+ mapannounce(instance_mapname("1@ma_b"), _("Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake."), bc_map, "0xff3300"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#Bakonawan2")+"::OnStart");
+ stopnpctimer();
+ disablenpc(instance_npcname("#BakonawaDeadn1"));
end;
}
1@ma_b,36,111,4 script #Bakonawan2 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan2");
+ disablenpc(instance_npcname("#Bakonawan2"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan2");
+ enablenpc(instance_npcname("#Bakonawan2"));
.@label$ = instance_npcname("#Bakonawan2")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_b");
- monster .@map$,95,98,"Caldron",2328,1,.@label$;
- monster .@map$,60,98,"Caldron",2328,1,.@label$;
- monster .@map$,97,104,"Gong",2328,1,.@label$;
- monster .@map$,58,104,"Gong",2328,1,.@label$;
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnStart";
- initnpctimer;
+ monster(.@map$, 95, 98, _("Caldron"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 60, 98, _("Caldron"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 97, 104, _("Gong"), MA_DRUM, 1, .@label$);
+ monster(.@map$, 58, 104, _("Gong"), MA_DRUM, 1, .@label$);
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnStart");
+ initnpctimer();
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#Bakonawan2")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnEnd";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2");
- } else
- mapannounce .@map$,"Taho: Good! "+.@mob_dead_num+" left to go!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- end;
-OnTimer1000: callsub OnAnnounce,"5 minutes",15,1;
-OnTimer60000: callsub OnAnnounce,"4 minutes",15,1;
-OnTimer120000: callsub OnAnnounce,"3 minutes",15,1;
-OnTimer180000: callsub OnAnnounce,"2 minutes",15,1;
-OnTimer240000: callsub OnAnnounce,"1 minute",15,1;
-OnTimer270000: callsub OnAnnounce,"30 seconds",15,0;
-OnTimer280000: callsub OnAnnounce,"20 seconds",15,0;
-OnTimer290000: callsub OnAnnounce,"10 seconds",15,0;
-OnTimer295000: callsub OnAnnounce,"5 seconds",16,0;
-OnTimer296000: callsub OnAnnounce,"4 seconds",17,0;
-OnTimer297000: callsub OnAnnounce,"3 seconds",18,0;
-OnTimer298000: callsub OnAnnounce,"2 seconds",19,0;
-OnTimer299000: callsub OnAnnounce,"1 second",20,0;
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnEnd");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2"));
+ } else {
+ mapannounce(.@map$, sprintf(_$("Taho: Good! %d left to go!"), .@mob_dead_num), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ }
+ end;
+OnTimer1000:
+ callsub(OnAnnounce, _("5 minutes"), 15, 1);
+OnTimer60000:
+ callsub(OnAnnounce, _("4 minutes"), 15, 1);
+OnTimer120000:
+ callsub(OnAnnounce, _("3 minutes"), 15, 1);
+OnTimer180000:
+ callsub(OnAnnounce, _("2 minutes"), 15, 1);
+OnTimer240000:
+ callsub(OnAnnounce, _("1 minute"), 15, 1);
+OnTimer270000:
+ callsub(OnAnnounce, _("30 seconds"), 15, 0);
+OnTimer280000:
+ callsub(OnAnnounce, _("20 seconds"), 15, 0);
+OnTimer290000:
+ callsub(OnAnnounce, _("10 seconds"), 15, 0);
+OnTimer295000:
+ callsub(OnAnnounce, _("5 seconds"), 16, 0);
+OnTimer296000:
+ callsub(OnAnnounce, _("4 seconds"), 17, 0);
+OnTimer297000:
+ callsub(OnAnnounce, _("3 seconds"), 18, 0);
+OnTimer298000:
+ callsub(OnAnnounce, _("2 seconds"), 19, 0);
+OnTimer299000:
+ callsub(OnAnnounce, _("1 second"), 20, 0);
OnTimer300000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan2-1")+"::OnFail";
- killmonster .@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan2-1")+"::OnFail");
+ killmonster(.@map$, instance_npcname("#Bakonawan2")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
- if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL getarg(1) 0 0
+ if (getarg(2))
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,36,111,4 script #Bakonawan2-1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan2-1");
+ disablenpc(instance_npcname("#Bakonawan2-1"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan2-1");
- monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2321,1,instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; //original: (78,93)
+ enablenpc(instance_npcname("#Bakonawan2-1"));
+ monster(instance_mapname("1@ma_b"), 78, 81, _("Enraged Bakonawa"), BAKONAWA_2, 1, instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"); //original: (78, 93)
end;
OnFail:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan2-1")+"::OnMyMobDead");
end;
OnEnd:
- enablenpc instance_npcname("#Bakonawan2-1");
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead";
- initnpctimer;
+ enablenpc(instance_npcname("#Bakonawan2-1"));
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan2-1")+"::OnMyMobDead");
+ initnpctimer();
end;
OnTimer1000:
- mapannounce instance_mapname("1@ma_b"),"Taho: He is back into the lake again. Is it over?",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: He is back into the lake again. Is it over?"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer5000:
- mapannounce instance_mapname("1@ma_b"),"Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!"), bc_map, C_AQUA); //FW_NORMAL 15 0 0
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Mission - Eliminate Bakonawa who became more fierce.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("#Bakonawan3")+"::OnStart";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan2-1");
+ mapannounce(instance_mapname("1@ma_b"), _("Mission - Eliminate Bakonawa who became more fierce."), bc_map, "0xff3300"); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("#Bakonawan3")+"::OnStart");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan2-1"));
end;
OnMyMobDead:
end;
@@ -372,190 +398,212 @@ OnMyMobDead:
1@ma_b,36,111,4 script #Bakonawan3 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan3");
+ disablenpc(instance_npcname("#Bakonawan3"));
end;
OnStart:
- enablenpc instance_npcname("#Bakonawan3");
- initnpctimer;
- monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2322,1,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; //original: (78,83)
- donpcevent instance_npcname("#Bakonawan3-1")+"::OnStart";
+ enablenpc(instance_npcname("#Bakonawan3"));
+ initnpctimer();
+ monster(instance_mapname("1@ma_b"), 78, 81, _("Enraged Bakonawa"), BAKONAWA_3, 1, instance_npcname("#Bakonawan3")+"::OnMyMobDead"); //original: (78, 83)
+ donpcevent(instance_npcname("#Bakonawan3-1")+"::OnStart");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_b");
- .@mob_dead_num = mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ .@mob_dead_num = mobcount(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
if (.@mob_dead_num < 1) {
- mapannounce .@map$,"Taho: We got him! I can see he has threw up something that looks like a box.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- donpcevent instance_npcname("Taho#Completed")+"::OnStart";
- donpcevent instance_npcname("#Bakonawan3-1")+"::OnEnd";
- killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan3");
+ mapannounce(.@map$, _("Taho: We got him! I can see he has threw up something that looks like a box."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ donpcevent(instance_npcname("Taho#Completed")+"::OnStart");
+ donpcevent(instance_npcname("#Bakonawan3-1")+"::OnEnd");
+ killmonster(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan3"));
}
end;
OnTimer1000:
- callsub OnAnnounce,"10 minutes",15,1;
+ callsub(OnAnnounce, _("10 minutes"), 15, 1);
end;
OnTimer60000:
OnTimer120000:
OnTimer180000:
OnTimer240000:
- donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
- end;
-OnTimer300000: callsub OnAnnounce,"5 minutes",15,1;
-OnTimer360000: callsub OnAnnounce,"4 minutes",15,1;
-OnTimer420000: callsub OnAnnounce,"3 minutes",15,1;
-OnTimer480000: callsub OnAnnounce,"2 minutes",15,1;
-OnTimer540000: callsub OnAnnounce,"1 minute",15,1;
-OnTimer570000: callsub OnAnnounce,"30 seconds",15,0;
-OnTimer580000: callsub OnAnnounce,"20 seconds",15,0;
-OnTimer590000: callsub OnAnnounce,"10 seconds",15,0;
-OnTimer595000: callsub OnAnnounce,"5 seconds",16,0;
-OnTimer596000: callsub OnAnnounce,"4 seconds",17,0;
-OnTimer597000: callsub OnAnnounce,"3 seconds",18,0;
-OnTimer598000: callsub OnAnnounce,"2 seconds",19,0;
-OnTimer599000: callsub OnAnnounce,"1 second",20,0;
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
+ end;
+OnTimer300000:
+ callsub(OnAnnounce, _("5 minutes"), 15, 1);
+OnTimer360000:
+ callsub(OnAnnounce, _("4 minutes"), 15, 1);
+OnTimer420000:
+ callsub(OnAnnounce, _("3 minutes"), 15, 1);
+OnTimer480000:
+ callsub(OnAnnounce, _("2 minutes"), 15, 1);
+OnTimer540000:
+ callsub(OnAnnounce, _("1 minute"), 15, 1);
+OnTimer570000:
+ callsub(OnAnnounce, _("30 seconds"), 15, 0);
+OnTimer580000:
+ callsub(OnAnnounce, _("20 seconds"), 15, 0);
+OnTimer590000:
+ callsub(OnAnnounce, _("10 seconds"), 15, 0);
+OnTimer595000:
+ callsub(OnAnnounce, _("5 seconds"), 16, 0);
+OnTimer596000:
+ callsub(OnAnnounce, _("4 seconds"), 17, 0);
+OnTimer597000:
+ callsub(OnAnnounce, _("3 seconds"), 18, 0);
+OnTimer598000:
+ callsub(OnAnnounce, _("2 seconds"), 19, 0);
+OnTimer599000:
+ callsub(OnAnnounce, _("1 second"), 20, 0);
OnTimer600000:
.@map$ = instance_mapname("1@ma_b");
- mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0
- donpcevent instance_npcname("Taho#Fail")+"::OnStart";
- killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead";
- stopnpctimer;
- disablenpc instance_npcname("#Bakonawan3");
+ mapannounce(.@map$, _("Bakonawa has escaped deep into the lake."), bc_map, C_YELLOW); //FW_NORMAL 20 0 0
+ donpcevent(instance_npcname("Taho#Fail")+"::OnStart");
+ killmonster(.@map$, instance_npcname("#Bakonawan3")+"::OnMyMobDead");
+ stopnpctimer();
+ disablenpc(instance_npcname("#Bakonawan3"));
end;
OnAnnounce:
- mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0
- if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart";
+ mapannounce(instance_mapname("1@ma_b"), sprintf(_$("Time Limit: %s"), getarg(0)), bc_map, "0xff4400"); //FW_NORMAL getarg(1) 0 0
+ if (getarg(2))
+ donpcevent(instance_npcname("#SummonPuppetsn1")+"::OnStart");
end;
}
1@ma_b,36,111,4 script #Bakonawan3-1 CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Bakonawan3-1");
+ disablenpc(instance_npcname("#Bakonawan3-1"));
end;
OnStart:
- initnpctimer;
+ initnpctimer();
end;
OnEnd:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
- //showdigit 0;
- stopnpctimer;
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
+ //showdigit(0);
+ stopnpctimer();
end;
OnMyMobDead:
- showdigit mobcount(instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
- end;
-OnTimer120000: callsub OnMobSpawn,10;
-OnTimer180000: callsub OnMobSpawn,15;
-OnTimer240000: callsub OnMobSpawn,20;
-//OnTimer300000: callsub OnMobSpawn,25;
-OnTimer300000: callsub OnMobSpawn,30;
-OnTimer360000: callsub OnMobSpawn,35;
-OnTimer420000: callsub OnMobSpawn,40;
-OnTimer480000: callsub OnMobSpawn,45;
-OnTimer540000: callsub OnMobSpawn,50;
+ showdigit(mobcount(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"));
+ end;
+OnTimer120000:
+ callsub(OnMobSpawn, 10);
+OnTimer180000:
+ callsub(OnMobSpawn, 15);
+OnTimer240000:
+ callsub(OnMobSpawn, 20);
+//OnTimer300000:
+// callsub(OnMobSpawn, 25);
+OnTimer300000:
+ callsub(OnMobSpawn, 30);
+OnTimer360000:
+ callsub(OnMobSpawn, 35);
+OnTimer420000:
+ callsub(OnMobSpawn, 40);
+OnTimer480000:
+ callsub(OnMobSpawn, 45);
+OnTimer540000:
+ callsub(OnMobSpawn, 50);
OnTimer600000:
- killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
- stopnpctimer;
+ killmonster(instance_mapname("1@ma_b"), instance_npcname("#Bakonawan3-1")+"::OnMyMobDead");
+ stopnpctimer();
end;
OnMobSpawn:
.@label$ = instance_npcname("#Bakonawan3-1")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_b");
- killmonster .@map$,.@label$;
- .@mob_dead_num = mobcount(.@map$,.@label$);
+ killmonster(.@map$, .@label$);
+ .@mob_dead_num = mobcount(.@map$, .@label$);
if (.@mob_dead_num < 50) {
.@mob_rg = 50 - .@mob_dead_num;
if (.@mob_rg > getarg(0))
.@mob_rg = getarg(0);
- while(1) {
- areamonster .@map$,74,74,82,74,"Bakonawa's Puppet",2334,1,.@label$;
- .@mob_dead_num = mobcount(.@map$,.@label$);
- if (.@mob_dead_num >= .@mob_rg) {
+ while (true) {
+ areamonster(.@map$, 74, 74, 82, 74, _("Bakonawa's Puppet"), G_WAKWAK, 1, .@label$);
+ .@mob_dead_num = mobcount(.@map$, .@label$);
+ if (.@mob_dead_num >= .@mob_rg)
break;
- }
}
}
end;
}
1@ma_b,62,52,4 script Taho#Completed 4_M_DEWZATIMAN,{
- disable_items;
- if (checkweight(Knife,1) == 0) {
- mes "It seems you are carrying too many different kinds of items. Please try again after reducing it.";
- close;
+ disable_items();
+ if (checkweight(Knife, 1) == 0) {
+ mes("It seems you are carrying too many different kinds of items. Please try again after reducing it.");
+ close();
}
if (MaxWeight - Weight < 10000) {
- mes "It seems you are already carrying items of too much weight. Please try again after reducing the weight.";
- close;
- }
- if (questprogress(12279,HUNTING) == 2) {
- erasequest 12279;
- mes "[Taho]";
- mes "This was found from Bakonawa's corpse. It would be better if you take this.";
+ mes("It seems you are already carrying items of too much weight. Please try again after reducing the weight.");
+ close();
+ }
+ if (questprogress(12279, HUNTING) == 2) {
+ erasequest(12279);
+ mes("[Taho]");
+ mes("This was found from Bakonawa's corpse. It would be better if you take this.");
// if (IsPremiumPcCafe == 10)
- getitem Ancient_Grudge,7;
+ getitem(Ancient_Grudge, 7);
// else
-// getitem Ancient_Grudge,5;
- getexp 0,100000;
- next;
+// getitem(Ancient_Grudge, 5);
+ getexp(0, 100000);
+ next();
}
- mes "[Taho]";
- mes "We better hurry and get out of this place. This place is still dangerous even without Bakonawa...";
- next;
- mes "[Taho]";
- mes "Then let's use to the rope to go up!";
- close2;
- warp "ma_scene01",175,176;
+ mes("[Taho]");
+ mes("We better hurry and get out of this place. This place is still dangerous even without Bakonawa...");
+ next();
+ mes("[Taho]");
+ mes("Then let's use to the rope to go up!");
+ close2();
+ warp("ma_scene01", 175, 176);
end;
OnInstanceInit:
- disablenpc instance_npcname("Taho#Completed");
+ disablenpc(instance_npcname("Taho#Completed"));
end;
OnStart:
- enablenpc instance_npcname("Taho#Completed");
- initnpctimer;
+ enablenpc(instance_npcname("Taho#Completed"));
+ initnpctimer();
end;
OnTimer1000:
- monster instance_mapname("1@ma_b"),78,74,"Bakonawa Treasure Box",2335,1;
+ monster(instance_mapname("1@ma_b"), 78, 74, _("Bakonawa Treasure Box"), MA_TREASURE, 1);
end;
OnTimer10000:
- mapannounce instance_mapname("1@ma_b"),"Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@ma_b"), _("Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you."), bc_map, C_AQUA); //FW_NORMAL 15 0 0
+ stopnpctimer();
end;
}
1@ma_b,62,52,4 script Taho#Fail 4_M_DEWZATIMAN,{
- mes "[Taho]";
- mes "HMM. We almost got him but he is one fast creature...";
- next;
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2)) {
- mes "[Taho]";
- mes "Are we going to try again?";
- next;
- switch(select("Hold on a sec!", "Of course! We cannot stand back now!")) {
+ mes("[Taho]");
+ mes("HMM. We almost got him but he is one fast creature...");
+ next();
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
+ mes("[Taho]");
+ mes("Are we going to try again?");
+ next();
+ switch (select("Hold on a sec!", "Of course! We cannot stand back now!")) {
case 1:
- mes "[Taho]";
- mes "AWW... I almost brought him out.";
- close;
+ mes("[Taho]");
+ mes("AWW... I almost brought him out.");
+ close();
case 2:
- mes "[Taho]";
- mes "Then I will use Albopal once again to the lake.";
- next;
- mes "[Taho]";
- mes "We are about to see Bakonawa with intenser anger...";
- disablenpc instance_npcname("Taho#Fail");
- donpcevent instance_npcname("#Bakonawan1")+"::OnStart";
- close;
+ mes("[Taho]");
+ mes("Then I will use Albopal once again to the lake.");
+ next();
+ mes("[Taho]");
+ mes("We are about to see Bakonawa with intenser anger...");
+ disablenpc(instance_npcname("Taho#Fail"));
+ donpcevent(instance_npcname("#Bakonawan1")+"::OnStart");
+ close();
}
- close;
+ close();
} else {
- mes "[Taho]";
- mes "I am dropping Albopal like I did a while ago. I hope it pisses him off...";
- close;
+ mes("[Taho]");
+ mes("I am dropping Albopal like I did a while ago. I hope it pisses him off...");
+ close();
}
OnInstanceInit:
- disablenpc instance_npcname("Taho#Fail");
+ disablenpc(instance_npcname("Taho#Fail"));
end;
OnStart:
- enablenpc instance_npcname("Taho#Fail");
+ enablenpc(instance_npcname("Taho#Fail"));
end;
}
diff --git a/npc/re/instances/BuwayaCave.txt b/npc/re/instances/BuwayaCave.txt
index 094964867..393ac5d9e 100644
--- a/npc/re/instances/BuwayaCave.txt
+++ b/npc/re/instances/BuwayaCave.txt
@@ -35,95 +35,95 @@
ma_fild02,312,317,5 script Guard#buwaya_cave 4_MAL_SOLDIER,{
if (BaseLevel < 130) {
- mes "[Guard]";
- mes "People under ^ff0000level 130^000000";
- mes "cannot enter this place.";
- mes "This place is dangerous. Please go back.";
- close;
+ mes("[Guard]");
+ mes("People under ^ff0000level 130^000000");
+ mes("cannot enter this place.");
+ mes("This place is dangerous. Please go back.");
+ close();
}
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Buwaya Cave";
+ .@md_name$ = _("Buwaya Cave");
if (!.@party_id) {
- mes "[Guard]";
- mes "Buwaya is dangerous.";
- mes "Please come back after you form a";
- mes "team with other people.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is dangerous.");
+ mes("Please come back after you form a");
+ mes("team with other people.");
+ close();
}
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
- mes "[Guard]";
- mes "This place is dangerous. Please go back.";
- mes "If you dont have any business here, please go back.";
- next;
- while(1) {
- switch(select("Why is it so dangerous?", "I'm here to hunt down Buwaya.", "End conversation.")) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
+ mes("[Guard]");
+ mes("This place is dangerous. Please go back.");
+ mes("If you dont have any business here, please go back.");
+ next();
+ while (true) {
+ switch (select("Why is it so dangerous?", "I'm here to hunt down Buwaya.", "End conversation.")) {
case 1:
- mes "[Guard]";
- mes "Recently, there has been a case";
- mes "where villagers have disappeared.";
- mes "After investigating the tracks, ";
- mes "we found out the giant monster Buwaya";
- mes "was responsible.";
- next;
- mes "[Guard]";
- mes "Soldiers and mercenaries have been dispatched to ";
- mes "hunt down Buwaya, but were never";
- mes "completely successful.";
- next;
- mes "[Guard]";
- mes "Buwaya is still kidnapping";
- mes "the villagers to this day.";
- mes "Please gather some people to get rid of Buwaya.";
- next;
+ mes("[Guard]");
+ mes("Recently, there has been a case");
+ mes("where villagers have disappeared.");
+ mes("After investigating the tracks, ");
+ mes("we found out the giant monster Buwaya");
+ mes("was responsible.");
+ next();
+ mes("[Guard]");
+ mes("Soldiers and mercenaries have been dispatched to ");
+ mes("hunt down Buwaya, but were never");
+ mes("completely successful.");
+ next();
+ mes("[Guard]");
+ mes("Buwaya is still kidnapping");
+ mes("the villagers to this day.");
+ mes("Please gather some people to get rid of Buwaya.");
+ next();
break;
case 2:
- .@playtime = questprogress(4229,PLAYTIME);
+ .@playtime = questprogress(4229, PLAYTIME);
if (!.@playtime) {
// fall through
} else if (.@playtime == 1) {
- mes "[Guard]";
- mes "Buwaya is still hiding.";
- mes "Even if you enter now, Buwaya will not come out. ";
- mes "Please come back later.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is still hiding.");
+ mes("Even if you enter now, Buwaya will not come out. ");
+ mes("Please come back later.");
+ close();
} else {
- erasequest 4229;
+ erasequest(4229);
// fall through
}
- .@instance = instance_create(.@md_name$,.@party_id);
+ .@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "[Guard]";
- mes "Party name is... "+getpartyname(.@party_id)+".";;
- mes "Party leader is... "+strcharinfo(PC_NAME);
- mes "^0000ff"+.@md_name$+"^000000 cannot be opened now.";
- mes "Please try a moment later.";
- close;
+ mes("[Guard]");
+ mesf("Party name is... %s.", getpartyname(.@party_id));
+ mesf("Party leader is... %s", strcharinfo(PC_NAME));
+ mesf("^0000ff%s^000000 cannot be opened now.", .@md_name$);
+ mes("Please try a moment later.");
+ close();
}
- if (instance_attachmap("1@ma_c",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
+ if (instance_attachmap("1@ma_c", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
- instance_set_timeout 3600,300,.@instance;
+ instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
- mes "[Guard]";
- mes "I will open up the tunnel to ^0000ff"+.@md_name$+"^000000.";
- mes "I wish you good luck.";
- close;
+ mes("[Guard]");
+ mesf("I will open up the tunnel to ^0000ff%s^000000.", .@md_name$);
+ mes("I wish you good luck.");
+ close();
case 3:
- mes "[Guard]";
- mes "This place is dangerous. You cannot enter.";
- close;
+ mes("[Guard]");
+ mes("This place is dangerous. You cannot enter.");
+ close();
}
}
} else {
- mes "[Guard]";
- mes "Let me talk with the party leader.";
- mes "Please call forth the leader.";
- close;
+ mes("[Guard]");
+ mes("Let me talk with the party leader.");
+ mes("Please call forth the leader.");
+ close();
}
}
@@ -131,214 +131,214 @@ ma_fild02,315,323,0 script Cave Entrance#buwaya WARPNPC,2,2,{
end;
OnTouch:
if (BaseLevel < 130) {
- mes "[Guard]";
- mes "People under ^ff0000level 130^000000";
- mes "cannot enter this place.";
- mes "This place is dangerous. Please go back.";
- close;
+ mes("[Guard]");
+ mes("People under ^ff0000level 130^000000");
+ mes("cannot enter this place.");
+ mes("This place is dangerous. Please go back.");
+ close();
}
- .@playtime = questprogress(4229,PLAYTIME);
+ .@playtime = questprogress(4229, PLAYTIME);
if (!.@playtime) {
// fall through
} else if (.@playtime == 1) {
- mes "[Guard]";
- mes "Buwaya is still hiding.";
- mes "Even if you enter now, Buwaya will not come out.";
- mes "Please come back later.";
- close;
+ mes("[Guard]");
+ mes("Buwaya is still hiding.");
+ mes("Even if you enter now, Buwaya will not come out.");
+ mes("Please come back later.");
+ close();
} else {
- erasequest 4229;
+ erasequest(4229);
// fall through
}
- switch(select("Enter.", "Turn back.")) {
+ switch (select("Enter.", "Turn back.")) {
case 1:
- if( has_instance("1@ma_c") == "" ) {
- mes "The memorial dungeon Buwaya Cave does not exist.";
- mes "The party leader did not generate the dungeon yet.";
- close;
+ if (has_instance("1@ma_c") == "") {
+ mes("The memorial dungeon Buwaya Cave does not exist.");
+ mes("The party leader did not generate the dungeon yet.");
+ close();
} else {
- mapannounce "ma_fild02",getpartyname(getcharid(CHAR_ID_PARTY))+" party's "+strcharinfo(PC_NAME)+" member began hunting Buwaya in Buwaya Cave.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- setquest 4229;
- warp "1@ma_c",35,57;
+ mapannounce("ma_fild02", sprintf(_$("%s party's %s member began hunting Buwaya in Buwaya Cave."), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ setquest(4229);
+ warp("1@ma_c", 35, 57);
end;
}
case 2:
- mes "[Guard]";
- mes "You must value your life.";
- mes "It is better to think carefully before you act.";
- close;
+ mes("[Guard]");
+ mes("You must value your life.");
+ mes("It is better to think carefully before you act.");
+ close();
}
}
1@ma_c,33,112,0 script #damage HIDDEN_WARP_NPC,7,7,{
end;
OnInstanceInit:
- initnpctimer;
- disablenpc instance_npcname("#damage");
+ initnpctimer();
+ disablenpc(instance_npcname("#damage"));
end;
OnTimer1000:
- enablenpc instance_npcname("#damage");
- specialeffect EF_POISONHIT;
+ enablenpc(instance_npcname("#damage"));
+ specialeffect(EF_POISONHIT);
end;
OnTimer2000:
- stopnpctimer;
- initnpctimer;
- disablenpc instance_npcname("#damage");
+ stopnpctimer();
+ initnpctimer();
+ disablenpc(instance_npcname("#damage"));
end;
OnTouch:
- percentheal -10,-10;
- sc_start SC_BLOODING,60000,0;
- sc_start SC_POISON,60000,0;
+ percentheal(-10, -10);
+ sc_start(SC_BLOODING, 60000, 0);
+ sc_start(SC_POISON, 60000, 0);
end;
}
1@ma_c,29,110,5 script Kidnapped People#1 4_F_BARYO_OLD,{
- mes "[Kidnapped Residents]";
- mes "Buwaya was running around,";
- mes "and new people got caught.";
- mes "We will be stuck in here for the rest of our lives.";
- next;
- switch(select("Get me outta here!!", "Ca...can't escape?")) {
+ mes("[Kidnapped Residents]");
+ mes("Buwaya was running around,");
+ mes("and new people got caught.");
+ mes("We will be stuck in here for the rest of our lives.");
+ next();
+ switch (select("Get me outta here!!", "Ca...can't escape?")) {
case 1:
- mes "[Kidnapped Residents]";
- mes "We don't have enough power to destroy it but Buwaya has a weakness.";
- mes "Look at the wall over there.";
- mes "If you knock there, Buywaya will feel pain and spit you out.";
- donpcevent instance_npcname("#box_mob_call")+"::OnEnable";
- close2;
- disablenpc instance_npcname("Kidnapped People#1");
+ mes("[Kidnapped Residents]");
+ mes("We don't have enough power to destroy it but Buwaya has a weakness.");
+ mes("Look at the wall over there.");
+ mes("If you knock there, Buywaya will feel pain and spit you out.");
+ donpcevent(instance_npcname("#box_mob_call")+"::OnEnable");
+ close2();
+ disablenpc(instance_npcname("Kidnapped People#1"));
end;
case 2:
- mes "[Kidnapped People]";
- mes "Somthing is wrong here...";
- mes "Have you experienced this before?";
- close;
+ mes("[Kidnapped People]");
+ mes("Somthing is wrong here...");
+ mes("Have you experienced this before?");
+ close();
}
end;
OnInstanceInit:
- disablenpc instance_npcname("Kidnapped People#1");
+ disablenpc(instance_npcname("Kidnapped People#1"));
end;
OnEnable:
- enablenpc instance_npcname("Kidnapped People#1");
- donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
+ enablenpc(instance_npcname("Kidnapped People#1"));
+ donpcevent(instance_npcname("#box_mob_call")+"::OnDisable");
end;
}
1@ma_c,36,110,5 script Kidnapped People#2 4_M_BARYO_OLD,{
- mes "[Kidnapped Residents]";
- mes "Ahaa! I wish I had a little more power...";
- mes "I know its weakness...";
- next;
- switch(select("Tell me.", "Do you really know?")) {
+ mes("[Kidnapped Residents]");
+ mes("Ahaa! I wish I had a little more power...");
+ mes("I know its weakness...");
+ next();
+ switch (select("Tell me.", "Do you really know?")) {
case 1:
- mes "[Kidnapped Residents]";
- mes "Are you sure you can do it...?";
- mes "Ok, listen carefully,";
- mes "its weakness is...";
- next;
- mes "[Kidnapped Residents]";
- mes "...behind us on the walls.";
- sc_start SC_ATKPOTION,60000,45;
- sc_start SC_MATKPOTION,60000,45;
- disablenpc instance_npcname("Kidnapped People#2");
- close;
+ mes("[Kidnapped Residents]");
+ mes("Are you sure you can do it...?");
+ mes("Ok, listen carefully,");
+ mes("its weakness is...");
+ next();
+ mes("[Kidnapped Residents]");
+ mes("...behind us on the walls.");
+ sc_start(SC_ATKPOTION, 60000, 45);
+ sc_start(SC_MATKPOTION, 60000, 45);
+ disablenpc(instance_npcname("Kidnapped People#2"));
+ close();
case 2:
- mes "[Kidnapped Residents]";
- mes "WHAT?!";
- mes "Are you ignoring me";
- mes "because I'm captured in here?";
- close;
+ mes("[Kidnapped Residents]");
+ mes("WHAT?!");
+ mes("Are you ignoring me");
+ mes("because I'm captured in here?");
+ close();
}
end;
OnInstanceInit:
- disablenpc instance_npcname("Kidnapped People#2");
+ disablenpc(instance_npcname("Kidnapped People#2"));
end;
OnEnable:
- enablenpc instance_npcname("Kidnapped People#2");
+ enablenpc(instance_npcname("Kidnapped People#2"));
end;
}
1@ma_c,3,3,0 script #box_mob_call HIDDEN_WARP_NPC,1,1,{
end;
OnInstanceInit:
- setcell instance_mapname("1@ma_c"),30,118,35,118,cell_shootable,1; //custom
- disablenpc instance_npcname("#box_mob_call");
+ setcell(instance_mapname("1@ma_c"), 30, 118, 35, 118, cell_shootable, 1); //custom
+ disablenpc(instance_npcname("#box_mob_call"));
end;
OnEnable:
- enablenpc instance_npcname("#box_mob_call");
+ enablenpc(instance_npcname("#box_mob_call"));
.@label$ = instance_npcname("#box_mob_call")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- monster .@map$,30,118,"Buwaya's Weakness",2333,1,.@label$;
- monster .@map$,35,118,"Buwaya's Weakness",2333,1,.@label$;
+ monster(.@map$, 30, 118, _("Buwaya's Weakness"), BUWAYA_WEAK, 1, .@label$);
+ monster(.@map$, 35, 118, _("Buwaya's Weakness"), BUWAYA_WEAK, 1, .@label$);
end;
OnDisable:
- killmonster instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead";
- disablenpc instance_npcname("#box_mob_call");
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#box_mob_call")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#box_mob_call"));
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
- donpcevent instance_npcname("#box_out")+"::OnEnable";
+ if (mobcount(instance_mapname("1@ma_c"), instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
+ donpcevent(instance_npcname("#box_out")+"::OnEnable");
end;
}
1@ma_c,38,118,0 script #box_out WARPNPC,2,2,{
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#box_out");
+ disablenpc(instance_npcname("#box_out"));
end;
OnEnable:
- enablenpc instance_npcname("#box_out");
+ enablenpc(instance_npcname("#box_out"));
end;
OnTouch:
- .@x = rand(1,20) + 97;
- .@y = rand(1,20) + 74;
- warp instance_mapname("1@ma_c"),.@x,.@y;
+ .@x = rand(1, 20) + 97;
+ .@y = rand(1, 20) + 74;
+ warp(instance_mapname("1@ma_c"), .@x, .@y);
end;
}
1@ma_c,97,74,0 script #box_call HIDDEN_WARP_NPC,50,50,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#box_call");
- initnpctimer;
+ disablenpc(instance_npcname("#box_call"));
+ initnpctimer();
end;
OnTimer30000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : I will put you in my treasure box!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : I will put you in my treasure box!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
// Should execute OnTimer33000, but client doesn't render the effect fast enough.
- for(.@i = 1; .@i<=9; ++.@i)
- donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
+ for(.@i = 1; .@i <= 9; ++.@i)
+ donpcevent(instance_npcname("#yunobi"+.@i)+"::OnEnable");
end;
OnTimer33000:
- donpcevent instance_npcname("#box_out")+"::OnDisable";
- donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
- donpcevent instance_npcname("Kidnapped People#1")+"::OnEnable";
- donpcevent instance_npcname("Kidnapped People#2")+"::OnEnable";
+ donpcevent(instance_npcname("#box_out")+"::OnDisable");
+ donpcevent(instance_npcname("#box_mob_call")+"::OnDisable");
+ donpcevent(instance_npcname("Kidnapped People#1")+"::OnEnable");
+ donpcevent(instance_npcname("Kidnapped People#2")+"::OnEnable");
end;
OnTimer34000:
- enablenpc instance_npcname("#box_call");
+ enablenpc(instance_npcname("#box_call"));
end;
OnTimer35000:
- stopnpctimer;
- initnpctimer;
- disablenpc instance_npcname("#box_call");
+ stopnpctimer();
+ initnpctimer();
+ disablenpc(instance_npcname("#box_call"));
end;
OnTouch:
specialeffect(EF_GUIDEDATTACK, AREA, playerattached());
- warp instance_mapname("1@ma_c"),33,112;
+ warp(instance_mapname("1@ma_c"), 33, 112);
end;
OnDisable:
- stopnpctimer;
- disablenpc instance_npcname("#box_call");
+ stopnpctimer();
+ disablenpc(instance_npcname("#box_call"));
end;
}
1@ma_c,97,74,0 script #yunobi1 HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- specialeffect EF_MAPPILLAR2;
+ specialeffect(EF_MAPPILLAR2);
end;
}
1@ma_c,97,94,0 duplicate(#yunobi1) #yunobi2 HIDDEN_WARP_NPC
@@ -353,65 +353,65 @@ OnEnable:
1@ma_c,1,1,0 script #bunshin HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer58000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : I had enough with this, let's go till the end!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : I had enough with this, let's go till the end!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer61000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer62000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer63000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY...Deadly!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer64000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly... ATTACK!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : This is...MY...Deadly... ATTACK!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer65000:
.@label$ = instance_npcname("#bunshin")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- areamonster .@map$,112,89,122,99,"Buwaya",2332,1,.@label$;
- areamonster .@map$,112,49,122,59,"Buwaya",2332,1,.@label$;
- areamonster .@map$,72,49,82,59,"Buwaya",2332,1,.@label$;
- areamonster .@map$,72,89,82,99,"Buwaya",2332,1,.@label$;
+ areamonster(.@map$, 112, 89, 122, 99, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 112, 49, 122, 59, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 72, 49, 82, 59, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
+ areamonster(.@map$, 72, 89, 82, 99, _("Buwaya"), BUWAYA_GHOST, 1, .@label$);
end;
OnTimer66000:
- mapannounce instance_mapname("1@ma_c"),"Buwaya : Are you scared?",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ma_c"), _("Buwaya : Are you scared?"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
end;
OnTimer105000:
- killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
- stopnpctimer;
- initnpctimer;
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead");
+ stopnpctimer();
+ initnpctimer();
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
- stopnpctimer;
- initnpctimer;
+ if (mobcount(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
+ stopnpctimer();
+ initnpctimer();
}
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
- disablenpc instance_npcname("#bunshin");
+ stopnpctimer();
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#bunshin")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#bunshin"));
end;
}
1@ma_c,2,2,0 script #buwaya_con HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- areamonster instance_mapname("1@ma_c"),90,67,104,81,"Buwaya",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
+ areamonster(instance_mapname("1@ma_c"), 90, 67, 104, 81, _("Buwaya"), BUWAYA, 1, instance_npcname("#buwaya_con")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@ma_c");
- if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("#box_call")+"::OnDisable";
- donpcevent instance_npcname("#bunshin")+"::OnDisable";
- donpcevent instance_npcname("#exit_mob")+"::OnDisable";
- donpcevent instance_npcname("#cave_out")+"::OnEnable";
- mapannounce .@map$,"Guard : You did great work. Please hurry up and escape to the way you came in!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
+ if (mobcount(.@map$, instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("#box_call")+"::OnDisable");
+ donpcevent(instance_npcname("#bunshin")+"::OnDisable");
+ donpcevent(instance_npcname("#exit_mob")+"::OnDisable");
+ donpcevent(instance_npcname("#cave_out")+"::OnEnable");
+ mapannounce(.@map$, _("Guard : You did great work. Please hurry up and escape to the way you came in!"), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
}
end;
}
@@ -419,24 +419,24 @@ OnMyMobDead:
1@ma_c,3,3,0 script #exit_mob HIDDEN_WARP_NPC,{
end;
OnInstanceInit:
- initnpctimer;
+ initnpctimer();
end;
OnTimer60000:
.@label$ = instance_npcname("#exit_mob")+"::OnMyMobDead";
.@map$ = instance_mapname("1@ma_c");
- if (mobcount(.@map$,.@label$) < 30)
+ if (mobcount(.@map$, .@label$) < 30)
.@amount = 10;
else
.@amount = 1;
- areamonster .@map$,43,58,47,60,"Water Plant",2331,.@amount,.@label$;
- areamonster .@map$,43,58,47,60,"Egg",2329,.@amount,.@label$;
- stopnpctimer;
- initnpctimer;
+ areamonster(.@map$, 43, 58, 47, 60, _("Water Plant"), MA_SEAW, .@amount, .@label$);
+ areamonster(.@map$, 43, 58, 47, 60, _("Egg"), BUWAYA_EGG, .@amount, .@label$);
+ stopnpctimer();
+ initnpctimer();
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";
- disablenpc instance_npcname("#exit_mob");
+ stopnpctimer();
+ killmonster(instance_mapname("1@ma_c"), instance_npcname("#exit_mob")+"::OnMyMobDead");
+ disablenpc(instance_npcname("#exit_mob"));
end;
OnMyMobDead:
end;
@@ -444,35 +444,35 @@ OnMyMobDead:
1@ma_c,28,57,0 script #cave_out WARPNPC,2,2,{
OnInstanceInit:
- disablenpc instance_npcname("#cave_out");
+ disablenpc(instance_npcname("#cave_out"));
end;
OnEnable:
- enablenpc instance_npcname("#cave_out");
+ enablenpc(instance_npcname("#cave_out"));
end;
OnTouch:
- mes "Would like to go out?";
- next;
- if(select("Yes!", "No, I will stay.") == 1)
- warp "ma_fild02",315,315;
- close;
+ mes("Would like to go out?");
+ next();
+ if (select("Yes!", "No, I will stay.") == 1)
+ warp("ma_fild02", 315, 315);
+ close();
}
1@ma_c,1,1,0 script #buwaya_spawn_mobs FAKE_NPC,{
OnInstanceInit:
.@map$ = instance_mapname("1@ma_c");
- areamonster .@map$,73,81,93,101,"Seaweed",2331,18;
- areamonster .@map$,110,97,116,103,"Seaweed",2331,8;
- areamonster .@map$,59,63,63,67,"Seaweed",2331,8;
- areamonster .@map$,73,55,77,59,"Seaweed",2331,4;
- areamonster .@map$,103,69,107,73,"Seaweed",2331,4;
- areamonster .@map$,108,45,122,63,"Seaweed",2331,15;
- areamonster .@map$,73,81,93,101,"Buwaya's Egg",2329,10;
- areamonster .@map$,110,97,116,103,"Buwaya's Egg",2329,8;
- areamonster .@map$,59,63,63,67,"Buwaya's Egg",2329,4;
- areamonster .@map$,73,55,77,59,"Buwaya's Egg",2329,3;
- areamonster .@map$,103,69,107,73,"Buwaya's Egg",2329,3;
- areamonster .@map$,108,45,122,63,"Buwaya's Egg",2329,15;
- monster .@map$,0,0,"Seaweed",2331,5;
- monster .@map$,0,0,"Buwaya's Slave",2330,5;
+ areamonster(.@map$, 73, 81, 93, 101, _("Seaweed"), MA_SEAW, 18);
+ areamonster(.@map$, 110, 97, 116, 103, _("Seaweed"), MA_SEAW, 8);
+ areamonster(.@map$, 59, 63, 63, 67, _("Seaweed"), MA_SEAW, 8);
+ areamonster(.@map$, 73, 55, 77, 59, _("Seaweed"), MA_SEAW, 4);
+ areamonster(.@map$, 103, 69, 107, 73, _("Seaweed"), MA_SEAW, 4);
+ areamonster(.@map$, 108, 45, 122, 63, _("Seaweed"), MA_SEAW, 15);
+ areamonster(.@map$, 73, 81, 93, 101, _("Buwaya's Egg"), BUWAYA_EGG, 10);
+ areamonster(.@map$, 110, 97, 116, 103, _("Buwaya's Egg"), BUWAYA_EGG, 8);
+ areamonster(.@map$, 59, 63, 63, 67, _("Buwaya's Egg"), BUWAYA_EGG, 4);
+ areamonster(.@map$, 73, 55, 77, 59, _("Buwaya's Egg"), BUWAYA_EGG, 3);
+ areamonster(.@map$, 103, 69, 107, 73, _("Buwaya's Egg"), BUWAYA_EGG, 3);
+ areamonster(.@map$, 108, 45, 122, 63, _("Buwaya's Egg"), BUWAYA_EGG, 15);
+ monster(.@map$, 0, 0, _("Seaweed"), MA_SEAW, 5);
+ monster(.@map$, 0, 0, _("Buwaya's Slave"), BUWAYA_SLAVE, 5);
end;
}
diff --git a/npc/re/instances/EclageInterior.txt b/npc/re/instances/EclageInterior.txt
index b8aff0a81..6b2808e05 100644
--- a/npc/re/instances/EclageInterior.txt
+++ b/npc/re/instances/EclageInterior.txt
@@ -34,133 +34,132 @@
ecl_hub01,132,12,3 script Chief of Staff#tl01::EclInstance 4_F_FAIRY,{
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Eclage Interior";
- if (!.@party_id){
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
+ .@md_name$ = _("Eclage Interior");
+ if (!.@party_id) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
-
- if (getpartyleader(.@party_id,2) != getcharid(CHAR_ID_CHAR)) {
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
+ if (getpartyleader(.@party_id, 2) != getcharid(CHAR_ID_CHAR)) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
if (ep14_2_mylord == 29) {
- mes "[Shenime]";
- mes "This place is set up with lighting for Orb.";
- mes "If you favor Mayor, you should be cautious here.";
- next;
+ mes("[Shenime]");
+ mes("This place is set up with lighting for Orb.");
+ mes("If you favor Mayor, you should be cautious here.");
+ next();
switch (select("Enter it.", "Forget it.")) {
- case 1:
- .@instance = instance_create(.@md_name$,.@party_id);
- if (.@instance < 0) {
- mes "[Shenime]";
- mes "There are some soldiers dispatched by Mayor not too long ago.";
- mes "I should sure hope that you aren't the disturbance they're looking for, right?";
- close;
- }
- if (instance_attachmap("1@ecl",.@instance) == "") {
- mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
- instance_destroy(.@instance);
- close;
- }
- ecl_interior_time = gettimetick(2)+20*60;
- instance_set_timeout 1200,1200,.@instance;
- instance_init(.@instance);
- mes "[Shenime]";
- mes "Given the tight internal security, you should prepare yourself.";
- mes "Wait here for a minute.";
- close;
- case 2:
- mes "[Shenime]";
- mes "It's not an easy task.";
- close;
+ case 1:
+ .@instance = instance_create(.@md_name$, .@party_id);
+ if (.@instance < 0) {
+ mes("[Shenime]");
+ mes("There are some soldiers dispatched by Mayor not too long ago.");
+ mes("I should sure hope that you aren't the disturbance they're looking for, right?");
+ close();
+ }
+ if (instance_attachmap("1@ecl", .@instance) == "") {
+ mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
+ instance_destroy(.@instance);
+ close();
+ }
+ ecl_interior_time = gettimetick(2) + 20 * 60;
+ instance_set_timeout(1200, 1200, .@instance);
+ instance_init(.@instance);
+ mes("[Shenime]");
+ mes("Given the tight internal security, you should prepare yourself.");
+ mes("Wait here for a minute.");
+ close();
+ case 2:
+ mes("[Shenime]");
+ mes("It's not an easy task.");
+ close();
}
}
- mes "[High-level Laphine's]";
- mes "Hmm? This room?";
- mes "Never mind. Don't worry about it.";
- close;
+ mes("[High-level Laphine's]");
+ mes("Hmm? This room?");
+ mes("Never mind. Don't worry about it.");
+ close();
}
ecl_hub01,130,15,0 script It is closed shut. CLEAR_NPC,{
if (ep14_2_mylord == 29) {
- mes "This door connects to the plaza's ceiling.";
- mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
- next;
+ mes("This door connects to the plaza's ceiling.");
+ mes("It's also a place where the lighting is set up to make Orb seem more beautiful.");
+ next();
switch (select("Enter it.", "Forget it.")) {
- case 1:
- .@party_id = getcharid(CHAR_ID_PARTY);
+ case 1:
+ .@party_id = getcharid(CHAR_ID_PARTY);
- if (has_instance("1@ecl") == "") {
- mes "It is closed shut.";
- close;
+ if (has_instance("1@ecl") == "") {
+ mes("It is closed shut.");
+ close();
+ }
+ if (.@party_id) {
+ .@md_name$ = _("Eclage Interior");
+ if (getpartyleader(.@party_id, 2) != getcharid(CHAR_ID_CHAR)) {
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
}
- if (.@party_id) {
- .@md_name$ = "Eclage Interior";
- if (getpartyleader(.@party_id,2) != getcharid(CHAR_ID_CHAR)){
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
- }
- if (gettimetick(2) >= ecl_interior_time){
- mes "[Shenime]";
- mes "Looks like the soldiers inside are really tense.";
- mes "It is pretty difficult to guide an outsider like you.";
- close;
- }
- close2;
- mapannounce "ecl_hub01",getpartyname(.@party_id) + " Party leader " + strcharinfo(PC_NAME) + " is entering " + .@md_name$,bc_map,"0x00ff99";
- warp "1@ecl",60,50;
- end;
+ if (gettimetick(2) >= ecl_interior_time) {
+ mes("[Shenime]");
+ mes("Looks like the soldiers inside are really tense.");
+ mes("It is pretty difficult to guide an outsider like you.");
+ close();
}
- mes "-! Warning !-";
- mes "This current quest will be held at Memorial dungeon.";
- mes "Only the party leader will enter. Please create your party.";
- close;
- case 2:
- close;
+ close2();
+ mapannounce("ecl_hub01", sprintf(_$("%s Party leader %s is entering %s"), getpartyname(.@party_id), strcharinfo(PC_NAME), .@md_name$), bc_map, C_SPRINGGREEN);
+ warp("1@ecl", 60, 50);
+ end;
+ }
+ mes("-! Warning !-");
+ mes("This current quest will be held at Memorial dungeon.");
+ mes("Only the party leader will enter. Please create your party.");
+ close();
+ case 2:
+ close();
}
}
- mes "This door connects to the plaza's ceiling.";
- mes "It's also a place where the lighting is set up to make Orb seem more beautiful.";
- mes "It is closed shut.";
- close;
+ mes("This door connects to the plaza's ceiling.");
+ mes("It's also a place where the lighting is set up to make Orb seem more beautiful.");
+ mes("It is closed shut.");
+ close();
}
1@ecl,58,69,3 script Shenime#ecl01 4_F_FAIRY,{
- mes "[Shenime]";
- mes "Oh, what's going on here?";
- mes "They destroyed additional troops that Mayor sent?";
- next;
+ mes("[Shenime]");
+ mes("Oh, what's going on here?");
+ mes("They destroyed additional troops that Mayor sent?");
+ next();
select("What...?", "I fought monsters off!");
- mes "[Shenime]";
- mes "It doesn't matter.";
- mes "Your job ends here.";
- mes "Now you became a betrayer.";
- mes "Farewell, then!";
- specialeffect EF_BEGINSPELL3;
- next;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "No...way!!!";
+ mes("[Shenime]");
+ mes("It doesn't matter.");
+ mes("Your job ends here.");
+ mes("Now you became a betrayer.");
+ mes("Farewell, then!");
+ specialeffect(EF_BEGINSPELL3);
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("No...way!!!");
specialeffect(EF_LORD, AREA, playerattached());
- percentheal -99,0;
- soundeffect "wander_man_move.wav",1;
- sc_start SC_BLIND,60000,0;
- close2;
- warp "1@ecl",146,95;
+ percentheal(-99, 0);
+ soundeffect("wander_man_move.wav", 1);
+ sc_start(SC_BLIND, 60000, 0);
+ close2();
+ warp("1@ecl", 146, 95);
end;
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- hideoffnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideoffnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -174,8 +173,9 @@ OnEnable:
1@ecl,42,80,5 script Suspicious Creature#5 MOROCC_2_142,{
end;
+
OnInstanceInit:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -188,109 +188,113 @@ OnInstanceInit:
OnInstanceInit:
.mob_summoned = 0;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- initnpctimer;
+ initnpctimer();
end;
OnReset:
- killmonster instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead";
- stopnpctimer;
+ killmonster(instance_mapname("1@ecl"), instance_npcname("#sndmaster")+"::OnMyMobDead");
+ stopnpctimer();
end;
+
OnTimer1000:
- mapannounce instance_mapname("1@ecl"),"Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@ecl"), _("Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room."), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
end;
+
OnTimer2000:
- mapannounce instance_mapname("1@ecl"),"Suspicious Creature: Kerrrrr....krwahhhh!!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
- hideoffnpc instance_npcname("Suspicious Creature#5");
- hideoffnpc instance_npcname("Suspicious Creature#6");
- hideoffnpc instance_npcname("Suspicious Creature#7");
- hideoffnpc instance_npcname("Suspicious Creature#8");
+ mapannounce(instance_mapname("1@ecl"), _("Suspicious Creature: Kerrrrr....krwahhhh!!"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
+ hideoffnpc(instance_npcname("Suspicious Creature#5"));
+ hideoffnpc(instance_npcname("Suspicious Creature#6"));
+ hideoffnpc(instance_npcname("Suspicious Creature#7"));
+ hideoffnpc(instance_npcname("Suspicious Creature#8"));
end;
OnTimer3000:
- hideonnpc instance_npcname("#sndmaster");
- stopnpctimer;
+ hideonnpc(instance_npcname("#sndmaster"));
+ stopnpctimer();
end;
OnMyMobDead:
- if (mobcount(instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead") == 0) {
- donpcevent instance_npcname("Shenime#ecl01")+"::OnEnable";
- mapannounce instance_mapname("1@ecl"),"Shenime: Good, I got here just in time.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ if (mobcount(instance_mapname("1@ecl"), instance_npcname("#sndmaster")+"::OnMyMobDead") == 0) {
+ donpcevent(instance_npcname("Shenime#ecl01")+"::OnEnable");
+ mapannounce(instance_mapname("1@ecl"), _("Shenime: Good, I got here just in time."), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
}
end;
OnTouch:
- if (.mob_summoned) end;
- mes "Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.";
- next;
- mes "We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.";
- next;
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "They look as if they are incarnation of Morroc.";
- mes "Is the King of Domons after the Orb?";
- mes "Or is it just a coincidence?";
- next;
- mes "[Subordinate of the King of Demons]";
- mes "Kyaarr...Keraahhh!!!";
- mes "Kkwaaa!";
- next;
- mes "A battle cannot be avoided!";
- mes "They will kill me!";
- hideonnpc instance_npcname("Suspicious Creature#5");
- hideonnpc instance_npcname("Suspicious Creature#6");
- hideonnpc instance_npcname("Suspicious Creature#7");
- hideonnpc instance_npcname("Suspicious Creature#8");
+ if (.mob_summoned)
+ end;
+ mes("Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.");
+ next();
+ mes("We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("They look as if they are incarnation of Morroc.");
+ mes("Is the King of Domons after the Orb?");
+ mes("Or is it just a coincidence?");
+ next();
+ mes("[Subordinate of the King of Demons]");
+ mes("Kyaarr...Keraahhh!!!");
+ mes("Kkwaaa!");
+ next();
+ mes("A battle cannot be avoided!");
+ mes("They will kill me!");
+ hideonnpc(instance_npcname("Suspicious Creature#5"));
+ hideonnpc(instance_npcname("Suspicious Creature#6"));
+ hideonnpc(instance_npcname("Suspicious Creature#7"));
+ hideonnpc(instance_npcname("Suspicious Creature#8"));
.@eclmap$ = instance_mapname("1@ecl");
.@sndmaster$ = instance_npcname("#sndmaster");
- monster .@eclmap$,42,80,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,48,86,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,59,82,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,56,88,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,39,72,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,42,69,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,47,64,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
- monster .@eclmap$,50,60,"Subordinate of the King of Demons",MOROCC_2_142,1,.@sndmaster$+"::OnMyMobDead";
+ monster(.@eclmap$, 42, 80, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 48, 86, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 59, 82, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 56, 88, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 39, 72, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 42, 69, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 47, 64, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
+ monster(.@eclmap$, 50, 60, _("Subordinate of the King of Demons"), MOROCC_2_142, 1, .@sndmaster$+"::OnMyMobDead");
.mob_summoned = 1;
- close;
+ close();
}
1@ecl,57,65,0 script #event HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
- if (.mob_summoned) end;
+ if (.mob_summoned)
+ end;
.@eclmap$ = instance_mapname("1@ecl");
.@eventname$ = instance_npcname("#event");
- mes "An empty room with nothing inside.";
- mes "a light is coming out of a circular equipment in the middle of the room.";
- next;
- mes "[Suspicious Creature]";
- mes "Keheehehehe......";
- next;
- mes "A group of unidentifiable creatures is approaching threateningly.";
- mes "They seemed surprised, and although Bifrost's will still holds, it's hard to communicate.";
- next;
- mes "[Suspicious Creature]";
- mes "Kyaarr...Ke...Keryarya!!";
- next;
- mes "It seems like they are going to start attacking any minute.";
- mes "We cannot help fighting them!";
- hideonnpc instance_npcname("Suspicious Creature#1");
- hideonnpc instance_npcname("Suspicious Creature#2");
- hideonnpc instance_npcname("Suspicious Creature#3");
- hideonnpc instance_npcname("Suspicious Creature#4");
- monster .@eclmap$,51,64,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,43,67,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,55,80,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
- monster .@eclmap$,60,75,"Suspicious Creature",MOROCC_4_142,1,.@eventname$+"::OnMyMobDead";
+ mes("An empty room with nothing inside.");
+ mes("a light is coming out of a circular equipment in the middle of the room.");
+ next();
+ mes("[Suspicious Creature]");
+ mes("Keheehehehe......");
+ next();
+ mes("A group of unidentifiable creatures is approaching threateningly.");
+ mes("They seemed surprised, and although Bifrost's will still holds, it's hard to communicate.");
+ next();
+ mes("[Suspicious Creature]");
+ mes("Kyaarr...Ke...Keryarya!!");
+ next();
+ mes("It seems like they are going to start attacking any minute.");
+ mes("We cannot help fighting them!");
+ hideonnpc(instance_npcname("Suspicious Creature#1"));
+ hideonnpc(instance_npcname("Suspicious Creature#2"));
+ hideonnpc(instance_npcname("Suspicious Creature#3"));
+ hideonnpc(instance_npcname("Suspicious Creature#4"));
+ monster(.@eclmap$, 51, 64, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 43, 67, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 55, 80, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
+ monster(.@eclmap$, 60, 75, _("Suspicious Creature"), MOROCC_4_142, 1, .@eventname$+"::OnMyMobDead");
.mob_summoned = 1;
- close;
+ close();
OnMyMobDead:
- if (mobcount(instance_mapname("1@ecl"),instance_npcname("#event")+"::OnMyMobDead") == 0) {
- enablenpc instance_npcname("#sndmaster");
- donpcevent instance_npcname("#sndmaster")+"::OnEnable";
+ if (mobcount(instance_mapname("1@ecl"), instance_npcname("#event")+"::OnMyMobDead") == 0) {
+ enablenpc(instance_npcname("#sndmaster"));
+ donpcevent(instance_npcname("#sndmaster")+"::OnEnable");
}
end;
OnInstanceInit:
@@ -299,218 +303,218 @@ OnInstanceInit:
}
1@ecl,148,97,3 script Avant# 4_M_FAIRYAVANT,{
- mes "[Avant]";
- mes "Hey, look who's here!";
- mes "You're a friend of my son, right?";
- mes "What a strange chance it is that has brought us together here!";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "Did something happen to you?";
- mes "There was a subtle and magical echo to it.";
- mes "Immidiately after that, you were thrown here.";
- next;
+ mes("[Avant]");
+ mes("Hey, look who's here!");
+ mes("You're a friend of my son, right?");
+ mes("What a strange chance it is that has brought us together here!");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("Did something happen to you?");
+ mes("There was a subtle and magical echo to it.");
+ mes("Immidiately after that, you were thrown here.");
+ next();
if (select("It's all because of you!", "Shenime said...") == 1) {
- mes "[Avant]";
- mes "I don't understand a word you're saying.";
- mes "Can't you organize your story? Don't you know 'five W's and one H' rule?";
- next;
+ mes("[Avant]");
+ mes("I don't understand a word you're saying.");
+ mes("Can't you organize your story? Don't you know 'five W's and one H' rule?");
+ next();
}
- mes "[Avant]";
- mes "Ooh...so that's what happened.";
- mes "So you're saying that Shenime was after the Orb?";
- next;
- mes "[Avant]";
- mes "hehehe...hahahhaha ahahahahha";
- mes "Well, well...did he get me, too?";
- mes "Me, Avant, of all the people?! Hahahaha!";
- cutin "avant02",1;
- next;
+ mes("[Avant]");
+ mes("Ooh...so that's what happened.");
+ mes("So you're saying that Shenime was after the Orb?");
+ next();
+ mes("[Avant]");
+ mes("hehehe...hahahhaha ahahahahha");
+ mes("Well, well...did he get me, too?");
+ mes("Me, Avant, of all the people?! Hahahaha!");
+ cutin("avant02", 1);
+ next();
select("What do you mean?");
- mes "[Avant]";
- mes "I was doing a research on the power of the Orb on my own.";
- mes "But Shenime just urged me persistently.";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "I started from thinking about the beauty of the Orb and went on to wondering what kind of power is accumulated inside the Orb...";
- mes "and I started questioning the principle of the Orb's power since we all benefit from it.";
- next;
- mes "[Avant]";
- mes "All Laphines think of the Orb as something natural as air and water, but he was the first one to make me perceive it differently and investigate its origin.";
- mes "Right...Shenime. He excited my curiosity on purpose.";
- next;
- mes "[Avant]";
- mes "Stimulate a person who wasn't aware of air and water, and make him recognize and carry on investigating!";
- mes "Well, well...isn't that interesting!";
- cutin "avant02",1;
- next;
- mes "[Avant]";
- mes "Ha...hahaha...";
- mes "...I'm so angry about the fact that I just realized how he used me, but what's even worse is that I've done something horrible to our people.";
- mes "I think I'm pretty irritated now.";
- next;
+ mes("[Avant]");
+ mes("I was doing a research on the power of the Orb on my own.");
+ mes("But Shenime just urged me persistently.");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("I started from thinking about the beauty of the Orb and went on to wondering what kind of power is accumulated inside the Orb...");
+ mes("and I started questioning the principle of the Orb's power since we all benefit from it.");
+ next();
+ mes("[Avant]");
+ mes("All Laphines think of the Orb as something natural as air and water, but he was the first one to make me perceive it differently and investigate its origin.");
+ mes("Right...Shenime. He excited my curiosity on purpose.");
+ next();
+ mes("[Avant]");
+ mes("Stimulate a person who wasn't aware of air and water, and make him recognize and carry on investigating!");
+ mes("Well, well...isn't that interesting!");
+ cutin("avant02", 1);
+ next();
+ mes("[Avant]");
+ mes("Ha...hahaha...");
+ mes("...I'm so angry about the fact that I just realized how he used me, but what's even worse is that I've done something horrible to our people.");
+ mes("I think I'm pretty irritated now.");
+ next();
select("You had a conscience?");
- mes "[Avant]";
- mes "What kind of a person do you think I am, seriously!";
- mes "Is it because of my sons?";
- mes "Well, then, I can't blame you too much.";
- cutin "avant01",1;
- next;
- mes "[Avant]";
- mes "...Bah.";
- mes "It's no fun.";
- mes "It's not fun anymore. I'm no longer interested in you.";
- next;
- mes "[Avant]";
- mes "......";
- mes "Seems like there's a visitor.";
- next;
- cutin "minuel01",4;
- mes "[Minuel]";
- mes "" + strcharinfo(PC_NAME) + "Sir,";
- mes "Although you're detained on suspicion of being responsible for the recent incident in the lighting room,";
- mes "there are some witnesses to prove your innocence.";
- next;
- mes "[Minuel]";
- mes "I don't know the details,";
- mes "but I also believe you're not guilty.";
- mes "I'll move you to the treatment room since this seems like a severe wound.";
- next;
- mes "[Minuel]";
- mes "I don't think it's a big deal.";
- mes "...hopefully.";
- mes "Let's go. I'll guide you.";
- close2;
- cutin "",255;
- warp "1@ecl",146,29;
+ mes("[Avant]");
+ mes("What kind of a person do you think I am, seriously!");
+ mes("Is it because of my sons?");
+ mes("Well, then, I can't blame you too much.");
+ cutin("avant01", 1);
+ next();
+ mes("[Avant]");
+ mes("...Bah.");
+ mes("It's no fun.");
+ mes("It's not fun anymore. I'm no longer interested in you.");
+ next();
+ mes("[Avant]");
+ mes("......");
+ mes("Seems like there's a visitor.");
+ next();
+ cutin("minuel01", 4);
+ mes("[Minuel]");
+ mesf("%s Sir,", strcharinfo(PC_NAME));
+ mes("Although you're detained on suspicion of being responsible for the recent incident in the lighting room,");
+ mes("there are some witnesses to prove your innocence.");
+ next();
+ mes("[Minuel]");
+ mes("I don't know the details,");
+ mes("but I also believe you're not guilty.");
+ mes("I'll move you to the treatment room since this seems like a severe wound.");
+ next();
+ mes("[Minuel]");
+ mes("I don't think it's a big deal.");
+ mes("...hopefully.");
+ mes("Let's go. I'll guide you.");
+ close2();
+ cutin("", 255);
+ warp("1@ecl", 146, 29);
end;
}
1@ecl,148,29,3 script Loki#ecl01 4_M_ROKI2,{
- mes "[Loki]";
- mes "It seems like this guy next to me has a lot more to say than I do.";
- mes "Why don't you explain to him first?";
- close;
+ mes("[Loki]");
+ mes("It seems like this guy next to me has a lot more to say than I do.");
+ mes("Why don't you explain to him first?");
+ close();
}
1@ecl,147,30,3 script Nydhog#ecl01 4_F_NYDHOG,{
- mes "[Guardian Nydhog]";
- mes "I think you should talk to Hisie first.";
- close;
+ mes("[Guardian Nydhog]");
+ mes("I think you should talk to Hisie first.");
+ close();
}
1@ecl,144,27,5 script Hisie#ecl01 4_M_FARIY_HISIE,{
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "Can you tell me exactly what happened?";
- next;
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("Can you tell me exactly what happened?");
+ next();
select("I fought with monsters.");
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "Monsters? Subordinates of Morroc?";
- mes "What you were trying to kill were our soldiers, the Laphines!!";
- mes "What on earth happened there?";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "It's because of this.";
- mes "" + strcharinfo(PC_NAME) + "It was inside the body of -";
- mes "This is how powerful Shenime is.";
- next;
- mes "On Loki's palm, there rested a small, thin, and dried piece of thorn.";
- next;
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "Shenime, the Chief of Staff?";
- mes "Why is he related to this?";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Shenime is one of the subordinates of Morroc.";
- mes "His power enbales him to control another person directly or mentally influence that person indirectly through a part of his body.";
- next;
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("Monsters? Subordinates of Morroc?");
+ mes("What you were trying to kill were our soldiers, the Laphines!!");
+ mes("What on earth happened there?");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("It's because of this.");
+ mesf("%s It was inside the body of -", strcharinfo(PC_NAME));
+ mes("This is how powerful Shenime is.");
+ next();
+ mes("On Loki's palm, there rested a small, thin, and dried piece of thorn.");
+ next();
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("Shenime, the Chief of Staff?");
+ mes("Why is he related to this?");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Shenime is one of the subordinates of Morroc.");
+ mes("His power enbales him to control another person directly or mentally influence that person indirectly through a part of his body.");
+ next();
select("Now that I think about it...");
- mes "[" + strcharinfo(PC_NAME) + "]";
- mes "Right before coming here, Shenime reached his hand out to me and I felt a spark when I held his hand.";
- mes "I thought it was just my imagination and ignored it...maybe that's when he...";
- next;
- mes "[Nydhog]";
- mes "You're probably right.";
- mes "They use wicked tricks.";
- mes "This thorn here probably has clouded your judgement.";
- next;
- cutin "hisie03",0;
- mes "[Hisie]";
- mes "So you're saying that he deceived us all?";
- mes "The Chief of Staff is a Laphine who stayed with us for a long time! He can't be...";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "",255;
- mes "[Loki]";
- mes "He might have been under the influence for a good while.";
- mes "Anyway, this guy is not guilty.";
- mes "I can prove it.";
- next;
- mes "[Nydhog]";
- mes "I swear by the name of the guardian of Yggdrasil, too.";
- mes "" + strcharinfo(PC_NAME) + "- will by no means do such a thing.";
- next;
- cutin "hisie02",0;
- mes "[Hisie]";
- mes "Hah...";
- mes "But things got out of control.";
- mes "I didn't expect this.";
- next;
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("Right before coming here, Shenime reached his hand out to me and I felt a spark when I held his hand.");
+ mes("I thought it was just my imagination and ignored it...maybe that's when he...");
+ next();
+ mes("[Nydhog]");
+ mes("You're probably right.");
+ mes("They use wicked tricks.");
+ mes("This thorn here probably has clouded your judgement.");
+ next();
+ cutin("hisie03", 0);
+ mes("[Hisie]");
+ mes("So you're saying that he deceived us all?");
+ mes("The Chief of Staff is a Laphine who stayed with us for a long time! He can't be...");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("He might have been under the influence for a good while.");
+ mes("Anyway, this guy is not guilty.");
+ mes("I can prove it.");
+ next();
+ mes("[Nydhog]");
+ mes("I swear by the name of the guardian of Yggdrasil, too.");
+ mesf("%s - will by no means do such a thing.", strcharinfo(PC_NAME));
+ next();
+ cutin("hisie02", 0);
+ mes("[Hisie]");
+ mes("Hah...");
+ mes("But things got out of control.");
+ mes("I didn't expect this.");
+ next();
select("What happened to the Orb?");
- mes "[Hisie]";
- mes "The inner core is stolen.";
- mes "Nobody knows that the Orb's inner core is gone,";
- mes "and that's why Karr didn't make it here.";
- npcskill AL_HEAL,9,99,80;
- next;
- mes "[Hisie]";
- mes "And what's more, several soldiers are injured because of you.";
- mes "None of them died fortunately, but most of them are wounded severely.";
- mes "The situation is not very good right now.";
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Someone has to take the responsibility here then.";
- mes "In all probablility," + strcharinfo(PC_NAME) + "it will be you.";
- next;
- cutin "hisie02",0;
- mes "[Hisie]";
- mes "......these two gentlemen here cleared up all charges related to the Orb,";
- mes "but both you and Karr won't be able to avoid your responsibility.";
- mes "you'll have to catch Shenime.";
- npcskill AL_HEAL,9,99,80;
- next;
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "It seems like you've rested enough. Let's get going.";
- mes "Karr is waiting for you.";
- mes "What will you two do?";
- next;
- cutin "",255;
- mes "[Loki]";
- mes "Don't worry about us.";
- mes "Our target is Morroc, the King of Demons.";
- mes "It's good enough that we found an evidence here.";
- next;
- cutin "hisie01",0;
- mes "[Hisie]";
- mes "Thank you for your help.";
- mes "We will take off now.";
- mes "Let's go." + strcharinfo(PC_NAME) + ".";
+ mes("[Hisie]");
+ mes("The inner core is stolen.");
+ mes("Nobody knows that the Orb's inner core is gone,");
+ mes("and that's why Karr didn't make it here.");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ mes("[Hisie]");
+ mes("And what's more, several soldiers are injured because of you.");
+ mes("None of them died fortunately, but most of them are wounded severely.");
+ mes("The situation is not very good right now.");
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Someone has to take the responsibility here then.");
+ mesf("In all probablility, %s it will be you.", strcharinfo(PC_NAME));
+ next();
+ cutin("hisie02", 0);
+ mes("[Hisie]");
+ mes("......these two gentlemen here cleared up all charges related to the Orb,");
+ mes("but both you and Karr won't be able to avoid your responsibility.");
+ mes("you'll have to catch Shenime.");
+ npcskill(AL_HEAL, 9, 99, 80);
+ next();
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("It seems like you've rested enough. Let's get going.");
+ mes("Karr is waiting for you.");
+ mes("What will you two do?");
+ next();
+ cutin("", 255);
+ mes("[Loki]");
+ mes("Don't worry about us.");
+ mes("Our target is Morroc, the King of Demons.");
+ mes("It's good enough that we found an evidence here.");
+ next();
+ cutin("hisie01", 0);
+ mes("[Hisie]");
+ mes("Thank you for your help.");
+ mes("We will take off now.");
+ mesf("Let's go. %s.", strcharinfo(PC_NAME));
ep14_2_mylord = 30;
- changequest 7450,7451;
- erasequest 7450;
- setquest 7451;
- close2;
- cutin "",255;
- warp "ecl_in03",57,76;
+ changequest(7450, 7451);
+ erasequest(7450);
+ setquest(7451);
+ close2();
+ cutin("", 255);
+ warp("ecl_in03", 57, 76);
end;
}
diff --git a/npc/re/instances/HazyForest.txt b/npc/re/instances/HazyForest.txt
index c649171f8..291ce54db 100644
--- a/npc/re/instances/HazyForest.txt
+++ b/npc/re/instances/HazyForest.txt
@@ -37,147 +37,149 @@
bif_fild01,158,340,5 script Laphine Soldier#mist 4_M_FAIRYSOLDIER,{
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Mistwood Maze";
+ .@md_name$ = _("Mistwood Maze");
- mes "[Laphine Soldier]";
- mes "Are you going into the forest?";
- next;
+ mes("[Laphine Soldier]");
+ mes("Are you going into the forest?");
+ next();
if (!.@party_id) {
- mes "[Laphine Soldier]";
- mes "Well, well, well, aren't you being too rash?";
- mes "Why don't you at least organize a party?";
- close;
+ mes("[Laphine Soldier]");
+ mes("Well, well, well, aren't you being too rash?");
+ mes("Why don't you at least organize a party?");
+ close();
}
- .@playtime = questprogress(7211,PLAYTIME);
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2)) {
+ .@playtime = questprogress(7211, PLAYTIME);
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) {
if (.@playtime == 1) {
- mes "[Laphine Soldier]";
- mes "...Are you sure you're not doing too much?";
- mes "I think you'd better get some rest.";
- mes "You'll only wear yourself out by trying to do too much";
- next;
- mes "[Laphine Soldier]";
- mes "I don't think the authority will give you permission, either.";
- mes "...Even a Sapha would be stopped from entering the forest.";
- next;
+ mes("[Laphine Soldier]");
+ mes("...Are you sure you're not doing too much?");
+ mes("I think you'd better get some rest.");
+ mes("You'll only wear yourself out by trying to do too much");
+ next();
+ mes("[Laphine Soldier]");
+ mes("I don't think the authority will give you permission, either.");
+ mes("...Even a Sapha would be stopped from entering the forest.");
+ next();
select("You speak our language quite well, don't you?");
- mes "[Laphine Soldier]";
- mes "...Do I?";
- mes "Actually I'm not speaking your language.";
- mes "I'm speaking Laphine language.";
- next;
- mes "[Laphine Soldier]";
- mes "But it's one of the mysteries of Bifrost.";
- mes "That we can understand each other even if we speak different languages.";
- next;
- mes "[Laphine Soldier]";
- mes "To be able to talk with everybody...";
- mes "Perhaps that's the power of Bifrost.";
- close;
+ mes("[Laphine Soldier]");
+ mes("...Do I?");
+ mes("Actually I'm not speaking your language.");
+ mes("I'm speaking Laphine language.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("But it's one of the mysteries of Bifrost.");
+ mes("That we can understand each other even if we speak different languages.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("To be able to talk with everybody...");
+ mes("Perhaps that's the power of Bifrost.");
+ close();
} else if (.@playtime == 2) {
- mes "[Laphine Soldier]";
- mes "Great, great.";
- mes "Now the forest won't reject you.";
- mes "What are you going to do now?";
- erasequest 7211;
+ mes("[Laphine Soldier]");
+ mes("Great, great.");
+ mes("Now the forest won't reject you.");
+ mes("What are you going to do now?");
+ erasequest(7211);
} else {
- mes "[Laphine Soldier]";
- mes "You human adventurers are incredible.";
- mes "You're always going into the forest, where no one else dares to go.";
- next;
- mes "[Laphine Soldier]";
- mes "Phew. But I have to report to the authority";
- mes "everyone who goes into the forest, just in case.";
- next;
- mes "[Laphine Soldier]";
- mes "You'll get permission";
- mes "after you register.";
- mes "Are you going to venture into the Hazy Forest?";
+ mes("[Laphine Soldier]");
+ mes("You human adventurers are incredible.");
+ mes("You're always going into the forest, where no one else dares to go.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("Phew. But I have to report to the authority");
+ mes("everyone who goes into the forest, just in case.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("You'll get permission");
+ mes("after you register.");
+ mes("Are you going to venture into the Hazy Forest?");
}
- next;
+ next();
switch(select("Venture into the Hazy Forest.", "Give up.")) {
case 1:
- mes "[Laphine Soldier]";
- mes "Party Name "+getpartyname(.@party_id)+"...";
- mes "Party Leader "+strcharinfo(PC_NAME)+"...";
+ mes("[Laphine Soldier]");
+ mesf("Party Name %s...", getpartyname(.@party_id));
+ mesf("Party Leader %s...", strcharinfo(PC_NAME));
.@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
- mes "Hmm...";
- next;
- mes "[Laphine Soldier]";
+ mes("Hmm...");
+ next();
+ mes("[Laphine Soldier]");
if (!.@playtime)
- mes "It's dangerous in the forest.";
+ mes("It's dangerous in the forest.");
else
- mes "The atmosphere is somewhat tense in the forest.";
- mes "...Why don't you just go back today?";
- close;
+ mes("The atmosphere is somewhat tense in the forest.");
+ mes("...Why don't you just go back today?");
+ close();
}
- if (instance_attachmap("1@mist",.@instance) != "") {
- instance_set_timeout 7200,300,.@instance;
+ if (instance_attachmap("1@mist", .@instance) != "") {
+ instance_set_timeout(7200, 300, .@instance);
instance_init(.@instance);
- mes "I've got it. I've written them down on the report here.";
- next;
- mes "[Laphine Soldier]";
- mes "You'll get permission soon.";
- mes "Now go to the log tunnel, the only way to get into the Hazy Forest.";
- mes "You understand?";
- next;
- mes "[Laphine Soldier]";
- mes "We can't go against the forest,";
- mes "but maybe you humans can.";
- mes "Good luck!";
- close;
+ mes("I've got it. I've written them down on the report here.");
+ next();
+ mes("[Laphine Soldier]");
+ mes("You'll get permission soon.");
+ mes("Now go to the log tunnel, the only way to get into the Hazy Forest.");
+ mes("You understand?");
+ next();
+ mes("[Laphine Soldier]");
+ mes("We can't go against the forest,");
+ mes("but maybe you humans can.");
+ mes("Good luck!");
+ close();
} else {
instance_destroy(.@instance);
}
case 2:
- mes "[Laphine Soldier]";
- mes "Well, you've made the right decision.";
+ mes("[Laphine Soldier]");
+ mes("Well, you've made the right decision.");
if (!.@playtime)
- mes "That's what's good for you.";
- close;
+ mes("That's what's good for you.");
+ close();
}
} else {
- mes "[Laphine Soldier]";
- mes "Where's your party leader?";
- mes "It's dangerous in there.";
- next;
+ mes("[Laphine Soldier]");
+ mes("Where's your party leader?");
+ mes("It's dangerous in there.");
+ next();
if (.@playtime == 2) {
- mes "[Laphine Soldier]";
- mes "I see you've been into the forest before.";
- mes "Okay, at least the forest won't reject you.";
- mes "However...";
- erasequest 7211;
- next;
+ mes("[Laphine Soldier]");
+ mes("I see you've been into the forest before.");
+ mes("Okay, at least the forest won't reject you.");
+ mes("However...");
+ erasequest(7211);
+ next();
}
- mes "[Laphine Soldier]";
- mes "Put yourself in my shoes, the entrance guard, and let me meet the representative of your party.";
- mes "I have to discuss some things with him/her.";
- close;
+ mes("[Laphine Soldier]");
+ mes("Put yourself in my shoes, the entrance guard, and let me meet the representative of your party.");
+ mes("I have to discuss some things with him/her.");
+ close();
}
}
bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
- mes "I see the forest through the log tunnel.";
- mes "It looks like I can enter the forest through the log tunnel.";
- next;
- if(select("Enter the tunnel.", "Give up.") == 2)
- close;
+ mes("I see the forest through the log tunnel.");
+ mes("It looks like I can enter the forest through the log tunnel.");
+ next();
+ if (select("Enter the tunnel.", "Give up.") == 2)
+ close();
if (has_instance("1@mist") == "") {
- if (questprogress(7211,PLAYTIME) == 1) {
- mes "You try to crawl into the log, but some mysterious power pushes you back with a gush of wind.";
- mes "It seems like you can't force your way into the forest.";
- close;
+ if (questprogress(7211, PLAYTIME) == 1) {
+ mes("You try to crawl into the log, but some mysterious power pushes you back with a gush of wind.");
+ mes("It seems like you can't force your way into the forest.");
+ close();
}
- mes "The world beyond the log tunnel looks dark and suffocating.";
- mes "Your instinct is screaming that this forest is dangerous.";
- close;
+ mes("The world beyond the log tunnel looks dark and suffocating.");
+ mes("Your instinct is screaming that this forest is dangerous.");
+ close();
} else {
- if (questprogress(7211,PLAYTIME) == 2) erasequest 7211;
- if (!questprogress(7211,PLAYTIME)) setquest 7211;
- mapannounce "bif_fild01",getpartyname(getcharid(CHAR_ID_PARTY))+" party's "+strcharinfo(PC_NAME)+" member is entering the Mistwood Maze.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
- warp "1@mist",89,29;
- close;
+ if (questprogress(7211, PLAYTIME) == 2)
+ erasequest(7211);
+ if (!questprogress(7211, PLAYTIME))
+ setquest(7211);
+ mapannounce("bif_fild01", sprintf(_$("%s party's %s member is entering the Mistwood Maze."), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN); //FW_NORMAL 12 0 0
+ warp("1@mist", 89, 29);
+ close();
}
}
@@ -185,284 +187,325 @@ bif_fild01,161,355,0 script Log Tunnel CLEAR_NPC,{
1@mist,89,29,0 script #Whisper_mist CLEAR_NPC,1,1,{
end;
OnInstanceInit:
- enablenpc instance_npcname("#Whisper_mist");
+ enablenpc(instance_npcname("#Whisper_mist"));
end;
OnTouch:
- disablenpc instance_npcname("#Whisper_mist");
- initnpctimer;
+ disablenpc(instance_npcname("#Whisper_mist"));
+ initnpctimer();
end;
OnTimer10000:
OnTimer20000:
- mapannounce instance_mapname("1@mist"),"Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper: Who's this? Who's this!? The forest is open! Tom, Tomba, Tired Rem, Remi! Wake up!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer60000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: What are the forest keepers doing? What are the gardeners doing??",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: What are the forest keepers doing? What are the gardeners doing??"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer120000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: Don't go out, wander around forever, and play with us!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: Don't go out, wander around forever, and play with us!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer180000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: Useless, useless. Wandering around and around, you'll meet your end!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
}
-// callfunc "F_Mora_Mist",<warp to enable>,<success message>,<fail message>{,<end flag>}
+// callfunc("F_Mora_Mist", <warp to enable>, <success message>, <fail message>{, <end flag>})
function script F_Mora_Mist {
.@map$ = instance_mapname("1@mist");
- if (mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") == 0) {
- mes "Obviously no one is taking care of it.";
- mes "It seems like you can chop down the garden tree.";
- next;
- if(select("Chop down the garden tree.", "Give up.") == 2)
- close;
- mes "You chop down the tree, which was blocking the path of the maze, "+((getarg(3,0))?"clearing the way out of the forest.":"so now you can continue.");
- mapannounce .@map$,getarg(1),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- enablenpc instance_npcname(getarg(0));
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- close;
- } else
- mapannounce .@map$,((getarg(3,0))?getarg(2):getarg(2)+"'s Cry: Huh? Who's doing bad things to my tree?!"),bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ if (mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") == 0) {
+ mes("Obviously no one is taking care of it.");
+ mes("It seems like you can chop down the garden tree.");
+ next();
+ if (select("Chop down the garden tree.", "Give up.") == 2)
+ close();
+ mesf("You chop down the tree, which was blocking the path of the maze, %s", ((getarg(3, 0))?"clearing the way out of the forest.":"so now you can continue."));
+ mapannounce(.@map$, getarg(1), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ enablenpc(instance_npcname(getarg(0)));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ close();
+ } else {
+ mapannounce(.@map$, (getarg(3, 0) ? getarg(2) : sprintf(_$("%s's Cry: Huh? Who's doing bad things to my tree?!"), getarg(2))), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ }
+ end;
+}
+
+1@mist,251,121,3 script Tom's Garden 4_BULLETIN_BOARD2,{
end;
}
-1@mist,251,121,3 script Tom's Garden 4_BULLETIN_BOARD2,{ end; }
1@mist,247,123,0 script Tom's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a25_a18-1",
"Roaring Cry: Tom's bolt is broken! Watch out, Tomba! Watch out, Tomba!",
- "Tom";
+ "Tom");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),249,120,"Tom",2136,1,instance_npcname("Tom's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 249, 120, _("Tom"), LITTLE_FATUM, 1, instance_npcname("Tom's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,226,95,3 script Tomba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,226,95,3 script Tomba's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,225,98,0 script Tomba's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a27-2_af1-2",
"Roaring Cry: Tomba's Garden Tree is gone with Tomba. Remi, what are you going to do now?",
- "Tomba";
+ "Tomba");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),200,64,"Tomba",2136,1,instance_npcname("Tomba's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 200, 64, _("Tomba"), LITTLE_FATUM, 1, instance_npcname("Tomba's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,157,183,3 script Remi's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,157,183,3 script Remi's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,159,184,0 script Remi's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a15-2_a4-1",
"Roaring Cry: Remi, Remi's Garden Tree was chopped down- Rem, it's your turn next. Poor Rem!",
- "Remi";
+ "Remi");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),154,184,"Remi the Tired",2137,1,instance_npcname("Remi's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 154, 184, _("Remi the Tired"), MIMING, 1, instance_npcname("Remi's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,58,39,3 script Tired Rem's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,58,39,3 script Tired Rem's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,61,39,0 script Tired Rem's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"a4-2_a11",
"Rem's Desperate Cry: Argh... Rem will sleep. Rem will sleep now, and won't wake up forever!",
- "Rem";
+ "Rem");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),101,107,"Rem the Gardener",2136,1,instance_npcname("Tired Rem's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 101, 107, _("Rem the Gardener"), LITTLE_FATUM, 1, instance_npcname("Tired Rem's Garden Tree")+"::OnMyMobDead");
end;
OnTimer10000:
- mapannounce instance_mapname("1@mist"),"Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper of the Forest: So Tom's, Tomba's, Remi's, and Rem's garden trees were all chopped down?"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer15000:
- mapannounce instance_mapname("1@mist"),"Whisper of the Forest: Trouble, trouble, we're in big trouble.",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Whisper of the Forest: Trouble, trouble, we're in big trouble."), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer20000:
- mapannounce instance_mapname("1@mist"),"Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Loud Whisper: They've come to the second deepest forest. Gardeners of the deep forest, watch out!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
OnMyMobDead:
end;
}
-1@mist,227,179,3 script Ron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,227,179,3 script Ron's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,230,179,0 script Ron's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b4-2_b2",
"Ron the Gardener's Cry: I'm getting off work! Don't look for Ron, the second gardener, any more!!",
- "Ron";
+ "Ron");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),227,178,"Ron the Gardener",2134,1,instance_npcname("Ron's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 227, 178, _("Ron the Gardener"), PARUS, 1, instance_npcname("Ron's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,288,226,3 script Rover's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,288,226,3 script Rover's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,285,225,0 script Rover's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b7_bf1-2",
"Roaring Whisper: Ron's, and Rover's trees were chopped down as well. Who is forcing his way into the forest? Who is it?",
- "Rover";
+ "Rover");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),304,237,"Rover the Strutter",2134,1,instance_npcname("Rover's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 304, 237, _("Rover the Strutter"), PARUS, 1, instance_npcname("Rover's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,159,318,3 script Mona's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,159,318,3 script Mona's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,161,316,0 script Mona's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b31_b16",
"Clamoring Whisper: Mona the Seedseeker's garden tree is gone! Mona is gone too! Namon will be okay, because he is brave, right? Namon, are you okay?",
- "Mona";
+ "Mona");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),239,253,"Mona the Seedseeker",2133,1,instance_npcname("Mona's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 239, 253, _("Mona the Seedseeker"), ANGRA_MANTIS, 1, instance_npcname("Mona's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,205,300,3 script Namon's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,205,300,3 script Namon's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,204,299,0 script Namon's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b27-3_bN-1",
"Clamoring Whisper: Brave Namon met his fate not so bravely... *giggle*",
- "Namon";
+ "Namon");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),89,173,"Brave Namon",2134,1,instance_npcname("Namon's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 89, 173, _("Brave Namon"), PARUS, 1, instance_npcname("Namon's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,219,232,3 script Sad Neoron's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,219,232,3 script Sad Neoron's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,221,236,0 script Sad Neoron's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b6-1_b33",
"Lamenting Whisper: Sad Neoron has become cheerful! Spyder the Superior Spider, what are you going to do? What are you going to do now?",
- "Neoron";
+ "Neoron");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),143,265,"Sad Neoron",2137,1,instance_npcname("Sad Neoron's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 143, 265, _("Sad Neoron"), MIMING, 1, instance_npcname("Sad Neoron's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,206,202,3 script Spyder's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,206,202,3 script Spyder's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,206,200,0 script Spyder's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"b5_b14",
"Depressed Whisper: Now it's all over with the second deepest forest. Gardeners are dying out-",
- "Spyder";
+ "Spyder");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),209,200,"Spyder the Eight-Legged",2132,1,instance_npcname("Spyder's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 209, 200, _("Spyder the Eight-Legged"), POM_SPIDER, 1, instance_npcname("Spyder's Garden Tree")+"::OnMyMobDead");
end;
OnTimer5000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: The path is about to open. The tight bolts have been removed!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: The path is about to open. The tight bolts have been removed!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer9000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: A forest opened, another opened, and the other is going to open as well. Tito and Pumba, they are heading your way!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer13000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: Where you get after wandering around, around and around, everybody you've met while wandering around, around and around,"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
end;
OnTimer17000:
- mapannounce instance_mapname("1@mist"),"Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!",bc_map,"0xccffcc"; //FW_NORMAL 12 0 0
- stopnpctimer;
+ mapannounce(instance_mapname("1@mist"), _("Roaring Whisper: all the gardeners will be waiting for you, with their clippers in their hands-!"), bc_map, "0xccffcc"); //FW_NORMAL 12 0 0
+ stopnpctimer();
end;
OnMyMobDead:
end;
}
-1@mist,96,288,3 script Tito's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,96,288,3 script Tito's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,95,287,0 script Tito's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c1_c13-1",
"Tito's Cry: *sob* *sob* Tito's gone now! Tito's done for! Boo hoo!!",
- "Tito";
+ "Tito");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),264,291,"Tito the Flipper",2133,1,instance_npcname("Tito's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 264, 291, _("Tito the Flipper"), ANGRA_MANTIS, 1, instance_npcname("Tito's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,326,325,3 script Pumba's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,326,325,3 script Pumba's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,324,325,0 script Pumba's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c13-3_c4",
"Roaring Whisper: Tito the Hard Worker was defeated! Stop playing and go to work, Tete! Start working!",
- "Pumba";
+ "Pumba");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),309,165,"Diligent Pumba",2134,1,instance_npcname("Pumba's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 309, 165, _("Diligent Pumba"), PARUS, 1, instance_npcname("Pumba's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
-1@mist,278,345,3 script Tete's Garden 4_BULLETIN_BOARD2,{ end; }
+1@mist,278,345,3 script Tete's Garden 4_BULLETIN_BOARD2,{
+ end;
+}
+
1@mist,280,344,0 script Tete's Garden Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"c19_c4",
"Whisper: They are strong, strong indeed. What are we going to do now? Are there any gardeners left? Are there any?",
- "Tete";
+ "Tete");
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),277,343,"Carefree Tete",2136,1,instance_npcname("Tete's Garden Tree")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 277, 343, _("Carefree Tete"), LITTLE_FATUM, 1, instance_npcname("Tete's Garden Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
1@mist,345,186,0 script The Gardeners' Tree 4_CREEPER,{
- callfunc "F_Mora_Mist",
+ callfunc("F_Mora_Mist",
"#to_bif02",
"Roaring Whisper: The forest will remember you! It will remember you, the one who broke the clippers of all the gardeners!",
- "Gardeners: We're not dead, yet!!!!",1;
+ "Gardeners: We're not dead, yet!!!!", 1);
end;
OnInstanceInit:
.@map$ = instance_mapname("1@mist");
- monster .@map$,318,137,"Baby Tom",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,321,137,"Tomba the Baby",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,324,137,"Exhausted Remi",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,319,135,"Rem the Exhausted",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,323,135,"Ron the Ex-Gardener",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,320,133,"Rover the Strutter",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,323,133,"Mona the Seedpicker",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,317,132,"Timid Namon",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,326,132,"Indifferent Neoron",2137,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,317,129,"Spyder the Seven-Legged",2132,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,320,129,"Tito the Flapper",2133,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,324,129,"Lazy Pumba",2134,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
- monster .@map$,327,129,"Careless Tete",2136,1,instance_npcname("The Gardeners' Tree")+"::OnMyMobDead";
+ monster(.@map$, 318, 137, _("Baby Tom"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 321, 137, _("Tomba the Baby"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 324, 137, _("Exhausted Remi"), MIMING, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 319, 135, _("Rem the Exhausted"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 323, 135, _("Ron the Ex-Gardener"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 320, 133, _("Rover the Strutter"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 323, 133, _("Mona the Seedpicker"), ANGRA_MANTIS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 317, 132, _("Timid Namon"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 326, 132, _("Indifferent Neoron"), MIMING, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 317, 129, _("Spyder the Seven-Legged"), POM_SPIDER, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 320, 129, _("Tito the Flapper"), ANGRA_MANTIS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 324, 129, _("Lazy Pumba"), PARUS, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
+ monster(.@map$, 327, 129, _("Careless Tete"), LITTLE_FATUM, 1, instance_npcname("The Gardeners' Tree")+"::OnMyMobDead");
end;
OnMyMobDead:
end;
}
1@mist,73,290,0 script Mysterious Flower#1 CLEAR_NPC,{
- specialeffect EF_LEVEL99_4;
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
- getitem Mysterious_Seed,1;
+ specialeffect(EF_LEVEL99_4);
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
+ getitem(Mysterious_Seed, 1);
end;
}
+
1@mist,69,295,0 duplicate(Mysterious Flower#1) Mysterious Flower#2 CLEAR_NPC
1@mist,62,291,0 duplicate(Mysterious Flower#1) Mysterious Flower#3 CLEAR_NPC
1@mist,54,293,0 duplicate(Mysterious Flower#1) Mysterious Flower#4 CLEAR_NPC
@@ -516,420 +559,432 @@ OnMyMobDead:
1@mist,2,2,0 script #Dragon Herder CLEAR_NPC,{
end;
OnInstanceInit:
- switch(rand(1,6)) {
- case 1: setarray .@c[0],77,240; break;
- case 2: setarray .@c[0],147,261; break;
- case 3: setarray .@c[0],182,263; break;
- case 4: setarray .@c[0],194,350; break;
- case 5: setarray .@c[0],268,183; break;
- case 6: setarray .@c[0],65,278; break;
+ switch (rand(1, 6)) {
+ case 1:
+ setarray .@c[0], 77, 240;
+ break;
+ case 2:
+ setarray .@c[0], 147, 261;
+ break;
+ case 3:
+ setarray .@c[0], 182, 263;
+ break;
+ case 4:
+ setarray .@c[0], 194, 350;
+ break;
+ case 5:
+ setarray .@c[0], 268, 183;
+ break;
+ case 6:
+ setarray .@c[0], 65, 278;
+ break;
}
- monster instance_mapname("1@mist"),.@c[0],.@c[1],"Wandering Purple Dragon",2131,1,instance_npcname("#Dragon Herder")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), .@c[0], .@c[1], _("Wandering Purple Dragon"), LOST_DRAGON, 1, instance_npcname("#Dragon Herder")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- if (mobcount(.@map$,instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
- donpcevent instance_npcname("Collapsed Girl#mist")+"::OnEnable";
- donpcevent instance_npcname("Mysterious Young Man#mis")+"::OnEnable";
- donpcevent instance_npcname("Loki#mist")+"::OnEnable";
- mapannounce .@map$,"The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
- disablenpc instance_npcname("#Dragon Herder");
- initnpctimer;
+ if (mobcount(.@map$, instance_npcname("#Dragon Herder")+"::OnMyMobDead") == 0) {
+ donpcevent(instance_npcname("Collapsed Girl#mist")+"::OnEnable");
+ donpcevent(instance_npcname("Mysterious Young Man#mis")+"::OnEnable");
+ donpcevent(instance_npcname("Loki#mist")+"::OnEnable");
+ mapannounce(.@map$, _("The Dragon's Cry: Am I being punished... for abandoning the way... of the guardian...?"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
+ disablenpc(instance_npcname("#Dragon Herder"));
+ initnpctimer();
}
end;
OnTimer3000:
- stopnpctimer;
- mapannounce instance_mapname("1@mist"),"Voice in your head: ...Will you... save... me... please......?",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+ stopnpctimer();
+ mapannounce(instance_mapname("1@mist"), _("Voice in your head: ...Will you... save... me... please......?"), bc_map, C_YELLOW); //FW_NORMAL 12 0 0
end;
}
1@mist,97,30,3 script Mysterious Young Man#mis 4_M_ROKI2,{
if (BaseLevel < 98) {
- mes "[Mysterious Young Man]";
- mes "Huh? Do you plan to pass through here?";
- mes ".....I'm afraid it's beyond your ability, but I won't meddle in your affairs.";
- mes "We'll meet again, if you survive.";
- close;
+ mes("[Mysterious Young Man]");
+ mes("Huh? Do you plan to pass through here?");
+ mes(".....I'm afraid it's beyond your ability, but I won't meddle in your affairs.");
+ mes("We'll meet again, if you survive.");
+ close();
}
if (ep14_1_mistwoods == 0) {
if (ep13_3_secret > 23) {
- mes "[Mysterious Young Man]";
- mes "You... I remember seeing you at the camp.";
- mes "The information you gave on Ahat was useful.";
- mes "Thanks!";
- next;
- mes "[Mysterious Young Man]";
- mes "But do you plan to pass through here?";
- mes "What good is it to go across Bifrost?";
- next;
+ mes("[Mysterious Young Man]");
+ mes("You... I remember seeing you at the camp.");
+ mes("The information you gave on Ahat was useful.");
+ mes("Thanks!");
+ next();
+ mes("[Mysterious Young Man]");
+ mes("But do you plan to pass through here?");
+ mes("What good is it to go across Bifrost?");
+ next();
} else {
- mes "[Mysterious Young Man]";
- mes "Do you plan to pass through here?";
- mes "I will advise against it if you're just curious.";
- mes "It will only bring about your untimely death...";
- next;
+ mes("[Mysterious Young Man]");
+ mes("Do you plan to pass through here?");
+ mes("I will advise against it if you're just curious.");
+ mes("It will only bring about your untimely death...");
+ next();
}
- mes "[Mysterious Young Man]";
- mes "If you are determined to pass through here,";
- mes "I will ask for your help with something.";
- next;
+ mes("[Mysterious Young Man]");
+ mes("If you are determined to pass through here,");
+ mes("I will ask for your help with something.");
+ next();
select("Who are you?");
- mes "[Loki]";
- mes "Loki... from the Assassin's Guild.";
- mes "That's my name.";
- mes "And yours?";
- next;
- mes "["+strcharinfo(PC_NAME)+"]";
- mes "....";
- mes "...."+strcharinfo(PC_NAME)+" sir.";
- next;
- mes "[Loki]";
- mes "I see. "+strcharinfo(PC_NAME)+".";
- mes "I'm asking you again.";
- mes "Do you plan to pass through this forest?";
- next;
+ mes("[Loki]");
+ mes("Loki... from the Assassin's Guild.");
+ mes("That's my name.");
+ mes("And yours?");
+ next();
+ mesf("[%s]", strcharinfo(PC_NAME));
+ mes("....");
+ mesf("....%s sir.", strcharinfo(PC_NAME));
+ next();
+ mes("[Loki]");
+ mesf("I see. %s.", strcharinfo(PC_NAME));
+ mes("I'm asking you again.");
+ mes("Do you plan to pass through this forest?");
+ next();
switch(select("Yes, I do.", "No, I don't.")) {
case 1:
- mes "[Loki]";
- mes "Then I'll ask you a question.";
- mes "Have you ever seen a guard... a girl with purple hair?";
- next;
+ mes("[Loki]");
+ mes("Then I'll ask you a question.");
+ mes("Have you ever seen a guard... a girl with purple hair?");
+ next();
switch(select("No, I haven't.", "Yes, I might have...")) {
case 1:
- mes "[Loki]";
- mes "So you haven't.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("So you haven't.");
+ mes("You're telling the truth.");
+ next();
break;
case 2:
- mes "[Loki]";
- mes "Wait.";
- mes "(Loki comes closer.)";
- mes "... No.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("Wait.");
+ mes("(Loki comes closer.)");
+ mes("... No.");
+ mes("You're telling the truth.");
+ next();
break;
}
- mes "[Loki]";
- mes "Now we have to say goodbye here.";
- mes "If you survive this forest, of course.";
+ mes("[Loki]");
+ mes("Now we have to say goodbye here.");
+ mes("If you survive this forest, of course.");
ep14_1_mistwoods = 2;
- setquest 7212;
- close;
+ setquest(7212);
+ close();
case 2:
- mes "[Loki]";
- mes "I understand.";
- mes "Step back if you aren't ready.";
- mes "This forest doesn't like strangers.";
+ mes("[Loki]");
+ mes("I understand.");
+ mes("Step back if you aren't ready.");
+ mes("This forest doesn't like strangers.");
ep14_1_mistwoods = 1;
- close;
+ close();
}
} else if (ep14_1_mistwoods == 1) {
- mes "[Loki]";
- mes "I told you - step back if you don't want to die.";
- mes "It's not easy going through the forest.";
- mes "It may cost you your life.";
- next;
+ mes("[Loki]");
+ mes("I told you - step back if you don't want to die.");
+ mes("It's not easy going through the forest.");
+ mes("It may cost you your life.");
+ next();
switch(select("Okay.", "What do you want?")) {
case 1:
- mes "- When you step back,";
- mes "Loki nods slightly and then looks away. -";
- close;
+ mes("- When you step back,");
+ mes("Loki nods slightly and then looks away. -");
+ close();
case 2:
- mes "[Loki]";
- mes "I'm looking for somebody.";
- mes "Have you ever seen a guard... a girl with purple hair?";
- next;
+ mes("[Loki]");
+ mes("I'm looking for somebody.");
+ mes("Have you ever seen a guard... a girl with purple hair?");
+ next();
switch(select("No, I haven't.", "Yes, I might have...")) {
case 1:
- mes "[Loki]";
- mes "So you haven't.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("So you haven't.");
+ mes("You're telling the truth.");
+ next();
break;
case 2:
- mes "[Loki]";
- mes "Wait.";
- mes "(Loki comes closer.)";
- mes "... No.";
- mes "You're telling the truth.";
- next;
+ mes("[Loki]");
+ mes("Wait.");
+ mes("(Loki comes closer.)");
+ mes("... No.");
+ mes("You're telling the truth.");
+ next();
break;
}
- mes "[Loki]";
- mes "Now we have to say goodbye here.";
- mes "Hopefully, we will see each other again in Mora.";
+ mes("[Loki]");
+ mes("Now we have to say goodbye here.");
+ mes("Hopefully, we will see each other again in Mora.");
ep14_1_mistwoods = 2;
- setquest 7212;
- close;
+ setquest(7212);
+ close();
}
} else if (ep14_1_mistwoods == 2) {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "Hopefully, we will see each other again in Mora.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("Hopefully, we will see each other again in Mora.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "So we meet again.";
- mes "Are you used to this place?";
- mes "Come to the inn in Mora.";
- mes "I have something to give to you.";
- close;
+ mes("[Loki]");
+ mes("So we meet again.");
+ mes("Are you used to this place?");
+ mes("Come to the inn in Mora.");
+ mes("I have something to give to you.");
+ close();
} else {
- mes "[Loki]";
- mes "We're seeing a lot of each other these days.";
- mes "It seems you are completely comfortable with the place.";
- mes "You'd better not be too proud of yourself.";
- close;
+ mes("[Loki]");
+ mes("We're seeing a lot of each other these days.");
+ mes("It seems you are completely comfortable with the place.");
+ mes("You'd better not be too proud of yourself.");
+ close();
}
end;
OnEnable:
- enablenpc instance_npcname("Mysterious Young Man#mis");
+ enablenpc(instance_npcname("Mysterious Young Man#mis"));
end;
OnDisable:
- disablenpc instance_npcname("Mysterious Young Man#mis");
+ disablenpc(instance_npcname("Mysterious Young Man#mis"));
end;
}
1@mist,183,304,3 script Loki#mist 4_M_ROKI2,{
if (ep14_1_mistwoods < 2) {
- mes "[Loki]";
- mes "An adventurer in the forest.";
- mes ".....";
- mes "You can go to Mora through this forest.";
- close;
+ mes("[Loki]");
+ mes("An adventurer in the forest.");
+ mes(".....");
+ mes("You can go to Mora through this forest.");
+ close();
} else if (ep14_1_mistwoods == 2) {
- mes "[Loki]";
- mes "Is it you that took care of this unruly girl?";
- mes "I guess I have to thank you.";
- mes "You've calmed her down.";
- next;
+ mes("[Loki]");
+ mes("Is it you that took care of this unruly girl?");
+ mes("I guess I have to thank you.");
+ mes("You've calmed her down.");
+ next();
select("What's happening?", "This girl...?");
- mes "[Loki]";
- mes "You might be able to change your appearance, but you cannot change your unique, innate light.";
- mes "A scent strong enough to burn your nose.";
- next;
- mes "[Loki]";
- mes "This is Nydhogg, the Guardian of Yggdrasil,";
- mes "whom I was looking for.";
- mes "Now she won't wander around crazy any more.";
- next;
+ mes("[Loki]");
+ mes("You might be able to change your appearance, but you cannot change your unique, innate light.");
+ mes("A scent strong enough to burn your nose.");
+ next();
+ mes("[Loki]");
+ mes("This is Nydhogg, the Guardian of Yggdrasil,");
+ mes("whom I was looking for.");
+ mes("Now she won't wander around crazy any more.");
+ next();
select("What are you going to do now?");
- mes "[Loki]";
- mes "I'll wait for her to wake up and get out of this forest.";
- mes "I can manage it on my own.";
- mes "I'll see you in Mora.";
+ mes("[Loki]");
+ mes("I'll wait for her to wake up and get out of this forest.");
+ mes("I can manage it on my own.");
+ mes("I'll see you in Mora.");
ep14_1_mistwoods = 3;
- erasequest 7212;
- setquest 7213;
- close;
+ erasequest(7212);
+ setquest(7213);
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "I can manage her on my own.";
- mes "If you have something to say, say it after we get out of the forest.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("I can manage her on my own.");
+ mes("If you have something to say, say it after we get out of the forest.");
+ close();
} else {
- mes "[Loki]";
- mes "I don't want to go with you.";
- mes "If you have something to say, say it after we get out of the forest.";
- close;
+ mes("[Loki]");
+ mes("I don't want to go with you.");
+ mes("If you have something to say, say it after we get out of the forest.");
+ close();
}
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Loki#mist");
+ disablenpc(instance_npcname("Loki#mist"));
end;
OnEnable:
- enablenpc instance_npcname("Loki#mist");
+ enablenpc(instance_npcname("Loki#mist"));
end;
}
1@mist,181,303,3 script Collapsed Girl#mist 4_F_NYDHOG2,{
- mes "You see a girl with mysterious hair collapsed on the ground.";
- mes "As you approach her, you smell the scent of flowers so strong that it makes you dizzy.";
- close;
+ mes("You see a girl with mysterious hair collapsed on the ground.");
+ mes("As you approach her, you smell the scent of flowers so strong that it makes you dizzy.");
+ close();
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Collapsed Girl#mist");
+ disablenpc(instance_npcname("Collapsed Girl#mist"));
end;
OnEnable:
- enablenpc instance_npcname("Collapsed Girl#mist");
+ enablenpc(instance_npcname("Collapsed Girl#mist"));
end;
}
mora,46,152,5 script Flower Smelling Lady 4_F_NYDHOG,{
if (ep14_1_mistwoods < 3) {
- mes "[Flower Smell Lady]";
- mes "I need rest.";
- mes "I'm too tired to talk to you.";
- mes "I'm sorry.";
- close;
+ mes("[Flower Smell Lady]");
+ mes("I need rest.");
+ mes("I'm too tired to talk to you.");
+ mes("I'm sorry.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Nydhogg the Guardian]";
- mes "I've been waiting for you.";
- mes "I'm still confused, but I know what I did wrong.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "If it weren't for you, I would still be wandering in the abyssal darkness.";
- mes "I thank you, from the bottom of my heart.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I'm ashamed of myself, falling for the sweet but empty words that came to me in my loneliness.";
- mes "....";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I don't deserve to be a guardian any more.";
- mes "A dragon gone crazy is not a guardian any more.";
- next;
- mes "[Loki]";
- mes "Yggdrasil doesn't think so.";
- mes "Nidi, don't forget your duties.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Are you...?";
- mes "I see...";
- mes "I thought I was forsaken...";
- next;
- mes "The Guardian slowly looked away as if deep in thought.";
+ mes("[Nydhogg the Guardian]");
+ mes("I've been waiting for you.");
+ mes("I'm still confused, but I know what I did wrong.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("If it weren't for you, I would still be wandering in the abyssal darkness.");
+ mes("I thank you, from the bottom of my heart.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I'm ashamed of myself, falling for the sweet but empty words that came to me in my loneliness.");
+ mes("....");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I don't deserve to be a guardian any more.");
+ mes("A dragon gone crazy is not a guardian any more.");
+ next();
+ mes("[Loki]");
+ mes("Yggdrasil doesn't think so.");
+ mes("Nidi, don't forget your duties.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Are you...?");
+ mes("I see...");
+ mes("I thought I was forsaken...");
+ next();
+ mes("The Guardian slowly looked away as if deep in thought.");
ep14_1_mistwoods = 4;
- close2;
+ close2();
} else if (ep14_1_mistwoods == 4) {
- mes "- He seems to be deep in thought. -";
- close;
+ mes("- He seems to be deep in thought. -");
+ close();
} else {
- mes "[Nydhogg the Guardian]";
- mes "I haven't gotten all of my powers back.";
- mes "I'm sorry I can't protect you.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Loki said...";
- mes "that I won't cry from loneliness again,";
- mes "that I will always have new friends like you...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...I've lost everything, but I'm happy now.";
- close;
+ mes("[Nydhogg the Guardian]");
+ mes("I haven't gotten all of my powers back.");
+ mes("I'm sorry I can't protect you.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Loki said...");
+ mes("that I won't cry from loneliness again,");
+ mes("that I will always have new friends like you...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...I've lost everything, but I'm happy now.");
+ close();
}
}
mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
- if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 1000) {
- mes "- You have too many items to do this quest. -";
- close;
+ if (checkweight(Knife, 1) == 0 || MaxWeight - Weight < 1000) {
+ mes("- You have too many items to do this quest. -");
+ close();
}
if (ep14_1_mistwoods < 3) {
- mes "He won't look at you. It's like he's not interested at all.";
- close;
+ mes("He won't look at you. It's like he's not interested at all.");
+ close();
} else if (ep14_1_mistwoods == 3) {
- mes "[Loki]";
- mes "So you've passed through the forest.";
- mes "It seems Niddy has something to say to you.";
- close;
+ mes("[Loki]");
+ mes("So you've passed through the forest.");
+ mes("It seems Niddy has something to say to you.");
+ close();
} else if (ep14_1_mistwoods == 4) {
- mes "[Loki]";
- mes "Nydhogg was one of the guardians of the World Tree.";
- mes "But he abandoned his duties as a guardian when he gave in to Morroc's temptation.";
- next;
- mes "[Loki]";
- mes "Some fools performed a ritual to break the seal that held Morroc.";
- mes "But the ritual didn't work right. The servant of Morroc failed to break the seal.";
- next;
- mes "[Loki]";
- mes "But the seal is so weak that it can break open any time.";
- mes "It's Yggdrasil the World Tree's will that has kept the seal from breaking.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's right. The power of the World Tree is linked to the whole world.";
- mes "When the bond between the guardians and Yggdrasil broke, Yggdrasil became unstable.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's why all those disasters happened to Yggdrasil.";
- mes "As the World Tree became unstable, the influence it had on the seal grew weak.";
- next;
- mes "[Loki]";
- mes "And Morroc broke himself free from the seal.";
- mes "Although it seems like he used most of his powers just to break the seal...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "It's all my fault.";
- mes "I couldn't break free from Morroc's temptation.";
- mes "For too... too long...";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...I wanted to be relieved of my thousands of years of loneliness.";
- mes "I wasn't in my right mind then.";
- mes "It was none other than I that broke my bond with Yggdrasil.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "I lost control of myself, and did what I shouldn't have done.";
- mes "The other side of me became a shadow and a reckless tyrant.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "Facing the world, I realized...";
- mes "I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "That's how I was left alone.";
- mes "I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "So I became a sinner, forgotten to the world.";
- next;
- mes "[Loki]";
- mes "It's not too late.";
- mes "You're still a guardian.";
- mes "You still have things to do.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "...Oh, yes. It's late, but I have to fulfill my duties as a guardian.";
- mes "Now I know. I'll destroy Morroc with my own hands.";
- mes "I will fulfill my duties as a guardian.";
- next;
+ mes("[Loki]");
+ mes("Nydhogg was one of the guardians of the World Tree.");
+ mes("But he abandoned his duties as a guardian when he gave in to Morroc's temptation.");
+ next();
+ mes("[Loki]");
+ mes("Some fools performed a ritual to break the seal that held Morroc.");
+ mes("But the ritual didn't work right. The servant of Morroc failed to break the seal.");
+ next();
+ mes("[Loki]");
+ mes("But the seal is so weak that it can break open any time.");
+ mes("It's Yggdrasil the World Tree's will that has kept the seal from breaking.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's right. The power of the World Tree is linked to the whole world.");
+ mes("When the bond between the guardians and Yggdrasil broke, Yggdrasil became unstable.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's why all those disasters happened to Yggdrasil.");
+ mes("As the World Tree became unstable, the influence it had on the seal grew weak.");
+ next();
+ mes("[Loki]");
+ mes("And Morroc broke himself free from the seal.");
+ mes("Although it seems like he used most of his powers just to break the seal...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("It's all my fault.");
+ mes("I couldn't break free from Morroc's temptation.");
+ mes("For too... too long...");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...I wanted to be relieved of my thousands of years of loneliness.");
+ mes("I wasn't in my right mind then.");
+ mes("It was none other than I that broke my bond with Yggdrasil.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("I lost control of myself, and did what I shouldn't have done.");
+ mes("The other side of me became a shadow and a reckless tyrant.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("Facing the world, I realized...");
+ mes("I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("That's how I was left alone.");
+ mes("I felt too great a sense of loss... it was much more painful than the loneliness I had endured for thousands of years.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("So I became a sinner, forgotten to the world.");
+ next();
+ mes("[Loki]");
+ mes("It's not too late.");
+ mes("You're still a guardian.");
+ mes("You still have things to do.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("...Oh, yes. It's late, but I have to fulfill my duties as a guardian.");
+ mes("Now I know. I'll destroy Morroc with my own hands.");
+ mes("I will fulfill my duties as a guardian.");
+ next();
switch(select("You're not alone.", "Those are very important duties.")) {
case 1:
- mes "[Nydhogg the Guardian]";
- mes "You're right.";
- mes "It may be why I haven't been forsaken - to realize that I'm not alone.";
- mes "You are a kind soul.";
- next;
+ mes("[Nydhogg the Guardian]");
+ mes("You're right.");
+ mes("It may be why I haven't been forsaken - to realize that I'm not alone.");
+ mes("You are a kind soul.");
+ next();
break;
case 2:
- mes "[Nydhogg the Guardian]";
- mes "But this is my atonement.";
- mes "I'm happy, though.";
- mes "I don't have to fight the loneliness any more.";
- next;
+ mes("[Nydhogg the Guardian]");
+ mes("But this is my atonement.");
+ mes("I'm happy, though.");
+ mes("I don't have to fight the loneliness any more.");
+ next();
break;
}
- mes "[Nydhogg the Guardian]";
- mes strcharinfo(PC_NAME)+"...";
- mes "Thanks for listening to my long story.";
- next;
- mes "[Nydhogg the Guardian]";
- mes "It's what I always have with me.";
- mes "I'm sure it will protect you someday.";
- next;
- mes "[Loki]";
- mes "(Removes his scarf from around his neck and hands it to you.)";
- next;
- mes "[Nydhogg the Guardian]";
- mes "May the blessing of Mother Yggdrasil be with you...";
+ mes("[Nydhogg the Guardian]");
+ mesf("%s...", strcharinfo(PC_NAME));
+ mes("Thanks for listening to my long story.");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("It's what I always have with me.");
+ mes("I'm sure it will protect you someday.");
+ next();
+ mes("[Loki]");
+ mes("(Removes his scarf from around his neck and hands it to you.)");
+ next();
+ mes("[Nydhogg the Guardian]");
+ mes("May the blessing of Mother Yggdrasil be with you...");
ep14_1_mistwoods = 10;
- completequest 7213;
- getitem Muffler_Of_Roki,1;
- getitem Pendant_Of_Guardian,1;
- getexp 400000,400000;
- close;
+ completequest(7213);
+ getitem(Muffler_Of_Roki, 1);
+ getitem(Pendant_Of_Guardian, 1);
+ getexp(400000, 400000);
+ close();
} else {
- mes "[Loki]";
- mes "I'll be staying here for a while.";
- mes "We may meet again.";
- next;
- mes "[Loki]";
- mes "The day when Morroc reveals his despicable nature...";
- mes "I will be waiting for him.";
- close;
+ mes("[Loki]");
+ mes("I'll be staying here for a while.");
+ mes("We may meet again.");
+ next();
+ mes("[Loki]");
+ mes("The day when Morroc reveals his despicable nature...");
+ mes("I will be waiting for him.");
+ close();
}
}
@@ -937,98 +992,98 @@ mora,48,152,3 script Sharp Eyed Man 4_M_ROKI2,{
1@mist,1,1,0 script #Mist Mobs Respawn1 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Miming",2137,15,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Miming"), MIMING, 15, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
+ .@num_mobs = 15 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Miming",2137,.@num_mobs,instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Miming"), MIMING, .@num_mobs, instance_npcname("#Mist Mobs Respawn1")+"::OnMyMobDead");
end;
}
1@mist,1,2,0 script #Mist Mobs Respawn2 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Pom Spider",2132,35,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Pom Spider"), POM_SPIDER, 35, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Pom Spider",2132,.@num_mobs,instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Pom Spider"), POM_SPIDER, .@num_mobs, instance_npcname("#Mist Mobs Respawn2")+"::OnMyMobDead");
end;
}
1@mist,1,3,0 script #Mist Mobs Respawn3 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Angra Mantis",2133,35,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Angra Mantis"), ANGRA_MANTIS, 35, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Angra Mantis",2133,.@num_mobs,instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Angra Mantis"), ANGRA_MANTIS, .@num_mobs, instance_npcname("#Mist Mobs Respawn3")+"::OnMyMobDead");
end;
}
1@mist,1,4,0 script #Mist Mobs Respawn4 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Parus",2134,35,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Parus"), PARUS, 35, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 35 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
+ .@num_mobs = 35 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Parus",2134,.@num_mobs,instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Parus"), PARUS, .@num_mobs, instance_npcname("#Mist Mobs Respawn4")+"::OnMyMobDead");
end;
}
1@mist,1,5,0 script #Mist Mobs Respawn5 CLEAR_NPC,{
end;
OnInstanceInit:
- monster instance_mapname("1@mist"),0,0,"Little Fatum",2136,15,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
+ monster(instance_mapname("1@mist"), 0, 0, _("Little Fatum"), LITTLE_FATUM, 15, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@mist");
- .@num_mobs = 15 - mobcount(.@map$,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
+ .@num_mobs = 15 - mobcount(.@map$, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
if (.@num_mobs > 0)
- monster .@map$,0,0,"Little Fatum",2136,.@num_mobs,instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead";
+ monster(.@map$, 0, 0, _("Little Fatum"), LITTLE_FATUM, .@num_mobs, instance_npcname("#Mist Mobs Respawn5")+"::OnMyMobDead");
end;
}
1@mist,1,6,0 script #Fragments of Memory CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("#Fragments of Memory");
- monster instance_mapname("1@mist"),0,0,"Guardian's Fragments of Memory",2138,15;
+ disablenpc(instance_npcname("#Fragments of Memory"));
+ monster(instance_mapname("1@mist"), 0, 0, _("Guardian's Fragments of Memory"), NYDHOG_MEMORY1_1, 15);
end;
}
//== Warp Portals ==========================================
bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
- mes "It's a giant flower with mysterious energy.";
+ mes("It's a giant flower with mysterious energy.");
if (countitem(Mysterious_Seed)) {
- mes "It's reacting to the Mysterious Flower Seeds you have with you.";
- next;
+ mes("It's reacting to the Mysterious Flower Seeds you have with you.");
+ next();
switch(select("Observe the reaction.", "Stop the reaction.")) {
case 1:
- mes "The flower started to shake violently";
- mes "and swing forward as if trying to send the seeds as far away as possible!!!";
- close2;
- delitem Mysterious_Seed,1;
- warp "bif_fild02",160,230;
+ mes("The flower started to shake violently");
+ mes("and swing forward as if trying to send the seeds as far away as possible!!!");
+ close2();
+ delitem(Mysterious_Seed, 1);
+ warp("bif_fild02", 160, 230);
end;
case 2:
- mes "As you hold onto the Mysterious Flower Seeds tightly,";
- mes "the flower shook violently and then became calm again.";
- close;
+ mes("As you hold onto the Mysterious Flower Seeds tightly,");
+ mes("the flower shook violently and then became calm again.");
+ close();
}
}
- mes "It looks like it has some special use, but you're not sure what.";
- close;
+ mes("It looks like it has some special use, but you're not sure what.");
+ close();
}
1@mist,104,23,0 warp #to_bif01 1,1,bif_fild01,160,352
@@ -1036,9 +1091,9 @@ bif_fild01,38,374,0 script Mysterious Flower#ep14_1 CLEAR_NPC,{
1@mist,109,70,0 script a1_a2 WARPNPC,1,1,{
end;
OnTouch:
- if (!questprogress(7211,PLAYTIME))
- setquest 7211;
- warp instance_mapname("1@mist"),116,40;
+ if (!questprogress(7211, PLAYTIME))
+ setquest(7211);
+ warp(instance_mapname("1@mist"), 116, 40);
end;
}
@@ -1140,21 +1195,21 @@ OnTouch:
1@mist,1,1,0 script #mist_warp_init CLEAR_NPC,{
end;
OnInstanceInit:
- disablenpc instance_npcname("a25_a18-1");
- disablenpc instance_npcname("a27-2_af1-2");
- disablenpc instance_npcname("a15-2_a4-1");
- disablenpc instance_npcname("a4-2_a11");
- disablenpc instance_npcname("b4-2_b2");
- disablenpc instance_npcname("b7_bf1-2");
- disablenpc instance_npcname("b31_b16");
- disablenpc instance_npcname("b27-3_bN-1");
- disablenpc instance_npcname("b6-1_b33");
- disablenpc instance_npcname("b5_b14");
- disablenpc instance_npcname("c1_c13-1");
- disablenpc instance_npcname("c13-3_c4");
- disablenpc instance_npcname("c19_c4");
- disablenpc instance_npcname("#to_bif02");
- disablenpc instance_npcname("#mist_warp_init");
+ disablenpc(instance_npcname("a25_a18-1"));
+ disablenpc(instance_npcname("a27-2_af1-2"));
+ disablenpc(instance_npcname("a15-2_a4-1"));
+ disablenpc(instance_npcname("a4-2_a11"));
+ disablenpc(instance_npcname("b4-2_b2"));
+ disablenpc(instance_npcname("b7_bf1-2"));
+ disablenpc(instance_npcname("b31_b16"));
+ disablenpc(instance_npcname("b27-3_bN-1"));
+ disablenpc(instance_npcname("b6-1_b33"));
+ disablenpc(instance_npcname("b5_b14"));
+ disablenpc(instance_npcname("c1_c13-1"));
+ disablenpc(instance_npcname("c13-3_c4"));
+ disablenpc(instance_npcname("c19_c4"));
+ disablenpc(instance_npcname("#to_bif02"));
+ disablenpc(instance_npcname("#mist_warp_init"));
end;
}
1@mist,247,123,0 warp a25_a18-1 1,1,1@mist,164,66 //Tom
diff --git a/npc/re/instances/OldGlastHeim.txt b/npc/re/instances/OldGlastHeim.txt
index a1d6884f9..c317e7495 100644
--- a/npc/re/instances/OldGlastHeim.txt
+++ b/npc/re/instances/OldGlastHeim.txt
@@ -41,68 +41,68 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
if (BaseLevel < 130) { // iRO text
mes("[Hugin]");
mes("Why don't you come back after becoming stronger Maybe, level 130.");
- close;
+ close();
}
if (!questprogress(12316)) {
mes("[Hugin]");
mes("A long time ago, this castle did not look like this.");
- next;
+ next();
mes("[Hugin]");
mes("Ah I'm sorry. I'm muttering in front of a stranger.");
- next;
+ next();
mes("[Hugin]");
mes("My name is Hugin. I'm studying the dimensional gap between time and space.");
- next;
+ next();
select("There's something like that here?");
mes("[Hugin]");
mes("Have you ever wondered about the history of Glast Heim?");
- next;
+ next();
mes("[Hugin]");
mes("There was a King named Shumiche who was known as a tyrant in the history of the Rune-Midgarts Kingdom.");
- next;
+ next();
mes("[Hugin]");
mes("Time will reveal the true answers if we look in the right places.");
- next;
+ next();
if (select("I don't care about history", "That is interesting. Find anything?") == 1) {
mes("[Hugin]");
mes("Really? Hmm, please come back later when you are interested then.");
- close;
+ close();
}
mes("[Hugin]");
mes("Actually, dimensional time travel is possible but I'm so afraid to go there.");
- next;
+ next();
mes("[Hugin]");
mes("Yes! It might be possible for you.");
- next;
+ next();
mes("[Hugin]");
mes("Do you want to time travel?");
- next;
+ next();
if (select("No thanks.", "Yes, of course I do!") == 1) {
mes("[Hugin]");
mes("Really? But, jumping gigawatts like this is such a great opportunity.");
- close;
+ close();
}
mes("[Hugin]");
mes("I knew that you would understand what I said. Well, please tell what you gonna do.");
setquest(12316);
- next;
+ next();
}
mes("[Hugin]");
mes("Umm? Did you see me at another place? I don't think so. What about this time?");
- next;
+ next();
if (!questprogress(12317, PLAYTIME)) {
.@party_id = getcharid(CHAR_ID_PARTY);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Old Glast Heim";
+ .@md_name$ = _("Old Glast Heim");
if (!instance_check_party(.@party_id)) {
mes("[Hugin]");
mes("Why don't you make a party with more than 1 person and talk to me again?");
- close;
+ close();
}
if (!questprogress(12318, HUNTING))
- setquest 12318;
+ setquest(12318);
if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2))
- .@menu1$ = "Generate Time Gap";
+ .@menu1$ = _("Generate Time Gap");
else
.@menu1$ = "";
switch (select(.@menu1$, "Enter Old Glast Heim", "Cancel")) {
@@ -114,49 +114,48 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
mesf("Party Name: %s", .@p_name$);
mesf("Party Leader: %s", strcharinfo(PC_NAME));
mesf("^0000ff%s^000000 - Reservation Failed!", .@md_name$);
- close;
+ close();
}
if (instance_attachmap("1@gl_k", .@instance) == "" || instance_attachmap("2@gl_k", .@instance) == "") {
mesf("^0000FF%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
mes("[Hugin]");
mes("The time gap was created. When you're ready, talk to me again.");
- close;
+ close();
case 2:
if (has_instance("1@gl_k") == "" ) {
mesf("The memorial dungeon ^0000FF%s^000000 does not exist.\r"
- "The party leader did not generate the dungeon yet.", .@md_name$);
- close;
+ "The party leader did not generate the dungeon yet.", .@md_name$);
+ close();
}
mapannounce("glast_01", sprintf(_$("%s, member of the party %s entered the instance %s."), strcharinfo(PC_NAME), .@p_name$, .@md_name$), bc_map, C_SPRINGGREEN);
- setquest 12317;
- warp "1@gl_k", 150, 20;
+ setquest(12317);
+ warp("1@gl_k", 150, 20);
end;
case 3:
- close;
+ close();
}
} else if (questprogress(12317, PLAYTIME) == 1) {
mes("[Hugin]");
mes("Oh, my... You still have after-effects of time travel. You can't travel in this condition.");
- if (questprogress(12322) == 1) {
- erasequest 12322;
- }
- next;
+ if (questprogress(12322) == 1)
+ erasequest(12322);
+ next();
mes("[Hugin]");
mes("Staying healthy is important so please take a break and come back again later.");
- close;
+ close();
} else {
mes("^0000FFAll trace of access to Old Glast Heim have been removed. Now you can talk with Hugin again.^000000");
- erasequest 12317;
+ erasequest(12317);
if (questprogress(12318))
- erasequest 12318;
+ erasequest(12318);
if (questprogress(12319))
- erasequest 12319;
- close;
+ erasequest(12319);
+ close();
}
}
@@ -167,7 +166,7 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
cutin("gl_barmund2", 2);
mes("[Varmundt]");
mes("Where's your leader? I need his help.");
- close2;
+ close2();
cutin("gl_barmund2", 255);
end;
}
@@ -175,80 +174,102 @@ glast_01,204,273,6 script Hugin#ghinstance 4_M_SAGE_C,{
mes("[Varmundt]");
mes("Are you the one ^0000FFHerico^000000 sent to help me?");
npctalk(_("Are you the one Herico sent to help me?"));
- next;
+ next();
select("Oh. Well I...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Ah yes, I am. Herico told me to meet you.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Ah yes, I am. Herico told me to meet you."));
- next;
+ next();
cutin("gl_barmund2", 2);
mes("[Varmundt]");
mes("We don't have much time. We must report to Sir. Heinrich about Himelmez's invasion.");
npctalk(_("We don't have much time. We must report to Sir. Heinrich about Himelmez's invasion."));
- next;
+ next();
select("Himelmez...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Who is Himelmez?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Who is Himelmez?"));
- next;
+ next();
cutin("gl_barmund3", 2);
mes("[Varmundt]");
mes("Herico didn't tell you?");
npctalk(_("Herico didn't tell you?"));
- next;
+ next();
cutin("gl_barmund2", 2);
mes("[Varmundt]");
mes("She is the Ruler of Death, Dead man's Valkyrie. Himelmez is looking to take the heart of Ymir from us.");
npctalk(_("She is the Ruler of Death, Dead man's Valkyrie. Himelmez is looking to take the heart of Ymir from us."));
- next;
+ next();
mes("[Varmundt]");
mes("She might even destroy this whole castle if she wanted to.");
npctalk(_("She might even destroy this whole castle if she wanted to."));
- next;
+ next();
mes("[Varmundt]");
mes("Hurry! Report to Sir. Heinrich about Himelmez. I must check the defense barrier here!");
npctalk(_("Hurry! Report to Sir. Heinrich about Himelmez. I must check the defense barrier here!"));
- close2;
+ close2();
cutin("gl_barmund2", 255);
donpcevent(instance_npcname("Varmundt#ghinstance1")+"::OnDisable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Varmundt#ghinstance1")+"::OnEnable";
+ donpcevent(instance_npcname("Varmundt#ghinstance1")+"::OnEnable");
end;
OnDisable:
- hideonnpc instance_npcname("Varmundt#ghinstance1");
- hideoffnpc instance_npcname("Heinrich#ghinstance1");
- hideoffnpc instance_npcname("Varmundt#ghinstance2");
+ hideonnpc(instance_npcname("Varmundt#ghinstance1"));
+ hideoffnpc(instance_npcname("Heinrich#ghinstance1"));
+ hideoffnpc(instance_npcname("Varmundt#ghinstance2"));
end;
OnEnable:
- hideoffnpc instance_npcname("Varmundt#ghinstance1");
+ hideoffnpc(instance_npcname("Varmundt#ghinstance1"));
end;
}
1@gl_k,145,54,6 script Khalitzburg Knight#1 4_F_KHALITZBURG,{
mesf("[%s]", strnpcinfo(NPC_NAME_VISIBLE));
switch ((atoi(strnpcinfo(NPC_NAME_HIDDEN)) + 1) / 2) {
- case 1: mes("Is there something you need?"); break;
- case 2: mes("What can I do for you?"); break;
- case 3: mes("..."); break;
- case 4: mes("I do not like to chat during work."); break;
- case 5: mes("Doesn't this castle seem weird all of a sudden? Something's not quite right."); break;
- case 6: mes("How do you know Varmundt? I heard that he's not really a friendly man..."); break;
- case 7: mes("Orders please."); break;
- case 8: mes("Please do not make a mess here."); break;
- case 9: mes("I had a weird dream last night. My mom was in it... Wonder if she is ok..."); break;
- case 10: mes("Are you wit Varmundt? Commander is waiting for you."); break;
- case 11: mes("My work shift will be over soon, but the next crew is not coming."); break;
+ case 1:
+ mes("Is there something you need?");
+ break;
+ case 2:
+ mes("What can I do for you?");
+ break;
+ case 3:
+ mes("...");
+ break;
+ case 4:
+ mes("I do not like to chat during work.");
+ break;
+ case 5:
+ mes("Doesn't this castle seem weird all of a sudden? Something's not quite right.");
+ break;
+ case 6:
+ mes("How do you know Varmundt? I heard that he's not really a friendly man...");
+ break;
+ case 7:
+ mes("Orders please.");
+ break;
+ case 8:
+ mes("Please do not make a mess here.");
+ break;
+ case 9:
+ mes("I had a weird dream last night. My mom was in it... Wonder if she is ok...");
+ break;
+ case 10:
+ mes("Are you wit Varmundt? Commander is waiting for you.");
+ break;
+ case 11:
+ mes("My work shift will be over soon, but the next crew is not coming.");
+ break;
}
- close;
+ close();
OnDisable:
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- hideoffnpc instance_npcname(strnpcinfo(NPC_NAME));
+ hideoffnpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -279,7 +300,7 @@ OnEnable:
cutin("gl_heinrich2", 2);
mes("[Heinrich]");
mes("Where is your leader? I must talk to him.");
- close2;
+ close2();
cutin("gl_heinrich2", 255);
end;
}
@@ -288,49 +309,49 @@ OnEnable:
mesf("[%s]", strcharinfo(PC_NAME));
mes("Sir. Heinrich. Do you know what is happening in the castle now?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Sir. Heinrich. Do you know what is happening in the castle now?"));
- next;
+ next();
mes("[Heinrich]");
mes("Aren't you the adventurer that came along with Varmundt?");
npctalk(_("Aren't you the adventurer that came along with Varmundt?"));
- next;
+ next();
mes("[Heinrich]");
mes("What is it? Something wrong with the castle?");
npctalk(_("What is it? Something wrong with the castle?"));
- next;
+ next();
select("Himelmez's invasion...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Dead man's Valkyrie, Himelmez is coming to take the Ymir's Heart piece hidden inside this castle!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Dead man's Valkyrie, Himelmez is coming to take the Ymir's Heart piece hidden inside this castle!"));
- next;
+ next();
cutin("gl_heinrich1", 2);
mes("[Heinrich]");
mes("Haha. Funny. Do you really think that is possible?");
npctalk(_("Haha. Funny. Do you really think that is possible?"));
- next;
+ next();
cutin("gl_barmund2", 2);
mes("[Varmundt]");
mes("I'm not kidding, Sir. Heinrich. If I'm correct, then she will be here very soon.");
npctalk(_("I'm not kidding, Sir. Heinrich. If I'm correct, then she will be here very soon."), instance_npcname("Varmundt#ghinstance2"));
- next;
+ next();
mes("[Varmundt]");
mes("We must hide the heart piece to a safe place before Himelmez's attack starts!");
npctalk(_("We must hide the heart piece to a safe place before Himelmez's attack starts!"), instance_npcname("Varmundt#ghinstance2"));
- next;
+ next();
select("Even if you don't believe me...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("I can't make you believe me, but there's no time to argue!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("I can't make you believe me, but there's no time to argue!"));
cutin("gl_barmund2", 255);
- next;
+ next();
cutin("gl_heinrich1", 2);
mes("[Heinrich]");
mes("Thank you for the help. But, we don't even have our king with us right now.");
npctalk(_("Thank you for the help. But, we don't even have our king with us right now."));
- next;
+ next();
mes("[Heinrich]");
mes("We cannot risk moving the heart just because some stranger says so.");
npctalk(_("We cannot risk moving the heart just because some stranger says so."));
- close2;
+ close2();
donpcevent(instance_npcname("Heinrich#ghinstance1")+"::OnDisable");
donpcevent(instance_npcname("Heinrich#ghinstance2")+"::OnEnable");
donpcevent(instance_npcname("Himelmez#ghinstance1")+"::OnEnable");
@@ -341,11 +362,11 @@ OnEnable:
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance1");
+ hideonnpc(instance_npcname("Heinrich#ghinstance1"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance1");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance1"));
end;
}
@@ -354,11 +375,11 @@ OnEnable:
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Varmundt#ghinstance2");
+ hideonnpc(instance_npcname("Varmundt#ghinstance2"));
end;
OnEnable:
- hideoffnpc instance_npcname("Varmundt#ghinstance2");
+ hideoffnpc(instance_npcname("Varmundt#ghinstance2"));
end;
}
@@ -367,11 +388,11 @@ OnEnable:
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance2");
+ hideonnpc(instance_npcname("Heinrich#ghinstance2"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance2");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance2"));
end;
}
@@ -380,11 +401,11 @@ OnEnable:
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance3");
+ hideonnpc(instance_npcname("Heinrich#ghinstance3"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance3");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance3"));
end;
}
@@ -393,11 +414,11 @@ OnEnable:
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Himelmez#ghinstance1");
+ hideonnpc(instance_npcname("Himelmez#ghinstance1"));
end;
OnEnable:
- hideoffnpc instance_npcname("Himelmez#ghinstance1");
+ hideoffnpc(instance_npcname("Himelmez#ghinstance1"));
end;
}
@@ -408,12 +429,12 @@ OnEnable:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#talkinstance1");
+ disablenpc(instance_npcname("#talkinstance1"));
end;
OnEnable:
- enablenpc instance_npcname("#talkinstance1");
- initnpctimer;
+ enablenpc(instance_npcname("#talkinstance1"));
+ initnpctimer();
end;
OnTimer1500:
@@ -470,7 +491,7 @@ OnTimer78000:
OnTimer84500:
npctalk(_("She probably already knows where the Ymir's heart piece is."), instance_npcname("Heinrich#ghinstance2"));
- donpcevent instance_npcname("Himelmez#ghinstance1")+"::OnDisable";
+ donpcevent(instance_npcname("Himelmez#ghinstance1")+"::OnDisable");
end;
OnTimer90500:
@@ -478,49 +499,49 @@ OnTimer90500:
end;
OnTimer92000:
- for (.@i=1; .@i <= 20; .@i += 4) {
- hideonnpc instance_npcname("Khalitzburg Knight#"+.@i);
- hideonnpc instance_npcname("Khalitzburg Knight#"+(.@i+1));
- hideonnpc instance_npcname("White Knight#"+(.@i+2));
- hideonnpc instance_npcname("White Knight#"+(.@i+3));
+ for (.@i = 1; .@i <= 20; .@i += 4) {
+ hideonnpc(instance_npcname("Khalitzburg Knight#"+.@i));
+ hideonnpc(instance_npcname("Khalitzburg Knight#"+(.@i+1)));
+ hideonnpc(instance_npcname("White Knight#"+(.@i+2)));
+ hideonnpc(instance_npcname("White Knight#"+(.@i+3)));
}
- hideonnpc instance_npcname("Khalitzburg Knight#21");
- hideonnpc instance_npcname("Khalitzburg Knight#22");
+ hideonnpc(instance_npcname("Khalitzburg Knight#21"));
+ hideonnpc(instance_npcname("Khalitzburg Knight#22"));
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#talkinstance1")+"::OnMyMobDead";
- monster .@map$,145,59,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,154,59,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,145,69,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,154,69,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,145,79,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,154,79,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,145,89,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,154,89,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,145,99,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,154,99,"Abysmal Knight",2470,1,.@label$;
- monster .@map$,145,54,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 59, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 154, 59, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 145, 69, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 154, 69, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 145, 79, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 154, 79, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 145, 89, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 154, 89, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 145, 99, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 154, 99, _("Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
+ monster(.@map$, 145, 54, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("Water... Someone give me water..."));
- monster .@map$,154,54,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 54, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], "Kkkrrrruughgh...");
- monster .@map$,145,64,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 64, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("Sir. Heinrich. Save me..."));
- monster .@map$,154,64,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 64, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("I miss my sister..."));
- monster .@map$,145,74,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 74, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("Don't leave me alone, help me."));
- monster .@map$,154,74,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 74, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], "Aaarrrrrhhhh");
- monster .@map$,145,84,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 84, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("I am so thirsty."));
- monster .@map$,154,84,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 84, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("Oh...No...I can't die yet..."));
- monster .@map$,145,94,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 94, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("I feel sick to my stomach urrgg"));
- monster .@map$,154,94,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 94, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("Can someone..."));
- monster .@map$,145,104,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 145, 104, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], "Arrgg... My body");
- monster .@map$,154,104,"Khalitzburg",2471,1,.@label$;
+ monster(.@map$, 154, 104, _("Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
unittalk($@mobid[0], _("My throat is burning!"));
end;
@@ -549,70 +570,70 @@ OnTimer109000:
end;
OnTimer109500:
- enablenpc instance_npcname(".#ghinstance22");
- enablenpc instance_npcname(".#ghinstance21");
- donpcevent instance_npcname(".#ghinstance22")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance21")+"::OnEffect1";
+ enablenpc(instance_npcname(".#ghinstance22"));
+ enablenpc(instance_npcname(".#ghinstance21"));
+ donpcevent(instance_npcname(".#ghinstance22")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance21")+"::OnEffect1");
end;
OnTimer110000:
- enablenpc instance_npcname(".#ghinstance20");
- enablenpc instance_npcname(".#ghinstance19");
- enablenpc instance_npcname(".#ghinstance18");
- enablenpc instance_npcname(".#ghinstance17");
- donpcevent instance_npcname(".#ghinstance20")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance19")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance18")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance17")+"::OnEffect1";
+ enablenpc(instance_npcname(".#ghinstance20"));
+ enablenpc(instance_npcname(".#ghinstance19"));
+ enablenpc(instance_npcname(".#ghinstance18"));
+ enablenpc(instance_npcname(".#ghinstance17"));
+ donpcevent(instance_npcname(".#ghinstance20")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance19")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance18")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance17")+"::OnEffect1");
end;
OnTimer110500:
- enablenpc instance_npcname(".#ghinstance16");
- enablenpc instance_npcname(".#ghinstance15");
- enablenpc instance_npcname(".#ghinstance14");
- enablenpc instance_npcname(".#ghinstance13");
- donpcevent instance_npcname(".#ghinstance16")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance15")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance14")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance13")+"::OnEffect1";
+ enablenpc(instance_npcname(".#ghinstance16"));
+ enablenpc(instance_npcname(".#ghinstance15"));
+ enablenpc(instance_npcname(".#ghinstance14"));
+ enablenpc(instance_npcname(".#ghinstance13"));
+ donpcevent(instance_npcname(".#ghinstance16")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance15")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance14")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance13")+"::OnEffect1");
end;
OnTimer111000:
- enablenpc instance_npcname(".#ghinstance12");
- enablenpc instance_npcname(".#ghinstance11");
- enablenpc instance_npcname(".#ghinstance10");
- enablenpc instance_npcname(".#ghinstance9");
- donpcevent instance_npcname(".#ghinstance12")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance11")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance10")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance9")+"::OnEffect1";
+ enablenpc(instance_npcname(".#ghinstance12"));
+ enablenpc(instance_npcname(".#ghinstance11"));
+ enablenpc(instance_npcname(".#ghinstance10"));
+ enablenpc(instance_npcname(".#ghinstance9"));
+ donpcevent(instance_npcname(".#ghinstance12")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance11")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance10")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance9")+"::OnEffect1");
end;
OnTimer111500:
- enablenpc instance_npcname(".#ghinstance8");
- enablenpc instance_npcname(".#ghinstance7");
- enablenpc instance_npcname(".#ghinstance6");
- enablenpc instance_npcname(".#ghinstance5");
- donpcevent instance_npcname(".#ghinstance8")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance7")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance6")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance5")+"::OnEffect1";
+ enablenpc(instance_npcname(".#ghinstance8"));
+ enablenpc(instance_npcname(".#ghinstance7"));
+ enablenpc(instance_npcname(".#ghinstance6"));
+ enablenpc(instance_npcname(".#ghinstance5"));
+ donpcevent(instance_npcname(".#ghinstance8")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance7")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance6")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance5")+"::OnEffect1");
end;
OnTimer112000:
- enablenpc instance_npcname(".#ghinstance4");
- enablenpc instance_npcname(".#ghinstance3");
- enablenpc instance_npcname(".#ghinstance2");
- enablenpc instance_npcname(".#ghinstance1");
- donpcevent instance_npcname(".#ghinstance4")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance3")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance2")+"::OnEffect1";
- donpcevent instance_npcname(".#ghinstance1")+"::OnEffect1";
- donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnEnable";
- donpcevent instance_npcname("Heinrich#ghinstance2")+"::OnDisable";
- for (.@i=1; .@i <= 22; .@i++)
- disablenpc instance_npcname(".#ghinstance"+.@i);
- killmonster instance_mapname("1@gl_k"),instance_npcname("#talkinstance1")+"::OnMyMobDead";
+ enablenpc(instance_npcname(".#ghinstance4"));
+ enablenpc(instance_npcname(".#ghinstance3"));
+ enablenpc(instance_npcname(".#ghinstance2"));
+ enablenpc(instance_npcname(".#ghinstance1"));
+ donpcevent(instance_npcname(".#ghinstance4")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance3")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance2")+"::OnEffect1");
+ donpcevent(instance_npcname(".#ghinstance1")+"::OnEffect1");
+ donpcevent(instance_npcname("Heinrich#ghinstance3")+"::OnEnable");
+ donpcevent(instance_npcname("Heinrich#ghinstance2")+"::OnDisable");
+ for (.@i = 1; .@i <= 22; .@i++)
+ disablenpc(instance_npcname(".#ghinstance"+.@i));
+ killmonster(instance_mapname("1@gl_k"), instance_npcname("#talkinstance1")+"::OnMyMobDead");
end;
OnTimer112500:
@@ -656,17 +677,17 @@ OnTimer143500:
end;
OnTimer147500:
- donpcevent instance_npcname("Heinrich#ghinstance3")+"::OnDisable";
+ donpcevent(instance_npcname("Heinrich#ghinstance3")+"::OnDisable");
end;
OnTimer148500:
- donpcevent instance_npcname("Varmundt#ghinstance2")+"::OnDisable";
- stopnpctimer;
- donpcevent instance_npcname("#ghinstancewarp1")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp2")+"::OnEnable";
+ donpcevent(instance_npcname("Varmundt#ghinstance2")+"::OnDisable");
+ stopnpctimer();
+ donpcevent(instance_npcname("#ghinstancewarp1")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp2")+"::OnEnable");
mapannounce(instance_mapname("1@gl_k"), _("A portal has opened to the west."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#talkinstance1")+"::OnDisable";
- donpcevent instance_npcname("#ghmemorialmob01")+"::OnEnable";
+ donpcevent(instance_npcname("#talkinstance1")+"::OnDisable");
+ donpcevent(instance_npcname("#ghmemorialmob01")+"::OnEnable");
end;
OnMyMobDead:
@@ -678,16 +699,16 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEffect1:
- specialeffect EF_GRANDCROSS;
- specialeffect EF_LEXAETERNA;
+ specialeffect(EF_GRANDCROSS);
+ specialeffect(EF_LEXAETERNA);
end;
}
@@ -719,32 +740,62 @@ OnEffect1:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
.@map1$ = instance_mapname("1@gl_k");
.@map2$ = instance_mapname("2@gl_k");
switch (atoi(replacestr(strnpcinfo(NPC_NAME_HIDDEN), "ghinstancewarp", ""))) {
- case 1: warp .@map1$,80,80; break;
- case 2: warp .@map1$,105,80; break;
- case 3: warp .@map1$,215,79; break;
- case 4: warp .@map1$,195,79; break;
- case 5: warp .@map1$,215,216; break;
- case 6: warp .@map1$,235,216; break;
- case 7: warp .@map2$,150,46; break;
- case 8: warp .@map2$,126,123; break;
- case 9: warp .@map2$,150,116; break;
- case 10: warp .@map2$,174,101; break;
- case 11: warp .@map2$,150,110; break;
- case 12: warp .@map2$,150,179; break;
- case 13: warp .@map2$,150,160; break;
- case 14: warp .@map1$,150,281; break;
- case 15: warp .@map1$,48,168; break;
+ case 1:
+ warp(.@map1$, 80, 80);
+ break;
+ case 2:
+ warp(.@map1$, 105, 80);
+ break;
+ case 3:
+ warp(.@map1$, 215, 79);
+ break;
+ case 4:
+ warp(.@map1$, 195, 79);
+ break;
+ case 5:
+ warp(.@map1$, 215, 216);
+ break;
+ case 6:
+ warp(.@map1$, 235, 216);
+ break;
+ case 7:
+ warp(.@map2$, 150, 46);
+ break;
+ case 8:
+ warp(.@map2$, 126, 123);
+ break;
+ case 9:
+ warp(.@map2$, 150, 116);
+ break;
+ case 10:
+ warp(.@map2$, 174, 101);
+ break;
+ case 11:
+ warp(.@map2$, 150, 110);
+ break;
+ case 12:
+ warp(.@map2$, 150, 179);
+ break;
+ case 13:
+ warp(.@map2$, 150, 160);
+ break;
+ case 14:
+ warp(.@map1$, 150, 281);
+ break;
+ case 15:
+ warp(.@map1$, 48, 168);
+ break;
}
end;
}
@@ -771,11 +822,11 @@ OnTouch:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob01");
+ disablenpc(instance_npcname("#ghmemorialmob01"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob01");
+ enablenpc(instance_npcname("#ghmemorialmob01"));
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
areamonster(.@map$, 76, 99, 87, 10, _("Grand Chamberlain in pain"), MG_GHOUL, 15, .@label$);
@@ -788,12 +839,12 @@ OnEnable:
OnMyMobDead:
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob01")+"::OnMyMobDead";
- .@mob_dead_num = 56 - mobcount(.@map$,.@label$);
+ .@mob_dead_num = 56 - mobcount(.@map$, .@label$);
if (.@mob_dead_num > 35) {
mapannounce(.@map$, _("Himelmez's curse is getting weaker. Find any survivors!"), bc_map, C_WHITE);
- killmonster .@map$,.@label$;
- donpcevent instance_npcname("Altar boy Domun#clearGH")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob01")+"::OnDisable";
+ killmonster(.@map$, .@label$);
+ donpcevent(instance_npcname("Altar boy Domun#clearGH")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob01")+"::OnDisable");
}
end;
}
@@ -802,60 +853,60 @@ OnMyMobDead:
if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
mes("[Altar boy Domun]");
mes("Save me, save me, please...");
- close;
+ close();
}
mes("[Altar boy Domun]");
mes("Save me! Save me!!!");
npctalk(_("Save me! Save me!!!"));
- next;
+ next();
select("Hold on!Are you the only survivor?");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Hold on!\r"
"Are you the only survivor?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Hold on! Are you the only survivor?"));
- next;
+ next();
mes("[Altar boy Domun]");
mes("Chamberlains... monks...\r"
"They all turned into monsters. I couldn't do anything.");
npctalk(_("Altar boy Domun : Chamberlains... monks... They all turned into monsters. I couldn't do anything."));
- next;
+ next();
mes("[Altar boy Domun]");
mes("All I could do was... \r"
"Just hide in here...\r"
"Nothing, nothing I could do...");
npctalk(_("Altar boy Domun : All I could do was... Just hide in here... Nothing, nothing I could do..."));
- next;
+ next();
select("Pull it together!");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Wake up kid! Go east and find the middle passage to the outside! That is safe!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Wake up kid! Go east and find the middle passage to the outside! That is safe!")); // Displays 1st Letter of char name in small?
- next;
+ next();
mes("[Altar boy Domun]");
mes("To the east passage?\r"
"Alone?\r"
"How?");
npctalk(_("Altar boy Domun : To the east passage? Alone? How?"));
- next;
+ next();
select("I will give you a weapon.");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Here's a weapon. Just close your eye and swing for those monsters.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Here's a weapon. Just close your eye and swing for those monsters."));
- next;
+ next();
mes("[Altar boy Domun]");
mes("Ok, I... I'l try.");
npctalk(_("Altar boy Domun : Ok, I... I'l try."));
- close2;
- donpcevent instance_npcname("Altar boy Domun#clearGH")+"::OnDisable";
- donpcevent instance_npcname("#ghmemorialmob02")+"::OnEnable";
+ close2();
+ donpcevent(instance_npcname("Altar boy Domun#clearGH")+"::OnDisable");
+ donpcevent(instance_npcname("#ghmemorialmob02")+"::OnEnable");
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Altar boy Domun#clearGH");
+ hideonnpc(instance_npcname("Altar boy Domun#clearGH"));
end;
OnEnable:
- hideoffnpc instance_npcname("Altar boy Domun#clearGH");
+ hideoffnpc(instance_npcname("Altar boy Domun#clearGH"));
end;
}
@@ -866,13 +917,13 @@ OnEnable:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob02");
+ disablenpc(instance_npcname("#ghmemorialmob02"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob02");
- donpcevent instance_npcname("#ghinstancewarp3")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp4")+"::OnEnable";
+ enablenpc(instance_npcname("#ghmemorialmob02"));
+ donpcevent(instance_npcname("#ghinstancewarp3")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp4")+"::OnEnable");
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
mapannounce(.@map$, _("A portal has opened to the east."), bc_map, C_YELLOW);
@@ -885,12 +936,12 @@ OnEnable:
OnMyMobDead:
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob02")+"::OnMyMobDead";
- .@mob_dead_num = 48 - mobcount(.@map$,.@label$);
+ .@mob_dead_num = 48 - mobcount(.@map$, .@label$);
if (.@mob_dead_num > 28) {
mapannounce(.@map$, _("Himelmez's curse is getting weaker. Find any survivors!"), bc_map, C_WHITE);
- killmonster .@map$,.@label$;
- donpcevent instance_npcname("Holgren the Destroyer")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob02")+"::OnDisable";
+ killmonster(.@map$, .@label$);
+ donpcevent(instance_npcname("Holgren the Destroyer")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob02")+"::OnDisable");
}
end;
}
@@ -899,51 +950,51 @@ OnMyMobDead:
if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2)) {
mes("[Holgren the Destroyer]");
mes("Are you human?");
- close;
+ close();
}
mes("[Holgren the Destroyer]");
mes("Die!! You shall die!!!");
npctalk(_("Holgren the Destroyer : Die!! You shall die!!!"));
- specialeffect EF_CRASHEARTH;
- next;
+ specialeffect(EF_CRASHEARTH);
+ next();
select("Relax! I'm not a monster!");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Relax! I am Human. Are you alone? Anyone else here?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Relax! I am Human. Are you alone? Anyone else here?"));
- next;
+ next();
mes("[Holgren the Destroyer]");
mes("It's only me alive.");
npctalk(_("Holgren the Destroyer : It's only me alive."));
- next;
+ next();
select("It's dangerous here...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("It's dangerous here. You know the way to the middle passage? Can you move?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("It's dangerous here. You know the way to the middle passage? Can you move?")); // Displays 1st Letter of char name in small?
- next;
+ next();
mes("[Holgren the Destroyer]");
mes("Yes, I can move. I need to get out of here.");
npctalk(_("Holgren the Destroyer : Yes, I can move. I need to get out of here."));
- next;
+ next();
select("Be safe...");
mesf("[%s]", strcharinfo(PC_NAME));
mes("Sorry, I can't go with you.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Sorry, I can't go with you."));
- next;
+ next();
mes("[Holgren the Destroyer]");
mes("It's ok. You've already done enough. I can help myself. Good luck to you too.");
npctalk(_("Holgren the Destroyer : It's ok. You've already done enough. I can help myself. Good luck to you too."));
- close2;
- donpcevent instance_npcname("Holgren the Destroyer")+"::OnDisable";
- donpcevent instance_npcname("#ghmemorialmob03")+"::OnEnable";
+ close2();
+ donpcevent(instance_npcname("Holgren the Destroyer")+"::OnDisable");
+ donpcevent(instance_npcname("#ghmemorialmob03")+"::OnEnable");
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Holgren the Destroyer");
+ hideonnpc(instance_npcname("Holgren the Destroyer"));
end;
OnEnable:
- hideoffnpc instance_npcname("Holgren the Destroyer");
+ hideoffnpc(instance_npcname("Holgren the Destroyer"));
end;
}
@@ -953,16 +1004,21 @@ OnEnable:
end;
OnTouch:
- .@i = rand(1,10);
- if (.@i == 1) .@mobs = 3;
- else if (.@i == 2) .@mobs = 4;
- else if (.@i == 3) .@mobs = 5;
- else if (.@i < 7) .@mobs = 6;
- else .@mobs = 7;
+ .@i = rand(1, 10);
+ if (.@i == 1)
+ .@mobs = 3;
+ else if (.@i == 2)
+ .@mobs = 4;
+ else if (.@i == 3)
+ .@mobs = 5;
+ else if (.@i < 7)
+ .@mobs = 6;
+ else
+ .@mobs = 7;
getmapxy(.@map$, .@x, .@y, UNITTYPE_NPC);
- specialeffect EF_VENOMDUST;
- monster(.@map$, .@x, .@y, "Maggot", MG_ARCLOUSE, .@mobs, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ specialeffect(EF_VENOMDUST);
+ monster(.@map$, .@x, .@y, _("Maggot"), MG_ARCLOUSE, .@mobs, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnMyMobDead:
@@ -970,11 +1026,11 @@ OnMyMobDead:
OnInstanceInit:
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnDisable:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
}
@@ -1023,13 +1079,13 @@ OnDisable:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob03");
+ disablenpc(instance_npcname("#ghmemorialmob03"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob03");
- donpcevent instance_npcname("#ghinstancewarp5")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp6")+"::OnEnable";
+ enablenpc(instance_npcname("#ghmemorialmob03"));
+ donpcevent(instance_npcname("#ghinstancewarp5")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp6")+"::OnEnable");
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
mapannounce(.@map$, _("A portal has appeared to the northwest."), bc_map, C_YELLOW);
@@ -1046,15 +1102,15 @@ OnEnable:
OnMyMobDead:
.@map$ = instance_mapname("1@gl_k");
.@label$ = instance_npcname("#ghmemorialmob03")+"::OnMyMobDead";
- .@mob_dead_num = 100 - mobcount(.@map$,.@label$);
+ .@mob_dead_num = 100 - mobcount(.@map$, .@label$);
if (.@mob_dead_num > 85) {
mapannounce(.@map$, _("Himelmez: Not bad. Thought you would be dead by now by my creatures~"), bc_map, C_WHITE);
- killmonster .@map$,.@label$;
- donpcevent instance_npcname("#GHMclear3")+"::OnEnable";
- donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnEnable";
- donpcevent instance_npcname("Himelmez#ghinstance2")+"::OnEnable";
- donpcevent instance_npcname("Varmundt#ghinstance3")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob03")+"::OnDisable";
+ killmonster(.@map$, .@label$);
+ donpcevent(instance_npcname("#GHMclear3")+"::OnEnable");
+ donpcevent(instance_npcname("Heinrich#ghinstance4")+"::OnEnable");
+ donpcevent(instance_npcname("Himelmez#ghinstance2")+"::OnEnable");
+ donpcevent(instance_npcname("Varmundt#ghinstance3")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob03")+"::OnDisable");
}
end;
}
@@ -1066,26 +1122,26 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob04");
+ disablenpc(instance_npcname("#ghmemorialmob04"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob04");
- monster instance_mapname("1@gl_k"), 150, 258, _("Corrupted Soul"), MG_CORRUPTION_ROOT, 1, instance_npcname("#ghmemorialmob04")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#ghmemorialmob04"));
+ monster(instance_mapname("1@gl_k"), 150, 258, _("Corrupted Soul"), MG_CORRUPTION_ROOT, 1, instance_npcname("#ghmemorialmob04")+"::OnMyMobDead");
unittalk($@mobid[0], _("Grrrrrrhh~~~"));
end;
OnMyMobDead:
.@map$ = instance_mapname("1@gl_k");
- if (mobcount(.@map$,instance_npcname("#ghmemorialmob04")+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname("#ghmemorialmob04")+"::OnMyMobDead") < 1) {
mapannounce(.@map$, _("Opening 2nd floor entrance towards 12 O'clock direction."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#ghinstancewarp7")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp14")+"::OnEnable";
+ donpcevent(instance_npcname("#ghinstancewarp7")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp14")+"::OnEnable");
npctalk(_("I collected some items dropped from its body. You can take it from me."), instance_npcname("Varmundt#ghinstance3"));
- donpcevent instance_npcname("#effectGH01")+"::OnEnable";
- donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnEnable";
- donpcevent instance_npcname("Varmundt#ghinstance4")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob04")+"::OnDisable";
+ donpcevent(instance_npcname("#effectGH01")+"::OnEnable");
+ donpcevent(instance_npcname("Heinrich#ghinstance5")+"::OnEnable");
+ donpcevent(instance_npcname("Varmundt#ghinstance4")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob04")+"::OnDisable");
}
end;
}
@@ -1094,24 +1150,24 @@ OnMyMobDead:
end;
OnTouch:
- donpcevent instance_npcname("#controlGH3")+"::OnEnable";
- specialeffect EF_BASH;
- donpcevent instance_npcname("#GHMclear3")+"::OnDisable";
+ donpcevent(instance_npcname("#controlGH3")+"::OnEnable");
+ specialeffect(EF_BASH);
+ donpcevent(instance_npcname("#GHMclear3")+"::OnDisable");
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#GHMclear3");
+ disablenpc(instance_npcname("#GHMclear3"));
end;
OnEnable:
- enablenpc instance_npcname("#GHMclear3");
- initnpctimer;
+ enablenpc(instance_npcname("#GHMclear3"));
+ initnpctimer();
end;
OnTimer2000:
mapannounce(instance_mapname("1@gl_k"), _("Himelmez: I'll wait for you at the north of the castle. I want to see you how lucky you are."), bc_map, C_WHITE);
- stopnpctimer;
+ stopnpctimer();
end;
}
@@ -1120,12 +1176,12 @@ OnTimer2000:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#controlGH3");
+ disablenpc(instance_npcname("#controlGH3"));
end;
OnEnable:
- enablenpc instance_npcname("#controlGH3");
- initnpctimer;
+ enablenpc(instance_npcname("#controlGH3"));
+ initnpctimer();
end;
OnTimer3000:
@@ -1165,7 +1221,7 @@ OnTimer27000:
end;
OnTimer28000:
- donpcevent instance_npcname("Himelmez#ghinstance2")+"::OnDisable";
+ donpcevent(instance_npcname("Himelmez#ghinstance2")+"::OnDisable");
end;
OnTimer31000:
@@ -1173,7 +1229,7 @@ OnTimer31000:
end;
OnTimer32000:
- donpcevent instance_npcname("Heinrich#ghinstance4")+"::OnDisable";
+ donpcevent(instance_npcname("Heinrich#ghinstance4")+"::OnDisable");
end;
OnTimer35000:
@@ -1181,117 +1237,117 @@ OnTimer35000:
end;
OnTimer38000:
- donpcevent instance_npcname("#ghmemorialmob04")+"::OnEnable";
- stopnpctimer;
- donpcevent instance_npcname("#controlGH3")+"::OnDisable";
+ donpcevent(instance_npcname("#ghmemorialmob04")+"::OnEnable");
+ stopnpctimer();
+ donpcevent(instance_npcname("#controlGH3")+"::OnDisable");
end;
}
1@gl_k,144,258,6 script Heinrich#ghinstance4 4_M_HEINRICH,{
- cutin "gl_heinrich1",2;
+ cutin("gl_heinrich1", 2);
mes("[Heinrich]");
mes("Himelmez... I will never forget what you've done to my men.");
- close2;
- cutin "gl_heinrich1",255;
+ close2();
+ cutin("gl_heinrich1", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance4");
+ hideonnpc(instance_npcname("Heinrich#ghinstance4"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance4");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance4"));
end;
}
1@gl_k,150,257,3 script Himelmez#ghinstance2 4_F_HIMEL,{
- cutin "gl_himel2",2;
+ cutin("gl_himel2", 2);
mes("[Himelmez]");
mes("Don't look at me nervous like that. It will be over soon...");
- close2;
- cutin "gl_himel2",255;
+ close2();
+ cutin("gl_himel2", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Himelmez#ghinstance2");
+ hideonnpc(instance_npcname("Himelmez#ghinstance2"));
end;
OnEnable:
- hideoffnpc instance_npcname("Himelmez#ghinstance2");
+ hideoffnpc(instance_npcname("Himelmez#ghinstance2"));
end;
}
1@gl_k,156,259,3 script Varmundt#ghinstance3 4_M_BARMUND,{ // not disabling it so all players can get their reward
if (questprogress(12318, HUNTING) == 2) {
- cutin "gl_barmund1", 2;
+ cutin("gl_barmund1", 2);
mes("[Varmundt]");
mes("This item has extraordinary aura with it. Can be very useful for someone special.");
- erasequest 12318;
+ erasequest(12318);
if (!questprogress(12319, HUNTING))
- setquest 12319;
- setquest 12320;
- erasequest 12320;
- getitem Temporal_Crystal, 1;
- getitem Coagulated_Spell, 1;
- getexp 250000, 250000;
- close2;
- cutin "gl_barmund1", 255;
+ setquest(12319);
+ setquest(12320);
+ erasequest(12320);
+ getitem(Temporal_Crystal, 1);
+ getitem(Coagulated_Spell, 1);
+ getexp(250000, 250000);
+ close2();
+ cutin("gl_barmund1", 255);
end;
}
- cutin "gl_barmund1",2;
+ cutin("gl_barmund1", 2);
mes("[Varmundt]");
mes("I guess this is it. Is it impossible to stop the time traveler's will?! A portal seems to have appeared to the north.");
- close2;
- cutin "gl_barmund2",255;
+ close2();
+ cutin("gl_barmund2", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Varmundt#ghinstance3");
+ hideonnpc(instance_npcname("Varmundt#ghinstance3"));
end;
OnEnable:
- hideoffnpc instance_npcname("Varmundt#ghinstance3");
+ hideoffnpc(instance_npcname("Varmundt#ghinstance3"));
end;
}
// Floor 2
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2@gl_k,148,67,1 script Heinrich#ghinstance5 4_M_HEINRICH,{
- cutin "gl_heinrich1",2;
+ cutin("gl_heinrich1", 2);
mes("[Heinrich]");
mes("Himelmez's closed space covers everywhere...");
- close2;
- cutin "gl_heinrich1",255;
+ close2();
+ cutin("gl_heinrich1", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance5");
+ hideonnpc(instance_npcname("Heinrich#ghinstance5"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance5");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance5"));
end;
}
2@gl_k,151,71,7 script Varmundt#ghinstance4 4_M_BARMUND,{
- cutin "gl_barmund1",2;
+ cutin("gl_barmund1", 2);
mes("[Varmundt]");
mes("How many times I do this job. In my dream, I did it over and over again...");
- close2;
- cutin "gl_barmund1",255;
+ close2();
+ cutin("gl_barmund1", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Varmundt#ghinstance4");
+ hideonnpc(instance_npcname("Varmundt#ghinstance4"));
end;
OnEnable:
- hideoffnpc instance_npcname("Varmundt#ghinstance4");
+ hideoffnpc(instance_npcname("Varmundt#ghinstance4"));
end;
}
@@ -1301,22 +1357,22 @@ OnEnable:
OnTouch:
if ('touch) {
'touch = 0;
- specialeffect EF_BASH;
- donpcevent instance_npcname("#controlGH4")+"::OnEnable";
+ specialeffect(EF_BASH);
+ donpcevent(instance_npcname("#controlGH4")+"::OnEnable");
}
end;
OnEffect:
- specialeffect EF_LORD;
+ specialeffect(EF_LORD);
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#effectGH01");
+ disablenpc(instance_npcname("#effectGH01"));
end;
OnEnable:
- enablenpc instance_npcname("#effectGH01");
+ enablenpc(instance_npcname("#effectGH01"));
'touch = 1; // Only activate OnTouch once
end;
}
@@ -1326,17 +1382,17 @@ OnEnable:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#controlGH4");
+ disablenpc(instance_npcname("#controlGH4"));
end;
OnEnable:
- enablenpc instance_npcname("#controlGH4");
- initnpctimer;
+ enablenpc(instance_npcname("#controlGH4"));
+ initnpctimer();
end;
OnTimer3000:
npctalk(_("This structure was not in the castle before!"), instance_npcname("Heinrich#ghinstance5"));
- donpcevent instance_npcname("#ghmemorialmob05")+"::OnEnable";
+ donpcevent(instance_npcname("#ghmemorialmob05")+"::OnEnable");
end;
OnTimer6000:
@@ -1352,11 +1408,11 @@ OnTimer12000:
end;
OnTimer15000:
- donpcevent instance_npcname("#effectGH01")+"::OnEffect";
+ donpcevent(instance_npcname("#effectGH01")+"::OnEffect");
end;
OnTimer18000:
- donpcevent instance_npcname("#effectGH01")+"::OnDisable";
+ donpcevent(instance_npcname("#effectGH01")+"::OnDisable");
npctalk(_("I think that part of closed space is broke down."), instance_npcname("Varmundt#ghinstance4"));
end;
@@ -1426,16 +1482,16 @@ OnTimer66000:
OnTimer69000:
mapannounce(instance_mapname("2@gl_k"), _("A portal to the west has opened in the central hallway."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#ghinstancewarp8")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp9")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob06")+"::OnEnable";
- donpcevent instance_npcname("Varmundt#ghinstance4")+"::OnDisable";
- donpcevent instance_npcname("Heinrich#ghinstance5")+"::OnDisable";
+ donpcevent(instance_npcname("#ghinstancewarp8")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp9")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob06")+"::OnEnable");
+ donpcevent(instance_npcname("Varmundt#ghinstance4")+"::OnDisable");
+ donpcevent(instance_npcname("Heinrich#ghinstance5")+"::OnDisable");
end;
OnTimer70000:
- stopnpctimer;
- donpcevent instance_npcname("#controlGH4")+"::OnDisable";
+ stopnpctimer();
+ donpcevent(instance_npcname("#controlGH4")+"::OnDisable");
end;
}
@@ -1444,11 +1500,11 @@ OnTimer70000:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob05");
+ disablenpc(instance_npcname("#ghmemorialmob05"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob05");
+ enablenpc(instance_npcname("#ghmemorialmob05"));
.@map$ = instance_mapname("2@gl_k");
.@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
areamonster(.@map$, 124, 20, 31, 162, _("Corrupted Palace Guard"), MG_RAYDRIC, 8, .@label$);
@@ -1464,26 +1520,26 @@ OnMyMobDead:
'MyMobs = 'MyMobs - 1;
if ('MyMobs == 0) {
mapannounce(.@map$, _("Evil Forces are appearing in this area."), bc_map, C_YELLOW, FW_NORMAL, 18);
- donpcevent instance_npcname("#ghmemorialmob06")+"::OnDisable2";
- donpcevent instance_npcname("#ghmemorialmob07")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob05")+"::OnDisable";
+ donpcevent(instance_npcname("#ghmemorialmob06")+"::OnDisable2");
+ donpcevent(instance_npcname("#ghmemorialmob07")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob05")+"::OnDisable");
} else {
.@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
- switch(rand(5)) {
+ switch (rand(5)) {
case 0:
- areamonster(.@map$, 124, 20, 31, 162, _("Corrupted Palace Guard"), 2468, 1, .@label$);
+ areamonster(.@map$, 124, 20, 31, 162, _("Corrupted Palace Guard"), MG_RAYDRIC, 1, .@label$);
break;
case 1:
- areamonster(.@map$, 124, 20, 31, 162, _("Archer of Death"), 2469, 1, .@label$);
+ areamonster(.@map$, 124, 20, 31, 162, _("Archer of Death"), MG_RAYDRIC_ARCHER, 1, .@label$);
break;
case 2:
- areamonster(.@map$, 124, 20, 31, 162, _("Corrupted Abysmal Knight"), 2470, 1, .@label$);
+ areamonster(.@map$, 124, 20, 31, 162, _("Corrupted Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 1, .@label$);
break;
case 3:
- areamonster(.@map$, 124, 20, 31, 162, _("Suffered Khalitzburg"), 2471, 1, .@label$);
+ areamonster(.@map$, 124, 20, 31, 162, _("Suffered Khalitzburg"), MG_KHALITZBURG, 1, .@label$);
break;
case 4:
- areamonster(.@map$, 124, 20, 31, 162, _("Bloody Knight"), 2472, 1, .@label$);
+ areamonster(.@map$, 124, 20, 31, 162, _("Bloody Knight"), MG_BLOODY_KNIGHT, 1, .@label$);
break;
}
}
@@ -1495,34 +1551,34 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob06");
+ disablenpc(instance_npcname("#ghmemorialmob06"));
end;
OnDisable2:
- stopnpctimer;
- disablenpc instance_npcname("#ghmemorialmob06");
+ stopnpctimer();
+ disablenpc(instance_npcname("#ghmemorialmob06"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob06");
- donpcevent instance_npcname("#ghmemorialmob06")+"::OnSpawn";
+ enablenpc(instance_npcname("#ghmemorialmob06"));
+ donpcevent(instance_npcname("#ghmemorialmob06")+"::OnSpawn");
end;
OnSpawn:
- initnpctimer;
+ initnpctimer();
end;
OnTimer90000:
.@map$ = instance_mapname("2@gl_k");
.@label$ = instance_npcname("#ghmemorialmob05")+"::OnMyMobDead";
- setarray .@c[0],
- 114,141,118,139,
- 128,83,131,78,
- 88,53,93,48,
- 54,47,61,40,
- 58,83,63,78,
- 69,138,80,127,
- 34,143,39,138;
+ setarray(.@c[0],
+ 114, 141, 118, 139,
+ 128, 83, 131, 78,
+ 88, 53, 93, 48,
+ 54, 47, 61, 40,
+ 58, 83, 63, 78,
+ 69, 138, 80, 127,
+ 34, 143, 39, 138);
for (.@i = 0; .@i < getarraysize(.@c); .@i += 4) {
areamonster(.@map$, .@c[.@i], .@c[.@i+1], .@c[.@i+2], .@c[.@i+3], _("Corrupted Palace Guard"), MG_RAYDRIC, 1, .@label$);
areamonster(.@map$, .@c[.@i], .@c[.@i+1], .@c[.@i+2], .@c[.@i+3], _("Archer of Death"), MG_RAYDRIC_ARCHER, 1, .@label$);
@@ -1533,8 +1589,8 @@ OnTimer90000:
end;
OnTimer92000:
- stopnpctimer;
- donpcevent instance_npcname("#ghmemorialmob06")+"::OnSpawn";
+ stopnpctimer();
+ donpcevent(instance_npcname("#ghmemorialmob06")+"::OnSpawn");
end;
}
@@ -1543,22 +1599,22 @@ OnTimer92000:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob07");
+ disablenpc(instance_npcname("#ghmemorialmob07"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob07");
- areamonster instance_mapname("2@gl_k"), 124, 20, 31, 162, _("1st Commander of Destruction"), MG_M_UNDEAD_KNIGHT, 1, instance_npcname("#ghmemorialmob07")+"::OnMyMobDead";
+ enablenpc(instance_npcname("#ghmemorialmob07"));
+ areamonster(instance_mapname("2@gl_k"), 124, 20, 31, 162, _("1st Commander of Destruction"), MG_M_UNDEAD_KNIGHT, 1, instance_npcname("#ghmemorialmob07")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@gl_k");
- if (mobcount(.@map$,instance_npcname("#ghmemorialmob07")+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname("#ghmemorialmob07")+"::OnMyMobDead") < 1) {
mapannounce(.@map$, _("A portal has opened to the east in the central hallway."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#ghinstancewarp10")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp11")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob08")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob07")+"::OnDisable";
+ donpcevent(instance_npcname("#ghinstancewarp10")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp11")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob08")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob07")+"::OnDisable");
}
end;
}
@@ -1568,18 +1624,18 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob08");
+ disablenpc(instance_npcname("#ghmemorialmob08"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob08");
+ enablenpc(instance_npcname("#ghmemorialmob08"));
.@map$ = instance_mapname("2@gl_k");
.@label$ = instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
- areamonster .@map$, 175, 163, 265, 18, "Corrupted Palace Guard", 2468, 7, .@label$;
- areamonster .@map$, 175, 163, 265, 18, "Wandering Archer", 2469, 7, .@label$;
- areamonster .@map$, 175, 163, 265, 18, "Corrupted Abysmal Knight", 2470, 7, .@label$;
- areamonster .@map$, 175, 163, 265, 18, "Suffered Khalitzburg", 2471, 7, .@label$;
- areamonster .@map$, 175, 163, 265, 18, "Bloody Knight", 2472, 7, .@label$;
+ areamonster(.@map$, 175, 163, 265, 18, _("Corrupted Palace Guard"), MG_RAYDRIC, 7, .@label$);
+ areamonster(.@map$, 175, 163, 265, 18, _("Wandering Archer"), MG_RAYDRIC_ARCHER, 7, .@label$);
+ areamonster(.@map$, 175, 163, 265, 18, _("Corrupted Abysmal Knight"), MG_KNIGHT_OF_ABYSS, 7, .@label$);
+ areamonster(.@map$, 175, 163, 265, 18, _("Suffered Khalitzburg"), MG_KHALITZBURG, 7, .@label$);
+ areamonster(.@map$, 175, 163, 265, 18, _("Bloody Knight"), MG_BLOODY_KNIGHT, 7, .@label$);
'MyMobs = 35;
end;
@@ -1588,8 +1644,8 @@ OnMyMobDead:
'MyMobs = 'MyMobs-1;
if ('MyMobs == 0) {
mapannounce(.@map$, _("An evil presence has teleported into this area."), bc_map, C_YELLOW, FW_NORMAL, 18);
- donpcevent instance_npcname("#ghmemorialmob09")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
+ donpcevent(instance_npcname("#ghmemorialmob09")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob08")+"::OnDisable");
} else {
.@label$ = instance_npcname("#ghmemorialmob08")+"::OnMyMobDead";
switch (rand(5)) {
@@ -1618,23 +1674,23 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob09");
+ disablenpc(instance_npcname("#ghmemorialmob09"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob09");
+ enablenpc(instance_npcname("#ghmemorialmob09"));
areamonster(instance_mapname("2@gl_k"), 175, 163, 265, 18, _("2nd Commander of Destruction"), MG_F_UNDEAD_KNIGHT, 1, instance_npcname("#ghmemorialmob09")+"::OnMyMobDead");
end;
OnMyMobDead:
.@map$ = instance_mapname("2@gl_k");
- if (mobcount(.@map$,instance_npcname("#ghmemorialmob09")+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname("#ghmemorialmob09")+"::OnMyMobDead") < 1) {
mapannounce(.@map$, _("A new portal has appeared at the end of the central corridor."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#ghinstancewarp12")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp13")+"::OnEnable";
- donpcevent instance_npcname("#controlGH6")+"::OnEnable";
- donpcevent instance_npcname("#ghmemorialmob08")+"::OnDisable";
- donpcevent instance_npcname("#ghmemorialmob09")+"::OnDisable";
+ donpcevent(instance_npcname("#ghinstancewarp12")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp13")+"::OnEnable");
+ donpcevent(instance_npcname("#controlGH6")+"::OnEnable");
+ donpcevent(instance_npcname("#ghmemorialmob08")+"::OnDisable");
+ donpcevent(instance_npcname("#ghmemorialmob09")+"::OnDisable");
}
end;
}
@@ -1644,15 +1700,15 @@ OnMyMobDead:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#ghmemorialmob10");
+ disablenpc(instance_npcname("#ghmemorialmob10"));
end;
OnEnable:
- enablenpc instance_npcname("#ghmemorialmob10");
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnDisable";
+ enablenpc(instance_npcname("#ghmemorialmob10"));
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnDisable");
monster(instance_mapname("2@gl_k"), 158, 255, _("Amdarais"), MG_AMDARAIS, 1, instance_npcname("#ghmemorialmob10")+"::OnMyMobDead");
unittalk($@mobid[0], _("Run away... run away from me..."));
- initnpctimer;
+ initnpctimer();
end;
OnTimer6000:
@@ -1669,72 +1725,72 @@ OnTimer18000:
OnTimer24000:
unittalk($@mobid[0], _("Demolition... Death!..."));
- stopnpctimer;
+ stopnpctimer();
end;
OnMyMobDead:
- if (mobcount(instance_mapname("2@gl_k"),instance_npcname("#ghmemorialmob10")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("Hugin#ghinstance1")+"::OnEnable";
- donpcevent instance_npcname("#ghinstancewarp15")+"::OnEnable";
+ if (mobcount(instance_mapname("2@gl_k"), instance_npcname("#ghmemorialmob10")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("Hugin#ghinstance1")+"::OnEnable");
+ donpcevent(instance_npcname("#ghinstancewarp15")+"::OnEnable");
for (.@i = 1; .@i <= 8; .@i++)
- enablenpc instance_npcname("Strange crack#"+.@i);
- stopnpctimer;
- donpcevent instance_npcname("#ghmemorialmob10")+"::OnDisable";
+ enablenpc(instance_npcname("Strange crack#"+.@i));
+ stopnpctimer();
+ donpcevent(instance_npcname("#ghmemorialmob10")+"::OnDisable");
}
end;
}
2@gl_k,155,250,7 script Heinrich#ghinstance6 4_M_HEINRICH,{
- cutin "gl_heinrich1",2;
+ cutin("gl_heinrich1", 2);
mes("[Heinrich]");
mes("What are you decorating Himelmez!");
- close2;
- cutin "gl_heinrich1",255;
+ close2();
+ cutin("gl_heinrich1", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Heinrich#ghinstance6");
+ hideonnpc(instance_npcname("Heinrich#ghinstance6"));
end;
OnEnable:
- hideoffnpc instance_npcname("Heinrich#ghinstance6");
+ hideoffnpc(instance_npcname("Heinrich#ghinstance6"));
end;
}
2@gl_k,162,250,1 script Varmundt#ghinstance5 4_M_BARMUND,{
- cutin "gl_barmund2",2;
+ cutin("gl_barmund2", 2);
mes("[Varmundt]");
mes("Can't take off this bridle...");
- close2;
- cutin "gl_barmund2",255;
+ close2();
+ cutin("gl_barmund2", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Varmundt#ghinstance5");
+ hideonnpc(instance_npcname("Varmundt#ghinstance5"));
end;
OnEnable:
- hideoffnpc instance_npcname("Varmundt#ghinstance5");
+ hideoffnpc(instance_npcname("Varmundt#ghinstance5"));
end;
}
2@gl_k,158,252,3 script Himelmez#ghinstance4 4_F_HIMEL,{
- cutin "gl_himel2",2;
+ cutin("gl_himel2", 2);
mes("[Himelmez]");
mes("That is amazing ~ you made it all the way here. May I say thank you?");
- close2;
- cutin "gl_himel2",255;
+ close2();
+ cutin("gl_himel2", 255);
end;
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Himelmez#ghinstance4");
+ hideonnpc(instance_npcname("Himelmez#ghinstance4"));
end;
OnEnable:
- hideoffnpc instance_npcname("Himelmez#ghinstance4");
+ hideoffnpc(instance_npcname("Himelmez#ghinstance4"));
end;
}
@@ -1743,21 +1799,21 @@ OnEnable:
OnTouch:
mapannounce(instance_mapname("2@gl_k"), _("???: Do not come here! It's a trap... Kkkkah!!!"), bc_map, C_RED, FW_NORMAL, 18);
- specialeffect EF_BASH;
- donpcevent instance_npcname("Himelmez#ghinstance3")+"::OnEnable";
- donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnEnable";
- donpcevent instance_npcname("Varmundt#ghinstance5")+"::OnEnable";
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEnable";
- donpcevent instance_npcname("#controlGH6")+"::OnDisable";
+ specialeffect(EF_BASH);
+ donpcevent(instance_npcname("Himelmez#ghinstance3")+"::OnEnable");
+ donpcevent(instance_npcname("Heinrich#ghinstance6")+"::OnEnable");
+ donpcevent(instance_npcname("Varmundt#ghinstance5")+"::OnEnable");
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEnable");
+ donpcevent(instance_npcname("#controlGH6")+"::OnDisable");
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#controlGH6");
+ disablenpc(instance_npcname("#controlGH6"));
end;
OnEnable:
- enablenpc instance_npcname("#controlGH6");
+ enablenpc(instance_npcname("#controlGH6"));
end;
}
@@ -1765,19 +1821,19 @@ OnEnable:
end;
OnTouch:
- specialeffect EF_BASH;
- donpcevent instance_npcname("#controlGH5")+"::OnEnable";
- donpcevent instance_npcname("Himelmez#ghinstance4")+"::OnEnable";
- donpcevent instance_npcname("Himelmez#ghinstance3")+"::OnDisable";
+ specialeffect(EF_BASH);
+ donpcevent(instance_npcname("#controlGH5")+"::OnEnable");
+ donpcevent(instance_npcname("Himelmez#ghinstance4")+"::OnEnable");
+ donpcevent(instance_npcname("Himelmez#ghinstance3")+"::OnDisable");
end;
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Himelmez#ghinstance3");
+ disablenpc(instance_npcname("Himelmez#ghinstance3"));
end;
OnEnable:
- enablenpc instance_npcname("Himelmez#ghinstance3");
+ enablenpc(instance_npcname("Himelmez#ghinstance3"));
end;
}
@@ -1785,15 +1841,15 @@ OnEnable:
mes("[Gerhalt]");
mes("Uuuuu... Khhhah!\r"
"Just run away with the commander!");
- close;
+ close();
OnInstanceInit:
OnDisable:
- hideonnpc instance_npcname("Gerhalt#ghinstance1");
+ hideonnpc(instance_npcname("Gerhalt#ghinstance1"));
end;
OnEnable:
- hideoffnpc instance_npcname("Gerhalt#ghinstance1");
+ hideoffnpc(instance_npcname("Gerhalt#ghinstance1"));
end;
OnTalk3: /*Unused*/
@@ -1801,23 +1857,23 @@ OnTalk3: /*Unused*/
end;
OnEffect1:
- specialeffect EF_BARRIER;
+ specialeffect(EF_BARRIER);
end;
OnEffect2:
- specialeffect EF_CHAINCOMBO;
+ specialeffect(EF_CHAINCOMBO);
end;
OnEffect3:
- specialeffect EF_MAPPILLAR2;
+ specialeffect(EF_MAPPILLAR2);
end;
OnEffect4:
- specialeffect EF_MAPPILLAR;
+ specialeffect(EF_MAPPILLAR);
end;
OnEffect5:
- specialeffect EF_LORD;
+ specialeffect(EF_LORD);
end;
}
@@ -1826,12 +1882,12 @@ OnEffect5:
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("#controlGH5");
+ disablenpc(instance_npcname("#controlGH5"));
end;
OnEnable:
- enablenpc instance_npcname("#controlGH5");
- initnpctimer;
+ enablenpc(instance_npcname("#controlGH5"));
+ initnpctimer();
end;
OnTimer3000:
@@ -1907,32 +1963,32 @@ OnTimer57000:
end;
OnTimer60000:
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect1";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect1");
end;
OnTimer63000:
- donpcevent instance_npcname("Himelmez#ghinstance4")+"::OnDisable";
+ donpcevent(instance_npcname("Himelmez#ghinstance4")+"::OnDisable");
end;
OnTimer65000:
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect3";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect3");
end;
OnTimer66000:
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect2";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect2");
end;
OnTimer67000:
npctalk(_("I'll never let you get away Himelmez!!"), instance_npcname("Heinrich#ghinstance6"));
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect4";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect4");
end;
OnTimer70000:
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect3";
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect4";
- donpcevent instance_npcname("Heinrich#ghinstance6")+"::OnDisable";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect3");
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect4");
+ donpcevent(instance_npcname("Heinrich#ghinstance6")+"::OnDisable");
npctalk(_("We have no choice. We have to fight against Amdarais!"), instance_npcname("Varmundt#ghinstance5"));
- donpcevent instance_npcname("Varmundt#ghinstance5")+"::OnDisable";
+ donpcevent(instance_npcname("Varmundt#ghinstance5")+"::OnDisable");
end;
OnTimer73000:
@@ -1940,13 +1996,13 @@ OnTimer73000:
end;
OnTimer76000:
- donpcevent instance_npcname("Gerhalt#ghinstance1")+"::OnEffect5";
+ donpcevent(instance_npcname("Gerhalt#ghinstance1")+"::OnEffect5");
end;
OnTimer80000:
- donpcevent instance_npcname("#ghmemorialmob10")+"::OnEnable";
- stopnpctimer;
- donpcevent instance_npcname("#controlGH5")+"::OnDisable";
+ donpcevent(instance_npcname("#ghmemorialmob10")+"::OnEnable");
+ stopnpctimer();
+ donpcevent(instance_npcname("#controlGH5")+"::OnDisable");
end;
}
@@ -1954,65 +2010,65 @@ OnTimer80000:
if (questprogress(12319, HUNTING) == 2) {
mes("[Hugin]");
mes("Hm, you are very well. First of all, let me give you some loot from Amdarais.");
- erasequest 12319;
- setquest 12321;
- setquest 12322;
- erasequest 12321;
+ erasequest(12319);
+ setquest(12321);
+ setquest(12322);
+ erasequest(12321);
if (gh_instance == 1) {
- getitem Temporal_Crystal, 1;
- getitem Coagulated_Spell, 1;
+ getitem(Temporal_Crystal, 1);
+ getitem(Coagulated_Spell, 1);
} else {
- getitem Temporal_Crystal, 5;
- getitem Coagulated_Spell, 5;
+ getitem(Temporal_Crystal, 5);
+ getitem(Coagulated_Spell, 5);
gh_instance = 1;
}
getexp(350000, 350000);
- next;
+ next();
mes("[Hugin]");
mes("Varmundt's time is stopped by me. And your time will be distorted soon.");
- specialeffect(EF_BLIND,AREA, AREA, playerattached());
- soundeffect "_blind.wav",0;
- next;
+ specialeffect(EF_BLIND, AREA, AREA, playerattached());
+ soundeffect("_blind.wav", 0);
+ next();
mes("[Hugin]");
mes("Maybe this poor time traveler will try to stop Glast Heim's tragedy from happening.");
- next;
+ next();
mes("[Hugin]");
mes("However, we will never overlook his behavior now and forever...");
- next;
+ next();
mes("[Hugin]");
mes("Now, let me remove your memory. If you see me again, that will be brand new.");
specialeffect(EF_FREEZE, AREA, playerattached());
- close2;
+ close2();
getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
- warp .@map$,.@x,.@y;
+ warp(.@map$, .@x, .@y);
end;
} else {
mes("[Hugin]");
mes("Oops I almost distorted the time gap. Come over here. We need to go out!");
- next;
+ next();
select("You were just with me...");
mes("[Hugin]");
mes("What did you say just before? Anyway that is not important, The gap of time will be closed so, we need to get out of here.");
- next;
- switch(select("Let me look around more:Please let me out")) {
+ next();
+ switch (select("Let me look around more:Please let me out")) {
case 1:
mes("[Hugin]");
mes("Really? This place will be broke down so, please look around quickly.");
- close;
+ close();
case 2:
- close2;
- warp "glast_01",204,270;
+ close2();
+ warp("glast_01", 204, 270);
end;
}
}
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Hugin#ghinstance1");
+ disablenpc(instance_npcname("Hugin#ghinstance1"));
end;
OnEnable:
- enablenpc instance_npcname("Hugin#ghinstance1");
+ enablenpc(instance_npcname("Hugin#ghinstance1"));
end;
}
@@ -2022,205 +2078,197 @@ OnEnable:
1@gl_k,269,267,0 script Strange crack#entrace HIDDEN_NPC,{
if (!questprogress(12322)) {
mes("The crack looks suspicious, but nothing more to check.");
- close;
+ close();
}
.@map$ = instance_mapname("1@gl_k");
- warp .@map$,149,193;
+ warp(.@map$, 149, 193);
end;
}
1@gl_k,129,136,0 script Strange crack#1 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i = 1; .@i <= .@random; .@i++) {
- makeitem White_Jewel, 1, "this", 129, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 129, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(White_Jewel, 1, "this", 129, 138);
+ makeitem(Coagulated_Spell, 1, "this", 129, 138);
if (.@random_ == 4) {
- //makeitem2 Heavy_Sword, 1, "this", 129, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Heavy_Sword, 1, "this", 129, 138;
+ //makeitem2(Heavy_Sword, 1, "this", 129, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Heavy_Sword, 1, "this", 129, 138);
}
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#1");
+ disablenpc(instance_npcname("Strange crack#1"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#1");
+ enablenpc(instance_npcname("Strange crack#1"));
end;
}
1@gl_k,135,136,0 script Strange crack#2 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Blue_Jewel, 1, "this", 135, 138;
- }
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Blue_Jewel, 1, "this", 135, 138);
if (.@random_ == 4) {
- //makeitem2 Staff_Of_Geffen, 1, "this", 135, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Staff_Of_Geffen, 1, "this", 135, 138;
+ //makeitem2(Staff_Of_Geffen, 1, "this", 135, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Staff_Of_Geffen, 1, "this", 135, 138);
}
- makeitem Coagulated_Spell, 1, "this", 135, 138;
+ makeitem(Coagulated_Spell, 1, "this", 135, 138);
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#2");
+ disablenpc(instance_npcname("Strange crack#2"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#2");
+ enablenpc(instance_npcname("Strange crack#2"));
end;
}
1@gl_k,141,136,0 script Strange crack#3 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Red_Jewel, 1, "this", 141, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 141, 138;
- makeitem Gold_Bullion, 1, "this", 141, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Red_Jewel, 1, "this", 141, 138);
+ makeitem(Coagulated_Spell, 1, "this", 141, 138);
+ makeitem(Gold_Bullion, 1, "this", 141, 138);
if (.@random_ == 4) {
- //makeitem2 Ceremonial_Sword, 1, "this", 141, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Ceremonial_Sword, 1, "this", 141, 138;
+ //makeitem2(Ceremonial_Sword, 1, "this", 141, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Ceremonial_Sword, 1, "this", 141, 138);
}
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#3");
+ disablenpc(instance_npcname("Strange crack#3"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#3");
+ enablenpc(instance_npcname("Strange crack#3"));
end;
}
1@gl_k,147,136,0 script Strange crack#4 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Scarlet_Jewel, 1, "this", 147, 138;
- }
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Scarlet_Jewel, 1, "this", 147, 138);
if (.@random_ == 4) {
- //makeitem2 Silversmith_Bracelet, 1, "this", 147, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Silversmith_Bracelet, 1, "this", 147, 138;
+ //makeitem2(Silversmith_Bracelet, 1, "this", 147, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Silversmith_Bracelet, 1, "this", 147, 138);
}
- makeitem Coagulated_Spell, 1, "this", 147, 138;
- makeitem Gold_Coin_Basket, 1, "this", 147, 138;
- makeitem Colorful_Brooch, 1, "this", 147, 138;
+ makeitem(Coagulated_Spell, 1, "this", 147, 138);
+ makeitem(Gold_Coin_Basket, 1, "this", 147, 138);
+ makeitem(Colorful_Brooch, 1, "this", 147, 138);
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#4");
+ disablenpc(instance_npcname("Strange crack#4"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#4");
+ enablenpc(instance_npcname("Strange crack#4"));
end;
}
1@gl_k,153,136,0 script Strange crack#5 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Azure_Jewel, 1, "this", 153, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 153, 138;
- makeitem White_Gold_Bullion, 1, "this", 153, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Azure_Jewel, 1, "this", 153, 138);
+ makeitem(Coagulated_Spell, 1, "this", 153, 138);
+ makeitem(White_Gold_Bullion, 1, "this", 153, 138);
if (.@random_ == 4) {
- //makeitem2 Goldsmithing_Dagger, 1, "this", 153, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Goldsmithing_Dagger, 1, "this", 153, 138;
+ //makeitem2(Goldsmithing_Dagger, 1, "this", 153, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Goldsmithing_Dagger, 1, "this", 153, 138);
}
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#5");
+ disablenpc(instance_npcname("Strange crack#5"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#5");
+ enablenpc(instance_npcname("Strange crack#5"));
end;
}
1@gl_k,159,136,0 script Strange crack#6 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
.@random_ = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Skyblue_Jewel, 1, "this", 159, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 159, 138;
- makeitem Silver_Bullion, 1, "this", 159, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Skyblue_Jewel, 1, "this", 159, 138);
+ makeitem(Coagulated_Spell, 1, "this", 159, 138);
+ makeitem(Silver_Bullion, 1, "this", 159, 138);
if (.@random_ == 4) {
- //makeitem2 Engraved_Armor, 1, "this", 159, 138, 0, 0, 0, 0, 0, 0, 0;
- makeitem Engraved_Armor, 1, "this", 159, 138;
+ //makeitem2(Engraved_Armor, 1, "this", 159, 138, 0, 0, 0, 0, 0, 0, 0);
+ makeitem(Engraved_Armor, 1, "this", 159, 138);
}
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#6");
+ disablenpc(instance_npcname("Strange crack#6"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#6");
+ enablenpc(instance_npcname("Strange crack#6"));
end;
}
1@gl_k,165,136,0 script Strange crack#7 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Violet_Jewel, 1, "this", 165, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 165, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Violet_Jewel, 1, "this", 165, 138);
+ makeitem(Coagulated_Spell, 1, "this", 165, 138);
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#7");
+ disablenpc(instance_npcname("Strange crack#7"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#7");
+ enablenpc(instance_npcname("Strange crack#7"));
end;
}
1@gl_k,171,136,0 script Strange crack#8 HIDDEN_NPC,{
- specialeffect EF_SPELLBREAKER;
- specialeffect EF_BASH;
+ specialeffect(EF_SPELLBREAKER);
+ specialeffect(EF_BASH);
.@random = rand(1, 4);
- for (.@i=1; .@i<=.@random; .@i++) {
- makeitem Dark_Red_Jewel, 1, "this", 171, 138;
- }
- makeitem Coagulated_Spell, 1, "this", 171, 138;
+ for (.@i = 1; .@i <= .@random; .@i++)
+ makeitem(Dark_Red_Jewel, 1, "this", 171, 138);
+ makeitem(Coagulated_Spell, 1, "this", 171, 138);
// FIXME[Haru]: Intention is not clear. Either add 'end;' or add '/* Fall through */'
OnInstanceInit:
OnDisable:
- disablenpc instance_npcname("Strange crack#8");
+ disablenpc(instance_npcname("Strange crack#8"));
end;
OnEnable:
- enablenpc instance_npcname("Strange crack#8");
+ enablenpc(instance_npcname("Strange crack#8"));
end;
}
@@ -2229,57 +2277,57 @@ OnEnable:
// Uses Temporal_Crystal
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
glast_01,210,273,5 script Hugin's Butler 1_F_04,{
- disable_items;
+ disable_items();
mes("[Hugin's Butler]"); // custom check
if (MaxWeight - Weight < 1000) {
mes("Your bag is too heavy. Reduce some weight and come back.");
- close;
+ close();
}
mes("I would like to thank you for helping my master Hugin. I can transmute your ^FF0000Temporal Crystals^000000 into a pair of boots that have withstood the test of time... the ^FF0000Temporal Boots^000000.");
- next;
+ next();
mes("[Hugin's Butler]");
mes("What would you like me to do young adventurer?");
- next;
+ next();
switch (select("Give me the Temporal Boots", "Upgrade my Temporal Boots")) {
case 1:
if (countitem(Temporal_Crystal) > 0) {
mes("[Hugin's Butler]");
mes("Take these Temporal Boots. We can upgrade your Temporal Boots with 5 Temporal Crystals.");
- delitem Temporal_Crystal, 1;
- getitem Temporal_Boots, 1;
- close;
+ delitem(Temporal_Crystal, 1);
+ getitem(Temporal_Boots, 1);
+ close();
}
mes("[Hugin's Butler]");
mes("You need more Temporal Crystals. Come back when you get some more Temporal Crystals during your travel through Old Glast Heim.");
- close;
+ close();
case 2:
.@part = EQI_SHOES;
if (!getequipisequiped(.@part)) {
mes("[Hugin's Butler]");
mes("Wear the ^0000FFTemporal Boots^000000 you want to upgrade, and then talk to me once again.");
- close;
+ close();
}
if (!isequipped(Temporal_Boots)) { // check
mes("[Hugin's Butler]");
mes("You are not wearing the Temporal Boots. Talk to me once you're wearing them.");
- close;
+ close();
}
if (countitem(Temporal_Crystal) < 5) {
mes("[Hugin's Butler]");
mes("Not enough Temporal Crystals. You need ^FF00005 Temporal Crystals^000000 to upgrade your boots.");
- close;
+ close();
}
mes("[Hugin's Butler]");
mes("You can trade ^0000FF1 Temporal Boots and 5 Temporal Crystals^000000 for 1 of the following items. ^FF0000Previous refine rate will not be retained with these new ones^000000.");
- next;
- setarray .@type$[0], "Strength", "Intelligence", "Agility", "Vitality", "Dexterity", "Luck";
- setarray .@equip_type[0], Temporal_Str_Boots, Temporal_Int_Boots, Temporal_Agi_Boots, Temporal_Vit_Boots, Temporal_Dex_Boots, Temporal_Luk_Boots;
+ next();
+ setarray(.@type$[0], _("Strength"), _("Intelligence"), _("Agility"), _("Vitality"), _("Dexterity"), _("Luck"));
+ setarray(.@equip_type[0], Temporal_Str_Boots, Temporal_Int_Boots, Temporal_Agi_Boots, Temporal_Vit_Boots, Temporal_Dex_Boots, Temporal_Luk_Boots);
.@select = select("Cancel", "Str Boots", "Int Boots", "Agi Boots", "Vit Boots", "Dex Boots", "Luk Boots");
switch (.@select) {
case 1:
mes("[Hugin's Butler]");
mes("Come back anytime you want.");
- close;
+ close();
case 2:
case 3:
case 4:
@@ -2287,19 +2335,19 @@ glast_01,210,273,5 script Hugin's Butler 1_F_04,{
case 6:
case 7:
mes("[Hugin's Butler]");
- mesf("Are you sure about buying Temporal ^FF0000%s^000000 Boots? There is no refund.", .@type$[.@select-2]);
- next;
+ mesf("Are you sure about buying Temporal ^FF0000%s^000000 Boots? There is no refund.", .@type$[.@select - 2]);
+ next();
if (select("Think again", "Yes, I am sure.") == 2) {
mes("[Hugin's Butler]");
mes("The boots has been upgraded as you want.");
- delequip .@part;
- delitem Temporal_Crystal, 5;
- getitem2 .@equip_type[.@select-2], 1, 1, 0, 0, 0, 0, 0, 0; // Temporal_Str_Boots, Temporal_Int_Boots, Temporal_Agi_Boots, Temporal_Vit_Boots, Temporal_Dex_Boots, Temporal_Luk_Boots
- close;
+ delequip(.@part);
+ delitem(Temporal_Crystal, 5);
+ getitem2(.@equip_type[.@select - 2], 1, 1, 0, 0, 0, 0, 0, 0); // Temporal_Str_Boots, Temporal_Int_Boots, Temporal_Agi_Boots, Temporal_Vit_Boots, Temporal_Dex_Boots, Temporal_Luk_Boots
+ close();
}
mes("[Hugin's Butler]");
mes("Ok, come back again when you are sure.");
- close;
+ close();
}
}
}
@@ -2311,62 +2359,62 @@ glast_01,210,273,5 script Hugin's Butler 1_F_04,{
// Item Used: Coagulated_Spell
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to official enchant mechanics
- disable_items;
+ disable_items();
if (MaxWeight - Weight < 1000) {
mes("Your bag is too heavy. Reduce some weight and come back.");
- close;
+ close();
}
mes("[Hugin's Magic Master]"); // Custom text
mes("So you came to enchant the Temporal Boots. Be aware that adding a socket do your boots will remove my enchants as well as it's refine. It is only possible for the boots you are wearing.");
- next;
+ next();
if (select("How does the enchanting work?", "Give effect to my Temporal Boots") == 1) {
mes("[Hugin's Magic Master]");
mes("You can obtain ^0000FFCoagulated Spell^000000 through your time travels.");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("I can enchant your Temporal Boots with a variing amount of that item. ^0000FFAvailable for all Temporal STAT Boots^000000.");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("But, once you try to put a socket into the item, it will be resetted. So if you want a socket, you should do it first. Be sure to remember that.");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("I don't give out effect randomly. You can pick which effect you want for the item.");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("Of course it is for 4th slot only. You can have small effect at the start and then the effect grows stronger.\r"
"^FF0000Remember: It can fail and break your item!^000000");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("To get to the final option upgrade it will require way more Coagulated Spells. Don't forget that.");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("Once the 4th slot completes the best option, you get to have a random bonus effect to the 3rd slot. With.. certain payment and a ^0000FFguaranteed success rate~^000000");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("^FF0000Again: there is a risk on failing and breaking the item^000000.\r"
"But if the enchant is applied successful, ^0000FFthe refine and everything else will be retained.^000000");
- next;
+ next();
mes("[Hugin's Magic Master]");
mes("Phew... Anyways, that's all for basic enchant information. Now you should see for yourself.");
- close;
+ close();
}
.@part = EQI_SHOES;
if (!getequipisequiped(.@part)) {
mes("[Hugin's Magic Master]");
mes("Are you wearing the item?");
- close;
+ close();
}
.@equip_refine = getequiprefinerycnt(.@part);
.@equip_id = getequipid(.@part);
.@equip_name$ = getequipname(.@part);
.@card0 = getequipcardid(.@part, 0);
.@card3 = getequipcardid(.@part, 3);
- setarray .@enchant1st[0], Fighting_Spirit4, Expert_Archer1, Spell2, Vitality2, Attack_Delay_1, Luck3;
- setarray .@enchant2nd[0], Fighting_Spirit5, Expert_Archer2, Spell3, Vitality3, Attack_Delay_2, Luck4;
- setarray .@enchant3rd[0], Fighting_Spirit6, Expert_Archer3, Spell4, MHP1, Attack_Delay_3, Luck5;
- setarray .@enchant4th[0], Fighting_Spirit7, Expert_Archer4, Spell5, MHP2, Attack_Delay_4, Luck6;
- setarray .@enchant_cost[0], 1, 4, 15, 30, 10; // Coagulated_Spell costs
- setarray .@enchant_rate[0], 90, 80, 70, 50, 100; // Enchant Success Rate in %
+ setarray(.@enchant1st[0], Fighting_Spirit4, Expert_Archer1, Spell2, Vitality2, Attack_Delay_1, Luck3);
+ setarray(.@enchant2nd[0], Fighting_Spirit5, Expert_Archer2, Spell3, Vitality3, Attack_Delay_2, Luck4);
+ setarray(.@enchant3rd[0], Fighting_Spirit6, Expert_Archer3, Spell4, MHP1, Attack_Delay_3, Luck5);
+ setarray(.@enchant4th[0], Fighting_Spirit7, Expert_Archer4, Spell5, MHP2, Attack_Delay_4, Luck6);
+ setarray(.@enchant_cost[0], 1, 4, 15, 30, 10); // Coagulated_Spell costs
+ setarray(.@enchant_rate[0], 90, 80, 70, 50, 100); // Enchant Success Rate in %
.@random = rand(1, 100);
switch (.@equip_id) {
case Temporal_Str_Boots:
@@ -2387,30 +2435,30 @@ glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to of
.@number = 1;
mes("[Hugin's Magic Master]");
mesf("Want to enchant ^0000FF%s^000000? For the 1st enchanting, you need ^FF0000%d^000000 ^0000FFCoagulated Spells.^000000", .@equip_name$, .@cost);
- next;
+ next();
.@select = select("Quit", "Fighting Spirit", "Archery", "Spell", "Vitality", "Attack Speed", "Luck");
switch (.@select) {
case 1:
mes("[Hugin's Magic Master]");
mes("Ok, come back when you are ready.");
- close;
+ close();
case 2:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
case 3:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
case 4:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
case 5:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
case 6:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
case 7:
- .@enchant = .@enchant1st[.@select-2];
+ .@enchant = .@enchant1st[.@select - 2];
break;
}
} else {
@@ -2438,7 +2486,7 @@ glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to of
mes("[Hugin's Magic Master]"); // Custom text
mes("Your shoes have reached the maximum option to enchant.");
mes("Please bring me a new one if you want me to enchant again.");
- close;
+ close();
}
// 3rd slot random enchanting
switch (.@card3) {
@@ -2451,31 +2499,33 @@ glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to of
.@enchant = callfunc("F_Rand", Bears_Power, Runaway_Magic, Speed_Of_Light, Muscle_Fool, Hawkeye, Lucky_Day);
mes("[Hugin's Magic Master]"); // Custom text
mes("Seems you already completed the best upgrade option in your 4th slot. For that I can give a random bonus effect to your 3rd slot. And of course, with certain payment...");
- next;
+ next();
mes("[Hugin's Magic Master]");
mesf("Enchanting ^0000FF%s^000000's 3rd slot for obtaining a random bonus effect. Requires ^FF0000%d^000000 ^0000FFCoagulated Spells^000000", .@equip_name$, .@cost);
- next;
+ next();
if (select("Quit", "Effect Upgrade!") == 1) {
mes("[Hugin's Magic Master]");
mes("Ok, come back when you are ready.");
- close;
+ close();
}
if (countitem(Coagulated_Spell) < .@cost) {
mesf("Hmm, you are missing %s Coagulated Spells. Go get more, and then we can talk about more enchants.", .@cost - countitem(Coagulated_Spell));
- close;
+ close();
}
if (.@random > .@scs) {
mes("Arrggg, we failed. Better luck next time.");
- specialeffect(EF_PHARMACY_FAIL, AREA, playerattached()); delitem Coagulated_Spell, .@cost; delequip .@part;
- close;
+ specialeffect(EF_PHARMACY_FAIL, AREA, playerattached());
+ delitem(Coagulated_Spell, .@cost);
+ delequip(.@part);
+ close();
}
specialeffect(EF_REPAIRWEAPON, AREA, playerattached());
- delitem Coagulated_Spell, .@cost;
- delequip .@part;
+ delitem(Coagulated_Spell, .@cost);
+ delequip(.@part);
mes("[Hugin's Magic Master]");
mes("This is it! This special stone is now yours Hahaha... I am really the only master of these things. Thank you for believing in me.");
- getitem2 .@equip_id, 1, 1, .@equip_refine, 0, .@card0, 0, .@enchant, .@card3;
- close;
+ getitem2(.@equip_id, 1, 1, .@equip_refine, 0, .@card0, 0, .@enchant, .@card3);
+ close();
}
}
// 4th slot 2nd try enchanting
@@ -2519,49 +2569,49 @@ glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to of
.@enchant = .@enchant4th[5];
mes("[Hugin's Magic Master]");
mesf("Enchanting ^0000FF%s^000000's 4th slot as ^0000FF%d^000000 level effect. Requires ^FF0000%d^000000 ^0000FFCoagulated Spells.^000000", .@equip_name$, .@number, .@cost);
- next;
+ next();
if (select("Quit", "Effect Upgrade!") == 1) {
mes("[Hugin's Magic Master]");
mes("Ok, come back when you are ready.");
- close;
+ close();
}
if (countitem(Coagulated_Spell) < .@cost) {
mesf("Hmm, you are missing %d Coagulated Spells. Go get more, and then we can talk about more enchants.", .@cost - countitem(Coagulated_Spell));
- close;
+ close();
}
if (.@random > .@scs) {
mes("Arrggg, we failed. Better luck next time.");
specialeffect(EF_PHARMACY_FAIL, AREA, playerattached());
- delitem Coagulated_Spell, .@cost;
- delequip .@part;
- close;
+ delitem(Coagulated_Spell, .@cost);
+ delequip(.@part);
+ close();
}
}
break;
default:
mes("[Hugin's Magic Master]");
mes("This is not the right item for this enchant. Remember, only those 6 types of Temporal Boots are available for enchanting.");
- close;
+ close();
}
mes("[Hugin's Magic Master]");
if (countitem(Coagulated_Spell) < .@cost) {
mesf("Hmm, you are missing %d Coagulated Spells. Go get more, and then we can talk about more enchants.", .@cost - countitem(Coagulated_Spell));
- close;
+ close();
}
if (.@random > .@scs) {
mes("Arrggg, we failed. Better luck next time.");
specialeffect(EF_PHARMACY_FAIL, AREA, playerattached());
- delitem Coagulated_Spell, .@cost;
- delequip .@part;
- close;
+ delitem(Coagulated_Spell, .@cost);
+ delequip(.@part);
+ close();
}
specialeffect(EF_REPAIRWEAPON, AREA, playerattached());
- delitem Coagulated_Spell, .@cost;
- delequip .@part;
+ delitem(Coagulated_Spell, .@cost);
+ delequip(.@part);
mes("[Hugin's Magic Master]");
mesf("Adding enchant number ^630000%d^000000.", .@number);
- getitem2 .@equip_id, 1, 1, .@equip_refine, 0, .@card0, 0, 0, .@enchant;
- close;
+ getitem2(.@equip_id, 1, 1, .@equip_refine, 0, .@card0, 0, 0, .@enchant);
+ close();
}
// Socket NPC - Corrupted_Charm or Temporal_Crystal to add card slot
@@ -2569,33 +2619,33 @@ glast_01,212,273,4 script Hugin's Magic Master 1_F_01,{ // Custom text due to of
// Item Used: Corrupted_Charm, Temporal_Crystal
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
glast_01,210,270,0 script Hugin's Craftsman 4_F_JOB_BLACKSMITH,{
- disable_items;
+ disable_items();
if (MaxWeight - Weight < 1000) {
mes("Your bag is too heavy. Reduce some weight and come back.");
- close;
+ close();
}
mes("[Hugin's Craftsman]");
mes("That Magic Master always says that enchanting Temporal Boots is the best. But, I think I can beat that!");
- next;
+ next();
mes("[Hugin's Craftsman]");
mes("I can try putting a slot into your boots. But there is some ^FF0000risk of failing.^000000");
- next;
+ next();
mes("[Hugin's Craftsman]");
mes("Bring me ^0000FF50 Contaminated Magic^000000 or ^0000FF10 Temporal Crystals^000000, and I will try to put a slot into your advanced Temporal Boots.");
- next;
+ next();
mes("[Hugin's Craftsman]");
mes("But, it's possible to ^FF0000fail and break the item^000000. Is that ok?");
- next;
+ next();
if (select("Cancel", "Take the risk and try to add a slot") == 1) {
mes("[Hugin's Craftsman]");
mes("Ok, come back anytime you want.");
- close;
+ close();
}
.@part = EQI_SHOES;
if (!getequipisequiped(.@part)) {
mes("[Hugin's Craftsman]");
mes("Are you sure you are wearing the item?");
- close;
+ close();
}
.@equip_id = getequipid(.@part);
switch (.@equip_id) {
@@ -2608,43 +2658,43 @@ glast_01,210,270,0 script Hugin's Craftsman 4_F_JOB_BLACKSMITH,{
mes("[Hugin's Craftsman]");
mes("The ^FF0000Boots and all enchants or refines will be lost if you fail this.^000000\r"
"Still want to risk it?");
- next;
+ next();
if (select("Cancel", "I am ok with it!") == 1) {
mes("[Hugin's Craftsman]");
mes("Ok, come back anytime you want.");
- close;
+ close();
}
mes("[Hugin's Craftsman]");
mes("Once again, ^FF0000That Magic Master won't enchant any item with a slot.^000000\r"
- "Still want to proceed?");
- next;
+ "Still want to proceed?");
+ next();
if (select("Cancel", "I understand. Try to slot it.") == 1) {
mes("[Hugin's Craftsman]");
mes("Ok, come back anytime you want.");
- close;
+ close();
}
mes("[Hugin's Craftsman]");
mes("Then my last question:\r"
- "Which item are you gonna use to pay me?");
- next;
- setarray .@slotpay[0], Temporal_Crystal, Corrupted_Charm;
- setarray .@slotcost[0], 10, 50;
- setarray .@slotchance[0], 80, 65; // Custom rates
+ "Which item are you gonna use to pay me?");
+ next();
+ setarray(.@slotpay[0], Temporal_Crystal, Corrupted_Charm);
+ setarray(.@slotcost[0], 10, 50);
+ setarray(.@slotchance[0], 80, 65); // Custom rates
.@select = select("Cancel", "Temporal Crystal", "Contaminated Magic");
switch (.@select) {
case 1:
mes("[Hugin's Craftsman]");
mes("Come back anytime you want.");
- close;
+ close();
case 2:
case 3:
- .@item = .@slotpay[.@select-2];
- .@cost = .@slotcost[.@select-2];
- .@chance = .@slotchance[.@select-2];
+ .@item = .@slotpay[.@select - 2];
+ .@cost = .@slotcost[.@select - 2];
+ .@chance = .@slotchance[.@select - 2];
if (countitem(.@item) < .@cost) {
mes("[Hugin's Craftsman]");
mesf("Requires ^FF0000%d^000000 ^0000FF%s^000000.", .@cost, getitemname(.@item));
- close;
+ close();
}
}
.@random = rand(1, 100);
@@ -2652,34 +2702,33 @@ glast_01,210,270,0 script Hugin's Craftsman 4_F_JOB_BLACKSMITH,{
mes("[Hugin's Craftsman]");
mes("Arrggg, we failed. Better luck next time.");
specialeffect(EF_PHARMACY_FAIL, AREA, playerattached());
- delitem .@item, .@cost;
- delequip .@part;
- close;
+ delitem(.@item, .@cost);
+ delequip(.@part);
+ close();
}
mes("[Hugin's Craftsman]");
mesf("Yuhuu~ we succeed. There you go... A slot has been added to your ^FF0000%s^000000. Thank you for believing in me.", getitemname(.@equip_id));
- delitem .@item, .@cost;
+ delitem(.@item, .@cost);
specialeffect(EF_PHARMACY_OK, AREA, playerattached());
- delequip .@part;
+ delequip(.@part);
// todo: read aegis name and attach "_" to worn constant
- if (.@equip_id == Temporal_Str_Boots) {
- getitem2 Temporal_Str_Boots_, 1, 1, 0, 0, 0, 0, 0, 0;
- } else if (.@equip_id == Temporal_Int_Boots) {
- getitem2 Temporal_Int_Boots_, 1, 1, 0, 0, 0, 0, 0, 0;
- } else if (.@equip_id == Temporal_Agi_Boots) {
- getitem2 Temporal_Agi_Boots_, 1, 1, 0, 0, 0, 0, .0, 0;
- } else if (.@equip_id == Temporal_Vit_Boots) {
- getitem2 Temporal_Vit_Boots_, 1, 1, 0, 0, 0, 0, 0, 0;
- } else if (.@equip_id == Temporal_Dex_Boots) {
- getitem2 Temporal_Dex_Boots_, 1, 1, 0, 0, 0, 0, 0, 0;
- } else if (.@equip_id == Temporal_Luk_Boots) {
- getitem2 Temporal_Luk_Boots_, 1, 1, 0, 0, 0, 0, 0, 0;
- }
- close;
+ if (.@equip_id == Temporal_Str_Boots)
+ getitem2(Temporal_Str_Boots_, 1, 1, 0, 0, 0, 0, 0, 0);
+ else if (.@equip_id == Temporal_Int_Boots)
+ getitem2(Temporal_Int_Boots_, 1, 1, 0, 0, 0, 0, 0, 0);
+ else if (.@equip_id == Temporal_Agi_Boots)
+ getitem2(Temporal_Agi_Boots_, 1, 1, 0, 0, 0, 0, .0, 0);
+ else if (.@equip_id == Temporal_Vit_Boots)
+ getitem2(Temporal_Vit_Boots_, 1, 1, 0, 0, 0, 0, 0, 0);
+ else if (.@equip_id == Temporal_Dex_Boots)
+ getitem2(Temporal_Dex_Boots_, 1, 1, 0, 0, 0, 0, 0, 0);
+ else if (.@equip_id == Temporal_Luk_Boots)
+ getitem2(Temporal_Luk_Boots_, 1, 1, 0, 0, 0, 0, 0, 0);
+ close();
default:
mes("[Hugin's Craftsman]");
mes("This is not it! We need ^FF0000Advanced Temporal Boots^000000! The item ^0000FFwith a stat effect and without a slot^000000!");
- close;
+ close();
}
}
@@ -2688,67 +2737,67 @@ glast_01,210,270,0 script Hugin's Craftsman 4_F_JOB_BLACKSMITH,{
// Khalitzburg Knight Card cost 100 red coagulated spells or 5000 blue coagulated spells
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
glast_01,188,273,5 script White Knight#1a 4_WHITEKNIGHT,{
- disable_items;
+ disable_items();
mes("[White Knight]"); // custom
if (MaxWeight - Weight < 1000) {
mes("Your bag is too heavy. Reduce some weight and come back.");
- close;
+ close();
}
mes("I exchange you a White Knight Card for ^0000FF3000 Coagulated Spell^000000 or ^FF000070 Contaminated Magic^000000.");
mes("<ITEMLINK>White Knight Card<INFO>4608</INFO></ITEMLINK>");
- next;
- setarray .@item[0], Coagulated_Spell, Corrupted_Charm;
- setarray .@cost[0], 3000, 70;
+ next();
+ setarray(.@item[0], Coagulated_Spell, Corrupted_Charm);
+ setarray(.@cost[0], 3000, 70);
.@select = select("Cancel", "^0000FFUse Coagulated Spell^000000", "^FF0000Use Contaminated Magic^000000");
switch (.@select) {
case 1:
mes("[White Knight]");
mes("Come back any time.");
- close;
+ close();
case 2:
case 3:
- .@item = .@item[.@select-2];
- .@cost = .@cost[.@select-2];
+ .@item = .@item[.@select - 2];
+ .@cost = .@cost[.@select - 2];
if (countitem(.@item) < .@cost) {
mes("[White Knight]");
mesf("Requires ^0000FF%d %s^000000.", .@cost, getitemname(.@item));
- close;
+ close();
}
- delitem .@item, .@cost;
- getitem White_Knightage_Card, 1;
- close;
+ delitem(.@item, .@cost);
+ getitem(White_Knightage_Card, 1);
+ close();
}
}
glast_01,192,273,3 script Khalitzburg Knight#1a 4_F_KHALITZBURG,{
- disable_items;
+ disable_items();
mes("[Khalitzburg Knight]"); // custom
if (MaxWeight - Weight < 1000) {
mes("Your bag is too heavy. Reduce some weight and come back.");
- close;
+ close();
}
mes("I exchange you a Khalitzburg Knight Card for ^0000FF5000 Coagulated Spell^000000 or ^FF0000100 Contaminated Magic^000000.");
mes("<ITEMLINK>Khalitzburg Knight Card<INFO>4609</INFO></ITEMLINK>");
- next;
- setarray .@item[0], Coagulated_Spell, Corrupted_Charm;
- setarray .@cost[0], 5000, 100;
+ next();
+ setarray(.@item[0], Coagulated_Spell, Corrupted_Charm);
+ setarray(.@cost[0], 5000, 100);
.@select = select("Cancel", "^0000FFUse Coagulated Spell^000000", "^FF0000Use Contaminated Magic^000000");
switch (.@select) {
case 1:
mes("[Khalitzburg Knight]");
mes("Come back any time.");
- close;
+ close();
case 2:
case 3:
- .@item = .@item[.@select-2];
- .@cost = .@cost[.@select-2];
+ .@item = .@item[.@select - 2];
+ .@cost = .@cost[.@select - 2];
if (countitem(.@item) < .@cost) {
mes("[Khalitzburg Knight]");
mesf("Requires ^0000FF%d %s^000000.", .@cost, getitemname(.@item));
- close;
+ close();
}
- delitem .@item, .@cost;
- getitem Khali_Knightage_Card, 1;
- close;
+ delitem(.@item, .@cost);
+ getitem(Khali_Knightage_Card, 1);
+ close();
}
}
diff --git a/npc/re/instances/ghost_palace.txt b/npc/re/instances/ghost_palace.txt
index 6e77db2f8..e4ca12f99 100644
--- a/npc/re/instances/ghost_palace.txt
+++ b/npc/re/instances/ghost_palace.txt
@@ -35,7 +35,7 @@ dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
if (BaseLevel < 120) {
mes("[Unpleasent Royal Guard]");
mes("Althought I need help with a task, you are not strong enough to assist me, noob~!");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("Come back after when you have done some training and are at least level 120!");
close();
@@ -50,7 +50,7 @@ dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
mes("[Unpleasent Royal Guard]");
mes("Did the gate close?\r"
"Please enter the gate as soon as you can next time.");
- erasequest 1260;
+ erasequest(1260);
close();
}
mes("[Unpleasent Royal Guard]");
@@ -64,7 +64,7 @@ dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
mes("This is a solo instance. Please form a solo party before continuing.");
close();
}
- if (getcharid(CHAR_ID_CHAR) != getpartyleader(.@party_id,2)) {
+ if (getcharid(CHAR_ID_CHAR) != getpartyleader(.@party_id, 2)) {
mes("[Unpleasent Royal Guard]");
mes("I'm looking for adventurers to help me!\r"
"I want to talk to the team leader, can I?");
@@ -72,25 +72,25 @@ dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
}
mes("[Unpleasent Royal Guard]");
mes("I need some help, even from the likes of you.");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("In the middle of the battle the princess disappeared while I was guarding the palace.");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("You run ahead and i will catch up.\r"
"We must save her.");
- next;
+ next();
if (select("I will help.", "This is not a good time.") == 2) {
mes("[Unpleasent Royal Guard]");
mes("Even now all the royal guards are fighting and dying to the monsters.");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("We must save the princess no matter how much fear grips our hearts!");
close();
}
- .@instance = instance_create("Ghost Palace", .@party_id);
+ .@instance = instance_create(_("Ghost Palace"), .@party_id);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Ghost Palace";
+ .@md_name$ = _("Ghost Palace");
if (.@instance < 0) {
mesf("Party Name: %s", .@p_name$);
mesf("Party Leader: %s", strcharinfo(PC_NAME));
@@ -100,7 +100,8 @@ dali02,44,129,5 script Unpleasent Royal Guard 4_M_SAKRAYROYAL,{
if (instance_attachmap("1@spa", .@instance) != "") {
instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
- if (!questprogress(1260)) setquest 1260;
+ if (!questprogress(1260))
+ setquest(1260);
mes("[Unpleasent Royal Guard]");
mes("Thank You..\r"
"I will open the secret passage to ^0000FFGhost Palace.^000000\r"
@@ -117,23 +118,23 @@ dali02,41,134,0 script Interdimensional Device::gpportal PORTAL,{
if (BaseLevel < 120) {
mes("[Unpleasent Royal Guard]");
mes("Althought I need help with a task, you are not strong enough to assist me, noob~!");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("Come back after when you have done some training and are at least level 120!");
close();
}
if (questprogress(1261)) {
if (questprogress(1261, PLAYTIME) == 2) {
- erasequest 1261;
+ erasequest(1261);
if (questprogress(1260))
- erasequest 1260;
+ erasequest(1260);
end;
}
mes("[Unpleasent Royal Guard]");
mes("The monsters that attacked the palace are wandering around the secret entrance. It would be very bad if they spotted us... Please wait until the time limit for re-entrance passed.");
close();
}
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id,2) && !questprogress(1260)) {
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2) && !questprogress(1260)) {
mes("[Unpleasent Royal Guard]");
mes("I'm looking for adventurers to help me!\r"
"I want to talk to the team leader, can I?");
@@ -141,11 +142,11 @@ dali02,41,134,0 script Interdimensional Device::gpportal PORTAL,{
}
mes("[Unpleasent Royal Guard]");
mes("I can see the secret passage into the Palace... Are you ready to save the princess?!");
- next;
+ next();
if (select("Enter", "Stop") == 2) {
mes("[Unpleasent Royal Guard]");
mes("Even now all the royal guards are fighting and dying to the monsters.");
- next;
+ next();
mes("[Unpleasent Royal Guard]");
mes("We must save the princess no matter how much fear grips our hearts!");
close();
@@ -155,8 +156,9 @@ dali02,41,134,0 script Interdimensional Device::gpportal PORTAL,{
close();
}
mapannounce("dali", sprintf(_$("%s of the party, %s, is entering the Ghost Palace."), strcharinfo(PC_NAME), getpartyname(getcharid(CHAR_ID_PARTY))), bc_map, C_SPRINGGREEN);
- if (!questprogress(1260)) setquest 1260;
- setquest 1261;
+ if (!questprogress(1260))
+ setquest(1260);
+ setquest(1261);
warp("1@spa", 198, 188);
close();
}
@@ -165,35 +167,35 @@ dali02,41,134,0 script Interdimensional Device::gpportal PORTAL,{
mes("[King]");
mes("You are hereby appointed as the personal guard to Princess Tiara. I trust your loyalty above all else.");
npctalk(_("You are hereby appointed as the personal guard to Princess Tiara. I trust your loyalty above all else."), instance_npcname("King#gp1"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("I will protect the Princess with my life.");
npctalk(_("I will protect the Princess with my life."), instance_npcname("Lurid Royal Guard#gp1"));
- next;
+ next();
mes("[King]");
mes("The marriage arrangements are going as planned. The prince is here to meet the princess.");
npctalk(_("The marriage arrangements are going as planned. The prince is here to meet the princess."), instance_npcname("King#gp1"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("...Yes, your majesty.");
npctalk(_("...Yes, your majesty."), instance_npcname("Lurid Royal Guard#gp1"));
- next;
+ next();
mes("[King]");
mes("My gods, there are monsters in the castle! Get rid of them now!");
npctalk(_("My gods, there are monsters in the castle! Get rid of them now!"), instance_npcname("King#gp1"));
close2();
- donpcevent instance_npcname("#gp1control")+"::OnStart";
+ donpcevent(instance_npcname("#gp1control")+"::OnStart");
end;
}
1@spa,1,1,1 script #gp1control HIDDEN_NPC,{
end;
OnStart:
- hideonnpc instance_npcname("Lurid Royal Guard#gp1");
- hideonnpc instance_npcname("King#gp1");
- sleep 1000;
+ hideonnpc(instance_npcname("Lurid Royal Guard#gp1"));
+ hideonnpc(instance_npcname("King#gp1"));
+ sleep(1000);
OnSummon:
- sleep 2000;
+ sleep(2000);
.@map$ = instance_mapname("1@spa");
areamonster(.@map$, 182, 190, 214, 214, _("Cursed Sentinel"), CURSED_SENTINEL, 2, instance_npcname("#gp1control")+"::OnMyMobDead");
areamonster(.@map$, 182, 190, 214, 214, _("Cursed Solider"), CURSED_SOLDIER, 2, instance_npcname("#gp1control")+"::OnMyMobDead");
@@ -203,16 +205,16 @@ OnMyMobDead:
end;
if ('gp1 < 2) {
++'gp1;
- donpcevent instance_npcname("#gp1control")+"::OnSummon";
+ donpcevent(instance_npcname("#gp1control")+"::OnSummon");
end;
}
mapannounce(instance_mapname("1@spa"), _("The passage on 2nd floor in the palace of the ghost is open."), bc_map, C_YELLOW);
- enablenpc instance_npcname("#gp1warp");
- disablenpc instance_npcname("#gp1control");
+ enablenpc(instance_npcname("#gp1warp"));
+ disablenpc(instance_npcname("#gp1control"));
end;
OnInstanceInit:
'gp1 = 0;
- disablenpc instance_npcname("#gp1warp");
+ disablenpc(instance_npcname("#gp1warp"));
end;
}
@@ -221,53 +223,53 @@ OnInstanceInit:
mes("[Lurid Royal Guard]");
mes("Your Highness, the King has invited a prince from a neighboring country to be your betrothed. Be ready to meet him...");
npctalk(_("Your Highness, the King has invited a prince from a neighboring country to be your betrothed. Be ready to meet him..."), instance_npcname("Lurid Royal Guard#gp2"));
- next;
+ next();
mes("[Princess Tiara]");
mes("If...if a marriage is arranged what should I do ?");
npctalk(_("If...if a marriage is arranged what should I do ?"), instance_npcname("Tiara Princess#gp2"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("The only thing I can do is protect you from physical harm.");
npctalk(_("The only thing I can do is protect you from physical harm."), instance_npcname("Lurid Royal Guard#gp2"));
- next;
+ next();
mes("[Princess Tiara]");
mes("Then, what can I do?");
npctalk(_("Then, what can I do?"), instance_npcname("Tiara Princess#gp2"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("......");
mes("You must decide that for yourself your highness...");
npctalk(_("You must decide that for yourself your highness..."), instance_npcname("Lurid Royal Guard#gp2"));
- next;
+ next();
mes("[Princess Tiara]");
mes("Would it be easier for you if I were married and sent off to another country?");
npctalk(_("Would it be easier for you if I were married and sent off to another country?"), instance_npcname("Tiara Princess#gp2"));
- next;
+ next();
cutin("", 255);
mes("[Lurid Royal Guard]");
mes("I will alway stand by you and protect you forever.");
npctalk(_("I will alway stand by you and protect you forever."), instance_npcname("Lurid Royal Guard#gp2"));
- next;
+ next();
mes("[Princess Tiara]");
mes("Monsters in the castle? Protect me!");
npctalk(_("Monsters in the castle? Protect me!"), instance_npcname("Tiara Princess#gp2"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("Step back, Let's go!");
npctalk(_("Step back, Let's go!"), instance_npcname("Lurid Royal Guard#gp2"));
close2();
- donpcevent instance_npcname("#gp2control")+"::OnStart";
+ donpcevent(instance_npcname("#gp2control")+"::OnStart");
end;
}
1@spa,1,1,1 script #gp2control HIDDEN_NPC,{
end;
OnStart:
- hideonnpc instance_npcname("Lurid Royal Guard#gp2");
- hideonnpc instance_npcname("Tiara Princess#gp2");
- sleep 1000;
+ hideonnpc(instance_npcname("Lurid Royal Guard#gp2"));
+ hideonnpc(instance_npcname("Tiara Princess#gp2"));
+ sleep(1000);
OnSummon:
- sleep 2000;
+ sleep(2000);
.@map$ = instance_mapname("1@spa");
areamonster(.@map$, 143, 96, 94, 143, _("Broken Mind"), BROKEN_MIND, 3, instance_npcname("#gp2control")+"::OnMyMobDead");
areamonster(.@map$, 143, 96, 94, 143, _("Floating Word"), FLOATING_WORD, 4, instance_npcname("#gp2control")+"::OnMyMobDead");
@@ -277,11 +279,11 @@ OnMyMobDead:
if (mobcount(instance_mapname("1@spa"), instance_npcname("#gp2control")+"::OnMyMobDead"))
end;
mapannounce(instance_mapname("1@spa"), _("The passage on the 3rd floor of the palace is open."), bc_map, C_YELLOW);
- enablenpc instance_npcname("#gp2warp");
- disablenpc instance_npcname("#gp2control");
+ enablenpc(instance_npcname("#gp2warp"));
+ disablenpc(instance_npcname("#gp2control"));
end;
OnInstanceInit:
- disablenpc instance_npcname("#gp2warp");
+ disablenpc(instance_npcname("#gp2warp"));
end;
}
@@ -289,29 +291,29 @@ OnInstanceInit:
mes("[King]");
mes("It was you who brought the monsters here, you want to get rid of me and have the princess for yourself?");
npctalk(_("It was you who brought the monsters here, you want to get rid of me and have the princess for yourself?"), instance_npcname("King#gp3"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("It's a trap, you should trust me, your majesty!");
npctalk(_("It's a trap, you should trust me, your majesty!"), instance_npcname("Lurid Royal Guard#gp3"));
- next;
+ next();
mes("[King]");
mes("Shut up! You're betrayed me ! I trusted you... you must pay for your disgrace.");
npctalk(_("Shut up! You're betrayed me ! I trusted you... you must pay for your disgrace."), instance_npcname("King#gp3"));
- next;
+ next();
mes("[King]");
mes("You will suffer for the rest of your life.");
npctalk(_("You will suffer for the rest of your life."), instance_npcname("King#gp3"));
close2();
- donpcevent instance_npcname("#gp3control")+"::OnStart";
+ donpcevent(instance_npcname("#gp3control")+"::OnStart");
end;
}
1@spa,54,28,0 script #gp3warp WARPNPC,1,1,{
- if (!'gp5)
+ if (!'gp5) {
warp("1@spa", 218, 186);
- else {
+ } else {
if (questprogress(40024))
- completequest 40024;
+ completequest(40024);
mes("It is time to leave Palace of the ghost.\r"
"Everything is completed.\r"
"Everything will be vanished...");
@@ -332,7 +334,7 @@ OnInstanceInit:
1@spa,35,56,1 script Ominous Voice#gp3 4_TRACE,{
end;
OnStart:
- initnpctimer;
+ initnpctimer();
end;
OnTimer3000:
npctalk(_("Oh, faithful royal guard, you are trapped."));
@@ -356,32 +358,32 @@ OnTimer21000:
npctalk(_("Kukuku... What do you want boy?"));
end;
OnTimer24000:
- stopnpctimer;
- hideonnpc instance_npcname("Ominous Voice#gp3");
- hideonnpc instance_npcname("Lurid Royal Guard#gp3");
- donpcevent instance_npcname("#gp3control")+"::OnSummon";
+ stopnpctimer();
+ hideonnpc(instance_npcname("Ominous Voice#gp3"));
+ hideonnpc(instance_npcname("Lurid Royal Guard#gp3"));
+ donpcevent(instance_npcname("#gp3control")+"::OnSummon");
end;
}
1@spa,1,1,1 script #gp3control HIDDEN_NPC,{
end;
OnStart:
- hideonnpc instance_npcname("King#gp3");
- hideonnpc instance_npcname("Soldier#gp3_1");
- hideonnpc instance_npcname("Soldier#gp3_2");
- hideonnpc instance_npcname("Soldier#gp3_3");
- hideonnpc instance_npcname("Captain of the Guard#gp3");
- donpcevent instance_npcname("Ominous Voice#gp3")+"::OnStart";
+ hideonnpc(instance_npcname("King#gp3"));
+ hideonnpc(instance_npcname("Soldier#gp3_1"));
+ hideonnpc(instance_npcname("Soldier#gp3_2"));
+ hideonnpc(instance_npcname("Soldier#gp3_3"));
+ hideonnpc(instance_npcname("Captain of the Guard#gp3"));
+ donpcevent(instance_npcname("Ominous Voice#gp3")+"::OnStart");
end;
OnSummon:
- initnpctimer;
+ initnpctimer();
.@map$ = instance_mapname("1@spa");
'talkid[0] = areamonster(.@map$, 61, 63, 24, 24, _("Cursed Memory"), CURSED_MEMORY, 2 + 'gp3, instance_npcname("#gp3control")+"::OnMyMobDead");
'talkid[1] = areamonster(.@map$, 61, 63, 24, 24, _("Colorless Vow"), COLORLESS_VOW, 3 + 'gp3, instance_npcname("#gp3control")+"::OnMyMobDead");
'talkid[2] = areamonster(.@map$, 61, 63, 24, 24, _("Old Friendship"), OLD_FRIENDSHIP, 2 + 'gp3, instance_npcname("#gp3control")+"::OnMyMobDead");
end;
OnTimer2000:
- stopnpctimer;
+ stopnpctimer();
unittalk('talkid[0], _("Faithful Guards"));
unittalk('talkid[1], _("Run!"));
unittalk('talkid[2], _("Being framed..."));
@@ -390,21 +392,21 @@ OnMyMobDead:
if (mobcount(instance_mapname("1@spa"), instance_npcname("#gp3control")+"::OnMyMobDead"))
end;
if (!'gp3) {
- mapannounce instance_mapname("1@spa"), "The passage on the 4rd floor of the palace is open.", bc_map, C_YELLOW;
- enablenpc instance_npcname("#gp3warp");
- donpcevent instance_npcname("#gp4control")+"::OnSummon";
- disablenpc instance_npcname("#gp1warp");
+ mapannounce(instance_mapname("1@spa"), _("The passage on the 4rd floor of the palace is open."), bc_map, C_YELLOW);
+ enablenpc(instance_npcname("#gp3warp"));
+ donpcevent(instance_npcname("#gp4control")+"::OnSummon");
+ disablenpc(instance_npcname("#gp1warp"));
}
++'gp3;
- if ('gp3 < 5)
- donpcevent instance_npcname("#gp3control")+"::OnSummon";
- else {
- stopnpctimer;
- disablenpc instance_npcname("#gp3control");
+ if ('gp3 < 5) {
+ donpcevent(instance_npcname("#gp3control")+"::OnSummon");
+ } else {
+ stopnpctimer();
+ disablenpc(instance_npcname("#gp3control"));
}
end;
OnInstanceInit:
- disablenpc instance_npcname("#gp3warp");
+ disablenpc(instance_npcname("#gp3warp"));
'gp3 = 0;
end;
}
@@ -413,26 +415,26 @@ OnInstanceInit:
mes("[Lurid Royal Guard]");
mes("Where is Princess Tiara?");
npctalk(_("Where is Princess Tiara?"), instance_npcname("Lurid Royal Guard#gp4"));
- next;
+ next();
mes("[Visiting Prince]");
mes("You are too late... but you brought what I was looking for. Thanks for your help.");
npctalk(_("You are too late... but you brought what I was looking for. Thanks for your help."), instance_npcname("Visiting Prince#gp4"));
- next;
+ next();
mes("[Visiting Prince]");
mes("Cursed Thanatos Magic Trace! Are you ready to have a new master?");
npctalk(_("Cursed Thanatos Magic Trace! Are you ready to have a new master?"), instance_npcname("Visiting Prince#gp4"));
- next;
+ next();
cutin("tartanos", 3);
mes("[Thanatos Magic Trace]");
mes("How dare you!");
npctalk(_("How dare you!"), instance_npcname("Thanatos Magic Trace#gp4"));
- next;
+ next();
mes("[Visiting Prince]");
mes("Aah, aah!!!");
npctalk(_("Aah, aah!!!"), instance_npcname("Visiting Prince#gp4"));
close2();
cutin("", 255);
- donpcevent instance_npcname("#gp4control")+"::OnBoss";
+ donpcevent(instance_npcname("#gp4control")+"::OnBoss");
end;
}
@@ -442,56 +444,56 @@ OnStart:
end;
OnSummon:
.@map$ = instance_mapname("1@spa");
- areamonster(.@map$, 182, 217, 214, 188, _("Cursed Sentinel"), CURSED_SENTINEL, rand(2,3), instance_npcname("#gp4control")+"::OnMyMobDead");
- areamonster(.@map$, 182, 217, 214, 188, _("Sweet Slaughter"), SWEET_SLAUGHTER, rand(2,3), instance_npcname("#gp4control")+"::OnMyMobDead");
+ areamonster(.@map$, 182, 217, 214, 188, _("Cursed Sentinel"), CURSED_SENTINEL, rand(2, 3), instance_npcname("#gp4control")+"::OnMyMobDead");
+ areamonster(.@map$, 182, 217, 214, 188, _("Sweet Slaughter"), SWEET_SLAUGHTER, rand(2, 3), instance_npcname("#gp4control")+"::OnMyMobDead");
end;
OnMyMobDead:
if (mobcount(instance_mapname("1@spa"), instance_npcname("#gp4control")+"::OnMyMobDead"))
end;
++'gp4;
if ('gp4 > 3)
- donpcevent instance_npcname("#gp4control")+"::OnStory";
+ donpcevent(instance_npcname("#gp4control")+"::OnStory");
else
- donpcevent instance_npcname("#gp4control")+"::OnSummon";
+ donpcevent(instance_npcname("#gp4control")+"::OnSummon");
end;
OnStory:
for(.@i = 1; .@i <= 4; ++.@i)
- enablenpc instance_npcname("Soldier's Corpse#gp4_"+.@i);
- enablenpc instance_npcname("Captain's Corpse#gp4");
- enablenpc instance_npcname("King's Corpse#gp4");
- enablenpc instance_npcname("Lurid Royal Guard#gp4");
- enablenpc instance_npcname("Thanatos Magic Trace#gp4");
- enablenpc instance_npcname("Visiting Prince#gp4");
+ enablenpc(instance_npcname("Soldier's Corpse#gp4_"+.@i));
+ enablenpc(instance_npcname("Captain's Corpse#gp4"));
+ enablenpc(instance_npcname("King's Corpse#gp4"));
+ enablenpc(instance_npcname("Lurid Royal Guard#gp4"));
+ enablenpc(instance_npcname("Thanatos Magic Trace#gp4"));
+ enablenpc(instance_npcname("Visiting Prince#gp4"));
end;
OnBoss:
for(.@i = 1; .@i <= 4; ++.@i)
- hideonnpc instance_npcname("Soldier's Corpse#gp4_"+.@i);
- hideonnpc instance_npcname("Captain's Corpse#gp4");
- hideonnpc instance_npcname("King's Corpse#gp4");
- hideonnpc instance_npcname("Lurid Royal Guard#gp4");
- hideonnpc instance_npcname("Thanatos Magic Trace#gp4");
- hideonnpc instance_npcname("Visiting Prince#gp4");
- sleep 1000;
+ hideonnpc(instance_npcname("Soldier's Corpse#gp4_"+.@i));
+ hideonnpc(instance_npcname("Captain's Corpse#gp4"));
+ hideonnpc(instance_npcname("King's Corpse#gp4"));
+ hideonnpc(instance_npcname("Lurid Royal Guard#gp4"));
+ hideonnpc(instance_npcname("Thanatos Magic Trace#gp4"));
+ hideonnpc(instance_npcname("Visiting Prince#gp4"));
+ sleep(1000);
monster(instance_mapname("1@spa"), 197, 218, _("Torturous Redeemer"), TORTUROUS_REDEEMER, 1, instance_npcname("#gp4control")+"::OnBossDead");
end;
OnBossDead:
monster(instance_mapname("1@spa"), 197, 180, _("Sweet Slaughter"), SWEET_SLAUGHTER, 1, instance_npcname("#gp4control")+"::OnMobDead");
end;
OnMobDead:
- mapannounce instance_mapname("1@spa"), "The passage on the 5th floor of the palace is open.", bc_map, C_YELLOW;
- enablenpc instance_npcname("#gp4warp");
- donpcevent instance_npcname("#gp5control")+"::OnStart";
- disablenpc instance_npcname("#gp4control");
+ mapannounce(instance_mapname("1@spa"), _("The passage on the 5th floor of the palace is open."), bc_map, C_YELLOW);
+ enablenpc(instance_npcname("#gp4warp"));
+ donpcevent(instance_npcname("#gp5control")+"::OnStart");
+ disablenpc(instance_npcname("#gp4control"));
end;
OnInstanceInit:
- disablenpc instance_npcname("#gp4warp");
+ disablenpc(instance_npcname("#gp4warp"));
for(.@i = 1; .@i <= 4; ++.@i)
- disablenpc instance_npcname("Soldier's Corpse#gp4_"+.@i);
- disablenpc instance_npcname("Captain's Corpse#gp4");
- disablenpc instance_npcname("King's Corpse#gp4");
- disablenpc instance_npcname("Lurid Royal Guard#gp4");
- disablenpc instance_npcname("Thanatos Magic Trace#gp4");
- disablenpc instance_npcname("Visiting Prince#gp4");
+ disablenpc(instance_npcname("Soldier's Corpse#gp4_"+.@i));
+ disablenpc(instance_npcname("Captain's Corpse#gp4"));
+ disablenpc(instance_npcname("King's Corpse#gp4"));
+ disablenpc(instance_npcname("Lurid Royal Guard#gp4"));
+ disablenpc(instance_npcname("Thanatos Magic Trace#gp4"));
+ disablenpc(instance_npcname("Visiting Prince#gp4"));
'gp4 = 0;
end;
}
@@ -500,35 +502,35 @@ OnInstanceInit:
mes("[Princess Tiara]");
mes("You kept your promise.");
npctalk(_("You kept your promise."), instance_npcname("Tiara Princess#gp5"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("princess!");
npctalk(_("princess"), instance_npcname("Lurid Royal Guard#gp5"));
- next;
+ next();
cutin("npc-tiara", 3);
mes("[Princess Tiara]");
mes("Thank you..now I can rest at beside you...");
npctalk(_("Thank you..now I can rest at beside you..."), instance_npcname("Tiara Princess#gp5"));
- next;
+ next();
mes("[Lurid Royal Guard]");
mes("No..NO!!!!!!");
npctalk(_("No..NO!!!!!!"), instance_npcname("Lurid Royal Guard#gp5"));
- next;
+ next();
mes("[The Voice of Princess Tiara]");
mes("I want to be with you forever in peace...forever...");
npctalk(_("I want to be with you forever in peace...forever..."), instance_npcname("Tiara Princess#gp5"));
- next;
+ next();
cutin("b-tiara", 3);
mes("[Lurid Royal Guard]");
mes("no.....Ahh ahh ahh!!!~!");
npctalk(_("no.....Ahh ahh ahh!!!~!"), instance_npcname("Lurid Royal Guard#gp5"));
- next;
+ next();
mes("[The Voice of Princess Tiara]");
mes("I love you...");
npctalk(_("I love you..."), instance_npcname("Tiara Princess#gp5"));
close2();
cutin("", 255);
- donpcevent instance_npcname("#gp5control")+"::OnStart2";
+ donpcevent(instance_npcname("#gp5control")+"::OnStart2");
end;
}
@@ -537,63 +539,63 @@ OnInstanceInit:
mes("[Lurid Royal Guard]");
mes("Are you satisfied..? Thanatos Magic Trace?");
npctalk(_("Are you satisfied..? Thanatos Magic Trace?"), instance_npcname("Sakray#gp5"));
- next;
+ next();
mes("[Thanatos Magic Trace]");
mes("I need more blood..Sakray, offer me his blood.");
npctalk(_("I need more blood..Sakray, offer me his blood."), instance_npcname("Thanatos Magic Trace#gp5"));
- next;
+ next();
mes("[Sakray]");
mes("Okay, that is good. A traveler.\r"
"Did you see?");
npctalk(_("Okay, that is good. A traveler. Did you see?"), instance_npcname("Sakray#gp5"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("Sakray, What do you want sympathy? Or is it a trap?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Sakray, What do you want sympathy? Or is it a trap?"));
- next;
+ next();
mes("[Sakray]");
mes("Non...I did not need to make an effort to catch a novice.");
npctalk(_("Non...I did not need to make an effort to catch a novice."), instance_npcname("Sakray#gp5"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("If so... then why...?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("If so... then why...?"));
- next;
+ next();
cutin("cry-b", 3);
mes("[Sakray]");
mes("I wanted to get rid of a piece of humanity inside of me through you.");
npctalk(_("I wanted to get rid of a piece of humanity inside of me through you."), instance_npcname("Sakray#gp5"));
- next;
+ next();
mes("[Sakray]");
mes("I am quite satisfied with the result.");
- next;
+ next();
mes("[Thanatos Magic Trace]");
mes("Sakray, offer the blood to me now!");
npctalk(_("Sakray, offer the blood to me now!"), instance_npcname("Thanatos Magic Trace#gp5"));
- next;
+ next();
mes("[Sakray]");
mes("If you were me, what would you do?");
- next;
+ next();
mes("[Sakray]");
mes("Can you set yourself free from this curse?");
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("...");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("..."));
- next;
+ next();
mes("[Sakray]");
mes("Heh heh... I will keep watching you until the day you grow up enough.");
- next;
+ next();
mes("[Sakray]");
mes("I am willing to hunt you later for Thanatos.");
- next;
+ next();
cutin("", 255);
mes("[Sakray]");
mes("Farewell then.");
close2();
- donpcevent instance_npcname("#gp5control")+"::OnEnd";
- hideonnpc instance_npcname("Sakray#gp5");
- hideonnpc instance_npcname("Thanatos Magic Trace#gp5");
+ donpcevent(instance_npcname("#gp5control")+"::OnEnd");
+ hideonnpc(instance_npcname("Sakray#gp5"));
+ hideonnpc(instance_npcname("Thanatos Magic Trace#gp5"));
end;
}
@@ -601,25 +603,25 @@ OnInstanceInit:
end;
OnStart:
stopnpctimer instance_npcname("#gp3control");
- disablenpc instance_npcname("#gp3control");
- killmonster instance_mapname("1@spa"), "All";
- disablenpc instance_npcname("#gp3warp");
- enablenpc instance_npcname("Lurid Royal Guard#gp5");
- enablenpc instance_npcname("Tiara Princess#gp5");
+ disablenpc(instance_npcname("#gp3control"));
+ killmonster(instance_mapname("1@spa"), "All");
+ disablenpc(instance_npcname("#gp3warp"));
+ enablenpc(instance_npcname("Lurid Royal Guard#gp5"));
+ enablenpc(instance_npcname("Tiara Princess#gp5"));
end;
OnStart2:
- hideonnpc instance_npcname("Lurid Royal Guard#gp5");
- hideonnpc instance_npcname("Tiara Princess#gp5");
- sleep 2000;
+ hideonnpc(instance_npcname("Lurid Royal Guard#gp5"));
+ hideonnpc(instance_npcname("Tiara Princess#gp5"));
+ sleep(2000);
OnSummon:
- initnpctimer;
+ initnpctimer();
.@map$ = instance_mapname("1@spa");
- 'talkid[0] = areamonster(.@map$, 61, 63, 24, 24, _("Forgotten Name"), FORGOTTEN_NAME, rand(1,2), instance_npcname("#gp5control")+"::OnMyMobDead");
+ 'talkid[0] = areamonster(.@map$, 61, 63, 24, 24, _("Forgotten Name"), FORGOTTEN_NAME, rand(1, 2), instance_npcname("#gp5control")+"::OnMyMobDead");
'talkid[1] = areamonster(.@map$, 61, 63, 24, 24, _("Colorless Vow"), COLORLESS_VOW, 2, instance_npcname("#gp5control")+"::OnMyMobDead");
- 'talkid[2] = areamonster(.@map$, 61, 63, 24, 24, _("Sweet Slaughter"), SWEET_SLAUGHTER, rand(1,2), instance_npcname("#gp5control")+"::OnMyMobDead");
+ 'talkid[2] = areamonster(.@map$, 61, 63, 24, 24, _("Sweet Slaughter"), SWEET_SLAUGHTER, rand(1, 2), instance_npcname("#gp5control")+"::OnMyMobDead");
end;
OnTimer2000:
- stopnpctimer;
+ stopnpctimer();
unittalk('talkid[0], _("What is this..??"));
unittalk('talkid[1], _("Wake up! look at us... We are monsters?"));
unittalk('talkid[2], _("Sakray killed the princess!"));
@@ -629,51 +631,51 @@ OnMyMobDead:
end;
++'gp5;
if ('gp5 > 2)
- donpcevent instance_npcname("#gp5control")+"::OnStory";
+ donpcevent(instance_npcname("#gp5control")+"::OnStory");
else
- donpcevent instance_npcname("#gp5control")+"::OnSummon";
+ donpcevent(instance_npcname("#gp5control")+"::OnSummon");
end;
OnBossDead:
- enablenpc instance_npcname("Sakray#gp5");
- enablenpc instance_npcname("Thanatos Magic Trace#gp5");
+ enablenpc(instance_npcname("Sakray#gp5"));
+ enablenpc(instance_npcname("Thanatos Magic Trace#gp5"));
end;
OnStory:
- stopnpctimer;
+ stopnpctimer();
'BossID = monster(instance_mapname("1@spa"), 44, 47, _("Torturous Redeemer"), E_TORTUROUS_REDEEMER, 1, instance_npcname("#gp5control")+"::OnBossDead");
unittalk('BossID, _("Thanatos Magic Trace! I will destroy you if I can't have you... Oh no! How could this be?"));
- sleep 3000;
- unitkill 'BossID;
+ sleep(3000);
+ unitkill('BossID);
end;
OnEnd:
- hideoffnpc instance_npcname("Voice of Princess Tiara");
- hideoffnpc instance_npcname("Voice of Sakray");
- hideoffnpc instance_npcname("Thanatos Magic Trace");
+ hideoffnpc(instance_npcname("Voice of Princess Tiara"));
+ hideoffnpc(instance_npcname("Voice of Sakray"));
+ hideoffnpc(instance_npcname("Thanatos Magic Trace"));
npctalk(_("What can I do for you?"), instance_npcname("Voice of Princess Tiara"));
- sleep 3000;
+ sleep(3000);
npctalk(_("I will always stand by you. Please reset beside me."), instance_npcname("Voice of Sakray"));
- sleep 3000;
+ sleep(3000);
npctalk(_("Your soul is mine until you find the blood that satisfies me.."), instance_npcname("Thanatos Magic Trace"));
- sleep 3000;
+ sleep(3000);
npctalk(_("Reset in the shadow with me."), instance_npcname("Voice of Sakray"));
- sleep 3000;
+ sleep(3000);
npctalk(_("In the dark forever..."), instance_npcname("Voice of Sakray"));
- sleep 3000;
+ sleep(3000);
mapannounce(instance_mapname("1@spa"), _("It is time to leave the Ghost Palace."), bc_map, C_YELLOW);
- enablenpc instance_npcname("King#gpend");
- enablenpc instance_npcname("#gp3warp");
- hideonnpc instance_npcname("Voice of Princess Tiara");
- hideonnpc instance_npcname("Voice of Sakray");
- hideonnpc instance_npcname("Thanatos Magic Trace");
+ enablenpc(instance_npcname("King#gpend"));
+ enablenpc(instance_npcname("#gp3warp"));
+ hideonnpc(instance_npcname("Voice of Princess Tiara"));
+ hideonnpc(instance_npcname("Voice of Sakray"));
+ hideonnpc(instance_npcname("Thanatos Magic Trace"));
end;
OnInstanceInit:
- disablenpc instance_npcname("Lurid Royal Guard#gp5");
- disablenpc instance_npcname("Tiara Princess#gp5");
- disablenpc instance_npcname("Thanatos Magic Trace#gp5");
- disablenpc instance_npcname("Sakray#gp5");
- disablenpc instance_npcname("King#gpend");
- hideonnpc instance_npcname("Voice of Princess Tiara");
- hideonnpc instance_npcname("Voice of Sakray");
- hideonnpc instance_npcname("Thanatos Magic Trace");
+ disablenpc(instance_npcname("Lurid Royal Guard#gp5"));
+ disablenpc(instance_npcname("Tiara Princess#gp5"));
+ disablenpc(instance_npcname("Thanatos Magic Trace#gp5"));
+ disablenpc(instance_npcname("Sakray#gp5"));
+ disablenpc(instance_npcname("King#gpend"));
+ hideonnpc(instance_npcname("Voice of Princess Tiara"));
+ hideonnpc(instance_npcname("Voice of Sakray"));
+ hideonnpc(instance_npcname("Thanatos Magic Trace"));
'gp5 = 0;
end;
}
@@ -682,34 +684,34 @@ OnInstanceInit:
mes("[King]");
mes("Hey there, are you alive?\r"
"I did not expect to meet someone alive");
- next;
+ next();
mes("[King]");
mes("Do you possibly have ^009900Gray Piece^000000?\r"
"Can you give it to me?\r"
"The old memory of faithful royal guard,\r"
"the memory of everyone he loved becomes broken pieces and are contained inside of them.");
- next;
+ next();
mes("[King]");
mes("Will you give ^009900Gray Piece^000000 to me?\r"
"The guilt is eating my soul.\r"
"My soul is stuck in ghost palace.");
- next;
+ next();
mes("[King]");
mes("I am collecting Sakray's abandoned memories from these shards.");
- next;
+ next();
mes("[King]");
mes("If you give any Gray Shards to me, I can make equipment for you.");
- next;
+ next();
mes("[King]");
mes("The cursed knight...\r"
"Please help me save the soul of Sakray.");
- next;
+ next();
setarray(.@items_list,
- Thanos_Sword, Thanos_Great_Sword, Thanos_Spear, Thanos_Long_Spear, Thanos_Staff, Thanos_Rod, Thanos_Bow,
- Thanos_Dagger, Thanos_Katar, Thanos_Knuckle, Thanos_Hammer, Thanos_Axe, Thanos_Violin, Thanos_Whip, Shield_Of_Gray,
- Armor_Of_Gray, Gray_Robe, Cloak_Of_Gray, Boots_Of_Gray, Gray_Helmet);
+ Thanos_Sword, Thanos_Great_Sword, Thanos_Spear, Thanos_Long_Spear, Thanos_Staff, Thanos_Rod, Thanos_Bow,
+ Thanos_Dagger, Thanos_Katar, Thanos_Knuckle, Thanos_Hammer, Thanos_Axe, Thanos_Violin, Thanos_Whip, Shield_Of_Gray,
+ Armor_Of_Gray, Gray_Robe, Cloak_Of_Gray, Boots_Of_Gray, Gray_Helmet);
- setarray .@cost, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 100, 100, 100, 100, 100, 100;
+ setarray(.@cost, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 100, 100, 100, 100, 100, 100);
.@menulist$ = "";
for (.@i = 0; .@i < getarraysize(.@items_list); ++.@i)
.@menulist$ += getitemname(.@items_list[.@i])+":";
@@ -721,19 +723,19 @@ OnInstanceInit:
"I believe collecting Gray Shards is the only method to save him.");
close();
}
- next;
+ next();
mes("[King]");
mesf("to make a ^FF0000%s^000000 \r"
"I need %d ^009900Gray Shard^000000", getitemname(.@items_list[.@choice]), .@cost[.@choice]);
- switch (select("Cancel", "hand over "+.@cost[.@choice]+" Gray Shard.")) {
+ switch (select("Cancel", sprintf(_$("hand over %d Gray Shard."), .@cost[.@choice]))) {
case 1:
- next;
+ next();
mes("[King]");
mes("Someday, Sakray will get out of curse for sure. I believe");
- next;
+ next();
break;
case 2:
- next;
+ next();
if (countitem(Gray_Shard) < .@cost[.@choice]) {
mes("[King]");
mes("You don't have enough Gray Shards.");
@@ -743,20 +745,20 @@ OnInstanceInit:
mes("[King]");
mesf("I will make a ^FF0000%s^000000 \r"
"with %d ^009900Gray Shard^000000", getitemname(.@items_list[.@choice]), .@cost[.@choice]);
- next;
+ next();
mes("[King]");
mes("You see a light through the folded hands of the king and it gradually takes on a shape.");
- next;
+ next();
mes("[King]");
mesf("All right, it is done.\r"
"Take this ^FF0000%s.^000000\r"
"Use it to confront Sakray and Thanatos.", getitemname(.@items_list[.@choice]));
- next;
+ next();
mes("[King]");
mes("The power requires a sacrifice.\r"
"Please be careful...");
delitem(Gray_Shard, .@cost[.@choice]);
- getitem .@items_list[.@choice], 1;
+ getitem(.@items_list[.@choice], 1);
close();
}
}
@@ -766,27 +768,33 @@ OnInstanceInit:
1@spa,198,201,1 script Lurid Royal Guard#gp1 4_M_SAKRAYROYAL,{
end;
}
+
1@spa,197,217,0 warp #gp1warp 1,1,1@spa,114,120
// 2nd floor npc's
1@spa,135,125,3 script Tiara Princess#gp2 4_F_MAYSEL,{
end;
}
+
1@spa,117,137,0 warp #gp2warp 1,1,1@spa,60,43
// 3rd floor npc's
1@spa,30,58,5 script Lurid Royal Guard#gp3 4_M_SAKRAY_TIED,{
end;
}
+
1@spa,28,52,0 script Captain of the Guard#gp3 4_M_KY_KNT,{
end;
}
+
1@spa,30,52,0 script Soldier#gp3_1 4_M_KY_SOLD,{
end;
}
+
1@spa,34,53,1 script Soldier#gp3_2 4_M_CRU_SOLD,{
end;
}
+
1@spa,25,53,0 script Soldier#gp3_3 4_M_CRU_SOLD,{
end;
}
@@ -795,43 +803,54 @@ OnInstanceInit:
1@spa,201,198,1 script Soldier's Corpse#gp4_1 4_M_DIEMAN,{
end;
}
+
1@spa,191,207,0 script Soldier's Corpse#gp4_2 4_M_DIEMAN,{
end;
}
+
1@spa,206,209,0 script Soldier's Corpse#gp4_3 4_M_DIEMAN,{
end;
}
+
1@spa,189,193,0 script Soldier's Corpse#gp4_4 4_M_DIEMAN,{
end;
}
+
1@spa,211,194,4 script Captain's Corpse#gp4 4_M_LIEMAN,{
end;
}
+
1@spa,194,214,5 script King's Corpse#gp4 4_M_TRISTAN,{
end;
}
+
1@spa,197,218,5 script Visiting Prince#gp4 4_M_KNIGHT_SILVER,{
end;
}
+
1@spa,197,218,0 script Thanatos Magic Trace#gp4 HIDDEN_WARP_NPC,{
end;
}
+
1@spa,178,186,0 warp #gp4warp 1,1,1@spa,30,57
// 5th floor npc's
1@spa,60,43,3 script Tiara Princess#gp5 4_F_MAYSEL,{
end;
}
+
1@spa,40,44,0 script Thanatos Magic Trace#gp5 HIDDEN_WARP_NPC,{
end;
}
+
1@spa,40,46,0 script Voice of Princess Tiara CLEAR_NPC,{
end;
}
+
1@spa,42,43,0 script Voice of Sakray CLEAR_NPC,{
end;
}
+
1@spa,40,41,0 script Thanatos Magic Trace CLEAR_NPC,{
end;
}
-
diff --git a/npc/re/instances/octopus_cave.txt b/npc/re/instances/octopus_cave.txt
index b134742c9..e4d8d4357 100644
--- a/npc/re/instances/octopus_cave.txt
+++ b/npc/re/instances/octopus_cave.txt
@@ -37,51 +37,52 @@
mal_dun01,151,235,5 script Starfish 4_ASTER,{
.@party_id = getcharid(CHAR_ID_PARTY);
- .@md_name$ = "Octopus Cave";
+ .@md_name$ = _("Octopus Cave");
if (!.@party_id) {
mes("[Starfish]");
mes("You alone is powerless, hehe! Better get someone to help you out. Make a party, and come back later.");
- close;
+ close();
}
if (getcharid(CHAR_ID_CHAR) != getpartyleader(.@party_id, 2)) {
mes("[Starfish]");
mes("Where is your leader, hehe. I don't talk to some random people. Bring your boss to me.");
- close;
+ close();
}
mes("[Starfish]");
mes("I am guarding here, hehe! It is just roughly blocked for now. But someday this cave must be sealed forever, hehe!");
- next;
- while(1) {
+ next();
+ while (true) {
switch (select("Ask what's going on.", "Ask to open the gate.", "Go to other location.")) {
case 1:
mes("[Starfish]");
mes("Lately, our Starfish lady is suffering with some issues, ooh ooh. Something bad happen in this peaceful place, hehe!");
- next;
+ next();
mes("[Starfish]");
mes("Weird looking limbs came out from the hole there, tried to kidnap our lady Starfish. Ooh Ooh.");
- next;
+ next();
mes("[Starfish]");
mes("It seems those limbs belong to that ugly octopus. That monster should be taken care of,\r"
"but it's hard for ourselves only to make it happen, hehe.");
- next;
+ next();
mes("[Starfish]");
mes("I want to find someone special, and ask to punish this ugly octopus.\r"
"I hope this octopus won't ever harass our lady, hehe.");
- next;
+ next();
mes("[Starfish]");
mes("Go catch that octopus and stick it to this pick. If you bring back the pick,\r"
"I will open this gate for a while. You should challenge if you are interested, hehe.");
- next;
+ next();
break;
case 2:
.@playtime = questprogress(4197, PLAYTIME);
if (.@playtime == 1) {
mes("[Starfish]");
mes("Octopus is not around now, hehe. Please come back later.");
- close;
+ close();
}
- if (.@playtime == 2) erasequest 4197;
+ if (.@playtime == 2)
+ erasequest(4197);
if (countitem(Octopus_Hunt_Stick)) {
.@instance = instance_create(.@md_name$, .@party_id);
if (.@instance < 0) {
@@ -90,12 +91,12 @@ mal_dun01,151,235,5 script Starfish 4_ASTER,{
mesf("Party leader is... %s.", strcharinfo(PC_NAME));
mesf("^0000FF%s^000000, I cannot open now, hehe.", .@md_name$);
mes("Now is not the time, please wait.");
- close;
+ close();
}
if (instance_attachmap("1@cash", .@instance) == "") {
mesf("^0000FF%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
@@ -103,23 +104,23 @@ mal_dun01,151,235,5 script Starfish 4_ASTER,{
mes("[Starfish]");
mesf("I will open the gate for a while to ^0000FF%s^000000.", .@md_name$);
mes("Please catch that pervert octopus, and come back with it sticked to the pick, hehe.");
- close;
+ close();
}
mes("[Starfish]");
mes("Prepare a pick first, so you can thread that octopus with that pick.\r"
"Then, I will let you in for a while, hehe.");
- close;
+ close();
case 3:
mes("[Starfish]");
mes("This is not a good location, check someplace else.");
- close;
+ close();
}
}
}
mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
mes("There is a strange entrance blocked roughly with some boards.");
- next;
+ next();
switch (select("Go in.", "Stop.")) {
case 1:
if (countitem(Octopus_Hunt_Stick)) {
@@ -127,25 +128,26 @@ mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
if (questprogress(4197, PLAYTIME) == 1) {
mes("[Starfish]");
mes("Ah, now is not the time... Would you come back later? Hehe.");
- close;
+ close();
}
mes("[Starfish]");
mes("Shhh... Weird aura is coming from that entrance. Big trouble is waiting, if you go in now.");
- close;
+ close();
}
mapannounce("mal_dun01", sprintf(_$("%s party's %s member started to hunt the Octopus!"), getpartyname(getcharid(CHAR_ID_PARTY)), strcharinfo(PC_NAME)), bc_map, C_SPRINGGREEN);
- if (!questprogress(4197)) setquest 4197;
- warp "1@cash", 199, 99;
+ if (!questprogress(4197))
+ setquest(4197);
+ warp("1@cash", 199, 99);
end;
}
mes("[Starfish]");
mes("You should definitely prepare hunting stick if you want to punish the Octopus. Or I will not let you in! Hehe.");
- close;
+ close();
case 2:
mes("[Starfish]");
mes("Yes Yes, you better quit.");
- close;
+ close();
}
}
@@ -153,25 +155,25 @@ mal_dun01,153,237,5 script Weird Entrance CLEAR_NPC,{
1@cash,199,99,0 script oct_enter HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
- donpcevent instance_npcname("oct_enter_broad")+"::OnEnable";
- specialeffect EF_BASH;
- disablenpc instance_npcname("oct_enter");
+ donpcevent(instance_npcname("oct_enter_broad")+"::OnEnable");
+ specialeffect(EF_BASH);
+ disablenpc(instance_npcname("oct_enter"));
end;
}
1@cash,1,1,0 script oct_enter_broad FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("oct_enter_broad")+"::OnDisable";
+ donpcevent(instance_npcname("oct_enter_broad")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("oct_enter_broad");
- donpcevent instance_npcname("oct_foot_4")+"::OnEnable";
- donpcevent instance_npcname("oct_mob_con")+"::OnEnable";
- initnpctimer;
+ enablenpc(instance_npcname("oct_enter_broad"));
+ donpcevent(instance_npcname("oct_foot_4")+"::OnEnable");
+ donpcevent(instance_npcname("oct_mob_con")+"::OnEnable");
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("oct_enter_broad");
+ disablenpc(instance_npcname("oct_enter_broad"));
end;
OnTimer1000:
mapannounce(instance_mapname("1@cash"), _("Pervert Octopus : How dare you to come inside of my place!"), bc_map, C_YELLOW);
@@ -181,22 +183,22 @@ OnTimer4000:
end;
OnTimer7000:
mapannounce(instance_mapname("1@cash"), _("Pervert Octopus : My juniors~ There is your toy! Play with it~ kakaka"), bc_map, C_YELLOW);
- stopnpctimer;
- donpcevent instance_npcname("oct_enter_broad")+"::OnDisable";
+ stopnpctimer();
+ donpcevent(instance_npcname("oct_enter_broad")+"::OnDisable");
end;
}
1@cash,3,3,0 script oct_foot_4 FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("oct_foot_4")+"::OnDisable";
+ donpcevent(instance_npcname("oct_foot_4")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("oct_foot_4");
- donpcevent instance_npcname("oct_foot1")+"::OnEnable";
- donpcevent instance_npcname("oct_foot2")+"::OnEnable";
- donpcevent instance_npcname("oct_foot3")+"::OnEnable";
- donpcevent instance_npcname("oct_foot4")+"::OnEnable";
+ enablenpc(instance_npcname("oct_foot_4"));
+ donpcevent(instance_npcname("oct_foot1")+"::OnEnable");
+ donpcevent(instance_npcname("oct_foot2")+"::OnEnable");
+ donpcevent(instance_npcname("oct_foot3")+"::OnEnable");
+ donpcevent(instance_npcname("oct_foot4")+"::OnEnable");
.@map$ = instance_mapname("1@cash");
monster(.@map$, 20, 114, _("Octopus Leg#1"), MD_OCTOPUS_LEG, 1, instance_npcname("oct_foot_4")+"::OnMyMobDead");
monster(.@map$, 88, 190, _("Octopus Leg#2"), MD_OCTOPUS_LEG, 1, instance_npcname("oct_foot_4")+"::OnMyMobDead");
@@ -204,15 +206,15 @@ OnEnable:
monster(.@map$, 372, 131, _("Octopus Leg#4"), MD_OCTOPUS_LEG, 1, instance_npcname("oct_foot_4")+"::OnMyMobDead");
end;
OnDisable:
- disablenpc instance_npcname("oct_foot_4");
+ disablenpc(instance_npcname("oct_foot_4"));
end;
OnMyMobDead:
.@map$ = instance_mapname("1@cash");
- if (mobcount(.@map$,instance_npcname("oct_foot_4")+"::OnMyMobDead") < 1) {
- donpcevent instance_npcname("oct_boss_con")+"::OnEnable";
+ if (mobcount(.@map$, instance_npcname("oct_foot_4")+"::OnMyMobDead") < 1) {
+ donpcevent(instance_npcname("oct_boss_con")+"::OnEnable");
mapannounce(.@map$, _("Hey you!! I'll personally take care of you all! Let's bring it on!"), bc_map, C_SPRINGGREEN);
- enablenpc instance_npcname("oct_boss_warp");
- instance_warpall .@map$, 199, 99;
+ enablenpc(instance_npcname("oct_boss_warp"));
+ instance_warpall(.@map$, 199, 99);
end;
}
mapannounce(.@map$, _("Arrgg!! That hurts!!! I need another strategy..."), bc_map, C_SPRINGGREEN);
@@ -222,12 +224,12 @@ OnMyMobDead:
1@cash,20,114,0 script oct_foot1 HIDDEN_WARP_NPC,6,6,{
end;
OnInstanceInit:
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable";
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- .@i = atoi(charat(strnpcinfo(NPC_NAME),8));
+ .@i = atoi(charat(strnpcinfo(NPC_NAME), 8));
.@map$ = instance_mapname("1@cash");
switch (.@i) {
case 1:
@@ -249,7 +251,7 @@ OnEnable:
areamonster(.@map$, 123, 93, 127, 97, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
areamonster(.@map$, 113, 90, 115, 92, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
areamonster(.@map$, 103, 89, 105, 91, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
- areamonster(.@map$, 89, 90, 91,92, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
+ areamonster(.@map$, 89, 90, 91, 92, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
areamonster(.@map$, 74, 104, 76, 106, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
areamonster(.@map$, 74, 120, 76, 122, _("Octopus's Henchman"), MD_OCTOPUS, 2, .@label$);
areamonster(.@map$, 83, 131, 87, 135, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
@@ -285,56 +287,57 @@ OnEnable:
}
end;
OnDisable:
- killmonster instance_mapname("1@cash"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead"; // Not in official script.
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ killmonster(instance_mapname("1@cash"), instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead"); // Not in official script.
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- if (getd("."+strnpcinfo(NPC_NAME)+instance_id())) end;
- setd "."+strnpcinfo(NPC_NAME)+instance_id(),1;
- hideonnpc instance_npcname(strnpcinfo(NPC_NAME));
+ if (getd("."+strnpcinfo(NPC_NAME)+instance_id()))
+ end;
+ setd("."+strnpcinfo(NPC_NAME)+instance_id(), 1);
+ hideonnpc(instance_npcname(strnpcinfo(NPC_NAME)));
mapannounce(instance_mapname("1@cash"), _("Come out all my babies and help me out!"), bc_map, C_YELLOW);
- initnpctimer;
+ initnpctimer();
end;
OnTimer5000:
.@map$ = instance_mapname("1@cash");
mapannounce(.@map$, _("Let's give them a lesson!"), bc_map, C_YELLOW);
.@label$ = instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead";
- .@i = atoi(charat(strnpcinfo(NPC_NAME),8));
+ .@i = atoi(charat(strnpcinfo(NPC_NAME), 8));
switch (.@i) {
case 1:
- areamonster(.@map$, 18, 112, 22,116, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
- areamonster(.@map$, 18, 112, 22,116, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 18, 112, 22, 116, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 18, 112, 22, 116, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
break;
case 2:
- areamonster(.@map$, 86, 188, 90,192, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
- areamonster(.@map$, 96, 98, 100,102, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 86, 188, 90, 192, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 96, 98, 100, 102, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
break;
case 3:
- areamonster(.@map$, 305, 213, 309,217, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
- areamonster(.@map$, 305, 213, 309,217, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 305, 213, 309, 217, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 305, 213, 309, 217, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
break;
case 4:
- areamonster(.@map$, 370, 129, 374,133, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
- areamonster(.@map$, 370, 129, 374,133, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 370, 129, 374, 133, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
+ areamonster(.@map$, 370, 129, 374, 133, _("Octopus's Henchman"), MD_OCTOPUS, 3, .@label$);
break;
}
end;
OnTimer30000:
- setd "."+strnpcinfo(NPC_NAME)+instance_id(),0;
- stopnpctimer;
- .@i = atoi(charat(strnpcinfo(NPC_NAME),8));
- donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable";
+ setd("."+strnpcinfo(NPC_NAME)+instance_id(), 0);
+ stopnpctimer();
+ .@i = atoi(charat(strnpcinfo(NPC_NAME), 8));
+ donpcevent(instance_npcname("oct_foot_exit"+.@i)+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable");
end;
OnMyMobDead:
.@map$ = instance_mapname("1@cash");
- if (mobcount(.@map$,instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead") < 1) {
mapannounce(.@map$, _("You hurt my babies!!? You'll have to pay for this!!!"), bc_map, C_SPRINGGREEN);
- setd "."+strnpcinfo(NPC_NAME)+instance_id(),0;
- stopnpctimer;
- .@i = atoi(charat(strnpcinfo(NPC_NAME),8));
- donpcevent instance_npcname("oct_foot_exit"+.@i)+"::OnEnable";
- donpcevent instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable";
+ setd("."+strnpcinfo(NPC_NAME)+instance_id(), 0);
+ stopnpctimer();
+ .@i = atoi(charat(strnpcinfo(NPC_NAME), 8));
+ donpcevent(instance_npcname("oct_foot_exit"+.@i)+"::OnEnable");
+ donpcevent(instance_npcname(strnpcinfo(NPC_NAME))+"::OnDisable");
end;
}
end;
@@ -346,13 +349,13 @@ OnMyMobDead:
1@cash,16,117,0 script oct_foot_exit1 WARPNPC,2,2,{
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnEnable:
- enablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ enablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
- warp instance_mapname("1@cash"), 198, 99;
+ warp(instance_mapname("1@cash"), 198, 99);
end;
}
1@cash,77,193,0 duplicate(oct_foot_exit1) oct_foot_exit2 WARPNPC,2,2
@@ -362,11 +365,11 @@ OnTouch:
1@cash,15,15,0 script oct_mob_con FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("oct_mob_con")+"::OnDisable";
+ donpcevent(instance_npcname("oct_mob_con")+"::OnDisable");
end;
OnEnable:
.@map$ = instance_mapname("1@cash");
- enablenpc instance_npcname("oct_mob_con");
+ enablenpc(instance_npcname("oct_mob_con"));
monster(.@map$, 32, 94, _("Hydra"), HYDRA, 1);
monster(.@map$, 41, 101, _("Hydra"), HYDRA, 1);
monster(.@map$, 35, 78, _("Hydra"), HYDRA, 1);
@@ -410,21 +413,21 @@ OnEnable:
areamonster(.@map$, 292, 97, 312, 117, _("Stapo"), STAPO, 1);
areamonster(.@map$, 355, 64, 375, 84, _("Stapo"), STAPO, 1);
areamonster(.@map$, 317, 17, 337, 37, _("Stapo"), STAPO, 1);
- donpcevent instance_npcname("oct_backattack1")+"::OnEnable";
- donpcevent instance_npcname("oct_backattack2")+"::OnEnable";
- donpcevent instance_npcname("oct_backattack3")+"::OnEnable";
- donpcevent instance_npcname("oct_backattack4")+"::OnEnable";
- donpcevent instance_npcname("oct_mob_con")+"::OnDisable";
+ donpcevent(instance_npcname("oct_backattack1")+"::OnEnable");
+ donpcevent(instance_npcname("oct_backattack2")+"::OnEnable");
+ donpcevent(instance_npcname("oct_backattack3")+"::OnEnable");
+ donpcevent(instance_npcname("oct_backattack4")+"::OnEnable");
+ donpcevent(instance_npcname("oct_mob_con")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("oct_mob_con");
+ disablenpc(instance_npcname("oct_mob_con"));
end;
}
1@cash,45,53,0 script oct_backattack1 HIDDEN_WARP_NPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname("oct_backattack1");
+ disablenpc(instance_npcname("oct_backattack1"));
end;
OnTouch:
.@map$ = instance_mapname("1@cash");
@@ -436,27 +439,28 @@ OnTouch:
monster(.@map$, 49, 50, _("Hydra"), HYDRA, 1);
monster(.@map$, 41, 53, _("Octopus's Henchman"), MD_OCTOPUS, 1);
mapannounce(.@map$, _("Don't let them break through, stop them!!!"), bc_map, C_SPRINGGREEN);
- specialeffect EF_BASH;
- disablenpc instance_npcname("oct_backattack1");
+ specialeffect(EF_BASH);
+ disablenpc(instance_npcname("oct_backattack1"));
end;
OnEnable:
- enablenpc instance_npcname("oct_backattack1");
+ enablenpc(instance_npcname("oct_backattack1"));
end;
}
1@cash,78,99,0 script oct_backattack2 HIDDEN_WARP_NPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname("oct_backattack2");
+ disablenpc(instance_npcname("oct_backattack2"));
end;
OnTouch:
- if (getd("."+instance_id())) end;
- setd "."+instance_id(),1;
- initnpctimer;
+ if (getd("."+instance_id()))
+ end;
+ setd("."+instance_id(), 1);
+ initnpctimer();
.@map$ = instance_mapname("1@cash");
monster(.@map$, 71, 105, _("Octopus's Henchman"), MD_OCTOPUS, 1);
mapannounce(.@map$, _("Headquarters are empty, GO!!!"), bc_map, C_SPRINGGREEN);
- hideonnpc instance_npcname("oct_backattack2");
+ hideonnpc(instance_npcname("oct_backattack2"));
end;
OnTimer2000:
.@map$ = instance_mapname("1@cash");
@@ -477,21 +481,22 @@ OnTimer8000:
.@map$ = instance_mapname("1@cash");
monster(.@map$, 71, 105, _("Octopus's Henchman"), MD_OCTOPUS, 1);
mapannounce(.@map$, _("There is no time to lose, hurry up!!!"), bc_map, C_SPRINGGREEN);
- stopnpctimer;
+ stopnpctimer();
end;
OnEnable:
- enablenpc instance_npcname("oct_backattack2");
+ enablenpc(instance_npcname("oct_backattack2"));
end;
}
1@cash,299,144,0 script oct_backattack3 HIDDEN_WARP_NPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname("oct_backattack3");
+ disablenpc(instance_npcname("oct_backattack3"));
end;
OnTouch:
- if (getd("."+instance_id())) end;
- setd "."+instance_id(),1;
+ if (getd("."+instance_id()))
+ end;
+ setd("."+instance_id(), 1);
.@map$ = instance_mapname("1@cash");
monster(.@map$, 293, 153, _("Octopus's Henchman"), MD_OCTOPUS, 1);
monster(.@map$, 294, 152, _("Octopus's Henchman"), MD_OCTOPUS, 1);
@@ -499,26 +504,27 @@ OnTouch:
monster(.@map$, 293, 151, _("Octopus's Henchman"), MD_OCTOPUS, 1);
monster(.@map$, 293, 152, _("Octopus's Henchman ?"), MD_MARSE, 1);
mapannounce(.@map$, _("Kakaka! Suprised??!!"), bc_map, C_SPRINGGREEN);
- initnpctimer;
- hideonnpc instance_npcname("oct_backattack3");
+ initnpctimer();
+ hideonnpc(instance_npcname("oct_backattack3"));
end;
OnTimer5000:
mapannounce(instance_mapname("1@cash"), _("... Looks like we have a spy among us."), bc_map, C_SPRINGGREEN);
- stopnpctimer;
+ stopnpctimer();
end;
OnEnable:
- enablenpc instance_npcname("oct_backattack3");
+ enablenpc(instance_npcname("oct_backattack3"));
end;
}
1@cash,336,36,0 script oct_backattack4 HIDDEN_WARP_NPC,3,3,{
end;
OnInstanceInit:
- disablenpc instance_npcname("oct_backattack4");
+ disablenpc(instance_npcname("oct_backattack4"));
end;
OnTouch:
- if (getd("."+instance_id())) end;
- setd "."+instance_id(),1;
+ if (getd("."+instance_id()))
+ end;
+ setd("."+instance_id(), 1);
.@map$ = instance_mapname("1@cash");
monster(.@map$, 332, 37, _("Octopus's Henchman"), MD_OCTOPUS, 1);
monster(.@map$, 332, 36, _("Octopus's Henchman"), MD_OCTOPUS, 1);
@@ -534,34 +540,34 @@ OnTouch:
monster(.@map$, 259, 40, _("Mercenary Squid"), MD_MARSE, 1);
monster(.@map$, 261, 40, _("Mercenary Squid"), MD_MARSE, 1);
mapannounce(.@map$, _("What a successful pincer tactic! The enemy is strong! Let's not lose yourselves! Anyway, where are all the mercenaries??"), bc_map, C_SPRINGGREEN);
- initnpctimer;
- hideonnpc instance_npcname("oct_backattack4");
+ initnpctimer();
+ hideonnpc(instance_npcname("oct_backattack4"));
end;
OnTimer5000:
mapannounce(instance_mapname("1@cash"), _("Mercenary Squid : eh...eh... wrong direction. No enemies are shown in this direction."), bc_map, C_SPRINGGREEN);
end;
OnTimer7000:
mapannounce(instance_mapname("1@cash"), _("Pervert Octopus : Fools! Can't you read the map??!! Useless!!"), bc_map, C_SPRINGGREEN);
- stopnpctimer;
+ stopnpctimer();
end;
OnEnable:
- enablenpc instance_npcname("oct_backattack4");
+ enablenpc(instance_npcname("oct_backattack4"));
end;
}
1@cash,2,2,0 script oct_boss_con FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("oct_boss_con")+"::OnDisable";
+ donpcevent(instance_npcname("oct_boss_con")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("oct_boss_con");
+ disablenpc(instance_npcname("oct_boss_con"));
end;
OnEnable:
- enablenpc instance_npcname("oct_boss_con");
- donpcevent instance_npcname("oct_boss_foot")+"::OnEnable";
+ enablenpc(instance_npcname("oct_boss_con"));
+ donpcevent(instance_npcname("oct_boss_foot")+"::OnEnable");
monster(instance_mapname("1@cash"), 199, 188, _("Disgusting Octopus"), MD_GIANT_OCTOPUS, 1, instance_npcname("oct_boss_con")+"::OnMyMobDead");
- initnpctimer;
+ initnpctimer();
end;
OnTimer7000:
callsub OnAnnounce,
@@ -604,21 +610,21 @@ OnTimer49000:
"errrrrrrrrrrrrrrrrrrrrrrrr... Cough! Cough!",
"Disgusting Octopus : Violence cannot be justified in any case.",
"This is my place!!!";
- stopnpctimer;
- initnpctimer;
+ stopnpctimer();
+ initnpctimer();
end;
OnAnnounce:
mapannounce(instance_mapname("1@cash"), sprintf(_$("Disgusting Octopus : %s"), getarg(rand(3))), bc_map, C_YELLOW);
return;
OnMyMobDead:
.@map$ = instance_mapname("1@cash");
- if (mobcount(.@map$,instance_npcname("oct_boss_con")+"::OnMyMobDead") < 1) {
+ if (mobcount(.@map$, instance_npcname("oct_boss_con")+"::OnMyMobDead") < 1) {
mapannounce(.@map$, _("Disgusting Octopus : That's it for the today! Next time, I will play with you badly!"), bc_map, C_YELLOW);
- enablenpc instance_npcname("oct_exit_1");
- enablenpc instance_npcname("oct_exit_2");
- donpcevent instance_npcname("oct_boss_foot")+"::OnDisable";
- stopnpctimer;
- donpcevent instance_npcname("oct_boss_con")+"::OnDisable";
+ enablenpc(instance_npcname("oct_exit_1"));
+ enablenpc(instance_npcname("oct_exit_2"));
+ donpcevent(instance_npcname("oct_boss_foot")+"::OnDisable");
+ stopnpctimer();
+ donpcevent(instance_npcname("oct_boss_con")+"::OnDisable");
end;
}
end;
@@ -627,16 +633,16 @@ OnMyMobDead:
1@cash,4,4,0 script oct_boss_foot FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("oct_boss_foot")+"::OnDisable";
+ donpcevent(instance_npcname("oct_boss_foot")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("oct_boss_foot");
- initnpctimer;
+ enablenpc(instance_npcname("oct_boss_foot"));
+ initnpctimer();
end;
OnCall:
.@map$ = instance_mapname("1@cash");
- if (mobcount(.@map$,instance_npcname("oct_boss_foot")+"::OnMyMobDead") < 100) {
- switch(rand(2)) {
+ if (mobcount(.@map$, instance_npcname("oct_boss_foot")+"::OnMyMobDead") < 100) {
+ switch (rand(2)) {
case 0:
mapannounce(.@map$, _("Disgusting Octopus : Do you know how many legs octopus have? It doesn't matter, I have unlimited legs!!"), bc_map, C_YELLOW);
areamonster(.@map$, 192, 181, 206, 195, _("Octopus Leg"), MD_OCTOPUS_LEG, 1, instance_npcname("oct_boss_foot")+"::OnMyMobDead");
@@ -647,16 +653,16 @@ OnCall:
break;
}
}
- initnpctimer;
+ initnpctimer();
end;
OnTimer10000:
- stopnpctimer;
- donpcevent instance_npcname("oct_boss_foot")+"::OnCall";
+ stopnpctimer();
+ donpcevent(instance_npcname("oct_boss_foot")+"::OnCall");
end;
OnDisable:
- stopnpctimer;
- killmonster instance_mapname("1@cash"), instance_npcname("oct_boss_foot")+"::OnMyMobDead"; // Not in official script.
- disablenpc instance_npcname("oct_boss_foot");
+ stopnpctimer();
+ killmonster(instance_mapname("1@cash"), instance_npcname("oct_boss_foot")+"::OnMyMobDead"); // Not in official script.
+ disablenpc(instance_npcname("oct_boss_foot"));
end;
OnMyMobDead:
end;
@@ -665,24 +671,24 @@ OnMyMobDead:
1@cash,198,116,0 script oct_boss_warp WARPNPC,2,2,{
end;
OnInstanceInit:
- disablenpc instance_npcname("oct_boss_warp");
+ disablenpc(instance_npcname("oct_boss_warp"));
end;
OnTouch:
- warp instance_mapname("1@cash"), 210, 172;
+ warp(instance_mapname("1@cash"), 210, 172);
end;
}
1@cash,190,208,0 script oct_exit_1 WARPNPC,2,2,{
end;
OnInstanceInit:
- disablenpc instance_npcname(strnpcinfo(NPC_NAME));
+ disablenpc(instance_npcname(strnpcinfo(NPC_NAME)));
end;
OnTouch:
mes("Do you want to go out from the octopus dungeon?");
- next;
+ next();
if (select("No!", "Yes!") == 2)
- warp "mal_dun01", 153, 233;
- close;
+ warp("mal_dun01", 153, 233);
+ close();
}
1@cash,198,82,0 duplicate(oct_exit_1) oct_exit_2 WARPNPC,2,2
// This is never enabled in the official script.
diff --git a/npc/re/instances/saras_memory.txt b/npc/re/instances/saras_memory.txt
index 38b598d5b..c9a47534b 100644
--- a/npc/re/instances/saras_memory.txt
+++ b/npc/re/instances/saras_memory.txt
@@ -41,113 +41,113 @@
dali,130,107,5 script Leon the Adventurer#Sara 4_M_DST_GRAND,{ // instance CD check only at the Dimensional Device
mes("[Leon the Adventurer]");
if (BaseLevel < 99) {
- mes("You know... this place doesn't seem to be safe for you. Please returnto me once you have achieved LV. 99");
- close;
+ mes("You know... this place doesn't seem to be safe for you. Please return to me once you have achieved LV. 99");
+ close();
}
if (!questprogress(15003)) {
if (!sarainstance) { // doing the instance for the 1st time
mes("Wow! I thought I was the only one who knew about this place.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Excuse my rudeness! I am Pon de Leon, the famous adventurer!");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("My friend calls me Leon the Lion! For my tough appearance and attitude. Plus I have quite a bite!");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("You know, this is such a strange location...");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("As you explore it you start to see cracks in space and time. Each one covered by a dimensional device.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("For example, I think I have caught glimpses of Payon through the dimensional device closest to us.\r"
"But it doesn't seem right. Almost like it is a little bit older then it should be.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("I want to explore it, but with my old age and my knees I don't seem to be quite up to the task.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("So, I would like to ask something of you.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Please venture through the dimensional device and report to me what you find within.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Though, I should warn you. It might be unstable. Make sure you enter the first chance you get.");
- close2;
- setquest 15003;
+ close2();
+ setquest(15003);
end;
} else {
mes("You wish to relive the past again?");
- next;
- if (select("Yes","No") == 2)
- close;
+ next();
+ if (select("Yes", "No") == 2)
+ close();
mes("[Leon the Adventurer]");
mes("Please venture through the dimensional device and report to me what you find within.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Though, I should warn you. It might be unstable. Make sure you enter the first chance you get.");
- setquest 15003;
- close;
+ setquest(15003);
+ close();
}
}
if (questprogress(15003) == 1) {
mes("I am not sure you have fully explored the crack in space and time yet. Perhaps you should look a bit further into it.");
- next;
+ next();
if (!sarainstance)
- close;
+ close();
switch (select("Okay", "Give up")) {
case 1:
mes("[Leon the Adventurer]");
mes("I am glad to hear that! Maybe someday you can be as brave as old Leon the Lion!");
- close;
+ close();
case 2:
mes("[Leon the Adventurer]");
mes("Well.. I can't force you. Buf if you ever find your courage pelase talk to me again.");
- erasequest 15003;
- close;
+ erasequest(15003);
+ close();
}
}
if (questprogress(15003) == 2) {
if (!sarainstance) { // 1st time reward and text
mes("What did you see in there?!");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Hrumpf, Sara Irene?! She's one of the 12 Valkyries. I didn't know her story was that tragic....");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("It seems that you caused a huge misunderstanding between her and her father.");
- next;
+ next();
mes("[Leon the Adventurer]");
- mes("I would not blame yourself for what occured. Or all the blood that was spilled. It seems that the\r"
+ mes("I would not blame yourself for what occured. Or all the blood that was spilled. It seems that the\r"
"events that day were fated to happen no matter who was there.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("Please don't tell anyone about your time traveling adventure. We can't have anyone thinking you more\r"
"important then old Leon. Plus they wouldn't believe such a story anyways.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("I think that in about 20 hours after you last entered the rift will stable enough for you to transverse it again.");
sarainstance = 1;
- getexp 770000, 1000000; // reward first time
+ getexp(770000, 1000000); // reward first time
} else { // 2nd time text
mes("What did you see in there?! Was there anything new?");
- next;
+ next();
select("Nothing has changed from the last time.");
mes("[Leon the Adventurer]");
mes("I am sorry to hear that... If...");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("If you want to try again. I think that in about 20 hours after you last entered the rift will be stable enough\r"
"for you to transverse it again.");
- next;
+ next();
mes("[Leon the Adventurer]");
mes("You should rest up. Travelling Through time would make even Leon tired!");
- getexp 550000, 550000; // reward 2nd and following
+ getexp(550000, 550000); // reward 2nd and following
}
- erasequest 15003;
- close;
+ erasequest(15003);
+ close();
}
}
@@ -155,29 +155,29 @@ dali,138,118,0 script Dimensional Device#dimen PORTAL,{
if (!questprogress(15003)) {
mes("[Leon the Adventurer]");
mes("Before you go playing around with that. Why don't you come over here and talk to me?");
- close;
+ close();
}
.@sara_time = questprogress(15002, PLAYTIME);
if (.@sara_time == 1) {
mes("[Leon the Adventurer]");
mes("I think that in about 20 hours after you last entered the rift will stable enough for you to\r"
"transverse it again.");
- close;
+ close();
} else if (.@sara_time == 2) {
- erasequest 15002;
+ erasequest(15002);
end;
} else if (!.@sara_time) {
.@party_id = getcharid(CHAR_ID_PARTY);
.@p_name$ = getpartyname(.@party_id);
- .@md_name$ = "Sara's Memory";
+ .@md_name$ = _("Sara's Memory");
if (!instance_check_party(.@party_id)) {
mes("[Leon the Adventurer]");
mes("Before you enter you need to organize a party! Don't know how? Type /organize PARTYNAMEHERE. You\r"
"can use quotes to put spaces in a party name.");
- close;
+ close();
}
if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2))
- .@menu1$ = "Boot up the dimensional device";
+ .@menu1$ = _("Boot up the dimensional device");
else
.@menu1$ = "";
switch (select(.@menu1$, "Use the dimensional device", "Cancel")) {
@@ -189,30 +189,30 @@ dali,138,118,0 script Dimensional Device#dimen PORTAL,{
mesf("Party Name: %s", .@p_name$);
mesf("Party Leader: %s", strcharinfo(PC_NAME));
mesf("^0000FF%s^000000 - Reservation Failed!", .@md_name$);
- close;
+ close();
}
if (instance_attachmap("1@sara", .@instance) == "") {
mesf("^0000FF%s^000000 - Reservation Failed!", .@md_name$);
instance_destroy(.@instance);
- close;
+ close();
}
instance_set_timeout(3600, 300, .@instance);
instance_init(.@instance);
mes("^FF0000The dimensional boots up cleanly. Use the device to enter the crack in space and time.^000000");
- close;
+ close();
case 2:
if (has_instance("1@sara") == "") {
mesf("The memorial dungeon ^0000FF%s^000000 does not exist.\r"
"The party leader did not generate the dungeon yet.", .@md_name$);
- close;
+ close();
}
mapannounce("dali", sprintf(_$("%s, member of the party %s entered the instance %s."), strcharinfo(PC_NAME), .@p_name$, .@md_name$), bc_map, C_SPRINGGREEN);
- setquest 15002;
- warp "1@sara", 250, 155;
+ setquest(15002);
+ warp("1@sara", 250, 155);
end;
break;
case 3:
- close;
+ close();
}
}
}
@@ -223,469 +223,468 @@ dali,138,118,0 script Dimensional Device#dimen PORTAL,{
mesf("[%s]", strcharinfo(PC_NAME));
mes("Where am I?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Where am I?"));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[A girl]");
mes("Hello! This is the village of Payon. You don't seem to be from around here...");
npctalk(_("A girl : Hello! This is the village of Payon. You don't seem to be from around here..."));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("Are you from here? You don't seem to quite match the locals either.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Are you from here? You don't seem to quite match to locals either."));
- next;
+ next();
mes("[A girl]");
mes("Yes! I was born here! My name is Sara. Sara Irene!");
npctalk(_("A girl : Yes! I was born here! My name is Sara. Sara Irene!"));
- next;
+ next();
mes("[Sara Irene]");
mes("My father is doyen of this village! I just take after my mother.");
npctalk(_("My father is doyen of this village! I just take after my mother."), instance_npcname("Sara Irene#saratalk"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("Oh! I am sorry! Uh... Why are you standing out here all alone?");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Oh! I am sorry! Uh... Why are you standing out here all alone?"));
- next;
+ next();
mes("[Sara Irene]");
mes("I am waiting for my father. He said that he will be here soon.");
npctalk(_("I am waiting for my father. He said that he will be here soon."), instance_npcname("Sara Irene#saratalk"));
- next;
+ next();
mes("^FF0000An older man exits the house. Sara's face brightens at the sight of him.^000000");
- donpcevent instance_npcname("Doyen Irene#sarains")+"::OnEnable";
- next;
+ donpcevent(instance_npcname("Doyen Irene#sarains")+"::OnEnable");
+ next();
mes("[Sara Irene]");
mes("Hi daddy!");
npctalk(_("Hi daddy!"), instance_npcname("Sara Irene#saratalk"));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Sweetheart you look so happy.");
npctalk(_("Sweetheart you look so happy."), instance_npcname("Doyen Irene#sarains"));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("You said you would come back soon! I waited for you and you lied!");
npctalk(_("You said you would come back soon! I waited for you and you lied!"), instance_npcname("Sara Irene#saratalk"));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Sweetheart, I am sorry I made you wait so long. The meeting with the village elders took longer than expected.");
npctalk(_("Sweetheart, I am sorry I made you wait so long. The meeting with the village elders took longer than expected."), instance_npcname("Doyen Irene#sarains"));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("I hate those old fogeys.");
npctalk(_("I hate those old fogeys."), instance_npcname("Sara Irene#saratalk"));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Don't say that sweetheart... Who is this with you?");
npctalk(_("Don't say that sweetheart... Who is this with you?"), instance_npcname("Doyen Irene#sarains"));
- next;
+ next();
mes("^FF0000Doyen Irene stares at you with fire in this eyes.^000000");
dispbottom(_("Doyen Irene stares at you with fire in this eyes."));
- next;
+ next();
mes("^FF0000Sara starts humming and singing softly to herself. She picks some wild flowers near by and presents\r"
"them to the Doyen.^000000");
dispbottom(_("Sara starts humming and singing softly to herself. She picks some wild flowers near by and presents them to the Doyen."));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("Here you go daddy!");
npctalk(_("Here you go daddy!"), instance_npcname("Sara Irene#saratalk"));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Oh Sara, should I have them?");
npctalk(_("Oh Sara, should I have them?"), instance_npcname("Doyen Irene#sarains"));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("Of course silly daddy!");
npctalk(_("Of course silly daddy!"), instance_npcname("Sara Irene#saratalk"));
- next;
+ next();
mes("^FF0000After being given the flowers the Doyen's mood seems to greatly improve.^000000");
dispbottom(_("After being given the flowers the Doyen's mood seems to greatly improve."));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Alright my princess, where should we go now?");
npctalk(_("Alright my princess, where should we go now?"), instance_npcname("Doyen Irene#sarains"));
- next;
- cutin "sara_9sara1.bmp", 2;
+ next();
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("Oh daddy! Let's go to the top of that hill over there!");
npctalk(_("Oh daddy! Let's go to the top of that hill over there!"), instance_npcname("Sara Irene#saratalk"));
- next;
- cutin "sara_elder_irine1.bmp", 2;
+ next();
+ cutin("sara_elder_irine1.bmp", 2);
mes("[Doyen Irene]");
mes("Hah! Hold onto me tight!");
npctalk(_("Hah! Hold onto me tight!"), instance_npcname("Doyen Irene#sarains"));
- next;
- cutin "sara_elder_irine1.bmp", 255;
+ next();
+ cutin("sara_elder_irine1.bmp", 255);
mes("^FF0000As they wander off you hear strange voices from around the corner...^000000");
- donpcevent instance_npcname("Doyen Irene#sarains")+"::OnDisable";
- donpcevent instance_npcname("A girl#sarains")+"::OnDisable";
- dispbottom(_("As they wander off you hear strange voices from around the corner...")),"";
- disablenpc instance_npcname("Sara Irene#saratalk");
- next;
+ donpcevent(instance_npcname("Doyen Irene#sarains")+"::OnDisable");
+ donpcevent(instance_npcname("A girl#sarains")+"::OnDisable");
+ dispbottom(_("As they wander off you hear strange voices from around the corner..."), "");
+ disablenpc(instance_npcname("Sara Irene#saratalk"));
+ next();
mes("[Strange Old Man A]");
mes("I can feel Sara's power growing. We cannot just stand by and let her achieve her full potential!");
npctalk(_("I can feel Sara's power growing. We cannot just stand by and let her achieve her full potential!"), instance_npcname("Strange Old Man A#stalk"));
- next;
+ next();
mes("[Strange Old Man B]");
mes("She was born under a bad sign and her mother isn't even one of us!");
npctalk(_("She was born under a bad sign and her mother isn't even one of us!"), instance_npcname("Strange Old Man B#stalk"));
- next;
+ next();
mes("[Strange Old Man B]");
mes("Someday she will cause blood to flow in our streets.");
npctalk(_("Someday she will cause blood to flow in our streets."), instance_npcname("Strange Old Man B#stalk"));
- next;
+ next();
mes("[Strange Old Man A]");
mes("We have to do something before the Holy creatures select her. I asked HIM to take care of it.");
npctalk(_("We have to do something before the Holy creatures select her. I asked HIM to take care of it."), instance_npcname("Strange Old Man A#stalk"));
- next;
+ next();
mes("[Strange Old Man B]");
mes("We will see... I look forward to hearing the bad news that has befallen her...");
npctalk(_("We will see... I look forward to hearing the bad news that has befallen her..."), instance_npcname("Strange Old Man B#stalk"));
- next;
+ next();
mes("^FF0000The old man wander off it seems Sara might be in danger. We have to do something!^000000");
dispbottom(_("The old man wander off it seems Sara might be in danger. We have to do something!"));
- close2;
- donpcevent instance_npcname("Strange Old Man A#stalk")+"::OnDisable";
- donpcevent instance_npcname("Strange Old Man B#stalk")+"::OnDisable";
- donpcevent instance_npcname("Sara Irene#sarains1")+"::OnEnable";
- donpcevent instance_npcname("#sarawarp1")+"::OnEnable";
- viewpoint 1, 240, 145, 1, C_GREEN;
- specialeffect EF_BASH;
+ close2();
+ donpcevent(instance_npcname("Strange Old Man A#stalk")+"::OnDisable");
+ donpcevent(instance_npcname("Strange Old Man B#stalk")+"::OnDisable");
+ donpcevent(instance_npcname("Sara Irene#sarains1")+"::OnEnable");
+ donpcevent(instance_npcname("#sarawarp1")+"::OnEnable");
+ viewpoint(1, 240, 145, 1, C_GREEN);
+ specialeffect(EF_BASH);
end;
OnInstanceInit:
- donpcevent instance_npcname("A girl#sarains")+"::OnEnable";
+ donpcevent(instance_npcname("A girl#sarains")+"::OnEnable");
end;
OnEnable:
- hideoffnpc instance_npcname("A girl#sarains");
+ hideoffnpc(instance_npcname("A girl#sarains"));
end;
OnDisable:
- hideonnpc instance_npcname("A girl#sarains");
+ hideonnpc(instance_npcname("A girl#sarains"));
end;
}
1@sara,268,158,3 script Doyen Irene#sarains 4_M_CHIEF_IRIN,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Doyen Irene#sarains")+"::OnDisable";
+ donpcevent(instance_npcname("Doyen Irene#sarains")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Doyen Irene#sarains");
+ hideoffnpc(instance_npcname("Doyen Irene#sarains"));
end;
OnDisable:
- hideonnpc instance_npcname("Doyen Irene#sarains");
+ hideonnpc(instance_npcname("Doyen Irene#sarains"));
end;
}
1@sara,260,156,0 script Sara Irene#saratalk HIDDEN_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#saratalk")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#saratalk")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Sara Irene#saratalk");
+ hideoffnpc(instance_npcname("Sara Irene#saratalk"));
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#saratalk");
+ hideonnpc(instance_npcname("Sara Irene#saratalk"));
end;
}
-
1@sara,260,156,0 script Strange Old Man A#stalk FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Strange Old Man A#stalk")+"::OnDisable";
+ donpcevent(instance_npcname("Strange Old Man A#stalk")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Strange Old Man A#stalk");
+ hideoffnpc(instance_npcname("Strange Old Man A#stalk"));
end;
OnDisable:
- hideonnpc instance_npcname("Strange Old Man A#stalk");
+ hideonnpc(instance_npcname("Strange Old Man A#stalk"));
end;
}
1@sara,260,156,0 script Strange Old Man B#stalk FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Strange Old Man B#stalk")+"::OnDisable";
+ donpcevent(instance_npcname("Strange Old Man B#stalk")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Strange Old Man B#stalk");
+ hideoffnpc(instance_npcname("Strange Old Man B#stalk"));
end;
OnDisable:
- hideonnpc instance_npcname("Strange Old Man B#stalk");
+ hideonnpc(instance_npcname("Strange Old Man B#stalk"));
end;
}
1@sara,240,145,0 script #sarawarp1 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp1")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp1")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp1");
+ disablenpc(instance_npcname("#sarawarp1"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp1");
+ enablenpc(instance_npcname("#sarawarp1"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 94, 320;
+ warp(.@map$, 94, 320);
end;
}
1@sara,209,250,0 script #sarawarp2 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp2")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp2")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp2");
+ disablenpc(instance_npcname("#sarawarp2"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp2");
+ enablenpc(instance_npcname("#sarawarp2"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 230, 316;
+ warp(.@map$, 230, 316);
end;
}
1@sara,226,190,0 script #sarawarp3 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp3")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp3")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp3");
+ disablenpc(instance_npcname("#sarawarp3"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp3");
+ enablenpc(instance_npcname("#sarawarp3"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 263, 94;
+ warp(.@map$, 263, 94);
end;
}
1@sara,166,67,0 script #sarawarp4 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp4")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp4")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp4");
+ disablenpc(instance_npcname("#sarawarp4"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp4");
+ enablenpc(instance_npcname("#sarawarp4"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 164, 81;
+ warp(.@map$, 164, 81);
end;
}
1@sara,155,180,0 script #sarawarp5 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp5")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp5")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp5");
+ disablenpc(instance_npcname("#sarawarp5"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp5");
+ enablenpc(instance_npcname("#sarawarp5"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 155, 196;
+ warp(.@map$, 155, 196);
end;
}
1@sara,88,188,0 script #sarawarp6 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp6")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp6")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp6");
+ disablenpc(instance_npcname("#sarawarp6"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp6");
+ enablenpc(instance_npcname("#sarawarp6"));
end;
OnTouch:
.@map$ = instance_mapname("1@sara");
- warp .@map$, 89, 175;
- if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY),2))
- viewpoint 1, 39, 142, 1, C_GREEN;
+ warp(.@map$, 89, 175);
+ if (getcharid(CHAR_ID_CHAR) == getpartyleader(getcharid(CHAR_ID_PARTY), 2))
+ viewpoint(1, 39, 142, 1, C_GREEN);
end;
}
1@sara,19,143,0 script #sarawarp7 WARPNPC,1,2,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#sarawarp7")+"::OnDisable";
+ donpcevent(instance_npcname("#sarawarp7")+"::OnDisable");
end;
OnDisable:
- disablenpc instance_npcname("#sarawarp7");
+ disablenpc(instance_npcname("#sarawarp7"));
end;
OnEnable:
- enablenpc instance_npcname("#sarawarp7");
+ enablenpc(instance_npcname("#sarawarp7"));
end;
OnTouch:
- completequest 15003;
- warp "dali", 134, 111;
+ completequest(15003);
+ warp("dali", 134, 111);
end;
}
1@sara,107,325,5 script Sara Irene#sarains1 4_F_SARAH_BABY,{
if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2))
end;
- cutin "sara_9sara1.bmp", 2;
+ cutin("sara_9sara1.bmp", 2);
mes("[Sara Irene]");
mes("Oh! Hello again! I remember you, what's up?");
npctalk(_("Oh! Hello again! I remember you, what's up?"));
- next;
+ next();
mes("[Sara Irene]");
mes("I am here to give flowers to my mommy!");
npctalk(_("I am here to give flowers to my mommy!"));
- next;
+ next();
mes("^FF0000Sara leaps forward to open the door, flowers at the ready.^000000");
dispbottom(_("Sara leaps forward to open the door, flowers at the ready."));
- next;
+ next();
mes("[Sara Irene]");
mes("Mom! Dad! Look what I found!");
npctalk(_("Mom! Dad! Look what I found!"));
- next;
- cutin "sara_9sara1.bmp", 255;
- cutin "sara_momdie.bmp", 4;
+ next();
+ cutin("sara_9sara1.bmp", 255);
+ cutin("sara_momdie.bmp", 4);
mes("^FF0000The door opens to reveal a woman laying dead on the floor and the\r"
"Doyen standing over the woman with a bloody sword.^000000");
dispbottom(_("The door opens to reveal a woman laying dead on the floor and the Doyen standing over the woman with a bloody sword."));
- next;
+ next();
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
+ next();
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
+ next();
mes("[Sara Irene]");
mes("...");
npctalk("...");
mapannounce(instance_mapname("1@sara"), _("[Sara's Mother] : Sara...Ru-..away..."), bc_map, C_YELLOW);
- next;
+ next();
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
+ next();
mes("^FF0000A gem rolls from the womans hand and comes to a rest in front of\r"
"Sara. Unconsciously Sara reaches down and picks up the gem.^000000");
dispbottom(_("A gem rolls from the womans hand and comes to a rest in front of Sara. Unconsciously Sara reaches down and picks up the gem."));
- next;
+ next();
mes("^FF0000The Doyen turns around and notices Sara.^000000");
dispbottom(_("The Doyen turns around and notices Sara."));
- next;
- cutin "sara_momdie.bmp", 255;
- cutin "sara_elder_irine4.bmp", 2;
+ next();
+ cutin("sara_momdie.bmp", 255);
+ cutin("sara_elder_irine4.bmp", 2);
mes("[Doyen Irene]");
mes("Ahh Sara! I was just looking for you...");
npctalk(_("Ahh Sara! I was just looking for you..."), instance_npcname("Doyen Irene#sarains1"));
- next;
- cutin "sara_9sara2.bmp", 2;
+ next();
+ cutin("sara_9sara2.bmp", 2);
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
+ next();
select("Escape with Sara.");
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
- cutin "sara_elder_irine3.bmp", 2;
+ next();
+ cutin("sara_elder_irine3.bmp", 2);
mes("[Doyen Irene]");
mes("Guards! GUARDS! There is a murderer here! Catch him!");
npctalk(_("Guards! GUARDS! There is a murderer here! Catch him!"), instance_npcname("Doyen Irene#sarains1"));
- next;
+ next();
mes("^FF0000The sound of many pairs of boots can be heard running outside!^000000");
dispbottom(_("The sound of many pairs of boots can be heard running outside!"));
- next;
- cutin "sara_9sara3.bmp", 2;
+ next();
+ cutin("sara_9sara3.bmp", 2);
mes("[Sara Irene]");
mes("Mommy no!!!!!!!!!!!!!!!");
npctalk(_("Mommy no!!!!!!!!!!!!!!!"));
- next;
- cutin "sara_9sara3.bmp", 255;
+ next();
+ cutin("sara_9sara3.bmp", 255);
mes("^FF0000Sara runs aways and the sound of the guards is getting closer...^000000");
dispbottom(_("Sara runs aways and the sound of the guards is getting closer..."));
- close2;
- donpcevent instance_npcname("Sara Irene#sarains1")+"::OnDisable";
- donpcevent instance_npcname("Sara Irene#sarains4")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains5")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains6")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains7")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains8")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains9")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains10")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains11")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains12")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains13")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains14")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains15")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains16")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains17")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains18")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains19")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains20")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains21")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains22")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains23")+"::OnEnable";
- donpcevent instance_npcname("#controlsara")+"::OnEnable";
+ close2();
+ donpcevent(instance_npcname("Sara Irene#sarains1")+"::OnDisable");
+ donpcevent(instance_npcname("Sara Irene#sarains4")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains5")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains6")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains7")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains8")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains9")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains10")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains11")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains12")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains13")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains14")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains15")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains16")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains17")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains18")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains19")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains20")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains21")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains22")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains23")+"::OnEnable");
+ donpcevent(instance_npcname("#controlsara")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains1")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains1")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Sara Irene#sarains1");
+ hideoffnpc(instance_npcname("Sara Irene#sarains1"));
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains1");
+ hideonnpc(instance_npcname("Sara Irene#sarains1"));
end;
}
1@sara,107,325,0 script Doyen Irene#sarains1 FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Doyen Irene#sarains1")+"::OnDisable";
+ donpcevent(instance_npcname("Doyen Irene#sarains1")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Doyen Irene#sarains1");
+ hideoffnpc(instance_npcname("Doyen Irene#sarains1"));
end;
OnDisable:
- hideonnpc instance_npcname("Doyen Irene#sarains1");
+ hideonnpc(instance_npcname("Doyen Irene#sarains1"));
end;
}
1@sara,107,327,0 script #controlsara CLEAR_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara");
- hideonnpc instance_npcname("#controlsara");
- initnpctimer;
+ enablenpc(instance_npcname("#controlsara"));
+ hideonnpc(instance_npcname("#controlsara"));
+ initnpctimer();
end;
OnDisable:
- disablenpc instance_npcname("#controlsara");
+ disablenpc(instance_npcname("#controlsara"));
end;
OnTimer2000:
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> The guards must be defeated to gain access to the next area."), bc_map, C_YELLOW);
@@ -694,12 +693,12 @@ OnTimer4000:
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> The guards have formed groups of their own to fight you!"), bc_map, C_YELLOW);
end;
OnTimer5000:
- donpcevent instance_npcname("#controlsara")+"::OnRespawn";
- stopnpctimer;
+ donpcevent(instance_npcname("#controlsara")+"::OnRespawn");
+ stopnpctimer();
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
-
+
monster(.@map$, .@x, .@y, _("Maggot"), MG_ARCLOUSE, .@mobs, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 107, 325, _("Payon Town Guard"), PAYONSOLDIER, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 115, 325, _("Payon Town Guard"), PAYONSOLDIER, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
@@ -773,11 +772,11 @@ OnMyMobDead:
.@a_mob_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
.@mob_dead_num = .@callnum - .@a_mob_num;
if (.@mob_dead_num > 57) {
- viewpoint 1, 209, 250, 1, C_GREEN;
+ viewpoint(1, 209, 250, 1, C_GREEN);
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Sara ran away again! You think she went in the 2 O'clock direction!"), bc_map, C_YELLOW);
- donpcevent instance_npcname("#controlsara")+"::OnDisable";
- donpcevent instance_npcname("#controlsara1")+"::OnEnable";
- donpcevent instance_npcname("#sarawarp2")+"::OnEnable";
+ donpcevent(instance_npcname("#controlsara")+"::OnDisable");
+ donpcevent(instance_npcname("#controlsara1")+"::OnEnable");
+ donpcevent(instance_npcname("#sarawarp2")+"::OnEnable");
}
end;
}
@@ -785,15 +784,15 @@ OnMyMobDead:
1@sara,230,316,0 script #controlsara1 CLEAR_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara1")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara1")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara1");
- hideonnpc instance_npcname("#controlsara1");
- donpcevent instance_npcname("#controlsara1")+"::OnRespawn";
+ enablenpc(instance_npcname("#controlsara1"));
+ hideonnpc(instance_npcname("#controlsara1"));
+ donpcevent(instance_npcname("#controlsara1")+"::OnRespawn");
end;
OnDisable:
- disablenpc instance_npcname("#controlsara1");
+ disablenpc(instance_npcname("#controlsara1"));
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
@@ -825,11 +824,11 @@ OnMyMobDead:
.@b_mob_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
.@mob_dead_num = .@callnum - .@b_mob_num;
if (.@mob_dead_num > 15) {
- viewpoint 1, 226, 190, 1, C_GREEN;
+ viewpoint(1, 226, 190, 1, C_GREEN);
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Sara ran away yet again! You think she went in the 5 O'clock direction!"), bc_map, C_YELLOW);
- donpcevent instance_npcname("#controlsara1")+"::OnDisable";
- donpcevent instance_npcname("#controlsara2")+"::OnEnable";
- donpcevent instance_npcname("#sarawarp3")+"::OnEnable";
+ donpcevent(instance_npcname("#controlsara1")+"::OnDisable");
+ donpcevent(instance_npcname("#controlsara2")+"::OnEnable");
+ donpcevent(instance_npcname("#sarawarp3")+"::OnEnable");
}
end;
}
@@ -837,15 +836,15 @@ OnMyMobDead:
1@sara,263,94,0 script #controlsara2 CLEAR_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara2")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara2")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara2");
- hideonnpc instance_npcname("#controlsara2");
- donpcevent instance_npcname("#controlsara2")+"::OnRespawn";
+ enablenpc(instance_npcname("#controlsara2"));
+ hideonnpc(instance_npcname("#controlsara2"));
+ donpcevent(instance_npcname("#controlsara2")+"::OnRespawn");
end;
OnDisable:
- disablenpc instance_npcname("#controlsara2");
+ disablenpc(instance_npcname("#controlsara2"));
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
@@ -909,11 +908,11 @@ OnMyMobDead:
.@c_mob_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
.@mob_dead_num = .@callnum - .@c_mob_num;
if (.@mob_dead_num > 44) {
- viewpoint 1, 166, 67, 1, C_GREEN;
+ viewpoint(1, 166, 67, 1, C_GREEN);
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Sara ran away yet again! *sigh* You think she went in the 6 O'clock direction!"), bc_map, C_YELLOW);
- donpcevent instance_npcname("#controlsara2")+"::OnDisable";
- donpcevent instance_npcname("#controlsara3")+"::OnEnable";
- donpcevent instance_npcname("#sarawarp4")+"::OnEnable";
+ donpcevent(instance_npcname("#controlsara2")+"::OnDisable");
+ donpcevent(instance_npcname("#controlsara3")+"::OnEnable");
+ donpcevent(instance_npcname("#sarawarp4")+"::OnEnable");
}
end;
}
@@ -921,15 +920,15 @@ OnMyMobDead:
1@sara,164,81,0 script #controlsara3 CLEAR_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara3")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara3")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara3");
- hideonnpc instance_npcname("#controlsara3");
- donpcevent instance_npcname("#controlsara3")+"::OnRespawn";
+ enablenpc(instance_npcname("#controlsara3"));
+ hideonnpc(instance_npcname("#controlsara3"));
+ donpcevent(instance_npcname("#controlsara3")+"::OnRespawn");
end;
OnDisable:
- disablenpc instance_npcname("#controlsara3");
+ disablenpc(instance_npcname("#controlsara3"));
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
@@ -975,7 +974,7 @@ OnRespawn:
monster(.@map$, 155, 180, _("Payon Town Guard"), PAYONSOLDIER2, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 157, 180, _("Payon Town Guard"), PAYONSOLDIER2, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 159, 180, _("Payon Town Guard"), PAYONSOLDIER2, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
-
+
monster(.@map$, 173, 139, _("Payon Town Guard"), PAYONSOLDIER, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 170, 139, _("Payon Town Guard"), PAYONSOLDIER, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
monster(.@map$, 167, 139, _("Payon Town Guard"), PAYONSOLDIER, 1, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
@@ -992,15 +991,15 @@ OnMyMobDead:
.@d_mob_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
.@mob_dead_num = .@callnum - .@d_mob_num;
if (.@mob_dead_num > 42) {
- viewpoint 1, 155, 180, 1, C_GREEN;
+ viewpoint(1, 155, 180, 1, C_GREEN);
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Sara ran away yet again! You think she went in the 12 O'clock direction!"), bc_map, C_YELLOW);
- for (.@i=4; .@i<=23; .@i++) {
- donpcevent instance_npcname("Sara Irene#sarains" + .@i)+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains" + .@i)+"::OnDisable";
+ for (.@i = 4; .@i <= 23; .@i++) {
+ donpcevent(instance_npcname("Sara Irene#sarains" + .@i)+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains" + .@i)+"::OnDisable");
}
- donpcevent instance_npcname("#controlsara3")+"::OnDisable";
- donpcevent instance_npcname("#sarawarp5")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains2")+"::OnEnable";
+ donpcevent(instance_npcname("#controlsara3")+"::OnDisable");
+ donpcevent(instance_npcname("#sarawarp5")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains2")+"::OnEnable");
}
end;
}
@@ -1008,84 +1007,84 @@ OnMyMobDead:
1@sara,152,233,5 script Sara Irene#sarains2 4_F_SARAH_BABY,{
if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2))
end;
- cutin "sara_9sara2.bmp", 2;
+ cutin("sara_9sara2.bmp", 2);
mes("[Sara Irene]");
mes("Mommy!");
npctalk(_("Mommy!"));
- next;
- cutin "sara_elder_irine4.bmp", 2;
+ next();
+ cutin("sara_elder_irine4.bmp", 2);
mes("[Doyen Irene]");
mes("Sara...");
npctalk(_("Sara..."), instance_npcname("Doyen Irene#sarains2"));
- next;
- cutin "sara_9sara2.bmp", 2;
+ next();
+ cutin("sara_9sara2.bmp", 2);
mes("[Sara Irene]");
mes("No!");
npctalk(_("No!"));
- next;
- cutin "sara_elder_irine4.bmp", 2;
+ next();
+ cutin("sara_elder_irine4.bmp", 2);
mes("[Doyen Irene]");
mes("I have been looking for you Sara. Please come with daddy it is very dangerous here!");
npctalk(_("I have been looking for you Sara. Please come with daddy it is very dangerous here!"), instance_npcname("Doyen Irene#sarains2"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("I won't let you take Sara!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("I won't let you take Sara!"));
- next;
- cutin "sara_elder_irine3.bmp", 2;
+ next();
+ cutin("sara_elder_irine3.bmp", 2);
mes("[Doyen Irene]");
mes("The murderer is here! Guards! We will finish him once and for all!");
npctalk(_("The murderer is here! Guards! We will finish him once and for all!"), instance_npcname("Doyen Irene#sarains2"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("Sara... run! Save yourself!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Sara... run! Save yourself!"));
- next;
- cutin "sara_9sara2.bmp", 2;
+ next();
+ cutin("sara_9sara2.bmp", 2);
mes("[Sara Irene]");
mes("...okay.");
npctalk(_("...okay."));
- close2;
- cutin "sara_9sara2.bmp", 255;
- donpcevent instance_npcname("Sara Irene#sarains2")+"::OnDisable";
- donpcevent instance_npcname("#controlsara4")+"::OnEnable";
+ close2();
+ cutin("sara_9sara2.bmp", 255);
+ donpcevent(instance_npcname("Sara Irene#sarains2")+"::OnDisable");
+ donpcevent(instance_npcname("#controlsara4")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains2")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains2")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Sara Irene#sarains2");
+ hideoffnpc(instance_npcname("Sara Irene#sarains2"));
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains2");
+ hideonnpc(instance_npcname("Sara Irene#sarains2"));
end;
}
1@sara,152,233,5,0 script Doyen Irene#sarains2 FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("Doyen Irene#sarains2")+"::OnDisable";
+ donpcevent(instance_npcname("Doyen Irene#sarains2")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Doyen Irene#sarains2");
+ hideoffnpc(instance_npcname("Doyen Irene#sarains2"));
end;
OnDisable:
- hideonnpc instance_npcname("Doyen Irene#sarains2");
+ hideonnpc(instance_npcname("Doyen Irene#sarains2"));
end;
}
1@sara,152,233,0 script #controlsara4 FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara4")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara4")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara4");
- donpcevent instance_npcname("#controlsara4")+"::OnRespawn";
+ enablenpc(instance_npcname("#controlsara4"));
+ donpcevent(instance_npcname("#controlsara4")+"::OnRespawn");
end;
OnDisable:
- disablenpc instance_npcname("#controlsara4");
+ disablenpc(instance_npcname("#controlsara4"));
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
@@ -1112,9 +1111,9 @@ OnMyMobDead:
.@f_mob_num = mobcount(.@map$, instance_npcname(strnpcinfo(NPC_NAME))+"::OnMyMobDead");
.@mob_dead_num = .@callnum - .@f_mob_num;
if (.@mob_dead_num > 7) {
- mapannounce(instance_mapname("1@sara"),_("<SYSTEM> Doyen Irene draws his blade!"), bc_map, C_YELLOW);
- donpcevent instance_npcname("#controlsara4")+"::OnDisable";
- donpcevent instance_npcname("#controlsara5")+"::OnEnable";
+ mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Doyen Irene draws his blade!"), bc_map, C_YELLOW);
+ donpcevent(instance_npcname("#controlsara4")+"::OnDisable");
+ donpcevent(instance_npcname("#controlsara5")+"::OnEnable");
}
end;
}
@@ -1122,14 +1121,14 @@ OnMyMobDead:
1@sara,155,226,0 script #controlsara5 FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("#controlsara5")+"::OnDisable";
+ donpcevent(instance_npcname("#controlsara5")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("#controlsara5");
- donpcevent instance_npcname("#controlsara5")+"::OnRespawn";
+ enablenpc(instance_npcname("#controlsara5"));
+ donpcevent(instance_npcname("#controlsara5")+"::OnRespawn");
end;
OnDisable:
- disablenpc instance_npcname("#controlsara5");
+ disablenpc(instance_npcname("#controlsara5"));
end;
OnRespawn:
.@map$ = instance_mapname("1@sara");
@@ -1143,8 +1142,8 @@ OnMyMobDead:
.@mob_dead_num = .@callnum - .@g_mob_num;
if (.@mob_dead_num > 0) {
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> Doyen Irene has fallen."), bc_map, C_YELLOW);
- donpcevent instance_npcname("#controlsara5")+"::OnDisable";
- donpcevent instance_npcname("Doyen Irene#sarains3")+"::OnEnable";
+ donpcevent(instance_npcname("#controlsara5")+"::OnDisable");
+ donpcevent(instance_npcname("Doyen Irene#sarains3")+"::OnEnable");
}
end;
}
@@ -1152,82 +1151,82 @@ OnMyMobDead:
1@sara,156,236,3 script Doyen Irene#sarains3 4_M_CHIEF_IRIN,{
if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2))
end;
- cutin "sara_elder_irine4.bmp", 2;
+ cutin("sara_elder_irine4.bmp", 2);
mes("[Doyen Irene]");
mes("You... were too strong for me.");
npctalk(_("You... were too strong for me."));
- next;
+ next();
mes("[Doyen Irene]");
mes("Why.. *hack* are you trying to kill my wife and daughter?");
npctalk(_("Why.. *hack* are you trying to kill my wife and daughter?"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("What are you talking about? We saw you standing over Sara's mother with your sword COVERED in blood!");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("What are you talking about? We saw you standing over Sara's mother with your sword COVERED in blood!"));
- next;
+ next();
mes("[Doyen Irene]");
mes("You.. think I killed Sara's mother?");
npctalk(_("You.. think I killed Sara's mother?"));
- next;
+ next();
mes("[Doyen Irene]");
mes("She *cough* had already been killed by an assassin. I slew him that *hack* is why my blade was covered in blood...");
npctalk(_("She *cough* had already been killed by an assassin. I slew him that *hack* is why my blade was covered in blood..."));
- next;
- cutin "sara_elder_irine4.bmp", 255;
- cutin "sara_momdie.bmp", 4;
+ next();
+ cutin("sara_elder_irine4.bmp", 255);
+ cutin("sara_momdie.bmp", 4);
mes("^FF0000Thinking back you seem to recall another body laying in the left\r"
"corner of the room. Maybe that was the assassin the Doyen is talking about.^000000");
dispbottom(_("Thinking back you seem to recall another body laying in the left corner of the room. Maybe that was the assassin the Doyen is talking about."));
- next;
- cutin "sara_momdie.bmp", 255;
- cutin "sara_elder_irine4.bmp", 2;
+ next();
+ cutin("sara_momdie.bmp", 255);
+ cutin("sara_elder_irine4.bmp", 2);
mes("[Doyen Irene]");
mes("If.. you are not the assassin sent to kill my wife and daughter, who are you?");
npctalk(_("If.. you are not the assassin sent to kill my wife and daughter, who are you?"));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("I am just an adventurer who was passing through. I heard some men plotting their deaths and needed to intervene.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("I am just an adventurer who was passing through. I heard some men plotting their deaths and needed to intervene."));
- next;
+ next();
mes("[Doyen Irene]");
mes("If.. you are telling the truth...\r"
"forgive me. I though you were one of them.");
npctalk(_("If.. you are telling the truth... forgive me. I though you were one of them."));
- next;
+ next();
mes("[Doyen Irene]");
mes("Strange men... I bet they were some of the village elders. Ugh...");
npctalk(_("Strange men... I bet they were some of the village elders. Ugh..."));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("There might be more assassins so we have to find Sara as fast as we can.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("There might be more assassins so we have to find Sara as fast as we can."));
- next;
+ next();
mesf("[%s]", strcharinfo(PC_NAME));
mes("Sara believes that you killed her mother. We need to tell her the truth.");
unittalk(getcharid(CHAR_ID_ACCOUNT), _("Sara believes that you killed her mother. We need to tell her the truth."));
- next;
+ next();
mes("[Doyen Irene]");
mes("We must do our best to find her. Let's split up and search for her.\r"
"Please help me find my daughter and explain everything to her.");
npctalk(_("We must do our best to find her. Let's split up and search for her. Please help me find my daughter and explain everything to her."));
- close2;
- cutin "sara_elder_irine4.bmp", 255;
- viewpoint 1, 88, 188, 1, C_GREEN;
+ close2();
+ cutin("sara_elder_irine4.bmp", 255);
+ viewpoint(1, 88, 188, 1, C_GREEN);
mapannounce(instance_mapname("1@sara"), _("<SYSTEM> We must find Sara. You seem remember her running in the 8 O'clock direction."), bc_map, C_YELLOW);
- donpcevent instance_npcname("Doyen Irene#sarains3")+"::OnDisable";
- donpcevent instance_npcname("#sarawarp6")+"::OnEnable";
- donpcevent instance_npcname("????-#saratalk")+"::OnEnable";
- donpcevent instance_npcname("Sara Irene#sarains3")+"::OnEnable";
+ donpcevent(instance_npcname("Doyen Irene#sarains3")+"::OnDisable");
+ donpcevent(instance_npcname("#sarawarp6")+"::OnEnable");
+ donpcevent(instance_npcname("????-#saratalk")+"::OnEnable");
+ donpcevent(instance_npcname("Sara Irene#sarains3")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Doyen Irene#sarains3")+"::OnDisable";
+ donpcevent(instance_npcname("Doyen Irene#sarains3")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Doyen Irene#sarains3");
+ hideoffnpc(instance_npcname("Doyen Irene#sarains3"));
end;
OnDisable:
- hideonnpc instance_npcname("Doyen Irene#sarains3");
+ hideonnpc(instance_npcname("Doyen Irene#sarains3"));
end;
}
@@ -1236,69 +1235,69 @@ OnDisable:
end;
mes("^FF0000As you are about to call out to Sara a sudden blow knocks you down from behind.^000000");
dispbottom(_("As you are about to call out to Sara a sudden blow knocks you down from behind."));
- next;
- cutin "sara_beholder.bmp", 2;
+ next();
+ cutin("sara_beholder.bmp", 2);
mes("[?????]");
mes("The time travellers cannot interfere any longer. You cannot stop us from meeting Sara.");
npctalk(_("The time travellers cannot interfere any longer. You cannot stop us from meeting Sara."), instance_npcname("????-#saratalk"));
- next;
+ next();
mes("[?????]");
mes("You should go back to the time where you belong.");
npctalk(_("You should go back to the time where you belong."), instance_npcname("????-#saratalk"));
- next;
+ next();
mes("^FF0000As you fall to the ground two dark figures approach Sara.^000000");
dispbottom(_("As you fall to the ground two dark figures approach Sara."));
- next;
+ next();
mes("[?????]");
mes("A girl full of betrayal, despair, and hate. We will guide you to your ultimate fate.");
npctalk(_("A girl full of betrayal, despair, and hate. We will guide you to your ultimate fate."), instance_npcname("????-#saratalk"));
- next;
- cutin "sara_9sara2.bmp", 2;
+ next();
+ cutin("sara_9sara2.bmp", 2);
mes("[Sara Irene]");
mes("...");
npctalk("...");
- next;
- cutin "sara_beholder.bmp", 2;
+ next();
+ cutin("sara_beholder.bmp", 2);
mes("[?????]");
mes("Sara Irene, he will make your dreams come true.");
npctalk(_("Sara Irene, he will make your dreams come true."), instance_npcname("????-#saratalk"));
- next;
- cutin "sara_beholder.bmp", 255;
+ next();
+ cutin("sara_beholder.bmp", 255);
mes("^FF0000One of the cloaked strangers covers Sara with their cloak and all three figures disappear.^000000");
dispbottom(_("One of the cloaked strangers covers Sara with their cloak and all three figures disappear."));
- donpcevent instance_npcname("Sara Irene#sarains3")+"::OnDisable";
- next;
+ donpcevent(instance_npcname("Sara Irene#sarains3")+"::OnDisable");
+ next();
mes("^FF0000At the same time as Sara disappearing this place begin to become unstable, just like what Leon said before.^000000");
dispbottom(_("At the same time as Sara disappearing this place begin to become unstable, just like what Leon said before."));
- next;
+ next();
mes("^FF0000We need to get out from this place quickly to the left. And when we at the outside let's talk to him.^000000");
dispbottom(_("We need to get out from this place quickly to the left. And when we at the outside let's talk to him."));
- close2;
- donpcevent instance_npcname("????-#saratalk")+"::OnDisable";
- donpcevent instance_npcname("#sarawarp7")+"::OnEnable";
+ close2();
+ donpcevent(instance_npcname("????-#saratalk")+"::OnDisable");
+ donpcevent(instance_npcname("#sarawarp7")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains3")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains3")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("Sara Irene#sarains3");
+ hideoffnpc(instance_npcname("Sara Irene#sarains3"));
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains3");
+ hideonnpc(instance_npcname("Sara Irene#sarains3"));
end;
}
1@sara,152,233,0 script ????-#saratalk FAKE_NPC,{
end;
OnInstanceInit:
- donpcevent instance_npcname("????-#saratalk")+"::OnDisable";
+ donpcevent(instance_npcname("????-#saratalk")+"::OnDisable");
end;
OnEnable:
- hideoffnpc instance_npcname("????-#saratalk");
+ hideoffnpc(instance_npcname("????-#saratalk"));
end;
OnDisable:
- hideonnpc instance_npcname("????-#saratalk");
+ hideonnpc(instance_npcname("????-#saratalk"));
end;
}
@@ -1306,23 +1305,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Why daddy?"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains4")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains4")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains4")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains4")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains4")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains4")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains4");
- hideoffnpc instance_npcname("Sara Irene#sarains4");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains4"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains4"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains4");
- disablenpc instance_npcname("Sara Irene#sarains4");
+ hideonnpc(instance_npcname("Sara Irene#sarains4"));
+ disablenpc(instance_npcname("Sara Irene#sarains4"));
end;
}
@@ -1330,23 +1329,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Not mommy!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains5")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains5")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains5")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains5")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains5")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains5")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains5");
- hideoffnpc instance_npcname("Sara Irene#sarains5");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains5"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains5"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains5");
- disablenpc instance_npcname("Sara Irene#sarains5");
+ hideonnpc(instance_npcname("Sara Irene#sarains5"));
+ disablenpc(instance_npcname("Sara Irene#sarains5"));
end;
}
@@ -1354,23 +1353,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Why did he do it?!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains6")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains6")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains6")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains6")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains6")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains6")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains6");
- hideoffnpc instance_npcname("Sara Irene#sarains6");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains6"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains6"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains6");
- disablenpc instance_npcname("Sara Irene#sarains6");
+ hideonnpc(instance_npcname("Sara Irene#sarains6"));
+ disablenpc(instance_npcname("Sara Irene#sarains6"));
end;
}
@@ -1378,23 +1377,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Why.. why?!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains7")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains7")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains7")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains7")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains7")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains7")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains7");
- hideoffnpc instance_npcname("Sara Irene#sarains7");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains7"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains7"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains7");
- disablenpc instance_npcname("Sara Irene#sarains7");
+ hideonnpc(instance_npcname("Sara Irene#sarains7"));
+ disablenpc(instance_npcname("Sara Irene#sarains7"));
end;
}
@@ -1402,23 +1401,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Noooo..."));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains8")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains8")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains8")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains8")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains8")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains8")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains8");
- hideoffnpc instance_npcname("Sara Irene#sarains8");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains8"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains8"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains8");
- disablenpc instance_npcname("Sara Irene#sarains8");
+ hideonnpc(instance_npcname("Sara Irene#sarains8"));
+ disablenpc(instance_npcname("Sara Irene#sarains8"));
end;
}
@@ -1426,23 +1425,23 @@ OnDisable:
end;
OnTouch:
npctalk("...");
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains9")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains9")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains9")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains9")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains9")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains9")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains9");
- hideoffnpc instance_npcname("Sara Irene#sarains9");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains9"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains9"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains9");
- disablenpc instance_npcname("Sara Irene#sarains9");
+ hideonnpc(instance_npcname("Sara Irene#sarains9"));
+ disablenpc(instance_npcname("Sara Irene#sarains9"));
end;
}
@@ -1450,23 +1449,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Why does it hurt so much?"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains10")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains10")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains10")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains10")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains10")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains10")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains10");
- hideoffnpc instance_npcname("Sara Irene#sarains10");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains10"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains10"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains10");
- disablenpc instance_npcname("Sara Irene#sarains10");
+ hideonnpc(instance_npcname("Sara Irene#sarains10"));
+ disablenpc(instance_npcname("Sara Irene#sarains10"));
end;
}
@@ -1474,23 +1473,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("........"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains11")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains11")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains11")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains11")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains11")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains11")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains11");
- hideoffnpc instance_npcname("Sara Irene#sarains11");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains11"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains11"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains11");
- disablenpc instance_npcname("Sara Irene#sarains11");
+ hideonnpc(instance_npcname("Sara Irene#sarains11"));
+ disablenpc(instance_npcname("Sara Irene#sarains11"));
end;
}
@@ -1498,23 +1497,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("...Mommy"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains12")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains12")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains12")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains12")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains12")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains12")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains12");
- hideoffnpc instance_npcname("Sara Irene#sarains12");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains12"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains12"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains12");
- disablenpc instance_npcname("Sara Irene#sarains12");
+ hideonnpc(instance_npcname("Sara Irene#sarains12"));
+ disablenpc(instance_npcname("Sara Irene#sarains12"));
end;
}
@@ -1522,23 +1521,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("What happened to you daddy?"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains13")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains13")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains13")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains13")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains13")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains13")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains13");
- hideoffnpc instance_npcname("Sara Irene#sarains13");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains13"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains13"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains13");
- disablenpc instance_npcname("Sara Irene#sarains13");
+ hideonnpc(instance_npcname("Sara Irene#sarains13"));
+ disablenpc(instance_npcname("Sara Irene#sarains13"));
end;
}
@@ -1546,23 +1545,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("All that blood..."));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains14")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains14")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains14")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains14")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains14")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains14")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains14");
- hideoffnpc instance_npcname("Sara Irene#sarains14");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains14"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains14"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains14");
- disablenpc instance_npcname("Sara Irene#sarains14");
+ hideonnpc(instance_npcname("Sara Irene#sarains14"));
+ disablenpc(instance_npcname("Sara Irene#sarains14"));
end;
}
@@ -1570,23 +1569,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Who are you?!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains15")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains15")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains15")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains15")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains15")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains15")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains15");
- hideoffnpc instance_npcname("Sara Irene#sarains15");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains15"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains15"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains15");
- disablenpc instance_npcname("Sara Irene#sarains15");
+ hideonnpc(instance_npcname("Sara Irene#sarains15"));
+ disablenpc(instance_npcname("Sara Irene#sarains15"));
end;
}
@@ -1594,23 +1593,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("I want my mommy!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains16")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains16")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains16")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains16")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains16")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains16")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains16");
- hideoffnpc instance_npcname("Sara Irene#sarains16");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains16"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains16"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains16");
- disablenpc instance_npcname("Sara Irene#sarains16");
+ hideonnpc(instance_npcname("Sara Irene#sarains16"));
+ disablenpc(instance_npcname("Sara Irene#sarains16"));
end;
}
@@ -1618,23 +1617,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("........"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains17")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains17")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains17")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains17")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains17")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains17")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains17");
- hideoffnpc instance_npcname("Sara Irene#sarains17");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains17"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains17"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains17");
- disablenpc instance_npcname("Sara Irene#sarains17");
+ hideonnpc(instance_npcname("Sara Irene#sarains17"));
+ disablenpc(instance_npcname("Sara Irene#sarains17"));
end;
}
@@ -1642,23 +1641,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Nooooo..."));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains18")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains18")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains18")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains18")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains18")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains18")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains18");
- hideoffnpc instance_npcname("Sara Irene#sarains18");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains18"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains18"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains18");
- disablenpc instance_npcname("Sara Irene#sarains18");
+ hideonnpc(instance_npcname("Sara Irene#sarains18"));
+ disablenpc(instance_npcname("Sara Irene#sarains18"));
end;
}
@@ -1666,23 +1665,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Mommy!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains19")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains19")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains19")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains19")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains19")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains19")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains19");
- hideoffnpc instance_npcname("Sara Irene#sarains19");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains19"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains19"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains19");
- disablenpc instance_npcname("Sara Irene#sarains19");
+ hideonnpc(instance_npcname("Sara Irene#sarains19"));
+ disablenpc(instance_npcname("Sara Irene#sarains19"));
end;
}
@@ -1690,23 +1689,23 @@ OnDisable:
end;
OnTouch:
npctalk("........");
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains20")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains20")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains20")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains20")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains20")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains20")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains20");
- hideoffnpc instance_npcname("Sara Irene#sarains20");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains20"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains20"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains20");
- disablenpc instance_npcname("Sara Irene#sarains20");
+ hideonnpc(instance_npcname("Sara Irene#sarains20"));
+ disablenpc(instance_npcname("Sara Irene#sarains20"));
end;
}
@@ -1714,23 +1713,23 @@ OnDisable:
end;
OnTouch:
npctalk(_("Daddy!"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains21")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains21")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains21")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains21")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains21")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains21")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains21");
- hideoffnpc instance_npcname("Sara Irene#sarains21");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains21"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains21"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains21");
- disablenpc instance_npcname("Sara Irene#sarains21");
+ hideonnpc(instance_npcname("Sara Irene#sarains21"));
+ disablenpc(instance_npcname("Sara Irene#sarains21"));
end;
}
@@ -1738,23 +1737,23 @@ OnDisable:
end;
OnTouch:
npctalk("........");
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains22")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains22")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains22")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains22")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains22")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains22")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains22");
- hideoffnpc instance_npcname("Sara Irene#sarains22");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains22"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains22"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains22");
- disablenpc instance_npcname("Sara Irene#sarains22");
+ hideonnpc(instance_npcname("Sara Irene#sarains22"));
+ disablenpc(instance_npcname("Sara Irene#sarains22"));
end;
}
@@ -1762,22 +1761,22 @@ OnDisable:
end;
OnTouch:
npctalk(_("Why?"));
- initnpctimer;
- donpcevent instance_npcname("Sara Irene#sarains23")+"::OnDisable";
+ initnpctimer();
+ donpcevent(instance_npcname("Sara Irene#sarains23")+"::OnDisable");
end;
OnTimer60000:
- donpcevent instance_npcname("Sara Irene#sarains23")+"::OnEnable";
+ donpcevent(instance_npcname("Sara Irene#sarains23")+"::OnEnable");
end;
OnInstanceInit:
- donpcevent instance_npcname("Sara Irene#sarains23")+"::OnDisable";
+ donpcevent(instance_npcname("Sara Irene#sarains23")+"::OnDisable");
end;
OnEnable:
- enablenpc instance_npcname("Sara Irene#sarains23");
- hideoffnpc instance_npcname("Sara Irene#sarains23");
- stopnpctimer;
+ enablenpc(instance_npcname("Sara Irene#sarains23"));
+ hideoffnpc(instance_npcname("Sara Irene#sarains23"));
+ stopnpctimer();
end;
OnDisable:
- hideonnpc instance_npcname("Sara Irene#sarains23");
- disablenpc instance_npcname("Sara Irene#sarains23");
+ hideonnpc(instance_npcname("Sara Irene#sarains23"));
+ disablenpc(instance_npcname("Sara Irene#sarains23"));
end;
}
diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt
index be9f1dbee..f35c722f7 100644
--- a/npc/re/merchants/coin_exchange.txt
+++ b/npc/re/merchants/coin_exchange.txt
@@ -569,7 +569,7 @@ function script F_mal_coin {
mes "I'm sorry, you need more "+.@str$+".";
close;
}
- if (MaxWeight - Weight < getiteminfo(getarg(3),6)) {
+ if (MaxWeight - Weight < getiteminfo(getarg(3), ITEMINFO_WEIGHT)) {
mes getarg(1);
mes "Sorry, you've purchased too many.";
mes "You need to make more space in your inventory. Please come back later.";
diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt
index bea4c6e03..e921a7336 100644
--- a/npc/re/merchants/enchan_mal.txt
+++ b/npc/re/merchants/enchan_mal.txt
@@ -84,11 +84,11 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
close;
}
@mal_equip_id = getequipid(EQI_HAND_R);
- .@equip_type = getiteminfo(@mal_equip_id,11);
+ .@equip_type = getiteminfo(@mal_equip_id, ITEMINFO_SUBTYPE);
//callsub L_Socket,<cost multiplier>,<4-x enchants possible>;
switch(.@equip_type) { // Check weapon type first to speed up the checks.
- case 1: // Daggers
+ case W_DAGGER: // Daggers
switch(@mal_equip_id) {
case 1224: callsub L_Socket,1,2; //Sword_Breaker
case 1225: callsub L_Socket,1,2; //Mail_Breaker
@@ -114,7 +114,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 13062: callsub L_Socket,4,2; //Ancient_Dagger
}
break;
- case 16: // Katars
+ case W_KATAR: // Katars
switch(@mal_equip_id) {
case 1271: callsub L_Socket,1,2; //Blood_Tears
case 1263: callsub L_Socket,1,2; //Unholy_Touch
@@ -128,13 +128,13 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1266: callsub L_Socket,4,2; //Infiltrator_
}
break;
- case 6: // 1-H Axes
+ case W_1HAXE: // 1-H Axes
switch(@mal_equip_id) {
case 1305: callsub L_Socket,1,2; //Cleaver
case 1311: callsub L_Socket,1,2; //Vecer_Axe
}
break;
- case 7: // 2-H Axes
+ case W_2HAXE: // 2-H Axes
switch(@mal_equip_id) {
case 1364: callsub L_Socket,1,2; //Great_Axe
case 1365: callsub L_Socket,1,2; //Sabbath
@@ -151,7 +151,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1371: callsub L_Socket,4,2; //Doom_Slayer_
}
break;
- case 2: // 1-H Swords
+ case W_1HSWORD: // 1-H Swords
switch(@mal_equip_id) {
case 1131: callsub L_Socket,1,2; //Ice_Falchon
case 1133: callsub L_Socket,1,2; //Fire_Brand
@@ -170,7 +170,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1132: callsub L_Socket,4,2; //Edge
}
break;
- case 3: // 2-H Swords
+ case W_2HSWORD: // 2-H Swords
switch(@mal_equip_id) {
case 1164: callsub L_Socket,1,2; //Muramasa
case 1166: callsub L_Socket,1,2; //Dragon_Slayer
@@ -194,7 +194,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1186: callsub L_Socket,4,2; //Death_Guidance
}
break;
- case 4: // 1-H Spears
+ case W_1HSPEAR: // 1-H Spears
switch(@mal_equip_id) {
case 1420: callsub L_Socket,1,2; //Long_Horn
case 1413: callsub L_Socket,1,2; //Gungnir
@@ -207,7 +207,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1422: callsub L_Socket,4,2; //Hunting_Spear
}
break;
- case 5: // 2-H Spears
+ case W_2HSPEAR: // 2-H Spears
switch(@mal_equip_id) {
case 1466: callsub L_Socket,1,2; //Crescent_Scythe
case 1467: callsub L_Socket,1,2; //Bill_Guisarme
@@ -224,7 +224,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1484: callsub L_Socket,2,2; //Cardo
}
break;
- case 10: // Staves
+ case W_STAFF: // Staves
switch(@mal_equip_id) {
case 1616: callsub L_Socket,1,2; //Staff_Of_Wing
case 1629: callsub L_Socket,1,2; //Walking_Stick
@@ -236,7 +236,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1473: callsub L_Socket,1,2; //Wizardy_Staff
}
break;
- case 23: // New 2-H Staves
+ case W_2HSTAFF: // New 2-H Staves
switch(@mal_equip_id) {
case 2004: callsub L_Socket,1,2; //Kronos
case 2005: callsub L_Socket,1,2; //Dea_Staff
@@ -244,7 +244,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 2000: callsub L_Socket,4,2; //Destruction_Rod
}
break;
- case 8: // Maces
+ case W_MACE: // Maces
switch(@mal_equip_id) {
case 1524: callsub L_Socket,1,2; //Golden_Mace
case 1525: callsub L_Socket,1,2; //Long_Mace
@@ -261,7 +261,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1540: callsub L_Socket,4,2; //Grand_Cross_
}
break;
- case 15: // Books
+ case W_BOOK: // Books
switch(@mal_equip_id) {
case 1557: callsub L_Socket,1,2; //Book_Of_The_Apocalypse
case 1558: callsub L_Socket,1,2; //Girls_Diary
@@ -271,7 +271,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1565: callsub L_Socket,4,2; //Death_Note
}
break;
- case 12: // Knuckles
+ case W_KNUCKLE: // Knuckles
switch(@mal_equip_id) {
case 1813: callsub L_Socket,1,2; //Kaiser_Knuckle
case 1814: callsub L_Socket,1,2; //Berserk
@@ -280,7 +280,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1830: callsub L_Socket,2,2; //Sura_Rampage
}
break;
- case 11: // Bows
+ case W_BOW: // Bows
switch(@mal_equip_id) {
case 1719: callsub L_Socket,1,2; //Bow_Of_Roguemaster
case 1722: callsub L_Socket,1,2; //Balistar
@@ -295,7 +295,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1720: callsub L_Socket,2,2; //Bow_Of_Rudra
}
break;
- case 13: // Musical Instruments
+ case W_MUSICAL: // Musical Instruments
switch(@mal_equip_id) {
case 1913: callsub L_Socket,1,2; //Electronic_Guitar
case 1918: callsub L_Socket,1,2; //Oriental_Lute
@@ -305,7 +305,7 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1930: callsub L_Socket,2,2; //Green_Whistle
}
break;
- case 14: // Whips
+ case W_WHIP: // Whips
switch(@mal_equip_id) {
case 1962: callsub L_Socket,1,2; //Lariat
case 1963: callsub L_Socket,1,2; //Rapture_Rose
@@ -321,6 +321,14 @@ malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{
case 1985: callsub L_Socket,4,2; //Rosebine
}
break;
+ case W_2HMACE:
+ case W_REVOLVER:
+ case W_RIFLE:
+ case W_GATLING:
+ case W_SHOTGUN:
+ case W_GRENADE:
+ case W_HUUMA:
+ break;
}
mes "[Mayomayo]";
if (@mal_enchant_select == 1)
diff --git a/npc/re/quests/eden/eden_tutorial.txt b/npc/re/quests/eden/eden_tutorial.txt
index 45d7c6f1e..902db7945 100644
--- a/npc/re/quests/eden/eden_tutorial.txt
+++ b/npc/re/quests/eden/eden_tutorial.txt
@@ -290,7 +290,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
close;
} else if (questprogress(9168) == 1) {
if (checkweight(Yggdrasilberry,1) == 0) {
- if (MaxWeight - Weight < getiteminfo(607,6)) {
+ if (MaxWeight - Weight < getiteminfo(Yggdrasilberry, ITEMINFO_WEIGHT)) {
mes "[Tutorial Instructor]";
mes "You seemed to be sluggish with a lot of items";
mes "in your inventory making you heavy...";
@@ -492,7 +492,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
}
}
if (checkweight(Yggdrasilberry,6) == 0) {
- if (MaxWeight - Weight < getiteminfo(607,6)) {
+ if (MaxWeight - Weight < getiteminfo(Yggdrasilberry, ITEMINFO_WEIGHT)) {
mes "[Tutorial Instructor]";
mes "Your inventory seems to be really full";
mes "with various stuff... Do you think";
@@ -591,7 +591,7 @@ moc_para01,34,178,3 script Tutorial Instructor 4_M_KHMAN,{
moc_para01,32,179,4 script Tutorial Goal 4_F_KHELLY,{
if (checkweight(Seed_Of_Yggdrasil,7) == 0) {
- if (MaxWeight - Weight < getiteminfo(608,7)) {
+ if (MaxWeight - Weight < getiteminfo(Seed_Of_Yggdrasil, ITEMINFO_WEIGHT)) {
mes "[Tutorial Goal]";
mes "You seem to be overweight with items. Go put some stuff away then come back.";
close;
diff --git a/npc/re/quests/quests_dewata.txt b/npc/re/quests/quests_dewata.txt
index ef1352e1e..1b57e4397 100644
--- a/npc/re/quests/quests_dewata.txt
+++ b/npc/re/quests/quests_dewata.txt
@@ -191,7 +191,7 @@ dew_in01,22,48,3 script Sage Kasyapa#dew 4_M_DEWZATIMAN,{
mes "Please, it would honor us if you would take it.";
next;
if (checkweight(Cendrawasih_SF,1) == 0) {
- if (Weight + getiteminfo(6406,6) > MaxWeight) {
+ if (Weight + getiteminfo(Cendrawasih_SF, ITEMINFO_WEIGHT) > MaxWeight) {
mes "[Sage Kasyapa]";
mes "You are carrying too much weight over the limit.";
mes "I cannot get you your reward unless you reduce the amount of weighty items you are carrying.";
diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql
index a88d19775..3a045faf0 100644
--- a/sql-files/item_db.sql
+++ b/sql-files/item_db.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/item_db2.sql b/sql-files/item_db2.sql
index 4c7640e8f..1957b0b8c 100644
--- a/sql-files/item_db2.sql
+++ b/sql-files/item_db2.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql
index 8c65f3a5d..4c762b8e8 100644
--- a/sql-files/item_db_re.sql
+++ b/sql-files/item_db_re.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/main.sql b/sql-files/main.sql
index 1e1fdbc38..feda8a4cd 100644
--- a/sql-files/main.sql
+++ b/sql-files/main.sql
@@ -534,6 +534,7 @@ CREATE TABLE IF NOT EXISTS `homunculus` (
`alive` TINYINT(2) NOT NULL DEFAULT '1',
`rename_flag` TINYINT(2) NOT NULL DEFAULT '0',
`vaporize` TINYINT(2) NOT NULL DEFAULT '0',
+ `autofeed` TINYINT(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`homun_id`)
) ENGINE=MyISAM;
@@ -883,6 +884,7 @@ INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1477434595); -- 2016-10-2
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1488454834); -- 2017-03-02--11-40.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1488744559); -- 2017-03-05--08-09.sql
INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1489588190); -- 2017-03-15--14-29.sql
+INSERT IGNORE INTO `sql_updates` (`timestamp`) VALUES (1509835214); -- 2017-11-04--10-39.sql
--
-- Table structure for table `storage`
--
diff --git a/sql-files/mob_db.sql b/sql-files/mob_db.sql
index 824aa6e55..d62f804a9 100644
--- a/sql-files/mob_db.sql
+++ b/sql-files/mob_db.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_db2.sql b/sql-files/mob_db2.sql
index 55823993e..ac3d63985 100644
--- a/sql-files/mob_db2.sql
+++ b/sql-files/mob_db2.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/mob_db_re.sql b/sql-files/mob_db_re.sql
index f871500be..35a2178de 100644
--- a/sql-files/mob_db_re.sql
+++ b/sql-files/mob_db_re.sql
@@ -1,7 +1,7 @@
-- This file is part of Hercules.
-- http://herc.ws - http://github.com/HerculesWS/Hercules
--
--- Copyright (C) 2013-2017 Hercules Dev Team
+-- Copyright (C) 2013-2018 Hercules Dev Team
--
-- Hercules is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/sql-files/upgrades/2017-11-04--10-39.sql b/sql-files/upgrades/2017-11-04--10-39.sql
new file mode 100644
index 000000000..f95dbef0c
--- /dev/null
+++ b/sql-files/upgrades/2017-11-04--10-39.sql
@@ -0,0 +1,6 @@
+#1509835214
+
+ALTER TABLE `homunculus`
+ ADD COLUMN `autofeed` TINYINT(2) NOT NULL DEFAULT '0' AFTER `vaporize`;
+
+INSERT INTO `sql_updates` (`timestamp`, `ignored`) VALUES (1509835214 , 'No');
diff --git a/sql-files/upgrades/index.txt b/sql-files/upgrades/index.txt
index 553e071ee..11cb36a79 100644
--- a/sql-files/upgrades/index.txt
+++ b/sql-files/upgrades/index.txt
@@ -40,3 +40,4 @@
2017-03-02--11-40.sql
2017-03-05--08-09.sql
2017-03-15--14-29.sql
+2017-11-04--10-39.sql
diff --git a/src/char/char.c b/src/char/char.c
index 78b2d19fa..c3fcd9e0a 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -600,7 +600,7 @@ int char_mmo_char_tosql(int char_id, struct mmo_charstatus* p)
StrBuf->Clear(&buf);
StrBuf->Printf(&buf, "INSERT INTO `%s`(`char_id`,`id`,`lv`,`flag`) VALUES ", skill_db);
//insert here.
- for( i = 0, count = 0; i < MAX_SKILL; ++i ) {
+ for (i = 0, count = 0; i < MAX_SKILL_DB; ++i) {
if( p->skill[i].id != 0 && p->skill[i].flag != SKILL_FLAG_TEMPORARY ) {
if( p->skill[i].lv == 0 && ( p->skill[i].flag == SKILL_FLAG_PERM_GRANTED || p->skill[i].flag == SKILL_FLAG_PERMANENT ) )
continue;
@@ -755,7 +755,7 @@ int char_getitemdata_from_sql(struct item *items, int max, int guid, enum invent
stmt = SQL->StmtMalloc(inter->sql_handle);
if (SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &guid, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &guid, sizeof guid)
|| SQL_ERROR == SQL->StmtExecute(stmt)) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
@@ -763,32 +763,35 @@ int char_getitemdata_from_sql(struct item *items, int max, int guid, enum invent
return -1;
}
- if (SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &item.unique_id, 0, NULL, NULL))
- {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, sizeof item.id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, sizeof item.nameid, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, sizeof item.amount, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &item.equip, sizeof item.equip, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &item.identify, sizeof item.identify, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &item.refine, sizeof item.refine, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, sizeof item.attribute, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, sizeof item.expire_time, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, sizeof item.bound, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &item.unique_id, sizeof item.unique_id, NULL, NULL)
+ ) {
SqlStmt_ShowDebug(stmt);
}
- for (i = 0; i < MAX_SLOTS; i++)
- if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + i, SQLDT_SHORT, &item.card[i], 0, NULL, NULL))
+ for (i = 0; i < MAX_SLOTS; i++) {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + i, SQLDT_SHORT, &item.card[i], sizeof item.card[i], NULL, NULL))
SqlStmt_ShowDebug(stmt);
+ }
- for (i = 0; i < MAX_ITEM_OPTIONS; i++)
- if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + i * 2, SQLDT_INT16, &item.option[i].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11 + MAX_SLOTS + i * 2, SQLDT_INT16, &item.option[i].value, 0, NULL, NULL))
+ for (i = 0; i < MAX_ITEM_OPTIONS; i++) {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + i * 2, SQLDT_INT16, &item.option[i].index, sizeof item.option[i].index, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11 + MAX_SLOTS + i * 2, SQLDT_INT16, &item.option[i].value, sizeof item.option[i].index, NULL, NULL))
SqlStmt_ShowDebug(stmt);
+ }
- if (has_favorite)
- if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + MAX_ITEM_OPTIONS * 2, SQLDT_UCHAR, &item.favorite, 0, NULL, NULL))
+ if (has_favorite) {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + MAX_ITEM_OPTIONS * 2, SQLDT_CHAR, &item.favorite, sizeof item.favorite, NULL, NULL))
SqlStmt_ShowDebug(stmt);
+ }
if (SQL->StmtNumRows(stmt) > 0 ) {
i = 0;
@@ -1066,46 +1069,46 @@ int char_mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
"`robe`,`slotchange`,`unban_time`,`sex`"
" FROM `%s` WHERE `account_id`='%d' AND `char_num` < '%d'", char_db, sd->account_id, MAX_CHARS)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p.char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &p.slot, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &p.name, sizeof(p.name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_SHORT, &p.class, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT, &p.base_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &p.job_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT64, &p.base_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT64, &p.job_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &p.zeny, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_SHORT, &p.str, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p.agi, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p.vit, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p.int_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p.dex, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p.luk, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_INT, &p.max_hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p.hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p.max_sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p.sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p.status_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_INT, &p.skill_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p.option, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UCHAR, &p.karma, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_SHORT, &p.manner, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p.hair, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_SHORT, &p.hair_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_SHORT, &p.clothes_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_SHORT, &p.body, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_SHORT, &p.look.weapon, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_SHORT, &p.look.shield, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p.look.head_top, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p.look.head_mid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p.look.head_bottom, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_USHORT, &p.rename, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_UINT32, &p.delete_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p.look.robe, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_USHORT, &p.slotchange, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_LONG, &unban_time, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_ENUM, &sex, sizeof(sex), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p.char_id, sizeof p.char_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &p.slot, sizeof p.slot, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &p.name, sizeof p.name, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_INT16, &p.class, sizeof p.class, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT, &p.base_level, sizeof p.base_level, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &p.job_level, sizeof p.job_level, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_UINT64, &p.base_exp, sizeof p.base_exp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT64, &p.job_exp, sizeof p.job_exp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &p.zeny, sizeof p.zeny, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_SHORT, &p.str, sizeof p.str, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p.agi, sizeof p.agi, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p.vit, sizeof p.vit, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p.int_, sizeof p.int_, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p.dex, sizeof p.dex, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p.luk, sizeof p.luk, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_INT, &p.max_hp, sizeof p.max_hp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p.hp, sizeof p.hp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p.max_sp, sizeof p.max_sp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p.sp, sizeof p.sp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p.status_point, sizeof p.status_point, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_INT, &p.skill_point, sizeof p.skill_point, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_UINT, &p.option, sizeof p.option, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UCHAR, &p.karma, sizeof p.karma, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_SHORT, &p.manner, sizeof p.manner, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p.hair, sizeof p.hair, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_SHORT, &p.hair_color, sizeof p.hair_color, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_SHORT, &p.clothes_color, sizeof p.clothes_color, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_SHORT, &p.body, sizeof p.body, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_SHORT, &p.look.weapon, sizeof p.look.weapon, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_SHORT, &p.look.shield, sizeof p.look.shield, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p.look.head_top, sizeof p.look.head_top, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p.look.head_mid, sizeof p.look.head_mid, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p.look.head_bottom, sizeof p.look.head_bottom, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_STRING, &last_map, sizeof last_map, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_USHORT, &p.rename, sizeof p.rename, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_TIME, &p.delete_date, sizeof p.delete_date, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p.look.robe, sizeof p.look.robe, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_USHORT, &p.slotchange, sizeof p.slotchange, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_TIME, &unban_time, sizeof unban_time, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_ENUM, &sex, sizeof sex, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
@@ -1172,67 +1175,67 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
"`save_map`,`save_x`,`save_y`,`partner_id`,`father`,`mother`,`child`,`fame`,`rename`,`delete_date`,`robe`,`slotchange`,"
"`char_opt`,`font`,`uniqueitem_counter`,`sex`,`hotkey_rowshift`"
" FROM `%s` WHERE `char_id`=? LIMIT 1", char_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &p->account_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &p->slot, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &p->name, sizeof(p->name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_SHORT, &p->class, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &p->base_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_INT, &p->job_level, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT64, &p->base_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UINT64, &p->job_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_INT, &p->zeny, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p->str, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p->agi, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p->vit, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p->int_, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p->dex, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_SHORT, &p->luk, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p->max_hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p->hp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p->max_sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p->sp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_INT, &p->status_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_INT, &p->skill_point, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UINT, &p->option, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_UCHAR, &p->karma, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p->manner, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_INT, &p->party_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_INT, &p->guild_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_INT, &p->pet_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_INT, &p->hom_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_INT, &p->ele_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p->hair, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p->hair_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p->clothes_color, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_SHORT, &p->body, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_SHORT, &p->look.weapon, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p->look.shield, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p->look.head_top, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_SHORT, &p->look.head_mid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_SHORT, &p->look.head_bottom, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 40, SQLDT_SHORT, &p->last_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 41, SQLDT_SHORT, &p->last_point.y, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 42, SQLDT_STRING, &save_map, sizeof(save_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 43, SQLDT_SHORT, &p->save_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 44, SQLDT_SHORT, &p->save_point.y, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 45, SQLDT_INT, &p->partner_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 46, SQLDT_INT, &p->father, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 47, SQLDT_INT, &p->mother, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 48, SQLDT_INT, &p->child, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 49, SQLDT_INT, &p->fame, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 50, SQLDT_USHORT, &p->rename, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 51, SQLDT_UINT32, &p->delete_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 52, SQLDT_SHORT, &p->look.robe, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 53, SQLDT_USHORT, &p->slotchange, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 54, SQLDT_UINT, &opt, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 55, SQLDT_UCHAR, &p->font, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 56, SQLDT_UINT, &p->uniqueitem_counter, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 57, SQLDT_ENUM, &sex, sizeof(sex), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 58, SQLDT_UCHAR, &p->hotkey_rowshift, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->char_id, sizeof p->char_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &p->account_id, sizeof p->account_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &p->slot, sizeof p->slot, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &p->name, sizeof p->name, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT16, &p->class, sizeof p->class, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &p->base_level, sizeof p->base_level, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_INT, &p->job_level, sizeof p->job_level, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_UINT64, &p->base_exp, sizeof p->base_exp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_UINT64, &p->job_exp, sizeof p->job_exp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_INT, &p->zeny, sizeof p->zeny, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_SHORT, &p->str, sizeof p->str, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_SHORT, &p->agi, sizeof p->agi, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_SHORT, &p->vit, sizeof p->vit, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_SHORT, &p->int_, sizeof p->int_, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 14, SQLDT_SHORT, &p->dex, sizeof p->dex, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 15, SQLDT_SHORT, &p->luk, sizeof p->luk, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 16, SQLDT_INT, &p->max_hp, sizeof p->max_hp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 17, SQLDT_INT, &p->hp, sizeof p->hp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 18, SQLDT_INT, &p->max_sp, sizeof p->max_sp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 19, SQLDT_INT, &p->sp, sizeof p->sp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 20, SQLDT_INT, &p->status_point, sizeof p->status_point, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 21, SQLDT_INT, &p->skill_point, sizeof p->skill_point, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 22, SQLDT_UINT, &p->option, sizeof p->option, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 23, SQLDT_UCHAR, &p->karma, sizeof p->karma, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 24, SQLDT_SHORT, &p->manner, sizeof p->manner, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 25, SQLDT_INT, &p->party_id, sizeof p->party_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 26, SQLDT_INT, &p->guild_id, sizeof p->guild_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 27, SQLDT_INT, &p->pet_id, sizeof p->pet_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 28, SQLDT_INT, &p->hom_id, sizeof p->hom_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 29, SQLDT_INT, &p->ele_id, sizeof p->ele_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 30, SQLDT_SHORT, &p->hair, sizeof p->hair, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 31, SQLDT_SHORT, &p->hair_color, sizeof p->hair_color, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 32, SQLDT_SHORT, &p->clothes_color, sizeof p->clothes_color, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 33, SQLDT_SHORT, &p->body, sizeof p->body, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 34, SQLDT_SHORT, &p->look.weapon, sizeof p->look.weapon, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 35, SQLDT_SHORT, &p->look.shield, sizeof p->look.shield, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 36, SQLDT_SHORT, &p->look.head_top, sizeof p->look.head_top, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 37, SQLDT_SHORT, &p->look.head_mid, sizeof p->look.head_mid, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 38, SQLDT_SHORT, &p->look.head_bottom, sizeof p->look.head_bottom, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 39, SQLDT_STRING, &last_map, sizeof last_map, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 40, SQLDT_INT16, &p->last_point.x, sizeof p->last_point.x, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 41, SQLDT_INT16, &p->last_point.y, sizeof p->last_point.y, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 42, SQLDT_STRING, &save_map, sizeof save_map, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 43, SQLDT_INT16, &p->save_point.x, sizeof p->save_point.x, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 44, SQLDT_INT16, &p->save_point.y, sizeof p->save_point.y, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 45, SQLDT_INT, &p->partner_id, sizeof p->partner_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 46, SQLDT_INT, &p->father, sizeof p->father, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 47, SQLDT_INT, &p->mother, sizeof p->mother, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 48, SQLDT_INT, &p->child, sizeof p->child, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 49, SQLDT_INT, &p->fame, sizeof p->fame, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 50, SQLDT_USHORT, &p->rename, sizeof p->rename, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 51, SQLDT_TIME, &p->delete_date, sizeof p->delete_date, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 52, SQLDT_SHORT, &p->look.robe, sizeof p->look.robe, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 53, SQLDT_USHORT, &p->slotchange, sizeof p->slotchange, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 54, SQLDT_UINT, &opt, sizeof opt, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 55, SQLDT_UCHAR, &p->font, sizeof p->font, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 56, SQLDT_UINT32, &p->uniqueitem_counter, sizeof p->uniqueitem_counter, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 57, SQLDT_ENUM, &sex, sizeof sex, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 58, SQLDT_UCHAR, &p->hotkey_rowshift, sizeof p->hotkey_rowshift, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
@@ -1276,11 +1279,11 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//`memo` (`memo_id`,`char_id`,`map`,`x`,`y`)
memset(&tmp_point, 0, sizeof(tmp_point));
if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `map`,`x`,`y` FROM `%s` WHERE `char_id`=? ORDER by `memo_id` LIMIT %d", memo_db, MAX_MEMOPOINTS)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &point_map, sizeof(point_map), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &tmp_point.x, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &tmp_point.y, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &point_map, sizeof point_map, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT16, &tmp_point.x, sizeof tmp_point.x, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT16, &tmp_point.y, sizeof tmp_point.y, NULL, NULL)
)
SqlStmt_ShowDebug(stmt);
@@ -1301,12 +1304,12 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//read skill
//`skill` (`char_id`, `id`, `lv`)
memset(&tmp_skill, 0, sizeof(tmp_skill));
- if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `id`, `lv`,`flag` FROM `%s` WHERE `char_id`=? LIMIT %d", skill_db, MAX_SKILL_DB)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id , 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR , &tmp_skill.lv , 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR , &tmp_skill.flag, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_USHORT, &tmp_skill.id, sizeof tmp_skill.id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_skill.lv, sizeof tmp_skill.lv, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UCHAR, &tmp_skill.flag, sizeof tmp_skill.flag, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
}
@@ -1314,7 +1317,7 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
if( tmp_skill.flag != SKILL_FLAG_PERM_GRANTED )
tmp_skill.flag = SKILL_FLAG_PERMANENT;
- for( i = 0; i < MAX_SKILL && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i ) {
+ for (i = 0; i < MAX_SKILL_DB && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i) {
if( skillid2idx[tmp_skill.id] )
memcpy(&p->skill[skillid2idx[tmp_skill.id]], &tmp_skill, sizeof(tmp_skill));
else
@@ -1326,11 +1329,11 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//`friends` (`char_id`, `friend_account`, `friend_id`)
memset(&tmp_friend, 0, sizeof(tmp_friend));
if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT c.`account_id`, c.`char_id`, c.`name` FROM `%s` c LEFT JOIN `%s` f ON f.`friend_account` = c.`account_id` AND f.`friend_id` = c.`char_id` WHERE f.`char_id`=? LIMIT %d", char_db, friend_db, MAX_FRIENDS)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_friend.account_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_friend.char_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &tmp_friend.name, sizeof(tmp_friend.name), NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_friend.account_id, sizeof tmp_friend.account_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_friend.char_id, sizeof tmp_friend.char_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &tmp_friend.name, sizeof tmp_friend.name, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
}
@@ -1344,13 +1347,15 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//`hotkey` (`char_id`, `hotkey`, `type`, `itemskill_id`, `skill_lvl`
memset(&tmp_hotkey, 0, sizeof(tmp_hotkey));
if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `hotkey`, `type`, `itemskill_id`, `skill_lvl` FROM `%s` WHERE `char_id`=?", hotkey_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &hotkey_num, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_hotkey.type, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_hotkey.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &tmp_hotkey.lv, 0, NULL, NULL) )
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &hotkey_num, sizeof hotkey_num, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_UCHAR, &tmp_hotkey.type, sizeof tmp_hotkey.type, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_hotkey.id, sizeof tmp_hotkey.id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &tmp_hotkey.lv, sizeof tmp_hotkey.lv, NULL, NULL)
+ ) {
SqlStmt_ShowDebug(stmt);
+ }
while( SQL_SUCCESS == SQL->StmtNextRow(stmt) )
{
@@ -1371,12 +1376,12 @@ int char_mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_every
//`account_data` (`account_id`,`bank_vault`,`base_exp`,`base_drop`,`base_death`)
if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `bank_vault`,`base_exp`,`base_drop`,`base_death` FROM `%s` WHERE `account_id`=? LIMIT 1", account_data_db)
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &account_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &account_id, sizeof account_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->bank_vault, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_USHORT, &p->mod_exp, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_USHORT, &p->mod_drop, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &p->mod_death, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &p->bank_vault, sizeof p->bank_vault, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_USHORT, &p->mod_exp, sizeof p->mod_exp, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_USHORT, &p->mod_drop, sizeof p->mod_drop, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &p->mod_death, sizeof p->mod_death, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
}
@@ -2250,7 +2255,7 @@ int char_parse_fromlogin_connection_state(int fd)
ShowError("Can not connect to login-server.\n");
ShowError("The server communication passwords (default s1/p1) are probably invalid.\n");
ShowError("Also, please make sure your login db has the correct communication username/passwords and the gender of the account is S.\n");
- ShowError("The communication passwords are set in /conf/map-server.conf and /conf/char/char-server.conf\n");
+ ShowError("The communication passwords are set in /conf/map/map-server.conf and /conf/char/char-server.conf\n");
sockt->eof(fd);
return 1;
} else {
@@ -2439,13 +2444,13 @@ int char_parse_fromlogin_changesex_reply(int fd)
stmt = SQL->StmtMalloc(inter->sql_handle);
if (SQL_ERROR == SQL->StmtPrepare(stmt, "SELECT `char_id`,`class`,`guild_id` FROM `%s` WHERE `account_id` = '%d'", char_db, acc)
|| SQL_ERROR == SQL->StmtExecute(stmt)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &char_id, sizeof char_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &class, sizeof class, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &guild_id, sizeof guild_id, NULL, NULL)
) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
}
- SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &char_id, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &class, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &guild_id, 0, NULL, NULL);
for (i = 0; i < MAX_CHARS && SQL_SUCCESS == SQL->StmtNextRow(stmt); ++i) {
char_change_sex_sub(sex, acc, char_id, class, guild_id);
@@ -2979,8 +2984,8 @@ void char_parse_frommap_skillid2idx(int fd)
if( j )
j /= 4;
for(i = 0; i < j; i++) {
- if( RFIFOW(fd, 4 + (i*4)) > MAX_SKILL_ID ) {
- ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n",RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)),RFIFOW(fd, 4 + (i*4)),MAX_SKILL_ID);
+ if (RFIFOW(fd, 4 + (i*4)) >= MAX_SKILL_ID) {
+ ShowWarning("Error skillid2dx[%d] = %d failed, %d is higher than MAX_SKILL_ID (%d)\n", RFIFOW(fd, 4 + (i*4)), RFIFOW(fd, 6 + (i*4)), RFIFOW(fd, 4 + (i*4)), MAX_SKILL_ID);
continue;
}
skillid2idx[RFIFOW(fd, 4 + (i*4))] = RFIFOW(fd, 6 + (i*4));
@@ -3375,8 +3380,8 @@ void char_ban(int account_id, int char_id, time_t *unban_time, short year, short
if( SQL_SUCCESS != SQL->StmtPrepare(stmt,
"UPDATE `%s` SET `unban_time` = ? WHERE `char_id` = ? LIMIT 1",
char_db)
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_LONG, &timestamp, sizeof(timestamp))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_INT, &char_id, sizeof(char_id))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_TIME, &timestamp, sizeof timestamp)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_SUCCESS != SQL->StmtExecute(stmt)
) {
SqlStmt_ShowDebug(stmt);
@@ -3385,7 +3390,7 @@ void char_ban(int account_id, int char_id, time_t *unban_time, short year, short
SQL->StmtFree(stmt);
// condition applies; send to all map-servers to disconnect the player
- if( timestamp > time(NULL) ) {
+ if (timestamp > time(NULL)) {
mapif->char_ban(char_id, timestamp);
// disconnect player if online on char-server
chr->disconnect_player(account_id);
diff --git a/src/char/int_homun.c b/src/char/int_homun.c
index 04f4c8f21..edf737992 100644
--- a/src/char/int_homun.c
+++ b/src/char/int_homun.c
@@ -129,10 +129,10 @@ bool mapif_homunculus_create(struct s_homunculus *hd)
SQL->EscapeStringLen(inter->sql_handle, esc_name, hd->name, strnlen(hd->name, NAME_LENGTH));
if (SQL_ERROR == SQL->Query(inter->sql_handle, "INSERT INTO `%s` "
- "(`char_id`, `class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`, `rename_flag`, `vaporize`) "
- "VALUES ('%d', '%d', '%d', '%s', '%d', '%u', '%u', '%d', '%d', %d, '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
+ "(`char_id`, `class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`, `rename_flag`, `vaporize`, `autofeed`) "
+ "VALUES ('%d', '%d', '%d', '%s', '%d', '%u', '%u', '%d', '%d', %d, '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
homunculus_db, hd->char_id, hd->class_, hd->prev_class, esc_name, hd->level, hd->exp, hd->intimacy, hd->hunger, hd->str, hd->agi, hd->vit, hd->int_, hd->dex, hd->luk,
- hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize)) {
+ hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize, hd->autofeed)) {
Sql_ShowDebug(inter->sql_handle);
return false;
}
@@ -156,9 +156,9 @@ bool mapif_homunculus_save(const struct s_homunculus *hd)
SQL->EscapeStringLen(inter->sql_handle, esc_name, hd->name, strnlen(hd->name, NAME_LENGTH));
- if (SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_id`='%d', `class`='%d',`prev_class`='%d',`name`='%s',`level`='%d',`exp`='%u',`intimacy`='%u',`hunger`='%d', `str`='%d', `agi`='%d', `vit`='%d', `int`='%d', `dex`='%d', `luk`='%d', `hp`='%d',`max_hp`='%d',`sp`='%d',`max_sp`='%d',`skill_point`='%d', `rename_flag`='%d', `vaporize`='%d' WHERE `homun_id`='%d'",
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "UPDATE `%s` SET `char_id`='%d', `class`='%d',`prev_class`='%d',`name`='%s',`level`='%d',`exp`='%u',`intimacy`='%u',`hunger`='%d', `str`='%d', `agi`='%d', `vit`='%d', `int`='%d', `dex`='%d', `luk`='%d', `hp`='%d',`max_hp`='%d',`sp`='%d',`max_sp`='%d',`skill_point`='%d', `rename_flag`='%d', `vaporize`='%d', `autofeed`='%d' WHERE `homun_id`='%d'",
homunculus_db, hd->char_id, hd->class_, hd->prev_class, esc_name, hd->level, hd->exp, hd->intimacy, hd->hunger, hd->str, hd->agi, hd->vit, hd->int_, hd->dex, hd->luk,
- hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize, hd->hom_id)) {
+ hd->hp, hd->max_hp, hd->sp, hd->max_sp, hd->skillpts, hd->rename_flag, hd->vaporize, hd->autofeed, hd->hom_id)) {
Sql_ShowDebug(inter->sql_handle);
flag = false;
} else {
@@ -171,9 +171,9 @@ bool mapif_homunculus_save(const struct s_homunculus *hd)
} else {
for (i = 0; i < MAX_HOMUNSKILL; ++i) {
if (hd->hskill[i].id > 0 && hd->hskill[i].lv != 0) {
- SQL->StmtBindParam(stmt, 0, SQLDT_USHORT, &hd->hskill[i].id, 0);
- SQL->StmtBindParam(stmt, 1, SQLDT_USHORT, &hd->hskill[i].lv, 0);
- if (SQL_ERROR == SQL->StmtExecute(stmt)) {
+ if (SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_USHORT, &hd->hskill[i].id, sizeof hd->hskill[i].id)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 1, SQLDT_UCHAR, &hd->hskill[i].lv, sizeof hd->hskill[i].lv)
+ || SQL_ERROR == SQL->StmtExecute(stmt)) {
SqlStmt_ShowDebug(stmt);
flag = false;
break;
@@ -196,7 +196,7 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
nullpo_ret(hd);
memset(hd, 0, sizeof(*hd));
- if( SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `homun_id`,`char_id`,`class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`,`rename_flag`, `vaporize` FROM `%s` WHERE `homun_id`='%d'", homunculus_db, homun_id) )
+ if (SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `homun_id`,`char_id`,`class`,`prev_class`,`name`,`level`,`exp`,`intimacy`,`hunger`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `hp`,`max_hp`,`sp`,`max_sp`,`skill_point`,`rename_flag`, `vaporize`, `autofeed` FROM `%s` WHERE `homun_id`='%d'", homunculus_db, homun_id))
{
Sql_ShowDebug(inter->sql_handle);
return false;
@@ -236,6 +236,7 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd)
SQL->GetData(inter->sql_handle, 19, &data, NULL); hd->skillpts = atoi(data);
SQL->GetData(inter->sql_handle, 20, &data, NULL); hd->rename_flag = atoi(data);
SQL->GetData(inter->sql_handle, 21, &data, NULL); hd->vaporize = atoi(data);
+ SQL->GetData(inter->sql_handle, 22, &data, NULL); hd->autofeed = atoi(data);
SQL->FreeResult(inter->sql_handle);
hd->intimacy = cap_value(hd->intimacy, 0, 100000);
diff --git a/src/char/int_quest.c b/src/char/int_quest.c
index bd49cb7d4..9554be414 100644
--- a/src/char/int_quest.c
+++ b/src/char/int_quest.c
@@ -56,6 +56,7 @@ struct quest *mapif_quests_fromsql(int char_id, int *count)
StringBuf buf;
int i;
int sqlerror = SQL_SUCCESS;
+ int quest_state = 0;
if (!count)
return NULL;
@@ -77,11 +78,11 @@ struct quest *mapif_quests_fromsql(int char_id, int *count)
memset(&tmp_quest, 0, sizeof(struct quest));
if (SQL_ERROR == SQL->StmtPrepareStr(stmt, StrBuf->Value(&buf))
- || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, 0)
+ || SQL_ERROR == SQL->StmtBindParam(stmt, 0, SQLDT_INT, &char_id, sizeof char_id)
|| SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_quest.quest_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &tmp_quest.state, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_quest.time, 0, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &tmp_quest.quest_id, sizeof tmp_quest.quest_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &quest_state, sizeof quest_state, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_UINT, &tmp_quest.time, sizeof tmp_quest.time, NULL, NULL)
) {
sqlerror = SQL_ERROR;
}
@@ -89,7 +90,7 @@ struct quest *mapif_quests_fromsql(int char_id, int *count)
StrBuf->Destroy(&buf);
for (i = 0; sqlerror != SQL_ERROR && i < MAX_QUEST_OBJECTIVES; i++) { // Stop on the first error
- sqlerror = SQL->StmtBindColumn(stmt, 3+i, SQLDT_INT, &tmp_quest.count[i], 0, NULL, NULL);
+ sqlerror = SQL->StmtBindColumn(stmt, 3+i, SQLDT_INT, &tmp_quest.count[i], sizeof tmp_quest.count[i], NULL, NULL);
}
if (sqlerror == SQL_ERROR) {
@@ -105,9 +106,10 @@ struct quest *mapif_quests_fromsql(int char_id, int *count)
questlog = (struct quest *)aCalloc(*count, sizeof(struct quest));
while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) {
+ tmp_quest.state = quest_state;
if (i >= *count) // Sanity check, should never happen
break;
- memcpy(&questlog[i++], &tmp_quest, sizeof(tmp_quest));
+ questlog[i++] = tmp_quest;
}
if (i < *count) {
// Should never happen. Compact array
diff --git a/src/char/int_rodex.c b/src/char/int_rodex.c
index 994e8110e..b7314e726 100644
--- a/src/char/int_rodex.c
+++ b/src/char/int_rodex.c
@@ -43,10 +43,9 @@ struct inter_rodex_interface *inter_rodex;
// Loads new mails of this char_id/account_id
static int inter_rodex_fromsql(int char_id, int account_id, int8 opentype, int64 mail_id, struct rodex_maillist *mails)
{
- int i, count = 0;
+ int count = 0;
struct rodex_message msg = { 0 };
struct SqlStmt *stmt;
- struct SqlStmt *stmt_items;
nullpo_retr(-1, mails);
@@ -108,112 +107,128 @@ static int inter_rodex_fromsql(int char_id, int account_id, int8 opentype, int64
}
if (SQL_ERROR == SQL->StmtExecute(stmt)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT64, &msg.id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_STRING, &msg.sender_name, sizeof(msg.sender_name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &msg.sender_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &msg.receiver_name, sizeof(msg.receiver_name), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT, &msg.receiver_id, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &msg.receiver_accountid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_STRING, &msg.title, sizeof(msg.title), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_STRING, &msg.body, sizeof(msg.body), NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT, &msg.zeny, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT8, &msg.type, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_INT8, &msg.is_read, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_INT, &msg.send_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_INT, &msg.expire_date, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_INT, &msg.weight, 0, NULL, NULL)
- ) {
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 0, SQLDT_INT64, &msg.id, sizeof msg.id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 1, SQLDT_STRING, &msg.sender_name, sizeof msg.sender_name, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &msg.sender_id, sizeof msg.sender_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 3, SQLDT_STRING, &msg.receiver_name, sizeof msg.receiver_name, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 4, SQLDT_INT, &msg.receiver_id, sizeof msg.receiver_id, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 5, SQLDT_INT, &msg.receiver_accountid, sizeof msg.receiver_accountid, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 6, SQLDT_STRING, &msg.title, sizeof msg.title, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 7, SQLDT_STRING, &msg.body, sizeof msg.body, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 8, SQLDT_INT64, &msg.zeny, sizeof msg.zeny, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 9, SQLDT_UINT8, &msg.type, sizeof msg.type, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 10, SQLDT_BOOL, &msg.is_read, sizeof msg.is_read, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 11, SQLDT_INT, &msg.send_date, sizeof msg.send_date, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 12, SQLDT_INT, &msg.expire_date, sizeof msg.expire_date, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt, 13, SQLDT_INT, &msg.weight, sizeof msg.weight, NULL, NULL)
+ ) {
SqlStmt_ShowDebug(stmt);
SQL->StmtFree(stmt);
return -1;
}
- stmt_items = SQL->StmtMalloc(inter->sql_handle);
- if (stmt_items == NULL) {
- SQL->StmtFreeResult(stmt);
- SQL->StmtFree(stmt);
- return -1;
- }
-
- // Read mails
- while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) {
+ {
struct item it = { 0 };
+ StringBuf buf;
+ struct SqlStmt *stmt_items = SQL->StmtMalloc(inter->sql_handle);
+ int i;
- if (msg.type & MAIL_TYPE_ITEM) {
- if (SQL_ERROR == SQL->StmtPrepare(stmt_items, "SELECT `nameid`, `amount`, `equip`, `identify`,"
- "`refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `opt_idx0`, `opt_val0`,"
- "`opt_idx1`, `opt_val1`, `opt_idx2`, `opt_val2`, `opt_idx3`, `opt_val3`, `opt_idx4`, `opt_val4`,"
- "`expire_time`, `bound`, `unique_id`"
- "FROM `%s` WHERE mail_id = '%"PRId64"' ORDER BY `mail_id` ASC", rodex_item_db, msg.id)
- || SQL_ERROR == SQL->StmtExecute(stmt_items)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 0, SQLDT_INT, &it.nameid, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 1, SQLDT_INT, &it.amount, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 2, SQLDT_UINT, &it.equip, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 3, SQLDT_INT8, &it.identify, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 4, SQLDT_INT8, &it.refine, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 5, SQLDT_INT8, &it.attribute, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 6, SQLDT_INT16, &it.card[0], 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 7, SQLDT_INT16, &it.card[1], 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 8, SQLDT_INT16, &it.card[2], 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 9, SQLDT_INT16, &it.card[3], 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 10, SQLDT_INT16, &it.option[0].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 11, SQLDT_INT16, &it.option[0].value, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 12, SQLDT_INT16, &it.option[1].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 13, SQLDT_INT16, &it.option[1].value, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 14, SQLDT_INT16, &it.option[2].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 15, SQLDT_INT16, &it.option[2].value, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 16, SQLDT_INT16, &it.option[3].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 17, SQLDT_INT16, &it.option[3].value, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 18, SQLDT_INT16, &it.option[4].index, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 19, SQLDT_INT16, &it.option[4].value, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 20, SQLDT_INT, &it.expire_time, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 21, SQLDT_UINT8, &it.bound, 0, NULL, NULL)
- || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 22, SQLDT_UINT64, &it.unique_id, 0, NULL, NULL)) {
- SqlStmt_ShowDebug(stmt_items);
- }
-
- for (i = 0; i < RODEX_MAX_ITEM && SQL_SUCCESS == SQL->StmtNextRow(stmt_items); ++i) {
- msg.items[i].item = it;
- msg.items_count++;
- }
+ if (stmt_items == NULL) {
+ SQL->StmtFreeResult(stmt);
+ SQL->StmtFree(stmt);
+ return -1;
}
- if (msg.items_count == 0) {
- msg.type &= ~MAIL_TYPE_ITEM;
+ StrBuf->Init(&buf);
+
+ StrBuf->AppendStr(&buf, "SELECT `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`");
+ for (i = 0; i < MAX_SLOTS; i++) {
+ StrBuf->Printf(&buf, ", `card%d`", i);
+ }
+ for (i = 0; i < MAX_ITEM_OPTIONS; i++) {
+ StrBuf->Printf(&buf, ", `opt_idx%d`, `opt_val%d`", i, i);
}
+ StrBuf->Printf(&buf, "FROM `%s` WHERE mail_id = ? ORDER BY `mail_id` ASC", rodex_item_db);
- if (msg.zeny == 0) {
- msg.type &= ~MAIL_TYPE_ZENY;
+ if (SQL_ERROR == SQL->StmtPrepareStr(stmt_items, StrBuf->Value(&buf))
+ || SQL_ERROR == SQL->StmtBindParam(stmt_items, 0, SQLDT_INT64, &msg.id, sizeof msg.id)
+ ) {
+ SqlStmt_ShowDebug(stmt_items);
}
+ // Read mails
+ while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) {
+
+ if (msg.type & MAIL_TYPE_ITEM) {
+ if (SQL_ERROR == SQL->StmtExecute(stmt_items)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 0, SQLDT_SHORT, &it.nameid, sizeof it.nameid, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 1, SQLDT_SHORT, &it.amount, sizeof it.amount, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 2, SQLDT_UINT, &it.equip, sizeof it.equip, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 3, SQLDT_CHAR, &it.identify, sizeof it.identify, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 4, SQLDT_CHAR, &it.refine, sizeof it.refine, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 5, SQLDT_CHAR, &it.attribute, sizeof it.attribute, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 6, SQLDT_UINT, &it.expire_time, sizeof it.expire_time, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 7, SQLDT_UCHAR, &it.bound, sizeof it.bound, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 8, SQLDT_UINT64, &it.unique_id, sizeof it.unique_id, NULL, NULL)
+ ) {
+ SqlStmt_ShowDebug(stmt_items);
+ }
+ for (i = 0; i < MAX_SLOTS; i++) {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt_items, 9 + i, SQLDT_SHORT, &it.card[i], sizeof it.card[i], NULL, NULL))
+ SqlStmt_ShowDebug(stmt_items);
+ }
+ for (i = 0; i < MAX_ITEM_OPTIONS; i++) {
+ if (SQL_ERROR == SQL->StmtBindColumn(stmt_items, 9 + MAX_SLOTS + i * 2, SQLDT_INT16, &it.option[i].index, sizeof it.option[i].index, NULL, NULL)
+ || SQL_ERROR == SQL->StmtBindColumn(stmt_items, 10 + MAX_SLOTS + i * 2, SQLDT_INT16, &it.option[i].value, sizeof it.option[i].value, NULL, NULL)
+ ) {
+ SqlStmt_ShowDebug(stmt_items);
+ }
+ }
+
+ for (i = 0; i < RODEX_MAX_ITEM && SQL_SUCCESS == SQL->StmtNextRow(stmt_items); ++i) {
+ msg.items[i].item = it;
+ msg.items_count++;
+ }
+ }
+
+ if (msg.items_count == 0) {
+ msg.type &= ~MAIL_TYPE_ITEM;
+ }
+
+ if (msg.zeny == 0) {
+ msg.type &= ~MAIL_TYPE_ZENY;
+ }
+
#if PACKETVER >= 20170419
- if (opentype == RODEX_OPENTYPE_UNSET) {
- if (msg.receiver_id != 0)
- msg.opentype = RODEX_OPENTYPE_MAIL;
- else
- msg.opentype = RODEX_OPENTYPE_ACCOUNT;
- } else {
- msg.opentype = opentype;
- }
+ if (opentype == RODEX_OPENTYPE_UNSET) {
+ if (msg.receiver_id != 0)
+ msg.opentype = RODEX_OPENTYPE_MAIL;
+ else
+ msg.opentype = RODEX_OPENTYPE_ACCOUNT;
+ } else {
+ msg.opentype = opentype;
+ }
#else
- msg.opentype = opentype;
+ msg.opentype = opentype;
#endif
#if PACKETVER < 20160601
- // NPC Message Type isn't supported in old clients
- msg.type &= ~MAIL_TYPE_NPC;
+ // NPC Message Type isn't supported in old clients
+ msg.type &= ~MAIL_TYPE_NPC;
#endif
- ++count;
- VECTOR_ENSURE(*mails, 1, 1);
- VECTOR_PUSH(*mails, msg);
- memset(&msg, 0, sizeof(struct rodex_message));
+ ++count;
+ VECTOR_ENSURE(*mails, 1, 1);
+ VECTOR_PUSH(*mails, msg);
+ memset(&msg, 0, sizeof(struct rodex_message));
+
+ SQL->StmtFreeResult(stmt_items);
+ }
+ StrBuf->Destroy(&buf);
+ SQL->StmtFree(stmt_items);
}
SQL->StmtFreeResult(stmt);
- SQL->StmtFreeResult(stmt_items);
-
SQL->StmtFree(stmt);
- SQL->StmtFree(stmt_items);
ShowInfo("rodex load complete from DB - id: %d (total: %d)\n", char_id, count);
return count;
@@ -331,27 +346,28 @@ int64 inter_rodex_savemessage(struct rodex_message* msg)
*------------------------------------------*/
void mapif_rodex_sendinbox(int fd, int char_id, int8 opentype, int8 flag, int count, struct rodex_maillist *mails)
{
- int per_packet = (UINT16_MAX - 15) / sizeof(struct rodex_message);
+ int per_packet = (UINT16_MAX - 16) / sizeof(struct rodex_message);
int sent = 0;
+ bool is_first = true;
nullpo_retv(mails);
Assert_retv(char_id > 0);
Assert_retv(count >= 0);
do {
- int i = 15, j, size, limit;
+ int i = 16, j, size, limit;
+ int to_send = count - sent;
bool is_last = true;
- if (count <= per_packet) {
- size = count * sizeof(struct rodex_message) + 15;
- limit = count;
+ if (to_send <= per_packet) {
+ size = to_send * sizeof(struct rodex_message) + 16;
+ limit = to_send;
is_last = true;
} else {
- int to_send = count - sent;
limit = min(to_send, per_packet);
if (limit != to_send) {
is_last = false;
}
- size = limit * sizeof(struct rodex_message) + 15;
+ size = limit * sizeof(struct rodex_message) + 16;
}
WFIFOHEAD(fd, size);
@@ -361,11 +377,14 @@ void mapif_rodex_sendinbox(int fd, int char_id, int8 opentype, int8 flag, int co
WFIFOB(fd, 8) = opentype;
WFIFOB(fd, 9) = flag;
WFIFOB(fd, 10) = is_last;
- WFIFOL(fd, 11) = count;
+ WFIFOB(fd, 11) = is_first;
+ WFIFOL(fd, 12) = limit;
for (j = 0; j < limit; ++j, ++sent, i += sizeof(struct rodex_message)) {
memcpy(WFIFOP(fd, i), &VECTOR_INDEX(*mails, sent), sizeof(struct rodex_message));
}
WFIFOSET(fd, size);
+
+ is_first = false;
} while (sent < count);
}
diff --git a/src/char/int_storage.c b/src/char/int_storage.c
index aafba8520..70cdc5f19 100644
--- a/src/char/int_storage.c
+++ b/src/char/int_storage.c
@@ -566,23 +566,23 @@ int mapif_parse_ItemBoundRetrieve_sub(int fd)
}
memset(&item, 0, sizeof(item));
- SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 3, SQLDT_USHORT, &item.equip, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &item.unique_id, 0, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 0, SQLDT_INT, &item.id, sizeof item.id, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, sizeof item.nameid, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 2, SQLDT_SHORT, &item.amount, sizeof item.amount, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 3, SQLDT_UINT, &item.equip, sizeof item.equip, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 4, SQLDT_CHAR, &item.identify, sizeof item.identify, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 5, SQLDT_CHAR, &item.refine, sizeof item.refine, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, sizeof item.attribute, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, sizeof item.expire_time, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 8, SQLDT_UCHAR, &item.bound, sizeof item.bound, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 9, SQLDT_UINT64, &item.unique_id, sizeof item.unique_id, NULL, NULL);
/* Card Slots */
for (j = 0; j < MAX_SLOTS; ++j)
- SQL->StmtBindColumn(stmt, 10 + j, SQLDT_SHORT, &item.card[j], 0, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 10 + j, SQLDT_SHORT, &item.card[j], sizeof item.card[j], NULL, NULL);
/* Item Options */
for (j = 0; j < MAX_ITEM_OPTIONS; ++j) {
- SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + j * 2, SQLDT_INT16, &item.option[j].index, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 11 + MAX_SLOTS + j * 2, SQLDT_INT16, &item.option[j].value, 0, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 10 + MAX_SLOTS + j * 2, SQLDT_INT16, &item.option[j].index, sizeof item.option[j].index, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 11 + MAX_SLOTS + j * 2, SQLDT_INT16, &item.option[j].value, sizeof item.option[j].value, NULL, NULL);
}
while (SQL_SUCCESS == SQL->StmtNextRow(stmt)) {
Assert_retb(i < MAX_INVENTORY);
diff --git a/src/common/HPMDataCheck.h b/src/common/HPMDataCheck.h
index 7480269e5..97a772b6e 100644
--- a/src/common/HPMDataCheck.h
+++ b/src/common/HPMDataCheck.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2014-2017 Hercules Dev Team
+ * Copyright (C) 2014-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -325,6 +325,7 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "packet_CA_LOGIN3", sizeof(struct packet_CA_LOGIN3), SERVER_TYPE_LOGIN },
{ "packet_CA_LOGIN4", sizeof(struct packet_CA_LOGIN4), SERVER_TYPE_LOGIN },
{ "packet_CA_LOGIN_HAN", sizeof(struct packet_CA_LOGIN_HAN), SERVER_TYPE_LOGIN },
+ { "packet_CA_LOGIN_OTP", sizeof(struct packet_CA_LOGIN_OTP), SERVER_TYPE_LOGIN },
{ "packet_CA_LOGIN_PCBANG", sizeof(struct packet_CA_LOGIN_PCBANG), SERVER_TYPE_LOGIN },
{ "packet_CA_SSO_LOGIN_REQ", sizeof(struct packet_CA_SSO_LOGIN_REQ), SERVER_TYPE_LOGIN },
{ "packet_SC_NOTIFY_BAN", sizeof(struct packet_SC_NOTIFY_BAN), SERVER_TYPE_LOGIN },
@@ -570,11 +571,16 @@ HPExport const struct s_HPMDataCheck HPMDataCheck[] = {
{ "PACKET_ZC_ACK_REMOVE_ITEM_MAIL", sizeof(struct PACKET_ZC_ACK_REMOVE_ITEM_MAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_ACK_ZENY_FROM_MAIL", sizeof(struct PACKET_ZC_ACK_ZENY_FROM_MAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_ADD_ITEM_TO_MAIL", sizeof(struct PACKET_ZC_ADD_ITEM_TO_MAIL), SERVER_TYPE_MAP },
+ { "PACKET_ZC_ADD_MEMBER_TO_GROUP", sizeof(struct PACKET_ZC_ADD_MEMBER_TO_GROUP), SERVER_TYPE_MAP },
{ "PACKET_ZC_CHECKNAME", sizeof(struct PACKET_ZC_CHECKNAME), SERVER_TYPE_MAP },
+ { "PACKET_ZC_GROUP_LIST", sizeof(struct PACKET_ZC_GROUP_LIST), SERVER_TYPE_MAP },
+ { "PACKET_ZC_GROUP_LIST_SUB", sizeof(struct PACKET_ZC_GROUP_LIST_SUB), SERVER_TYPE_MAP },
{ "PACKET_ZC_MAIL_LIST", sizeof(struct PACKET_ZC_MAIL_LIST), SERVER_TYPE_MAP },
{ "PACKET_ZC_NOTIFY_UNREADMAIL", sizeof(struct PACKET_ZC_NOTIFY_UNREADMAIL), SERVER_TYPE_MAP },
{ "PACKET_ZC_READ_MAIL", sizeof(struct PACKET_ZC_READ_MAIL), SERVER_TYPE_MAP },
+ { "PACKET_ZC_SKILL_SCALE", sizeof(struct PACKET_ZC_SKILL_SCALE), SERVER_TYPE_MAP },
{ "PACKET_ZC_WRITE_MAIL_RESULT", sizeof(struct PACKET_ZC_WRITE_MAIL_RESULT), SERVER_TYPE_MAP },
+ { "ZC_PROGRESS_ACTOR", sizeof(struct ZC_PROGRESS_ACTOR), SERVER_TYPE_MAP },
{ "mail_item", sizeof(struct mail_item), SERVER_TYPE_MAP },
{ "maillistinfo", sizeof(struct maillistinfo), SERVER_TYPE_MAP },
{ "packet_additem", sizeof(struct packet_additem), SERVER_TYPE_MAP },
diff --git a/src/common/HPMSymbols.inc.h b/src/common/HPMSymbols.inc.h
index 5ee8a014b..58540ee36 100644
--- a/src/common/HPMSymbols.inc.h
+++ b/src/common/HPMSymbols.inc.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 52f68b719..7fd4ca6ea 100644
--- a/src/common/mmo.h
+++ b/src/common/mmo.h
@@ -74,6 +74,13 @@
#undef ENABLE_PACKETVER_RE
#endif // DISABLE_PACKETVER_RE
+//Uncomment the following line if your client is zero ragexe instead of normal kro clients
+//#define ENABLE_PACKETVER_ZERO
+#ifdef ENABLE_PACKETVER_ZERO
+ #define PACKETVER_ZERO
+ #undef ENABLE_PACKETVER_ZERO
+#endif // DISABLE_PACKETVER_ZERO
+
// Client support for experimental RagexeRE UI present in 2012-04-10 and 2012-04-18
#if defined(PACKETVER_RE) && ( PACKETVER == 20120410 || PACKETVER == 20120418 )
#define PARTY_RECRUIT
@@ -139,8 +146,8 @@
#endif
#define MAX_FAME 1000000000
#define MAX_CART 100
-#ifndef MAX_SKILL
-#define MAX_SKILL 1510
+#ifndef MAX_SKILL_DB
+#define MAX_SKILL_DB 1510 ///< Maximum number of skills in the skill DB (compacted array size)
#endif
#ifndef MAX_SKILL_ID
#define MAX_SKILL_ID 10015 // [Ind/Hercules] max used skill ID
@@ -552,6 +559,7 @@ struct s_homunculus { //[orn]
int luk_value;
int8 spiritball; //for homun S [lighta]
+ int autofeed;
};
struct s_mercenary {
@@ -635,7 +643,7 @@ struct mmo_charstatus {
struct point last_point,save_point,memo_point[MAX_MEMOPOINTS];
struct item inventory[MAX_INVENTORY],cart[MAX_CART];
- struct s_skill skill[MAX_SKILL];
+ struct s_skill skill[MAX_SKILL_DB];
struct s_friend friends[MAX_FRIENDS]; //New friend system [Skotlex]
#ifdef HOTKEY_SAVING
@@ -1203,4 +1211,8 @@ enum hz_char_ask_name_answer {
#error MAX_SLOTS it too small
#endif
+#ifdef MAX_SKILL
+#error MAX_SKILL has been replaced by MAX_SKILL_DB. Please update your custom definitions.
+#endif
+
#endif /* COMMON_MMO_H */
diff --git a/src/common/nullpo.h b/src/common/nullpo.h
index 28d058dc0..ae0c82364 100644
--- a/src/common/nullpo.h
+++ b/src/common/nullpo.h
@@ -23,15 +23,10 @@
#include "common/hercules.h"
-// enabled by default on debug builds
-#if defined(DEBUG) && !defined(NULLPO_CHECK)
+// if need disable nullpo checks this line can be commented
#define NULLPO_CHECK
-#endif
-
-// Skip assert checks on release builds
-#if !defined(RELEASE) && !defined(ASSERT_CHECK)
+// if need disable asserts checks this line can be commented
#define ASSERT_CHECK
-#endif
/** Assert */
diff --git a/src/common/sql.c b/src/common/sql.c
index 235be3aca..7f526cff6 100644
--- a/src/common/sql.c
+++ b/src/common/sql.c
@@ -423,68 +423,99 @@ static int Sql_P_BindSqlDataType(MYSQL_BIND* bind, enum SqlDataType buffer_type,
memset(bind, 0, sizeof(MYSQL_BIND));
switch( buffer_type )
{
- case SQLDT_NULL: bind->buffer_type = MYSQL_TYPE_NULL;
+ case SQLDT_NULL:
+ bind->buffer_type = MYSQL_TYPE_NULL;
buffer_len = 0;// FIXME length = ? [FlavioJS]
break;
// fixed size
- case SQLDT_UINT8: bind->is_unsigned = 1;
+ case SQLDT_UINT8:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_INT8: bind->buffer_type = MYSQL_TYPE_TINY;
- buffer_len = 1;
+ case SQLDT_INT8:
+ bind->buffer_type = MYSQL_TYPE_TINY;
+ Assert_retr(SQL_ERROR, buffer_len == 1);
break;
- case SQLDT_UINT16: bind->is_unsigned = 1;
+ case SQLDT_UINT16:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_INT16: bind->buffer_type = MYSQL_TYPE_SHORT;
- buffer_len = 2;
+ case SQLDT_INT16:
+ bind->buffer_type = MYSQL_TYPE_SHORT;
+ Assert_retr(SQL_ERROR, buffer_len == 2);
break;
- case SQLDT_UINT32: bind->is_unsigned = 1;
+ case SQLDT_UINT32:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_INT32: bind->buffer_type = MYSQL_TYPE_LONG;
- buffer_len = 4;
+ case SQLDT_INT32:
+ bind->buffer_type = MYSQL_TYPE_LONG;
+ Assert_retr(SQL_ERROR, buffer_len == 4);
break;
- case SQLDT_UINT64: bind->is_unsigned = 1;
+ case SQLDT_UINT64:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_INT64: bind->buffer_type = MYSQL_TYPE_LONGLONG;
- buffer_len = 8;
+ case SQLDT_INT64:
+ bind->buffer_type = MYSQL_TYPE_LONGLONG;
+ Assert_retr(SQL_ERROR, buffer_len == 8);
break;
// platform dependent size
- case SQLDT_UCHAR: bind->is_unsigned = 1;
+ case SQLDT_UCHAR:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_CHAR: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(char));
- buffer_len = sizeof(char);
+ case SQLDT_CHAR:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(char));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(char));
break;
- case SQLDT_USHORT: bind->is_unsigned = 1;
+ case SQLDT_USHORT:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_SHORT: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(short));
- buffer_len = sizeof(short);
+ case SQLDT_SHORT:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(short));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(short));
break;
- case SQLDT_UINT: bind->is_unsigned = 1;
+ case SQLDT_UINT:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_INT: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(int));
- buffer_len = sizeof(int);
+ case SQLDT_INT:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(int));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(int));
break;
- case SQLDT_ULONG: bind->is_unsigned = 1;
+ case SQLDT_ULONG:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_LONG: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(long));
- buffer_len = sizeof(long);
+ case SQLDT_LONG:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(long));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(long));
break;
- case SQLDT_ULONGLONG: bind->is_unsigned = 1;
+ case SQLDT_ULONGLONG:
+ bind->is_unsigned = 1;
FALLTHROUGH
- case SQLDT_LONGLONG: bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(int64));
- buffer_len = sizeof(int64);
+ case SQLDT_LONGLONG:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(long long));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(long long));
+ break;
+ case SQLDT_BOOL:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(bool));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(bool));
+ break;
+ case SQLDT_TIME:
+ bind->buffer_type = Sql_P_SizeToMysqlIntType(sizeof(time_t));
+ Assert_retr(SQL_ERROR, buffer_len == sizeof(time_t));
break;
// floating point
- case SQLDT_FLOAT: bind->buffer_type = MYSQL_TYPE_FLOAT;
- buffer_len = 4;
+ case SQLDT_FLOAT:
+ bind->buffer_type = MYSQL_TYPE_FLOAT;
+ Assert_retr(SQL_ERROR, buffer_len == 4);
break;
- case SQLDT_DOUBLE: bind->buffer_type = MYSQL_TYPE_DOUBLE;
- buffer_len = 8;
+ case SQLDT_DOUBLE:
+ bind->buffer_type = MYSQL_TYPE_DOUBLE;
+ Assert_retr(SQL_ERROR, buffer_len == 8);
break;
// other
case SQLDT_STRING:
- case SQLDT_ENUM: bind->buffer_type = MYSQL_TYPE_STRING;
+ case SQLDT_ENUM:
+ bind->buffer_type = MYSQL_TYPE_STRING;
break;
- case SQLDT_BLOB: bind->buffer_type = MYSQL_TYPE_BLOB;
+ case SQLDT_BLOB:
+ bind->buffer_type = MYSQL_TYPE_BLOB;
break;
default:
ShowDebug("Sql_P_BindSqlDataType: unsupported buffer type (%u)\n", buffer_type);
diff --git a/src/common/sql.h b/src/common/sql.h
index 4d9a12cc1..11127c66c 100644
--- a/src/common/sql.h
+++ b/src/common/sql.h
@@ -59,6 +59,8 @@ enum SqlDataType {
SQLDT_UINT,
SQLDT_ULONG,
SQLDT_ULONGLONG,
+ SQLDT_BOOL,
+ SQLDT_TIME,
// floating point
SQLDT_FLOAT,
SQLDT_DOUBLE,
diff --git a/src/login/account_sql.c b/src/login/account_sql.c
index 70d4f3dfb..66ede6cfa 100644
--- a/src/login/account_sql.c
+++ b/src/login/account_sql.c
@@ -599,16 +599,16 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo
if( SQL_SUCCESS != SQL->StmtPrepare(stmt,
"INSERT INTO `%s` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `group_id`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`, `birthdate`, `character_slots`, `pincode`, `pincode_change`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
db->account_db)
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_INT, &acc->account_id, sizeof(acc->account_id))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_INT, &acc->account_id, sizeof acc->account_id)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, acc->userid, strlen(acc->userid))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 2, SQLDT_STRING, acc->pass, strlen(acc->pass))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 3, SQLDT_ENUM, &acc->sex, sizeof(acc->sex))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 3, SQLDT_ENUM, &acc->sex, sizeof acc->sex)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 4, SQLDT_STRING, &acc->email, strlen(acc->email))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 5, SQLDT_INT, &acc->group_id, sizeof(acc->group_id))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 6, SQLDT_UINT, &acc->state, sizeof(acc->state))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 7, SQLDT_LONG, &acc->unban_time, sizeof(acc->unban_time))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 8, SQLDT_INT, &acc->expiration_time, sizeof(acc->expiration_time))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 9, SQLDT_UINT, &acc->logincount, sizeof(acc->logincount))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 5, SQLDT_INT, &acc->group_id, sizeof acc->group_id)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 6, SQLDT_UINT, &acc->state, sizeof acc->state)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 7, SQLDT_TIME, &acc->unban_time, sizeof acc->unban_time)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 8, SQLDT_TIME, &acc->expiration_time, sizeof acc->expiration_time)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 9, SQLDT_UINT, &acc->logincount, sizeof acc->logincount)
|| SQL_SUCCESS != (acc->lastlogin[0] < '1' || acc->lastlogin[0] > '9' ?
SQL->StmtBindParam(stmt, 10, SQLDT_NULL, NULL, 0) :
SQL->StmtBindParam(stmt, 10, SQLDT_STRING, &acc->lastlogin, strlen(acc->lastlogin))
@@ -618,9 +618,9 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo
SQL->StmtBindParam(stmt, 12, SQLDT_NULL, NULL, 0) :
SQL->StmtBindParam(stmt, 12, SQLDT_STRING, &acc->birthdate, strlen(acc->birthdate))
)
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 13, SQLDT_UCHAR, &acc->char_slots, sizeof(acc->char_slots))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 13, SQLDT_UINT8, &acc->char_slots, sizeof acc->char_slots)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 14, SQLDT_STRING, &acc->pincode, strlen(acc->pincode))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 15, SQLDT_LONG, &acc->pincode_change, sizeof(acc->pincode_change))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 15, SQLDT_UINT, &acc->pincode_change, sizeof acc->pincode_change)
|| SQL_SUCCESS != SQL->StmtExecute(stmt)
) {
SqlStmt_ShowDebug(stmt);
@@ -630,13 +630,13 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo
if( SQL_SUCCESS != SQL->StmtPrepare(stmt, "UPDATE `%s` SET `userid`=?,`user_pass`=?,`sex`=?,`email`=?,`group_id`=?,`state`=?,`unban_time`=?,`expiration_time`=?,`logincount`=?,`lastlogin`=?,`last_ip`=?,`birthdate`=?,`character_slots`=?,`pincode`=?,`pincode_change`=? WHERE `account_id` = '%d'", db->account_db, acc->account_id)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 0, SQLDT_STRING, acc->userid, strlen(acc->userid))
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 1, SQLDT_STRING, acc->pass, strlen(acc->pass))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 2, SQLDT_ENUM, &acc->sex, sizeof(acc->sex))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 2, SQLDT_ENUM, &acc->sex, sizeof acc->sex)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 3, SQLDT_STRING, acc->email, strlen(acc->email))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 4, SQLDT_INT, &acc->group_id, sizeof(acc->group_id))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 5, SQLDT_UINT, &acc->state, sizeof(acc->state))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 6, SQLDT_LONG, &acc->unban_time, sizeof(acc->unban_time))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 7, SQLDT_LONG, &acc->expiration_time, sizeof(acc->expiration_time))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 8, SQLDT_UINT, &acc->logincount, sizeof(acc->logincount))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 4, SQLDT_INT, &acc->group_id, sizeof acc->group_id)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 5, SQLDT_UINT, &acc->state, sizeof acc->state)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 6, SQLDT_TIME, &acc->unban_time, sizeof acc->unban_time)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 7, SQLDT_TIME, &acc->expiration_time, sizeof acc->expiration_time)
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 8, SQLDT_UINT, &acc->logincount, sizeof acc->logincount)
|| SQL_SUCCESS != (acc->lastlogin[0] < '1' || acc->lastlogin[0] > '9' ?
SQL->StmtBindParam(stmt, 9, SQLDT_NULL, NULL, 0) :
SQL->StmtBindParam(stmt, 9, SQLDT_STRING, &acc->lastlogin, strlen(acc->lastlogin))
@@ -646,9 +646,9 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo
SQL->StmtBindParam(stmt, 11, SQLDT_NULL, NULL, 0) :
SQL->StmtBindParam(stmt, 11, SQLDT_STRING, &acc->birthdate, strlen(acc->birthdate))
)
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 12, SQLDT_UCHAR, &acc->char_slots, sizeof(acc->char_slots))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 12, SQLDT_UINT8, &acc->char_slots, sizeof acc->char_slots)
|| SQL_SUCCESS != SQL->StmtBindParam(stmt, 13, SQLDT_STRING, &acc->pincode, strlen(acc->pincode))
- || SQL_SUCCESS != SQL->StmtBindParam(stmt, 14, SQLDT_LONG, &acc->pincode_change, sizeof(acc->pincode_change))
+ || SQL_SUCCESS != SQL->StmtBindParam(stmt, 14, SQLDT_UINT, &acc->pincode_change, sizeof acc->pincode_change)
|| SQL_SUCCESS != SQL->StmtExecute(stmt)
) {
SqlStmt_ShowDebug(stmt);
diff --git a/src/login/lclif.c b/src/login/lclif.c
index f32538610..1870f9bc9 100644
--- a/src/login/lclif.c
+++ b/src/login/lclif.c
@@ -216,6 +216,15 @@ enum parsefunc_rcode lclif_parse_CA_SSO_LOGIN_REQ(int fd, struct login_session_d
return PACKET_VALID;
}
+/// @copydoc lclif_interface_private::parse_CA_LOGIN_OTP()
+enum parsefunc_rcode lclif_parse_CA_LOGIN_OTP(int fd, struct login_session_data *sd) __attribute__((nonnull (2)));
+enum parsefunc_rcode lclif_parse_CA_LOGIN_OTP(int fd, struct login_session_data *sd)
+{
+ //const struct packet_CA_LOGIN_OTP *packet = RP2PTR(fd);
+ login->client_login_otp(fd, sd);
+ return PACKET_VALID;
+}
+
/// @copydoc lclif_interface_private::parse_CA_REQ_HASH()
enum parsefunc_rcode lclif_parse_CA_REQ_HASH(int fd, struct login_session_data *sd) __attribute__((nonnull (2)));
enum parsefunc_rcode lclif_parse_CA_REQ_HASH(int fd, struct login_session_data *sd)
@@ -284,7 +293,7 @@ bool lclif_send_server_list(struct login_session_data *sd)
packet->server_list[n].ip = htonl((subnet_char_ip) ? subnet_char_ip : server[i].ip);
packet->server_list[n].port = sockt->ntows(htons(server[i].port)); // [!] LE byte order here [!]
safestrncpy(packet->server_list[n].name, server[i].name, 20);
- packet->server_list[n].usercount = server[i].users;
+ packet->server_list[n].usercount = login->convert_users_to_colors(server[i].users);
if (server[i].type == CST_PAYING && sd->expiration_time > time(NULL))
packet->server_list[n].property = CST_NORMAL;
@@ -502,6 +511,7 @@ void packetdb_loaddb(void)
packet_def(CA_LOGIN_PCBANG),
packet_def(CA_LOGIN_HAN),
packet_def2(CA_SSO_LOGIN_REQ, -1),
+ packet_def(CA_LOGIN_OTP),
packet_def(CA_REQ_HASH),
#undef packet_def
#undef packet_def2
@@ -512,7 +522,7 @@ void packetdb_loaddb(void)
for (i = 0; i < length; ++i) {
int16 packet_id = packet[i].packet_id;
- Assert_retb(packet_id >= MIN_PACKET_DB && packet_id < MAX_PACKET_DB);
+ Assert_retb(packet_id >= MIN_PACKET_DB && packet_id <= MAX_PACKET_DB);
lclif->p->dbs->packet_db[packet_id].len = packet[i].packet_len;
lclif->p->dbs->packet_db[packet_id].pFunc = packet[i].pFunc;
}
@@ -565,6 +575,7 @@ void lclif_defaults(void)
lclif->p->parse_CA_LOGIN_PCBANG = lclif_parse_CA_LOGIN_PCBANG;
lclif->p->parse_CA_LOGIN_HAN = lclif_parse_CA_LOGIN_HAN;
lclif->p->parse_CA_SSO_LOGIN_REQ = lclif_parse_CA_SSO_LOGIN_REQ;
+ lclif->p->parse_CA_LOGIN_OTP = lclif_parse_CA_LOGIN_OTP;
lclif->p->parse_CA_REQ_HASH = lclif_parse_CA_REQ_HASH;
lclif->p->parse_CA_CHARSERVERCONNECT = lclif_parse_CA_CHARSERVERCONNECT;
}
diff --git a/src/login/lclif.p.h b/src/login/lclif.p.h
index d28f1c587..024280b37 100644
--- a/src/login/lclif.p.h
+++ b/src/login/lclif.p.h
@@ -35,7 +35,7 @@
// Packet DB
#define MIN_PACKET_DB 0x0064
-#define MAX_PACKET_DB 0x08ff
+#define MAX_PACKET_DB 0x0acf
/* Enums */
@@ -51,6 +51,7 @@ enum login_packet_id {
PACKET_ID_CA_LOGIN4 = 0x027c,
PACKET_ID_CA_LOGIN_HAN = 0x02b0,
PACKET_ID_CA_SSO_LOGIN_REQ = 0x0825,
+ PACKET_ID_CA_LOGIN_OTP = 0x0acf,
PACKET_ID_CA_REQ_HASH = 0x01db,
PACKET_ID_CA_CHARSERVERCONNECT = 0x2710, // Custom Hercules Packet
//PACKET_ID_CA_SSO_LOGIN_REQa = 0x825a, /* unused */
@@ -160,6 +161,19 @@ struct packet_CA_SSO_LOGIN_REQ {
char t1[]; ///< SSO Login Token (variable length)
} __attribute__((packed));
+/**
+ * Packet structure for CA_LOGIN_OTP.
+ */
+struct packet_CA_LOGIN_OTP {
+ int16 packet_id; ///< Packet ID (#PACKET_ID_CA_LOGIN_OTP)
+#if PACKETVER >= 20171113
+ uint32 devFlags; ///< flags including dev flag
+#endif
+ char login[25]; ///< Username
+ char password[32]; ///< Password encrypted by rijndael
+ char flagsStr[5]; ///< Unknown flags. Normally string: G000
+} __attribute__((packed));
+
#if 0 // Unused
struct packet_CA_SSO_LOGIN_REQa {
int16 packet_id;
@@ -325,6 +339,7 @@ struct lclif_interface_private {
LoginParseFunc *parse_CA_LOGIN_PCBANG; ///< Packet handler for #packet_CA_LOGIN_PCBANG.
LoginParseFunc *parse_CA_LOGIN_HAN; ///< Packet handler for #packet_CA_LOGIN_HAN.
LoginParseFunc *parse_CA_SSO_LOGIN_REQ; ///< Packet handler for #packet_CA_SSO_LOGIN_REQ.
+ LoginParseFunc *parse_CA_LOGIN_OTP; ///< Packet handler for #packet_CA_LOGIN_OTP.
LoginParseFunc *parse_CA_REQ_HASH; ///< Packet handler for #packet_CA_REQ_HASH.
LoginParseFunc *parse_CA_CHARSERVERCONNECT; ///< Packet handler for #packet_CA_CHARSERVERCONNECT.
};
diff --git a/src/login/login.c b/src/login/login.c
index ae584206f..a78276051 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -1360,6 +1360,41 @@ bool login_client_login(int fd, struct login_session_data *sd)
return false;
}
+bool login_client_login_otp(int fd, struct login_session_data *sd) __attribute__((nonnull (2)));
+bool login_client_login_otp(int fd, struct login_session_data *sd)
+{
+ // send ok response with fake token
+#ifdef PACKETVER_ZERO
+#if PACKETVER >= 20171127
+ WFIFOHEAD(fd, 33);
+ WFIFOW(fd, 0) = 0x0ae3;
+ WFIFOW(fd, 2) = 33; // len
+ WFIFOL(fd, 4) = 0; // normal login
+ safestrncpy(WFIFOP(fd, 8), "S1000", 6);
+ safestrncpy(WFIFOP(fd, 28), "token", 6);
+ WFIFOSET(fd, 33);
+#elif PACKETVER >= 20171123
+ WFIFOHEAD(fd, 19);
+ WFIFOW(fd, 0) = 0x0ae3;
+ WFIFOW(fd, 2) = 19; // len
+ WFIFOL(fd, 4) = 0; // normal login
+ safestrncpy(WFIFOP(fd, 8), "S1000", 6);
+ safestrncpy(WFIFOP(fd, 14), "token", 6);
+ WFIFOSET(fd, 19);
+#else
+ WFIFOHEAD(fd, 13);
+ WFIFOW(fd, 0) = 0x0ad1;
+ WFIFOW(fd, 2) = 13; // len
+ WFIFOL(fd, 4) = 0; // normal login
+ safestrncpy(WFIFOP(fd, 8), "token", 6);
+ WFIFOSET(fd, 13);
+#endif
+ return true;
+#else // PACKETVER_ZERO
+ return false;
+#endif // PACKETVER_ZERO
+}
+
void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status) __attribute__((nonnull (2)));
void login_char_server_connection_status(int fd, struct login_session_data* sd, uint8 status)
{
@@ -1604,7 +1639,7 @@ bool login_config_read_account(const char *filename, struct config_t *config, bo
/**
* Frees login->config->client_hash_nodes
**/
-void clear_client_hash_nodes(void)
+void login_clear_client_hash_nodes(void)
{
struct client_hash_node *node = login->config->client_hash_nodes;
@@ -1618,7 +1653,7 @@ void clear_client_hash_nodes(void)
}
/**
- * Reads information from login_configuration.permission.hash.md5_hashes.
+ * Reads information from login_configuration.permission.hash.md5_hashes (unused function)
*
* @param setting The setting to read from.
*/
@@ -1627,7 +1662,7 @@ void login_config_set_md5hash(struct config_setting_t *setting)
int i;
int count = libconfig->setting_length(setting);
- clear_client_hash_nodes();
+ login->clear_client_hash_nodes();
// There's no need to parse if it's disabled or if there's no list
if (count <= 0 || !login->config->client_hash_check)
@@ -1702,7 +1737,7 @@ bool login_config_read_permission_hash(const char *filename, struct config_t *co
libconfig->setting_lookup_bool_real(setting, "enabled", &login->config->client_hash_check);
if ((setting = libconfig->lookup(config, "login_configuration/permission/hash/MD5_hashes")) != NULL)
- login_config_set_md5hash(setting);
+ login->config_set_md5hash(setting);
return true;
}
@@ -1710,7 +1745,7 @@ bool login_config_read_permission_hash(const char *filename, struct config_t *co
/**
* Clears login->config->dnsbl_servers, freeing any allocated memory.
*/
-void clear_dnsbl_servers(void)
+void login_clear_dnsbl_servers(void)
{
while (VECTOR_LENGTH(login->config->dnsbl_servers) > 0) {
aFree(&VECTOR_POP(login->config->dnsbl_servers));
@@ -1728,7 +1763,7 @@ void login_config_set_dnsbl_servers(struct config_setting_t *setting)
int i;
int count = libconfig->setting_length(setting);
- clear_dnsbl_servers();
+ login->clear_dnsbl_servers();
// There's no need to parse if it's disabled
if (count <= 0 || !login->config->use_dnsbl)
@@ -1772,7 +1807,7 @@ bool login_config_read_permission_blacklist(const char *filename, struct config_
libconfig->setting_lookup_bool_real(setting, "enabled", &login->config->use_dnsbl);
if ((setting = libconfig->lookup(config, "login_configuration/permission/DNS_blacklist/dnsbl_servers")) != NULL)
- login_config_set_dnsbl_servers(setting);
+ login->config_set_dnsbl_servers(setting);
return true;
}
@@ -1806,15 +1841,47 @@ bool login_config_read_permission(const char *filename, struct config_t *config,
libconfig->setting_lookup_bool_real(setting, "check_client_version", &login->config->check_client_version);
libconfig->setting_lookup_uint32(setting, "client_version_to_connect", &login->config->client_version_to_connect);
- if (!login_config_read_permission_hash(filename, config, imported))
+ if (!login->config_read_permission_hash(filename, config, imported))
retval = false;
- if (!login_config_read_permission_blacklist(filename, config, imported))
+ if (!login->config_read_permission_blacklist(filename, config, imported))
retval = false;
return retval;
}
/**
+ * Reads 'login_configuration.users_count' and initializes required variables.
+ *
+ * @param filename Path to configuration file (used in error and warning messages).
+ * @param config The current config being parsed.
+ * @param imported Whether the current config is imported from another file.
+ *
+ * @retval false in case of error.
+ */
+bool login_config_read_users(const char *filename, struct config_t *config, bool imported)
+{
+ struct config_setting_t *setting = NULL;
+ bool retval = true;
+
+ nullpo_retr(false, filename);
+ nullpo_retr(false, config);
+
+ if ((setting = libconfig->lookup(config, "login_configuration/users_count")) == NULL) {
+ if (imported)
+ return true;
+ ShowError("login_config_read: login_configuration/users_count was not found in %s!\n", filename);
+ return false;
+ }
+
+ libconfig->setting_lookup_bool_real(setting, "send_user_count_description", &login->config->send_user_count_description);
+ libconfig->setting_lookup_uint32(setting, "low", &login->config->users_low);
+ libconfig->setting_lookup_uint32(setting, "medium", &login->config->users_medium);
+ libconfig->setting_lookup_uint32(setting, "high", &login->config->users_high);
+
+ return retval;
+}
+
+/**
* Reads the 'login-config' configuration file and initializes required variables.
*
* @param filename Path to configuration file.
@@ -1833,15 +1900,17 @@ bool login_config_read(const char *filename, bool imported)
if (!libconfig->load_file(&config, filename))
return false; // Error message is already shown by libconfig->load_file
- if (!login_config_read_inter(filename, &config, imported))
+ if (!login->config_read_inter(filename, &config, imported))
+ retval = false;
+ if (!login->config_read_console(filename, &config, imported))
retval = false;
- if (!login_config_read_console(filename, &config, imported))
+ if (!login->config_read_log(filename, &config, imported))
retval = false;
- if (!login_config_read_log(filename, &config, imported))
+ if (!login->config_read_account(filename, &config, imported))
retval = false;
- if (!login_config_read_account(filename, &config, imported))
+ if (!login->config_read_permission(filename, &config, imported))
retval = false;
- if (!login_config_read_permission(filename, &config, imported))
+ if (!login->config_read_users(filename, &config, imported))
retval = false;
if (!loginlog_config_read("conf/common/inter-server.conf", imported)) // Only inter-server
@@ -1866,6 +1935,30 @@ bool login_config_read(const char *filename, bool imported)
return retval;
}
+/**
+ * Convert users count to colors.
+ *
+ * @param users Actual users count.
+ *
+ * @retval users count or color id.
+ **/
+uint16 login_convert_users_to_colors(uint16 users)
+{
+#if PACKETVER >= 20170726
+ if (!login->config->send_user_count_description)
+ return 4;
+ if (users <= login->config->users_low)
+ return 0;
+ else if (users <= login->config->users_medium)
+ return 1;
+ else if (users <= login->config->users_high)
+ return 2;
+ return 3;
+#else
+ return users;
+#endif
+}
+
//--------------------------------------
// Function called at exit of the server
//--------------------------------------
@@ -1877,8 +1970,8 @@ int do_final(void)
HPM->event(HPET_FINAL);
- clear_client_hash_nodes();
- clear_dnsbl_servers();
+ login->clear_client_hash_nodes();
+ login->clear_dnsbl_servers();
login_log(0, "login server", 100, "login server shutdown");
@@ -2160,6 +2253,7 @@ void login_defaults(void) {
login->parse_fromchar = login_parse_fromchar;
login->client_login = login_client_login;
+ login->client_login_otp = login_client_login_otp;
login->parse_request_connection = login_parse_request_connection;
login->auth_ok = login_auth_ok;
login->auth_failed = login_auth_failed;
@@ -2168,6 +2262,20 @@ void login_defaults(void) {
login->config_set_defaults = login_config_set_defaults;
login->config_read = login_config_read;
+ login->config_read_inter = login_config_read_inter;
+ login->config_read_console = login_config_read_console;
+ login->config_read_log = login_config_read_log;
+ login->config_read_account = login_config_read_account;
+ login->config_read_permission = login_config_read_permission;
+ login->config_read_permission_hash = login_config_read_permission_hash;
+ login->config_read_permission_blacklist = login_config_read_permission_blacklist;
+ login->config_read_users = login_config_read_users;
+ login->config_set_dnsbl_servers = login_config_set_dnsbl_servers;
+
+ login->clear_dnsbl_servers = login_clear_dnsbl_servers;
+ login->clear_client_hash_nodes = login_clear_client_hash_nodes;
+ login->config_set_md5hash = login_config_set_md5hash;
+ login->convert_users_to_colors = login_convert_users_to_colors;
login->LOGIN_CONF_NAME = NULL;
login->NET_CONF_NAME = NULL;
}
diff --git a/src/login/login.h b/src/login/login.h
index 5632e6529..3af54ef50 100644
--- a/src/login/login.h
+++ b/src/login/login.h
@@ -32,6 +32,8 @@
struct mmo_account;
struct AccountDB;
+struct config_t;
+struct config_setting_t;
enum E_LOGINSERVER_ST
{
@@ -119,6 +121,11 @@ struct Login_Config {
bool use_dnsbl; ///< dns blacklist blocking ?
VECTOR_DECL(char *) dnsbl_servers; ///< dnsbl servers
+ bool send_user_count_description;
+ uint32 users_low;
+ uint32 users_medium;
+ uint32 users_high;
+
bool client_hash_check; ///< flags for checking client md5
// TODO: VECTOR candidate
struct client_hash_node *client_hash_nodes; ///< linked list containg md5 hash for each gm group
@@ -205,10 +212,24 @@ struct login_interface {
void (*auth_ok) (struct login_session_data* sd);
void (*auth_failed) (struct login_session_data* sd, int result);
bool (*client_login) (int fd, struct login_session_data *sd);
+ bool (*client_login_otp) (int fd, struct login_session_data *sd);
void (*char_server_connection_status) (int fd, struct login_session_data* sd, uint8 status);
void (*parse_request_connection) (int fd, struct login_session_data* sd, const char *ip, uint32 ipl);
void (*config_set_defaults) (void);
bool (*config_read) (const char *filename, bool included);
+ bool (*config_read_inter) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_console) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_log) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_account) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_permission) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_permission_hash) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_permission_blacklist) (const char *filename, struct config_t *config, bool imported);
+ bool (*config_read_users) (const char *filename, struct config_t *config, bool imported);
+ void (*clear_dnsbl_servers) (void);
+ void (*config_set_dnsbl_servers) (struct config_setting_t *setting);
+ void (*clear_client_hash_nodes) (void);
+ void (*config_set_md5hash) (struct config_setting_t *setting);
+ uint16 (*convert_users_to_colors) (uint16 users);
char *LOGIN_CONF_NAME;
char *NET_CONF_NAME; ///< Network configuration filename
};
diff --git a/src/map/Makefile.in b/src/map/Makefile.in
index 6147285e9..91efba0ae 100644
--- a/src/map/Makefile.in
+++ b/src/map/Makefile.in
@@ -50,9 +50,10 @@ MAP_OBJ = $(addprefix obj_sql/, $(patsubst %c,%o,$(MAP_C)))
MAP_H = atcommand.h battle.h battleground.h buyingstore.h channel.h chat.h \
chrif.h clif.h date.h duel.h elemental.h guild.h homunculus.h HPMmap.h \
instance.h intif.h irc-bot.h itemdb.h log.h mail.h map.h mapreg.h \
- mercenary.h mob.h npc.h packets.h packets_keys.h packets_struct.h party.h path.h \
- pc.h pc_groups.h pet.h quest.h rodex.h script.h searchstore.h skill.h \
- status.h storage.h trade.h unit.h vending.h
+ mercenary.h mob.h npc.h packets.h packets_keys_main.h packets_keys_zero.h \
+ packets_shuffle_main.h packets_shuffle_zero.h packets_struct.h party.h \
+ path.h pc.h pc_groups.h pet.h quest.h rodex.h script.h searchstore.h \
+ skill.h status.h storage.h trade.h unit.h vending.h
MAP_PH =
HAVE_MYSQL=@HAVE_MYSQL@
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index d9f4810ee..aa25f11d6 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -5296,12 +5296,13 @@ ACMD(skillid)
iter = db_iterator(skill->name2id_db);
for (data = iter->first(iter,&key); iter->exists(iter); data = iter->next(iter,&key)) {
- int idx = skill->get_index(DB->data2i(data));
- if (strnicmp(key.str, message, skillen) == 0 || strnicmp(skill->dbs->db[idx].desc, message, skillen) == 0) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1164), DB->data2i(data), skill->dbs->db[idx].desc, key.str); // skill %d: %s (%s)
+ int skill_id = DB->data2i(data);
+ const char *skill_desc = skill->get_desc(skill_id);
+ if (strnicmp(key.str, message, skillen) == 0 || strnicmp(skill_desc, message, skillen) == 0) {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 1164), skill_id, skill_desc, key.str); // skill %d: %s (%s)
clif->message(fd, atcmd_output);
- } else if ( found < MAX_SKILLID_PARTIAL_RESULTS && ( stristr(key.str,message) || stristr(skill->dbs->db[idx].desc,message) ) ) {
- snprintf(partials[found], MAX_SKILLID_PARTIAL_RESULTS_LEN, msg_fd(fd,1164), DB->data2i(data), skill->dbs->db[idx].desc, key.str);
+ } else if (found < MAX_SKILLID_PARTIAL_RESULTS && (stristr(key.str, message) != NULL || stristr(skill_desc, message) != NULL)) {
+ snprintf(partials[found], MAX_SKILLID_PARTIAL_RESULTS_LEN, msg_fd(fd, 1164), skill_id, skill_desc, key.str);
found++;
}
}
@@ -5428,7 +5429,7 @@ ACMD(skilltree)
for (j = 0; j < VECTOR_LENGTH(entry->need); j++) {
struct skill_tree_requirement *req = &VECTOR_INDEX(entry->need, j);
if (pc->checkskill(sd, req->id) < req->lv) {
- safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1170), req->lv, skill->dbs->db[req->id].desc); // Player requires level %d of skill %s.
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1170), req->lv, skill->get_desc(req->id)); // Player requires level %d of skill %s.
clif->message(fd, atcmd_output);
meets = 0;
}
@@ -5456,7 +5457,7 @@ void atcommand_getring(struct map_session_data* sd) {
if((flag = pc->additem(sd,&item_tmp,1,LOG_TYPE_COMMAND))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
@@ -8686,7 +8687,7 @@ ACMD(cart) {
int val = atoi(message);
bool need_skill = pc->checkskill(sd, MC_PUSHCART) ? false : true;
- unsigned int index = skill->get_index(MC_PUSHCART);
+ int index = skill->get_index(MC_PUSHCART);
if (!*message || val < 0 || val > MAX_CARTS) {
safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd,1390),command,MAX_CARTS); // Unknown Cart (usage: %s <0-%d>).
@@ -9394,7 +9395,7 @@ ACMD(cddebug) {
}
if (!cd || (*message && !strcmpi(message,"reset"))) {
- for(i = 0; i < MAX_SKILL; i++) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->blockskill[i] ) {
clif->messages(fd,"Found skill '%s', unblocking...",skill->dbs->db[i].name);
sd->blockskill[i] = false;
diff --git a/src/map/battle.c b/src/map/battle.c
index 8983e93c9..70ebc4a08 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -7308,6 +7308,7 @@ static const struct battle_data {
{ "boarding_halter_speed", &battle_config.boarding_halter_speed, 25, 0, 100, },
{ "features/rodex", &battle_config.feature_rodex, 1, 0, 1, },
{ "features/rodex_use_accountmail", &battle_config.feature_rodex_use_accountmail, 0, 0, 1, },
+ { "features/enable_homun_autofeed", &battle_config.feature_enable_homun_autofeed, 1, 0, 1, },
};
#ifndef STATS_OPT_OUT
/**
diff --git a/src/map/battle.h b/src/map/battle.h
index 4a63887c4..429249dca 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -54,6 +54,7 @@ struct status_data;
enum {
// Flag of the final calculation
+ BF_NONE = 0x0000,
BF_WEAPON = 0x0001,
BF_MAGIC = 0x0002,
BF_MISC = 0x0004,
@@ -559,6 +560,8 @@ struct Battle_Config {
int feature_rodex;
int feature_rodex_use_accountmail;
+
+ int feature_enable_homun_autofeed;
};
/* criteria for battle_config.idletime_critera */
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 39aa046d7..96f144523 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -1360,10 +1360,10 @@ void chrif_skillid2idx(int fd) {
if (!sockt->session_is_valid(fd))
return;
- WFIFOHEAD(fd,4 + (MAX_SKILL * 4));
+ WFIFOHEAD(fd,4 + (MAX_SKILL_DB * 4));
WFIFOW(fd,0) = 0x2b0b;
- for(i = 0; i < MAX_SKILL; i++) {
- if( skill->dbs->db[i].nameid ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
+ if (skill->dbs->db[i].nameid != 0) {
WFIFOW(fd, 4 + (count*4)) = skill->dbs->db[i].nameid;
WFIFOW(fd, 6 + (count*4)) = i;
count++;
diff --git a/src/map/clif.c b/src/map/clif.c
index 088c92ea8..988e821e7 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -293,7 +293,11 @@ unsigned char clif_bl_type(struct block_list *bl)
case BL_NPC:
vd = status->get_viewdata(bl);
nullpo_retr(CLUT_NPC, vd);
+#if PACKETVER >= 20170726
+ return CLUT_EVENT;
+#else
return pc->db_checkid(vd->class) ? CLUT_PC : CLUT_EVENT;
+#endif
case BL_PET:
vd = status->get_viewdata(bl);
nullpo_retr(CLUT_NPC, vd);
@@ -732,6 +736,8 @@ void clif_authrefuse(int fd, uint8 error_code)
/// 108 = BAN_IP_BLOCK
/// 109 = BAN_INVALID_PWD_CNT
/// 110 = BAN_NOT_ALLOWED_JOBCLASS
+/// 113 = access is restricted between the hours of midnight to 6:00am.
+/// 115 = You are in game connection ban period.
/// ? = disconnected -> MsgStringTable[3]
// TODO: type enum
void clif_authfail_fd(int fd, int type)
@@ -790,7 +796,15 @@ void clif_dropflooritem(struct flooritem_data* fitem) {
p.subX = fitem->subx;
p.subY = fitem->suby;
p.count = fitem->item_data.amount;
-
+#ifdef PACKETVER_ZERO
+ if (fitem->showdropeffect) {
+ p.showdropeffect = itemdb_showdropeffect(fitem->item_data.nameid);
+ p.dropeffectmode = itemdb_dropeffectmode(fitem->item_data.nameid);
+ } else {
+ p.showdropeffect = 0;
+ p.dropeffectmode = 0;
+ }
+#endif
clif->send(&p, sizeof(p), &fitem->bl, AREA);
}
@@ -1067,14 +1081,17 @@ void clif_set_unit_idle(struct block_list* bl, struct map_session_data *tsd, enu
#endif
#if PACKETVER >= 20120221
if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && status_get_hp(bl) < status_get_max_hp(bl)) {
- const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
p.maxHP = status_get_max_hp(bl);
p.HP = status_get_hp(bl);
- p.isBoss = (md->spawn != NULL && md->spawn->state.boss) ? 1 : 0;
} else {
p.maxHP = -1;
p.HP = -1;
- p.isBoss = 0;
+ }
+ if (bl->type == BL_MOB) {
+ const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
+ p.isBoss = (md->spawn != NULL) ? md->spawn->state.boss : BTYPE_NONE;
+ } else {
+ p.isBoss = BTYPE_NONE;
}
#endif
#if PACKETVER >= 20150513
@@ -1216,14 +1233,17 @@ void clif_spawn_unit(struct block_list* bl, enum send_target target) {
#endif
#if PACKETVER >= 20120221
if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && status_get_hp(bl) < status_get_max_hp(bl)) {
- const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
p.maxHP = status_get_max_hp(bl);
p.HP = status_get_hp(bl);
- p.isBoss = (md->spawn != NULL && md->spawn->state.boss) ? 1 : 0;
} else {
p.maxHP = -1;
p.HP = -1;
- p.isBoss = 0;
+ }
+ if (bl->type == BL_MOB) {
+ const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
+ p.isBoss = (md->spawn != NULL) ? md->spawn->state.boss : BTYPE_NONE;
+ } else {
+ p.isBoss = BTYPE_NONE;
}
#endif
#if PACKETVER >= 20150513
@@ -1315,14 +1335,17 @@ void clif_set_unit_walking(struct block_list* bl, struct map_session_data *tsd,
#endif
#if PACKETVER >= 20120221
if (battle_config.show_monster_hp_bar && bl->type == BL_MOB && status_get_hp(bl) < status_get_max_hp(bl)) {
- const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
p.maxHP = status_get_max_hp(bl);
p.HP = status_get_hp(bl);
- p.isBoss = (md->spawn != NULL && md->spawn->state.boss) ? 1 : 0;
} else {
p.maxHP = -1;
p.HP = -1;
- p.isBoss = 0;
+ }
+ if (bl->type == BL_MOB) {
+ const struct mob_data *md = BL_UCCAST(BL_MOB, bl);
+ p.isBoss = (md->spawn != NULL) ? md->spawn->state.boss : BTYPE_NONE;
+ } else {
+ p.isBoss = BTYPE_NONE;
}
#endif
#if PACKETVER >= 20150513
@@ -1666,8 +1689,7 @@ void clif_homskillinfoblock(struct map_session_data *sd) {
if ( id != 0 ) {
j = id - HM_SKILLBASE;
WFIFOW(fd, len) = id;
- WFIFOW(fd, len + 2) = skill->get_inf(id);
- WFIFOW(fd, len + 4) = 0;
+ WFIFOL(fd, len + 2) = skill->get_inf(id);
WFIFOW(fd, len + 6) = hd->homunculus.hskill[j].lv;
if ( hd->homunculus.hskill[j].lv ) {
WFIFOW(fd, len + 8) = skill->get_sp(id, hd->homunculus.hskill[j].lv);
@@ -1888,19 +1910,25 @@ void clif_changemap(struct map_session_data *sd, short m, int x, int y) {
/// Notifies the client of a position change to coordinates on given map, which is on another map-server (ZC_NPCACK_SERVERMOVE).
/// 0092 <map name>.16B <x>.W <y>.W <ip>.L <port>.W
+/// 0ac7 <map name>.16B <x>.W <y>.W <ip>.L <port>.W <zero>.128B
void clif_changemapserver(struct map_session_data* sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port) {
int fd;
+#if PACKETVER >= 20170315
+ const int cmd = 0xac7;
+#else
+ const int cmd = 0x92;
+#endif
nullpo_retv(sd);
fd = sd->fd;
- WFIFOHEAD(fd,packet_len(0x92));
- WFIFOW(fd,0) = 0x92;
- mapindex->getmapname_ext(mapindex_id2name(map_index), WFIFOP(fd,2));
- WFIFOW(fd,18) = x;
- WFIFOW(fd,20) = y;
- WFIFOL(fd,22) = htonl(ip);
- WFIFOW(fd,26) = sockt->ntows(htons(port)); // [!] LE byte order here [!]
- WFIFOSET(fd,packet_len(0x92));
+ WFIFOHEAD(fd, packet_len(cmd));
+ WFIFOW(fd, 0) = cmd;
+ mapindex->getmapname_ext(mapindex_id2name(map_index), WFIFOP(fd, 2));
+ WFIFOW(fd, 18) = x;
+ WFIFOW(fd, 20) = y;
+ WFIFOL(fd, 22) = htonl(ip);
+ WFIFOW(fd, 26) = sockt->ntows(htons(port)); // [!] LE byte order here [!]
+ WFIFOSET(fd, packet_len(cmd));
}
void clif_blown(struct block_list *bl)
@@ -2286,6 +2314,7 @@ void clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x, in
/// 2 = bottom right corner
/// 3 = middle of screen, inside a movable window
/// 4 = middle of screen, movable with a close button, chrome-less
+/// 255 = hide
void clif_cutin(struct map_session_data* sd, const char* image, int type)
{
int fd;
@@ -3332,17 +3361,22 @@ void clif_changelook(struct block_list *bl,int type,int val)
#if PACKETVER < 4
clif->sendlook(bl, bl->id, type, val, 0, target);
#else
- if(type == LOOK_WEAPON || type == LOOK_SHIELD) {
- nullpo_retv(vd);
- type = LOOK_WEAPON;
- val = vd->weapon;
- val2 = vd->shield;
- }
- if (clif->isdisguised(bl)) {
- clif->sendlook(bl, bl->id, type, val, val2, AREA_WOS);
- clif->sendlook(bl, -bl->id, type, val, val2, SELF);
+ if (bl->type != BL_NPC) {
+ if(type == LOOK_WEAPON || type == LOOK_SHIELD) {
+ nullpo_retv(vd);
+ type = LOOK_WEAPON;
+ val = vd->weapon;
+ val2 = vd->shield;
+ }
+ if (clif->isdisguised(bl)) {
+ clif->sendlook(bl, bl->id, type, val, val2, AREA_WOS);
+ clif->sendlook(bl, -bl->id, type, val, val2, SELF);
+ } else {
+ clif->sendlook(bl, bl->id, type, val, val2, target);
+ }
} else {
- clif->sendlook(bl, bl->id, type, val, val2, target);
+ struct npc_data *nd = BL_UCAST(BL_NPC, bl);
+ npc->refresh(nd);
}
#endif
}
@@ -4848,9 +4882,9 @@ void clif_skillinfoblock(struct map_session_data *sd)
fd=sd->fd;
if (!fd) return;
- WFIFOHEAD(fd, MAX_SKILL * 37 + 4);
+ WFIFOHEAD(fd, MAX_SKILL_DB * 37 + 4);
WFIFOW(fd,0) = 0x10f;
- for ( i = 0, len = 4; i < MAX_SKILL; i++) {
+ for ( i = 0, len = 4; i < MAX_SKILL_DB; i++) {
if( (id = sd->status.skill[i].id) != 0 ) {
int level;
// workaround for bugreport:5348
@@ -4881,7 +4915,7 @@ void clif_skillinfoblock(struct map_session_data *sd)
WFIFOSET(fd,len);
// workaround for bugreport:5348; send the remaining skills one by one to bypass packet size limit
- for ( ; i < MAX_SKILL; i++) {
+ for ( ; i < MAX_SKILL_DB; i++) {
if( (id = sd->status.skill[i].id) != 0 ) {
clif->addskill(sd, id);
clif->skillinfo(sd, id, 0);
@@ -4983,7 +5017,7 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
int skill_lv;
nullpo_retv(sd);
- Assert_retv(idx >= 0 && idx < MAX_SKILL);
+ Assert_retv(idx >= 0 && idx < MAX_SKILL_DB);
skill_lv = sd->status.skill[idx].lv;
@@ -5050,6 +5084,10 @@ void clif_useskill(struct block_list* bl, int src_id, int dst_id, int dst_x, int
} else {
clif->send(buf,packet_len(cmd), bl, AREA);
}
+#if PACKETVER >= 20151223
+ if ((skill->get_inf2(skill_id) & INF2_SHOW_SKILL_SCALE) != 0)
+ clif->skill_scale(bl, src_id, bl->x, bl->y, skill_id, skill_lv, casttime);
+#endif
}
/// Notifies clients in area, that an object canceled casting (ZC_DISPEL).
@@ -6248,8 +6286,7 @@ void clif_item_skill(struct map_session_data *sd,uint16 skill_id,uint16 skill_lv
WFIFOHEAD(fd,packet_len(0x147));
WFIFOW(fd, 0)=0x147;
WFIFOW(fd, 2)=skill_id;
- WFIFOW(fd, 4)=skill->get_inf(skill_id);
- WFIFOW(fd, 6)=0;
+ WFIFOL(fd, 4)=skill->get_inf(skill_id);
WFIFOW(fd, 8)=skill_lv;
WFIFOW(fd,10)=skill->get_sp(skill_id,skill_lv);
WFIFOW(fd,12)=skill->get_range2(&sd->bl, skill_id,skill_lv);
@@ -6557,9 +6594,6 @@ void clif_party_created(struct map_session_data *sd,int result)
}
/// Adds new member to a party.
-/// 0104 <account id>.L <role>.L <x>.W <y>.W <state>.B <party name>.24B <char name>.24B <map name>.16B (ZC_ADD_MEMBER_TO_GROUP)
-/// 01e9 <account id>.L <role>.L <x>.W <y>.W <state>.B <party name>.24B <char name>.24B <map name>.16B <item pickup rule>.B <item share rule>.B (ZC_ADD_MEMBER_TO_GROUP2)
-/// 0a43 <account id>.L <role>.L <class>.W <base level>.W <x>.W <y>.W <state>.B <party name>.24B <char name>.24B <map name>.16B <item pickup rule>.B <item share rule>.B (ZC_ADD_MEMBER_TO_GROUP3)
/// role:
/// 0 = leader
/// 1 = normal
@@ -6569,19 +6603,12 @@ void clif_party_created(struct map_session_data *sd,int result)
void clif_party_member_info(struct party_data *p, struct map_session_data *sd)
{
int i;
-#if PACKETVER < 20170502
- unsigned char buf[81];
- const int cmd = 0x1e9;
- const int offset = 0;
-#else
- unsigned char buf[85];
-// [4144] probably 0xa43 packet can works on older clients because in client was added in 2015-10-07
- const int cmd = 0xa43;
- int offset = 4;
-#endif
+ struct PACKET_ZC_ADD_MEMBER_TO_GROUP packet;
nullpo_retv(p);
nullpo_retv(sd);
+
+ memset(&packet, 0, sizeof(packet));
if (!sd) { //Pick any party member (this call is used when changing item share rules)
ARR_FIND(0, MAX_PARTY, i, p->data[i].sd != 0);
} else {
@@ -6591,27 +6618,28 @@ void clif_party_member_info(struct party_data *p, struct map_session_data *sd)
return; //Should never happen...
sd = p->data[i].sd;
- WBUFW(buf, 0) = cmd;
- WBUFL(buf, 2) = sd->status.account_id;
- WBUFL(buf, 6) = (p->party.member[i].leader) ? 0 : 1;
+ packet.packetType = partymemberinfo;
+ packet.AID = sd->status.account_id;
+#if PACKETVER >= 20171207
+ packet.GID = sd->status.char_id;
+#endif
+ packet.leader = (p->party.member[i].leader) ? 0 : 1;
#if PACKETVER >= 20170502
- WBUFW(buf, 10) = sd->status.class;
- WBUFW(buf, 12) = sd->status.base_level;
+ packet.class = sd->status.class;
+ packet.baseLevel = sd->status.base_level;
#endif
- WBUFW(buf, offset + 10) = sd->bl.x;
- WBUFW(buf, offset + 12) = sd->bl.y;
- WBUFB(buf, offset + 14) = (p->party.member[i].online) ? 0 : 1;
- memcpy(WBUFP(buf, offset + 15), p->party.name, NAME_LENGTH);
- memcpy(WBUFP(buf, offset + 39), sd->status.name, NAME_LENGTH);
- mapindex->getmapname_ext(map->list[sd->bl.m].custom_name ? map->list[map->list[sd->bl.m].instance_src_map].name : map->list[sd->bl.m].name, WBUFP(buf, offset + 63));
- WBUFB(buf, offset + 79) = (p->party.item & 1) ? 1 : 0;
- WBUFB(buf, offset + 80) = (p->party.item & 2) ? 1 : 0;
- clif->send(buf, packet_len(cmd), &sd->bl, PARTY);
+ packet.x = sd->bl.x;
+ packet.y = sd->bl.y;
+ packet.offline = (p->party.member[i].online) ? 0 : 1;
+ memcpy(packet.partyName, p->party.name, NAME_LENGTH);
+ memcpy(packet.playerName, sd->status.name, NAME_LENGTH);
+ mapindex->getmapname_ext(map->list[sd->bl.m].custom_name ? map->list[map->list[sd->bl.m].instance_src_map].name : map->list[sd->bl.m].name, packet.mapName);
+ packet.sharePickup = (p->party.item & 1) ? 1 : 0;
+ packet.shareLoot = (p->party.item & 2) ? 1 : 0;
+ clif->send(&packet, sizeof(packet), &sd->bl, PARTY);
}
/// Sends party information (ZC_GROUP_LIST).
-/// 00fb <packet len>.W <party name>.24B { <account id>.L <nick>.24B <map name>.16B <role>.B <state>.B }*
-/// 0a44 <packet len>.W <party name>.24B { <account id>.L <nick>.24B <map name>.16B <role>.B <state>.B <class>.W <base level>.W }* <item pickup rule>.B <item share rule>.B <unknown>.L
/// role:
/// 0 = leader
/// 1 = normal
@@ -6620,23 +6648,16 @@ void clif_party_member_info(struct party_data *p, struct map_session_data *sd)
/// 1 = disconnected
void clif_party_info(struct party_data* p, struct map_session_data *sd)
{
+ struct PACKET_ZC_GROUP_LIST *packet;
struct map_session_data* party_sd = NULL;
int i, c;
-#if PACKETVER < 20170502
- const int cmd = 0xfb;
- const int size = 46;
- unsigned char buf[2 + 2 + NAME_LENGTH + 46 * MAX_PARTY];
-#else
-// [4144] probably 0xa44 packet can works on older clients because in client was added in 2015-10-07
- const int cmd = 0xa44;
- const int size = 50;
- unsigned char buf[2 + 2 + NAME_LENGTH + 50 * MAX_PARTY + 6];
-#endif
-
+ unsigned char buf[sizeof(*packet) + sizeof(struct PACKET_ZC_GROUP_LIST_SUB) * MAX_PARTY];
nullpo_retv(p);
- WBUFW(buf, 0) = cmd;
- memcpy(WBUFP(buf, 4), p->party.name, NAME_LENGTH);
+ memset(buf, 0, sizeof(buf));
+ packet = (struct PACKET_ZC_GROUP_LIST *)buf;
+ packet->packetType = partyinfo;
+ memcpy(packet->partyName, p->party.name, NAME_LENGTH);
for(i = 0, c = 0; i < MAX_PARTY; i++)
{
struct party_member *m = &p->party.member[i];
@@ -6646,30 +6667,26 @@ void clif_party_info(struct party_data* p, struct map_session_data *sd)
if (party_sd == NULL)
party_sd = p->data[i].sd;
- WBUFL(buf, 28 + c * size) = m->account_id;
- memcpy(WBUFP(buf, 28 + c * size + 4), m->name, NAME_LENGTH);
- mapindex->getmapname_ext(mapindex_id2name(m->map), WBUFP(buf, 28 + c * size + 28));
- WBUFB(buf, 28 + c * size + 44) = (m->leader) ? 0 : 1;
- WBUFB(buf, 28 + c * size + 45) = (m->online) ? 0 : 1;
+ packet->members[c].AID = m->account_id;
+#if PACKETVER >= 20171207
+ packet->members[c].GID = m->char_id;
+#endif
+ memcpy(packet->members[c].playerName, m->name, NAME_LENGTH);
+ mapindex->getmapname_ext(mapindex_id2name(m->map), packet->members[c].mapName);
+ packet->members[c].leader = (m->leader) ? 0 : 1;
+ packet->members[c].offline = (m->online) ? 0 : 1;
#if PACKETVER >= 20170502
- WBUFW(buf, 28 + c * size + 46) = m->class;
- WBUFW(buf, 28 + c * size + 48) = m->lv;
+ packet->members[c].class = m->class;
+ packet->members[c].baseLevel = m->lv;
#endif
c++;
}
-#if PACKETVER < 20170502
- WBUFW(buf, 2) = 28 + c * size;
-#else
- WBUFB(buf, 28 + c * size) = (p->party.item & 1) ? 1 : 0;
- WBUFB(buf, 28 + c * size + 1) = (p->party.item & 2) ? 1 : 0;
- WBUFL(buf, 28 + c * size + 2) = 0; // unknown
- WBUFW(buf, 2) = 28 + c * size + 6;
-#endif
+ packet->packetLen = sizeof(*packet) + c * sizeof(struct PACKET_ZC_GROUP_LIST_SUB);
if (sd) { // send only to self
- clif->send(buf, WBUFW(buf, 2), &sd->bl, SELF);
+ clif->send(buf, packet->packetLen, &sd->bl, SELF);
} else if (party_sd) { // send to whole party
- clif->send(buf, WBUFW(buf, 2), &party_sd->bl, PARTY);
+ clif->send(buf, packet->packetLen, &party_sd->bl, PARTY);
}
}
@@ -9021,14 +9038,15 @@ void clif_feel_hate_reset(struct map_session_data *sd)
clif->starskill(sd, "", 0, 0, 30);
}
-/// Equip window (un)tick ack (ZC_CONFIG).
+/// Send configurations (ZC_CONFIG).
/// 02d9 <type>.L <value>.L
/// type:
/// 0 = open equip window
+/// 3 = homunculus autofeeding
/// value:
/// 0 = disabled
/// 1 = enabled
-void clif_equiptickack(struct map_session_data* sd, int flag)
+void clif_zc_config(struct map_session_data* sd, int type, int flag)
{
int fd;
nullpo_retv(sd);
@@ -9036,7 +9054,7 @@ void clif_equiptickack(struct map_session_data* sd, int flag)
WFIFOHEAD(fd, packet_len(0x2d9));
WFIFOW(fd, 0) = 0x2d9;
- WFIFOL(fd, 2) = 0;
+ WFIFOL(fd, 2) = type;
WFIFOL(fd, 6) = flag;
WFIFOSET(fd, packet_len(0x2d9));
}
@@ -9891,7 +9909,6 @@ void clif_parse_Hotkey(int fd, struct map_session_data *sd) {
/// Displays cast-like progress bar (ZC_PROGRESS).
/// 02f0 <color>.L <time>.L
-/* TODO ZC_PROGRESS_ACTOR <account_id>.L */
void clif_progressbar(struct map_session_data * sd, unsigned int color, unsigned int second)
{
int fd;
@@ -9920,6 +9937,30 @@ void clif_progressbar_abort(struct map_session_data * sd)
WFIFOSET(fd,packet_len(0x2f2));
}
+/**
+* Displays cast-like progress bar on a unit.
+* 09d1 <id>.L <color>.L <time>.L
+*
+* @param bl Source block list.
+* @param color Message color (RGB format: 0xRRGGBB).
+* @param time Time in seconds.
+*/
+void clif_progressbar_unit(struct block_list *bl, uint32 color, uint32 time)
+{
+#if PACKETVER >= 20130821
+ struct ZC_PROGRESS_ACTOR p;
+ nullpo_retv(bl);
+
+ p.PacketType = progressbarunit;
+ p.GID = bl->id;
+ p.color = color;
+ p.time = time;
+ clif->send(&p, sizeof(p), bl, AREA);
+#else
+ ShowWarning("clif_progressbar_unit: Using progressbar with units available for PACKETVER >= 20130821 only.");
+#endif
+}
+
void clif_parse_progressbar(int fd, struct map_session_data * sd) __attribute__((nonnull (2)));
/// Notification from the client, that the progress bar has reached 100% (CZ_PROGRESS).
/// 02f1
@@ -15920,19 +15961,32 @@ void clif_parse_ViewPlayerEquip(int fd, struct map_session_data* sd) {
clif->msgtable(sd, MSG_EQUIP_NOT_PUBLIC);
}
-void clif_parse_EquipTick(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
-/// Request to change equip window tick (CZ_CONFIG).
+void clif_parse_cz_config(int fd, struct map_session_data *sd) __attribute__((nonnull (2)));
+/// Receive configurations (CZ_CONFIG).
/// 02d8 <type>.L <value>.L
/// type:
/// 0 = open equip window
+/// 3 = homunculus autofeeding
/// value:
/// 0 = disabled
/// 1 = enabled
-void clif_parse_EquipTick(int fd, struct map_session_data* sd)
-{
- bool flag = (RFIFOL(fd,6) != 0) ? true : false;
- sd->status.show_equip = flag;
- clif->equiptickack(sd, flag);
+void clif_parse_cz_config(int fd, struct map_session_data *sd)
+{
+ int type = RFIFOL(fd, 2);
+ int flag = RFIFOL(fd, 6);
+
+ if (type == CZ_CONFIG_OPEN_EQUIPMENT_WINDOW) {
+ sd->status.show_equip = flag;
+ } else if (type == CZ_CONFIG_HOMUNCULUS_AUTOFEEDING) {
+ struct homun_data *hd;
+ hd = sd->hd;
+ nullpo_retv(hd);
+ hd->homunculus.autofeed = flag;
+ } else {
+ ShowWarning("clif_parse_cz_config: Unsupported type has been received (%d).", type);
+ return;
+ }
+ clif->zc_config(sd, type, flag);
}
void clif_parse_PartyTick(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
@@ -17624,7 +17678,7 @@ int clif_autoshadowspell_list(struct map_session_data *sd) {
WFIFOHEAD(fd, 2 * 6 + 4);
WFIFOW(fd,0) = 0x442;
- for( i = 0, c = 0; i < MAX_SKILL; i++ )
+ for (i = 0, c = 0; i < MAX_SKILL_DB; i++)
if( sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].id > 0 &&
sd->status.skill[i].id < GS_GLITTERING && skill->get_type(sd->status.skill[i].id) == BF_MAGIC )
{ // Can't auto cast both Extended class and 3rd class skills.
@@ -18388,19 +18442,19 @@ void clif_parse_BankWithdraw(int fd, struct map_session_data *sd)
void clif_parse_BankCheck(int fd, struct map_session_data* sd) __attribute__((nonnull (2)));
void clif_parse_BankCheck(int fd, struct map_session_data* sd)
{
-#if PACKETVER >= 20130313
+#if PACKETVER >= 20130320
struct packet_banking_check p;
+ p.PacketType = banking_checkType;
if (!battle_config.feature_banking) {
- clif->messagecolor_self(fd, COLOR_RED, msg_fd(fd,1483));
- return;
+ p.Money = 0;
+ p.Reason = (short)1;
+ } else {
+ p.Money = (int)sd->status.bank_vault;
+ p.Reason = (short)0;
}
- p.PacketType = banking_checkType;
- p.Money = (int)sd->status.bank_vault;
- p.Reason = (short)0;
-
- clif->send(&p,sizeof(p), &sd->bl, SELF);
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
#endif
}
@@ -19842,6 +19896,32 @@ void clif_parse_rodex_cancel_write_mail(int fd, struct map_session_data *sd)
rodex->clean(sd, 1);
}
+void clif_skill_scale(struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime)
+{
+#if PACKETVER >= 20151223
+ struct PACKET_ZC_SKILL_SCALE p;
+
+ p.PacketType = skillscale;
+ p.AID = src_id;
+ p.skill_id = skill_id;
+ p.skill_lv = skill_lv;
+ p.x = x;
+ p.y = y;
+ p.casttime = casttime;
+
+ if (clif->isdisguised(bl)) {
+ clif->send(&p, sizeof(p), bl, AREA_WOS);
+ p.AID = -src_id;
+ clif->send(&p, sizeof(p), bl, SELF);
+ } else {
+ clif->send(&p, sizeof(p), bl, AREA);
+ }
+#else
+ ShowWarning("clif_skill_scale: showing skill scale available only for clients >= 20151223.");
+ return;
+#endif
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -20054,9 +20134,22 @@ void packetdb_loaddb(void) {
#define packet(id, size, ...) packetdb_addpacket((id), (size), ##__VA_ARGS__, 0xFFFF)
#include "packets.h" /* load structure data */
+#ifdef PACKETVER_ZERO
+#include "packets_shuffle_zero.h"
+#else // PACKETVER_ZERO
+#include "packets_shuffle_main.h"
+#endif // PACKETVER_ZERO
#undef packet
#define packetKeys(a,b,c) do { clif->cryptKey[0] = (a); clif->cryptKey[1] = (b); clif->cryptKey[2] = (c); } while(0)
-#include "packets_keys.h"
+#if defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
+ packetKeys(OBFUSCATIONKEY1,OBFUSCATIONKEY2,OBFUSCATIONKEY3);
+#else // defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
+#ifdef PACKETVER_ZERO
+#include "packets_keys_zero.h"
+#else // PACKETVER_ZERO
+#include "packets_keys_main.h"
+#endif // PACKETVER_ZERO
+#endif // defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
#undef packetKeys
}
void clif_bc_ready(void) {
@@ -20296,13 +20389,14 @@ void clif_defaults(void) {
clif->mission_info = clif_mission_info;
clif->feel_hate_reset = clif_feel_hate_reset;
clif->partytickack = clif_partytickack;
- clif->equiptickack = clif_equiptickack;
+ clif->zc_config = clif_zc_config;
clif->viewequip_ack = clif_viewequip_ack;
clif->equpcheckbox = clif_equpcheckbox;
clif->displayexp = clif_displayexp;
clif->font = clif_font;
clif->progressbar = clif_progressbar;
clif->progressbar_abort = clif_progressbar_abort;
+ clif->progressbar_unit = clif_progressbar_unit;
clif->showdigit = clif_showdigit;
clif->elementalconverter_list = clif_elementalconverter_list;
clif->spellbook_list = clif_spellbook_list;
@@ -20821,7 +20915,7 @@ void clif_defaults(void) {
clif->pAdopt_request = clif_parse_Adopt_request;
clif->pAdopt_reply = clif_parse_Adopt_reply;
clif->pViewPlayerEquip = clif_parse_ViewPlayerEquip;
- clif->pEquipTick = clif_parse_EquipTick;
+ clif->p_cz_config = clif_parse_cz_config;
clif->pquestStateAck = clif_parse_questStateAck;
clif->pmercenary_action = clif_parse_mercenary_action;
clif->pBattleChat = clif_parse_BattleChat;
@@ -20911,4 +21005,5 @@ void clif_defaults(void) {
clif->rodex_request_items = clif_rodex_request_items;
clif->rodex_icon = clif_rodex_icon;
clif->rodex_send_mails_all = clif_rodex_send_mails_all;
+ clif->skill_scale = clif_skill_scale;
}
diff --git a/src/map/clif.h b/src/map/clif.h
index 851c823ea..69567cc2c 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -563,7 +563,15 @@ enum clif_unittype {
CLUT_MERCNARY = 0x9,
CLUT_ELEMENTAL = 0xa,
};
-
+/**
+* Receive configuration types
+**/
+enum CZ_CONFIG {
+ CZ_CONFIG_OPEN_EQUIPMENT_WINDOW = 0,
+ // Unknown = 1,
+ CZ_CONFIG_PET_AUTOFEEDING = 2,
+ CZ_CONFIG_HOMUNCULUS_AUTOFEEDING = 3,
+};
/**
* Structures
**/
@@ -781,13 +789,14 @@ struct clif_interface {
void (*mission_info) (struct map_session_data *sd, int mob_id, unsigned char progress);
void (*feel_hate_reset) (struct map_session_data *sd);
void (*partytickack) (struct map_session_data* sd, bool flag);
- void (*equiptickack) (struct map_session_data* sd, int flag);
+ void (*zc_config) (struct map_session_data *sd, int type, int flag);
void (*viewequip_ack) (struct map_session_data* sd, struct map_session_data* tsd);
void (*equpcheckbox) (struct map_session_data* sd);
void (*displayexp) (struct map_session_data *sd, uint64 exp, char type, bool is_quest);
void (*font) (struct map_session_data *sd);
void (*progressbar) (struct map_session_data * sd, unsigned int color, unsigned int second);
void (*progressbar_abort) (struct map_session_data * sd);
+ void (*progressbar_unit) (struct block_list *bl, uint32 color, uint32 time);
void (*showdigit) (struct map_session_data* sd, unsigned char type, int value);
int (*elementalconverter_list) (struct map_session_data *sd);
int (*spellbook_list) (struct map_session_data *sd);
@@ -1302,7 +1311,7 @@ struct clif_interface {
void (*pAdopt_request) (int fd, struct map_session_data *sd);
void (*pAdopt_reply) (int fd, struct map_session_data *sd);
void (*pViewPlayerEquip) (int fd, struct map_session_data* sd);
- void (*pEquipTick) (int fd, struct map_session_data* sd);
+ void (*p_cz_config) (int fd, struct map_session_data *sd);
void (*pquestStateAck) (int fd, struct map_session_data * sd);
void (*pmercenary_action) (int fd, struct map_session_data* sd);
void (*pBattleChat) (int fd, struct map_session_data* sd);
@@ -1395,6 +1404,7 @@ struct clif_interface {
void (*pRodexRequestItems) (int fd, struct map_session_data *sd);
void (*rodex_request_items) (struct map_session_data *sd, int8 opentype, int64 mail_id, int8 result);
void (*rodex_icon) (int fd, bool show);
+ void (*skill_scale) (struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime);
};
#ifdef HERCULES_CORE
diff --git a/src/map/elemental.c b/src/map/elemental.c
index ae1fda0a2..cf1d485e1 100644
--- a/src/map/elemental.c
+++ b/src/map/elemental.c
@@ -885,7 +885,7 @@ int read_elementaldb(void) {
estatus->race = atoi(str[20]);
ele = atoi(str[21]);
- estatus->def_ele = ele%10;
+ estatus->def_ele = ele % ELE_MAX;
estatus->ele_lv = ele/20;
if( estatus->def_ele >= ELE_MAX ) {
ShowWarning("Elemental %d has invalid element type %d (max element is %d)\n", db->class_, estatus->def_ele, ELE_MAX - 1);
diff --git a/src/map/homunculus.c b/src/map/homunculus.c
index ddaf3443a..9f5756885 100644
--- a/src/map/homunculus.c
+++ b/src/map/homunculus.c
@@ -683,7 +683,12 @@ int homunculus_hunger_timer(int tid, int64 tick, int id, intptr_t data) {
} else if(hd->homunculus.hunger == 75) {
clif->emotion(&hd->bl, E_OK);
}
-
+ if (battle_config.feature_enable_homun_autofeed != 0) {
+ if (hd->homunculus.autofeed) {
+ if (hd->homunculus.hunger < 30)
+ homun->feed(sd, hd);
+ }
+ }
if(hd->homunculus.hunger < 0) {
hd->homunculus.hunger = 0;
// Delete the homunculus if intimacy <= 100
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index a80392cf6..f3b10fc19 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -124,7 +124,7 @@ struct homun_data {
struct map_session_data *master; //pointer back to its master
int hungry_timer; //[orn]
unsigned int exp_next;
- char blockskill[MAX_SKILL]; // [orn]
+ char blockskill[MAX_SKILL_DB]; // [orn]
int64 masterteleport_timer;
};
diff --git a/src/map/intif.c b/src/map/intif.c
index 60edc8d8b..be6b75d96 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -2438,7 +2438,8 @@ void intif_parse_RequestRodexOpenInbox(int fd)
#endif
int8 flag = RFIFOB(fd, 9);
int8 is_end = RFIFOB(fd, 10);
- int count = RFIFOL(fd, 11);
+ int is_first = RFIFOB(fd, 11);
+ int count = RFIFOL(fd, 12);
int i, j;
sd = map->charid2sd(RFIFOL(fd, 4));
@@ -2446,16 +2447,25 @@ void intif_parse_RequestRodexOpenInbox(int fd)
if (sd == NULL) // user is not online anymore
return;
- sd->rodex.total = count;
- if (RFIFOW(fd, 2) - 15 != sd->rodex.total * sizeof(struct rodex_message)) {
- ShowError("intif_parse_RodexInboxOpenReceived: data size mismatch %d != %"PRIuS"\n", RFIFOW(fd, 2) - 15, sd->rodex.total * sizeof(struct rodex_message));
+ if (is_first == false && sd->rodex.total == 0) {
+ ShowError("intif_parse_RodexInboxOpenReceived: mail list received in wrong order.\n");
return;
}
- if (flag == 0)
+ if (is_first)
+ sd->rodex.total = count;
+ else
+ sd->rodex.total += count;
+
+ if (RFIFOW(fd, 2) - 16 != count * sizeof(struct rodex_message)) {
+ ShowError("intif_parse_RodexInboxOpenReceived: data size mismatch %d != %"PRIuS"\n", RFIFOW(fd, 2) - 16, count * sizeof(struct rodex_message));
+ return;
+ }
+
+ if (flag == 0 && is_first)
VECTOR_CLEAR(sd->rodex.messages);
- for (i = 0, j = 15; i < count; ++i, j += sizeof(struct rodex_message)) {
+ for (i = 0, j = 16; i < count; ++i, j += sizeof(struct rodex_message)) {
struct rodex_message msg = { 0 };
VECTOR_ENSURE(sd->rodex.messages, 1, 1);
memcpy(&msg, RFIFOP(fd, j), sizeof(struct rodex_message));
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 7fedb19ae..17a73400a 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -2070,6 +2070,12 @@ int itemdb_readdb_libconfig_sub(struct config_setting_t *it, int n, const char *
if ((t = libconfig->setting_get_member(it, "DisableOptions")))
id.flag.no_options = libconfig->setting_get_bool(t) ? 1 : 0;
+ if ((t = libconfig->setting_get_member(it, "ShowDropEffect")))
+ id.flag.showdropeffect = libconfig->setting_get_bool(t) ? 1 : 0;
+
+ if (itemdb->lookup_const(it, "DropEffectMode", &i32) && i32 >= 0)
+ id.dropeffectmode = i32;
+
if (itemdb->lookup_const(it, "ViewSprite", &i32) && i32 >= 0)
id.view_sprite = i32;
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index d2d3b6c73..5344a7cd6 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -472,6 +472,7 @@ struct item_data {
int view_id;
int matk;
int elvmax;/* maximum level for this item */
+ int dropeffectmode;
int delay;
uint64 class_base[3]; ///< Specifies if the base can wear this item (split in 3 indexes per type: 1-1, 2-1, 2-2)
@@ -495,6 +496,7 @@ struct item_data {
unsigned force_serial : 1;
unsigned no_options: 1; // < disallows use of item options on the item. (non-equippable items are automatically flagged) [Smokexyz]
unsigned drop_announce : 1; // Official Drop Announce [Jedzkie]
+ unsigned showdropeffect: 1; // < Allow showing effect on item drop [Asheraf]
} flag;
struct {// item stacking limitation
unsigned short amount;
@@ -538,6 +540,8 @@ struct item_data {
#define itemdb_value_sell(n) (itemdb->search(n)->value_sell)
#define itemdb_canrefine(n) (!itemdb->search(n)->flag.no_refine)
#define itemdb_allowoption(n) (!itemdb->search(n)->flag.no_options)
+#define itemdb_showdropeffect(n) (itemdb->search(n)->flag.showdropeffect)
+#define itemdb_dropeffectmode(n) (itemdb->search(n)->dropeffectmode)
#define itemdb_is_element(n) ((n) >= ITEMID_SCARLET_PTS && (n) <= ITEMID_LIME_GREEN_PTS)
#define itemdb_is_spellbook(n) ((n) >= ITEMID_MAGIC_BOOK_FB && (n) <= ITEMID_MAGIC_BOOK_DL)
diff --git a/src/map/map.c b/src/map/map.c
index ff5c2aafd..306f3a99d 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -1694,8 +1694,9 @@ bool map_closest_freecell(int16 m, const struct block_list *bl, int16 *x, int16
* @m, @x, @y mapid,x,y
* @first_charid, @second_charid, @third_charid, looting priority
* @flag: &1 MVP item. &2 do stacking check.
+ * @showdropeffect: show effect when the item is dropped.
*------------------------------------------*/
-int map_addflooritem(const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags)
+int map_addflooritem(const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags, bool showdropeffect)
{
int r;
struct flooritem_data *fitem=NULL;
@@ -1714,6 +1715,7 @@ int map_addflooritem(const struct block_list *bl, struct item *item_data, int am
fitem->bl.x = x;
fitem->bl.y = y;
fitem->bl.id = map->get_new_object_id();
+ fitem->showdropeffect = showdropeffect;
if(fitem->bl.id==0){
ers_free(map->flooritem_ers, fitem);
return 0;
@@ -1840,7 +1842,7 @@ void map_addiddb(struct block_list *bl)
struct mob_data *md = BL_UCAST(BL_MOB, bl);
idb_put(map->mobid_db,bl->id,bl);
- if( md->state.boss )
+ if (md->state.boss == BTYPE_MVP)
idb_put(map->bossid_db, bl->id, bl);
}
diff --git a/src/map/map.h b/src/map/map.h
index 3221c73cd..fab8839d8 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -519,7 +519,7 @@ struct spawn_data {
//0: Normal mob | 1: Standard summon, attacks mobs
//2: Alchemist Marine Sphere | 3: Alchemist Summon Flora | 4: Summon Zanzou
unsigned int dynamic : 1; ///< Whether this data is indexed by a map's dynamic mob list
- unsigned int boss : 1; ///< 0: Non-boss monster | 1: Boss monster
+ uint8 boss; ///< 0: Non-boss monster | 1: Boss monster | 2: MVP
} state;
char name[NAME_LENGTH], eventname[EVENT_NAME_LENGTH]; //Name/event
};
@@ -531,6 +531,7 @@ struct flooritem_data {
int first_get_charid,second_get_charid,third_get_charid;
int64 first_get_tick,second_get_tick,third_get_tick;
struct item item_data;
+ bool showdropeffect;
};
enum status_point_types { //we better clean up this enum and change it name [Hemagx]
@@ -1208,7 +1209,7 @@ END_ZEROED_BLOCK;
int (*clearflooritem_timer) (int tid, int64 tick, int id, intptr_t data);
int (*removemobs_timer) (int tid, int64 tick, int id, intptr_t data);
void (*clearflooritem) (struct block_list* bl);
- int (*addflooritem) (const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags);
+ int (*addflooritem) (const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags, bool showdropeffect);
// player to map session
void (*addnickdb) (int charid, const char* nick);
void (*delnickdb) (int charid, const char* nick);
diff --git a/src/map/mapreg_sql.c b/src/map/mapreg_sql.c
index 4cdb91b21..02015e011 100644
--- a/src/map/mapreg_sql.c
+++ b/src/map/mapreg_sql.c
@@ -211,9 +211,9 @@ void script_load_mapreg(void) {
mapreg->skip_insert = true;
- SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &varname[0], sizeof(varname), &length, NULL);
- SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &index, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &value[0], sizeof(value), NULL, NULL);
+ SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &varname, sizeof varname, &length, NULL);
+ SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &index, sizeof index, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &value, sizeof value, NULL, NULL);
while ( SQL_SUCCESS == SQL->StmtNextRow(stmt) ) {
int s = script->add_str(varname);
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index f5d3fe11c..c4b692008 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -465,7 +465,7 @@ bool read_mercenarydb_sub(char* str[], int columns, int current) {
mstatus->race = atoi(str[20]);
ele = atoi(str[21]);
- mstatus->def_ele = ele%10;
+ mstatus->def_ele = ele % ELE_MAX;
mstatus->ele_lv = ele/20;
if( mstatus->def_ele >= ELE_MAX ) {
ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, mstatus->def_ele, ELE_MAX - 1);
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index 0af75e8a2..f3773f191 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -92,7 +92,7 @@ struct mercenary_data {
struct regen_data regen;
struct s_mercenary_db *db;
struct s_mercenary mercenary;
- char blockskill[MAX_SKILL];
+ char blockskill[MAX_SKILL_DB];
struct map_session_data *master;
int contract_timer;
diff --git a/src/map/mob.c b/src/map/mob.c
index 822b84bf4..e93c9009d 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -1838,11 +1838,13 @@ int mob_ai_hard(int tid, int64 tick, int id, intptr_t data) {
/*==========================================
* Initializes the delay drop structure for mob-dropped items.
*------------------------------------------*/
-struct item_drop* mob_setdropitem(int nameid, int qty, struct item_data *data) {
+struct item_drop* mob_setdropitem(int nameid, int qty, struct item_data *data)
+{
struct item_drop *drop = ers_alloc(item_drop_ers, struct item_drop);
drop->item_data.nameid = nameid;
drop->item_data.amount = qty;
drop->item_data.identify = data ? itemdb->isidentified2(data) : itemdb->isidentified(nameid);
+ drop->showdropeffect = true;
drop->next = NULL;
return drop;
}
@@ -1857,6 +1859,7 @@ struct item_drop* mob_setlootitem(struct item* item)
nullpo_retr(NULL, item);
drop = ers_alloc(item_drop_ers, struct item_drop);
memcpy(&drop->item_data, item, sizeof(struct item));
+ drop->showdropeffect = false;
drop->next = NULL;
return drop;
}
@@ -1864,7 +1867,8 @@ struct item_drop* mob_setlootitem(struct item* item)
/*==========================================
* item drop with delay (timer function)
*------------------------------------------*/
-int mob_delay_item_drop(int tid, int64 tick, int id, intptr_t data) {
+int mob_delay_item_drop(int tid, int64 tick, int id, intptr_t data)
+{
struct item_drop_list *list;
struct item_drop *ditem;
list=(struct item_drop_list *)data;
@@ -1872,8 +1876,9 @@ int mob_delay_item_drop(int tid, int64 tick, int id, intptr_t data) {
while (ditem) {
struct item_drop *ditem_prev;
map->addflooritem(NULL, &ditem->item_data,ditem->item_data.amount,
- list->m,list->x,list->y,
- list->first_charid,list->second_charid,list->third_charid,0);
+ list->m,list->x,list->y,
+ list->first_charid,list->second_charid,list->third_charid,0,
+ ditem->showdropeffect);
ditem_prev = ditem;
ditem = ditem->next;
ers_free(item_drop_ers, ditem_prev);
@@ -2586,7 +2591,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
if((temp = pc->additem(mvp_sd,&item,1,LOG_TYPE_PICKDROP_PLAYER)) != 0) {
clif->additem(mvp_sd,0,0,temp);
- map->addflooritem(&md->bl, &item, 1, mvp_sd->bl.m, mvp_sd->bl.x, mvp_sd->bl.y, mvp_sd->status.char_id, (second_sd?second_sd->status.char_id : 0), (third_sd ? third_sd->status.char_id : 0), 1);
+ map->addflooritem(&md->bl, &item, 1, mvp_sd->bl.m, mvp_sd->bl.x, mvp_sd->bl.y, mvp_sd->status.char_id, (second_sd?second_sd->status.char_id : 0), (third_sd ? third_sd->status.char_id : 0), 1, true);
}
//Logs items, MVP prizes [Lupus]
@@ -2686,7 +2691,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) {
return 5; // Note: Actually, it's 4. Oh well...
// MvP tomb [GreenBox]
- if (battle_config.mvp_tomb_enabled && md->spawn->state.boss && map->list[md->bl.m].flag.notomb != 1)
+ if (battle_config.mvp_tomb_enabled && md->spawn->state.boss == BTYPE_MVP && map->list[md->bl.m].flag.notomb != 1)
mob->mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL));
if( !rebirth ) {
@@ -4846,7 +4851,7 @@ bool mob_parse_row_mobskilldb(char** str, int columns, int current)
struct mob_skill *ms, gms;
int mob_id;
int i =0, j, tmp;
- uint16 sidx = 0;
+ int sidx = 0;
nullpo_retr(false, str);
mob_id = atoi(str[0]);
diff --git a/src/map/mob.h b/src/map/mob.h
index 7f2accedf..98d64873b 100644
--- a/src/map/mob.h
+++ b/src/map/mob.h
@@ -69,6 +69,12 @@ struct hplugin_data_store;
// Disable this to make monsters not do any path search when looking for a target (old behavior).
#define ACTIVEPATHSEARCH
+enum e_bosstype {
+ BTYPE_NONE = 0,
+ BTYPE_BOSS = 1,
+ BTYPE_MVP = 2,
+};
+
//Mob skill states.
enum MobSkillState {
MSS_ANY = -1,
@@ -181,10 +187,10 @@ struct mob_data {
unsigned int spotted: 1;
unsigned int npc_killmonster: 1; //for new killmonster behavior
unsigned int rebirth: 1; // NPC_Rebirth used
- unsigned int boss : 1;
enum MobSkillState skillstate;
unsigned char steal_flag; //number of steal tries (to prevent steal exploit on mobs with few items) [Lupus]
unsigned char attacked_count; //For rude attacked.
+ uint8 boss;
int provoke_flag; // Celest
} state;
struct guardian_data* guardian_data;
@@ -400,6 +406,7 @@ enum mob_id {
// The data structures for storing delayed item drops
struct item_drop {
struct item item_data;
+ bool showdropeffect;
struct item_drop* next;
};
struct item_drop_list {
diff --git a/src/map/npc.c b/src/map/npc.c
index ecf7f878f..d3dfb39d2 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -114,6 +114,8 @@ bool npc_db_checkid(int id)
return true;
if (id >= MAX_NPC_CLASS2_START && id < MAX_NPC_CLASS2_END) // Second range
return true;
+ if (pc->db_checkid(id))
+ return true;
// Anything else is invalid
return false;
}
@@ -1558,9 +1560,9 @@ void npc_market_fromsql(void)
return;
}
- SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &name[0], sizeof(name), NULL, NULL);
- SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &itemid, 0, NULL, NULL);
- SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &amount, 0, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 0, SQLDT_STRING, &name, sizeof name, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 1, SQLDT_INT, &itemid, sizeof itemid, NULL, NULL);
+ SQL->StmtBindColumn(stmt, 2, SQLDT_INT, &amount, sizeof amount, NULL, NULL);
while ( SQL_SUCCESS == SQL->StmtNextRow(stmt) ) {
struct npc_data *nd = NULL;
@@ -2706,6 +2708,7 @@ struct npc_data *npc_create_npc(enum npc_subtype subtype, int m, int x, int y, u
nd->area_size = AREA_SIZE + 1;
nd->class_ = class_;
nd->speed = 200;
+ nd->vd = npc_viewdb[0]; // Copy INVISIBLE_CLASS view data. Actual view data is set by npc->add_to_location() later.
return nd;
}
@@ -3656,6 +3659,18 @@ void npc_setclass(struct npc_data* nd, short class_) {
clif->spawn(&nd->bl);// fade in
}
+void npc_refresh(struct npc_data* nd)
+{
+ nullpo_retv(nd);
+
+ if (map->list[nd->bl.m].users) {
+ // using here CLR_TRICKDEAD because other flags show effects.
+ // probably need use other flag or other way to refresh npc.
+ clif->clearunit_area(&nd->bl, CLR_TRICKDEAD); // fade out
+ clif->spawn(&nd->bl); // fade in
+ }
+}
+
// @commands (script based)
int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const char* message, const char* eventname)
{
@@ -3843,7 +3858,12 @@ const char *npc_parse_mob(const char *w1, const char *w2, const char *w3, const
memset(&mobspawn, 0, sizeof(struct spawn_data));
- mobspawn.state.boss = (strcmp(w2,"boss_monster") == 0 ? 1 : 0);
+ if (strcmp(w2, "boss_monster") == 0)
+ mobspawn.state.boss = BTYPE_MVP;
+ else if (strcmp(w2, "miniboss_monster") == 0)
+ mobspawn.state.boss = BTYPE_BOSS;
+ else
+ mobspawn.state.boss = BTYPE_NONE;
// w1=<map name>,<x>,<y>,<xs>,<ys>
// w3=<mob name>{,<mob level>}
@@ -4662,7 +4682,7 @@ int npc_parsesrcfile(const char* filepath, bool runOnInit) {
{
p = npc->parse_duplicate(w1,w2,w3,w4, p, buffer, filepath, (runOnInit?NPO_ONINIT:NPO_NONE), &success);
}
- else if( (strcmp(w2,"monster") == 0 || strcmp(w2,"boss_monster") == 0) )
+ else if (strcmp(w2,"monster") == 0 || strcmp(w2,"boss_monster") == 0 || strcmp(w2,"miniboss_monster") == 0)
{
p = npc->parse_mob(w1, w2, w3, w4, p, buffer, filepath, &success);
}
@@ -4994,7 +5014,6 @@ int do_init_npc(bool minimal) {
npc_viewdb[i].class = i;
for( i = MAX_NPC_CLASS2_START; i < MAX_NPC_CLASS2_END; i++ )
npc_viewdb2[i - MAX_NPC_CLASS2_START].class = i;
-
npc->ev_db = strdb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, EVENT_NAME_LENGTH);
npc->ev_label_db = strdb_alloc(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA, NAME_LENGTH);
npc->name_db = strdb_alloc(DB_OPT_BASE, NAME_LENGTH);
@@ -5189,4 +5208,5 @@ void npc_defaults(void) {
npc->market_delfromsql = npc_market_delfromsql;
npc->market_delfromsql_sub = npc_market_delfromsql_sub;
npc->db_checkid = npc_db_checkid;
+ npc->refresh = npc_refresh;
}
diff --git a/src/map/npc.h b/src/map/npc.h
index 3bd11d536..8bb38f252 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -70,7 +70,7 @@ struct npc_parse;
struct npc_data {
struct block_list bl;
struct unit_data *ud;
- struct view_data *vd;
+ struct view_data vd;
unsigned int option;
struct npc_data *master_nd;
short class_;
@@ -309,6 +309,7 @@ struct npc_interface {
void (*market_delfromsql) (struct npc_data *nd, unsigned short index);
void (*market_delfromsql_sub) (const char *npcname, unsigned short index);
bool (*db_checkid) (const int id);
+ void (*refresh) (struct npc_data* nd);
/**
* For the Secure NPC Timeout option (check config/Secure.h) [RR]
**/
diff --git a/src/map/packets.h b/src/map/packets.h
index e9d895440..229d6afde 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -49,7 +49,7 @@ packet(0x006e,3);
packet(0x006f,2);
packet(0x0070,6);
packet(0x0071,28);
-packet(0x0072,19,clif->pWantToConnection,2,6,10,14,18);
+packet(0x0072,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
packet(0x0073,11);
packet(0x0074,3);
packet(0x0075,-1);
@@ -61,18 +61,18 @@ packet(0x007a,58);
packet(0x007b,60);
packet(0x007c,41);
packet(0x007d,2,clif->pLoadEndAck,0);
-packet(0x007e,6,clif->pTickSend,2);
+packet(0x007e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
packet(0x007f,6);
packet(0x0080,7);
packet(0x0081,3);
packet(0x0082,2);
packet(0x0083,2);
packet(0x0084,2);
-packet(0x0085,5,clif->pWalkToXY,2);
+packet(0x0085,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
packet(0x0086,16);
packet(0x0087,12);
packet(0x0088,10);
-packet(0x0089,7,clif->pActionRequest,2,6);
+packet(0x0089,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
packet(0x008a,29);
packet(0x008b,2);
packet(0x008c,-1,clif->pGlobalMessage,2,4);
@@ -83,21 +83,21 @@ packet(0x0090,7,clif->pNpcClicked,2);
packet(0x0091,22);
packet(0x0092,28);
packet(0x0093,2);
-packet(0x0094,6,clif->pGetCharNameRequest,2);
+packet(0x0094,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
packet(0x0095,30);
packet(0x0096,-1,clif->pWisMessage,2,4,28);
packet(0x0097,-1);
packet(0x0098,3);
packet(0x0099,-1,clif->pBroadcast,2,4);
packet(0x009a,-1);
-packet(0x009b,5,clif->pChangeDir,2,4);
+packet(0x009b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
packet(0x009c,9);
packet(0x009d,17);
packet(0x009e,17);
-packet(0x009f,6,clif->pTakeItem,2);
+packet(0x009f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
packet(0x00a0,23);
packet(0x00a1,6);
-packet(0x00a2,6,clif->pDropItem,2,4);
+packet(0x00a2,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
packet(0x00a3,-1);
packet(0x00a4,-1);
packet(0x00a5,-1);
@@ -178,9 +178,9 @@ packet(0x00ef,2,clif->pTradeCommit,0);
packet(0x00f0,3);
packet(0x00f1,2);
packet(0x00f2,6);
-packet(0x00f3,8,clif->pMoveToKafra,2,4);
+packet(0x00f3,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
packet(0x00f4,21);
-packet(0x00f5,8,clif->pMoveFromKafra,2,4);
+packet(0x00f5,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
packet(0x00f6,8);
packet(0x00f7,2,clif->pCloseKafra,0);
packet(0x00f8,2);
@@ -210,10 +210,10 @@ packet(0x010f,-1);
packet(0x0110,10);
packet(0x0111,39);
packet(0x0112,4,clif->pSkillUp,2);
-packet(0x0113,10,clif->pUseSkillToId,2,4,6);
+packet(0x0113,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
packet(0x0114,31);
packet(0x0115,35);
-packet(0x0116,10,clif->pUseSkillToPos,2,4,6,8);
+packet(0x0116,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
packet(0x0117,18);
packet(0x0118,2,clif->pStopAttack,0);
packet(0x0119,13);
@@ -335,10 +335,10 @@ packet(0x018c,29);
packet(0x018d,-1);
packet(0x018e,10,clif->pProduceMix,2,4,6,8);
packet(0x018f,6);
-packet(0x0190,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
+packet(0x0190,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
packet(0x0191,86);
packet(0x0192,24);
-packet(0x0193,6,clif->pSolveCharName,2);
+packet(0x0193,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
packet(0x0194,30);
packet(0x0195,102);
packet(0x0196,9);
@@ -449,7 +449,7 @@ packet(0x01fe,5);
packet(0x01ff,10);
packet(0x0200,26);
packet(0x0201,-1);
-packet(0x0202,26,clif->pFriendsListAdd,2);
+packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x0203,10,clif->pFriendsListRemove,2,6);
packet(0x0204,18);
packet(0x0205,26);
@@ -719,7 +719,7 @@ packet(0x96e,-1,clif->ackmergeitems);
//2005-04-25aSakexe
#if PACKETVER >= 20050425
- packet(0x022d,5,clif->pHomMenu,2,4);
+ packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x0232,9,clif->pHomMoveTo,2,6);
packet(0x0233,11,clif->pHomAttack,2,6,10);
packet(0x0234,6,clif->pHomMoveToMaster,2);
@@ -1131,7 +1131,7 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x02c0,2);
packet(0x02c1,-1);
packet(0x02c2,-1);
- packet(0x02c4,26,clif->pPartyInvite2,2);
+ packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
packet(0x02c5,30);
packet(0x02c6,30);
packet(0x02c7,7,clif->pReplyPartyInvite2,2,6);
@@ -1151,7 +1151,7 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x02d5,2);
packet(0x02d6,6,clif->pViewPlayerEquip,2);
packet(0x02d7,-1);
- packet(0x02d8,10,clif->pEquipTick,6);
+ packet(0x02d8,10,clif->p_cz_config,6);
packet(0x02d9,10);
packet(0x02da,3);
packet(0x02db,-1,clif->pBattleChat,2,4);
@@ -1388,9 +1388,9 @@ packet(0x96e,-1,clif->ackmergeitems);
//2008-09-10aSakexe
#if PACKETVER >= 20080910
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0437,7,clif->pActionRequest,2,6);
- packet(0x0438,10,clif->pUseSkillToId,2,4,6);
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
packet(0x0439,8,clif->pUseItem,2,4);
#endif
@@ -1469,9 +1469,9 @@ packet(0x96e,-1,clif->ackmergeitems);
//2008-09-10aRagexeRE
#if PACKETVER >= 20080910
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0437,7,clif->pActionRequest,2,6);
- packet(0x0438,10,clif->pUseSkillToId,2,4,6);
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
packet(0x0439,8,clif->pUseItem,2,4);
#endif
@@ -1583,7 +1583,7 @@ packet(0x96e,-1,clif->ackmergeitems);
//2009-08-18aRagexeRE
#if PACKETVER >= 20090818
packet(0x07e3,6);
- packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
packet(0x07e6,8);
#endif
@@ -1715,7 +1715,7 @@ packet(0x96e,-1,clif->ackmergeitems);
//2010-03-03aRagexeRE
#if PACKETVER >= 20100303
packet(0x0810,3);
- packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
//packet(0x0812,86);
//packet(0x0813,6);
//packet(0x0814,6);
@@ -1768,9 +1768,9 @@ packet(0x96e,-1,clif->ackmergeitems);
#if PACKETVER >= 20100420
packet(0x0812,8);
packet(0x0814,86);
- packet(0x0815,2,clif->pReqCloseBuyingStore,0);
- packet(0x0817,6,clif->pReqClickBuyingStore,2);
- packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12);
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
packet(0x081a,4);
packet(0x081b,10);
packet(0x081c,10);
@@ -1781,7 +1781,7 @@ packet(0x96e,-1,clif->ackmergeitems);
#if PACKETVER >= 20100601
//packet(0x0825,-1);
//packet(0x0826,4);
- packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
packet(0x0836,-1);
packet(0x0837,3);
//packet(0x0838,3);
@@ -1789,10 +1789,10 @@ packet(0x96e,-1,clif->ackmergeitems);
//2010-06-08aRagexeRE
#if PACKETVER >= 20100608
- packet(0x0838,2,clif->pSearchStoreInfoNextPage,0);
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
packet(0x083A,4); // Search Stalls Feature
packet(0x083B,2,clif->pCloseSearchStoreInfo,0);
- packet(0x083C,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x083C,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
packet(0x083D,6);
#endif
@@ -1846,18 +1846,18 @@ packet(0x96e,-1,clif->ackmergeitems);
//2010-11-24aRagexeRE
#if PACKETVER >= 20101124
packet(0x0288,-1,clif->pcashshop_buy,4,8);
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x035f,5,clif->pWalkToXY,2);
- packet(0x0360,6,clif->pTickSend,2);
- packet(0x0361,5,clif->pChangeDir,2,4);
- packet(0x0362,6,clif->pTakeItem,2);
- packet(0x0363,6,clif->pDropItem,2,4);
- packet(0x0364,8,clif->pMoveToKafra,2,4);
- packet(0x0365,8,clif->pMoveFromKafra,2,4);
- packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0368,6,clif->pGetCharNameRequest,2);
- packet(0x0369,6,clif->pSolveCharName,2);
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
packet(0x0856,-1);
packet(0x0857,-1);
packet(0x0858,-1);
@@ -1971,17 +1971,17 @@ packet(0x96e,-1,clif->ackmergeitems);
//2011-10-05aRagexeRE
#if PACKETVER >= 20111005
- packet(0x0364,5,clif->pWalkToXY,2);
- packet(0x0817,6,clif->pTickSend,2);
- packet(0x0366,5,clif->pChangeDir,2,4);
- packet(0x0815,6,clif->pTakeItem,2);
- packet(0x0885,6,clif->pDropItem,2,4);
- packet(0x0893,8,clif->pMoveToKafra,2,4);
- packet(0x0897,8,clif->pMoveFromKafra,2,4);
- packet(0x0369,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x08ad,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x088a,6,clif->pGetCharNameRequest,2);
- packet(0x0838,6,clif->pSolveCharName,2);
+ packet(0x0364,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0817,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0366,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0893,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0897,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0369,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ad,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0838,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
packet(0x0439,8,clif->pUseItem,2,4);
packet(0x08d7,28,clif->pBGQueueRegister,2);
packet(0x090a,26,clif->pBGQueueCheckState,2);
@@ -1991,59 +1991,59 @@ packet(0x96e,-1,clif->ackmergeitems);
//2011-11-02aRagexe
#if PACKETVER >= 20111102
- packet(0x0436,26,clif->pFriendsListAdd,2);
+ packet(0x0436,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x0898,5,clif->pHomMenu,4);
- packet(0x0281,36,clif->pStoragePassword,0);
- packet(0x088d,26,clif->pPartyInvite2,2);
- packet(0x083c,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x08aa,7,clif->pActionRequest,2,6);
- packet(0x02c4,10,clif->pUseSkillToId,2,4,6);
- packet(0x0811,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x0281,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x083c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08aa,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x02c4,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0811,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
packet(0x890,8);
packet(0x08a5,18,clif->pPartyBookingRegisterReq,2,4,6);
- packet(0x0835,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x089b,2,clif->pReqCloseBuyingStore,0);
- packet(0x08a1,6,clif->pReqClickBuyingStore,2);
- packet(0x089e,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x08ab,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x088b,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x08a2,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x0835,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a1,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08ab,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08a2,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#ifndef PACKETVER_RE
- packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0892,5,clif->pWalkToXY,2);
- packet(0x0899,6,clif->pTickSend,2);
+ packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0892,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0899,6,clif->pTickSend,2); // CZ_REQUEST_TIME
#endif
#endif
//2012-03-07fRagexeRE
#if PACKETVER >= 20120307
- packet(0x086A,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x0887,6,clif->pTickSend,2);
- packet(0x0890,5,clif->pChangeDir,2,4);
- packet(0x0865,6,clif->pTakeItem,2);
- packet(0x02C4,6,clif->pDropItem,2,4);
- packet(0x093B,8,clif->pMoveToKafra,2,4);
- packet(0x0963,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0369,26,clif->pFriendsListAdd,2);
+ packet(0x086A,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0887,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0890,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0865,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x02C4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x093B,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0963,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x0863,5,clif->pHomMenu,4);
- packet(0x0861,36,clif->pStoragePassword,0);
- packet(0x0929,26,clif->pPartyInvite2,2);
- packet(0x0885,7,clif->pActionRequest,2,6);
- packet(0x0889,10,clif->pUseSkillToId,2,4,6);
- packet(0x0870,-1,clif->pItemListWindowSelected,2,4,8);
+ packet(0x0861,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0929,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0885,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0889,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0870,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0884,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0884,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
packet(0x0439,8,clif->pUseItem,2,4);
// changed packet sizes
packet(0x08e2,27); // ZC_NAVIGATION_ACTIVE
@@ -2052,34 +2052,34 @@ packet(0x96e,-1,clif->ackmergeitems);
//2012-04-10aRagexeRE
#if PACKETVER >= 20120410
packet(0x01FD,15,clif->pRepairItem,2);
- packet(0x089C,26,clif->pFriendsListAdd,2);
- packet(0x0885,5,clif->pHomMenu,2,4);
- packet(0x0961,36,clif->pStoragePassword,0);
+ packet(0x089C,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0961,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0288,-1,clif->pcashshop_buy,4,8);
- packet(0x091C,26,clif->pPartyInvite2,2);
- packet(0x094B,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
+ packet(0x091C,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094B,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
packet(0x0439,8,clif->pUseItem,2,4);
- packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x0886,6,clif->pTickSend,2);
- packet(0x0871,5,clif->pChangeDir,2,4);
- packet(0x0938,6,clif->pTakeItem,2);
- packet(0x0891,6,clif->pDropItem,2,4);
- packet(0x086C,8,clif->pMoveToKafra,2,4);
- packet(0x08A6,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0889,6,clif->pGetCharNameRequest,2);
- packet(0x0884,6,clif->pSolveCharName,2);
+ packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0886,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0871,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0938,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0891,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x086C,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08A6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
#ifndef PACKETVER_RE
packet(0x091D,18,clif->pPartyBookingRegisterReq,2,4,6);
#else
@@ -2119,20 +2119,20 @@ packet(0x96e,-1,clif->ackmergeitems);
//2012-04-18aRagexeRE [Special Thanks to Judas!]
#if PACKETVER >= 20120418
- packet(0x023B,26,clif->pFriendsListAdd,2);
- packet(0x0361,5,clif->pHomMenu,2,4);
- packet(0x08A8,36,clif->pStoragePassword,0);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0202,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
+ packet(0x023B,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08A8,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
packet(0x08E5,41,clif->pPartyRecruitRegisterReq,2,4);
packet(0x0916,26,clif->pGuildInvite2,2);
#endif
@@ -2163,57 +2163,57 @@ packet(0x96e,-1,clif->ackmergeitems);
// - 2012-07-02 is NOT STABLE.
// - The packets are kept here for reference, DONT USE THEM.
#if PACKETVER >= 20120702
- packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0364,6,clif->pTickSend,2);
- packet(0x085a,7,clif->pActionRequest,2,6);
- packet(0x0861,8,clif->pMoveFromKafra,2,4);
- packet(0x0862,10,clif->pUseSkillToId,2,4,6);
- packet(0x0863,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0886,6,clif->pSolveCharName,2);
- packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x089e,6,clif->pDropItem,2,4);
- packet(0x089f,6,clif->pTakeItem,2);
- packet(0x08a0,8,clif->pMoveToKafra,2,4);
- packet(0x094a,6,clif->pGetCharNameRequest,2);
- packet(0x0953,5,clif->pWalkToXY,2);
- packet(0x0960,5,clif->pChangeDir,2,4);
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0364,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0861,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0862,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0863,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0886,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a0,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x094a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0953,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0960,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
#endif
//2012-07-10
#if PACKETVER >= 20120710
- packet(0x0886,2,clif->pReqCloseBuyingStore,0);
+ packet(0x0886,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
#endif
//2012-07-16aRagExe (special thanks to Yommy/Frost!)
#if PACKETVER >= 20120716
packet(0x0879,18,clif->pPartyBookingRegisterReq,2,4,6);
- packet(0x023B,26,clif->pFriendsListAdd,2);
- packet(0x0361,5,clif->pHomMenu,2,4);
- packet(0x0819,36,clif->pStoragePassword,0);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
+ packet(0x023B,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0819,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
packet(0x0439,8,clif->pUseItem,2,4);
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0940,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0811,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0202,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0940,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0811,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x0436,4,clif->pDull); // CZ_GANGSI_RANK
#endif
@@ -2259,37 +2259,37 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-03-20Ragexe (Judas + Yommy)
#if PACKETVER >= 20130320
// Shuffle Start
- packet(0x088E,7,clif->pActionRequest,2,6);
- packet(0x089B,10,clif->pUseSkillToId,2,4,6);
- packet(0x0881,5,clif->pWalkToXY,2);
- packet(0x0363,6,clif->pTickSend,2);
- packet(0x0897,5,clif->pChangeDir,2,4);
- packet(0x0933,6,clif->pTakeItem,2);
- packet(0x0438,6,clif->pDropItem,2,4);
- packet(0x08AC,8,clif->pMoveToKafra,2,4);
- packet(0x0874,8,clif->pMoveFromKafra,2,4);
- packet(0x0959,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x085A,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0898,6,clif->pGetCharNameRequest,2);
- packet(0x094C,6,clif->pSolveCharName,2);
- packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x092E,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x094E,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0922,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x035F,6,clif->pReqClickBuyingStore,2);
- packet(0x0886,2,clif->pReqCloseBuyingStore,0);
- packet(0x0938,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x088E,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089B,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0881,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0363,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0897,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0933,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0438,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08AC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0874,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0959,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x085A,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0898,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094C,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x092E,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x094E,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0922,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x035F,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0886,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0938,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x085D,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x085D,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x085D,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0868,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x086D,26,clif->pPartyInvite2,2);
- packet(0x086F,26,clif->pFriendsListAdd,2);
- packet(0x093F,5,clif->pHomMenu,2,4);
- packet(0x0947,36,clif->pStoragePassword,0);
+ packet(0x0868,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086D,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086F,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093F,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0890,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x095a,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
// Shuffle End
@@ -2327,37 +2327,37 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-05-15aRagexe (Shakto)
#if PACKETVER >= 20130515
// Shuffle Start
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0362,5,clif->pChangeDir,2,4);
- packet(0x08A1,6,clif->pTakeItem,2);
- packet(0x0944,6,clif->pDropItem,2,4);
- packet(0x0887,8,clif->pMoveToKafra,2,4);
- packet(0x08AC,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08A1,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0944,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0887,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08AC,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x092D,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x092D,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x092D,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0963,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0947,26,clif->pPartyInvite2,2);
- packet(0x0962,26,clif->pFriendsListAdd,2);
- packet(0x0931,5,clif->pHomMenu,2,4);
- packet(0x093E,36,clif->pStoragePassword,0);
+ packet(0x0963,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0947,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0962,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x093E,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0862,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x08aa,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
// Shuffle End
@@ -2366,37 +2366,37 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-05-22Ragexe (Shakto)
#if PACKETVER >= 20130522
// Shuffle Start
- packet(0x08A2,7,clif->pActionRequest,2,6);
- packet(0x095C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0360,5,clif->pWalkToXY,2);
- packet(0x07EC,6,clif->pTickSend,2);
- packet(0x0925,5,clif->pChangeDir,2,4);
- packet(0x095E,6,clif->pTakeItem,2);
- packet(0x089C,6,clif->pDropItem,2,4);
- packet(0x08A3,8,clif->pMoveToKafra,2,4);
- packet(0x087E,8,clif->pMoveFromKafra,2,4);
- packet(0x0811,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0964,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x08A6,6,clif->pGetCharNameRequest,2);
- packet(0x0369,6,clif->pSolveCharName,2);
- packet(0x093E,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x08AA,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x095B,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0952,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0368,6,clif->pReqClickBuyingStore,2);
- packet(0x086E,2,clif->pReqCloseBuyingStore,0);
- packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x08A2,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x095C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0360,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x07EC,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0925,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095E,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089C,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08A3,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087E,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0811,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0964,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08A6,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x093E,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08AA,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x095B,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0952,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0368,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x086E,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x089B,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x089B,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x089B,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x086A,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x08A9,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0950,26,clif->pPartyInvite2,2);
- packet(0x0362,26,clif->pFriendsListAdd,2);
- packet(0x0926,5,clif->pHomMenu,2,4);
- packet(0x088E,36,clif->pStoragePassword,0);
+ packet(0x086A,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08A9,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0950,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088E,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x08ac,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x0965,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
// Shuffle End
@@ -2404,74 +2404,74 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-05-29Ragexe (Shakto)
#if PACKETVER >= 20130529
- packet(0x0890,7,clif->pActionRequest,2,6);
- packet(0x0438,10,clif->pUseSkillToId,2,4,6);
- packet(0x0876,5,clif->pWalkToXY,2);
- packet(0x0897,6,clif->pTickSend,2);
- packet(0x0951,5,clif->pChangeDir,2,4);
- packet(0x0895,6,clif->pTakeItem,2);
- packet(0x08A7,6,clif->pDropItem,2,4);
- packet(0x0938,8,clif->pMoveToKafra,2,4);
- packet(0x0957,8,clif->pMoveFromKafra,2,4);
- packet(0x0917,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x085E,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0863,6,clif->pGetCharNameRequest,2);
- packet(0x0937,6,clif->pSolveCharName,2);
- packet(0x085A,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0941,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0918,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0936,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0892,6,clif->pReqClickBuyingStore,2);
- packet(0x0964,2,clif->pReqCloseBuyingStore,0);
- packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0890,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0876,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0897,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0895,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08A7,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0938,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0957,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0917,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x085E,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0937,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085A,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0918,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0936,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0892,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0964,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0874,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0874,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0874,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x08A8,26,clif->pPartyInvite2,2);
- packet(0x0877,26,clif->pFriendsListAdd,2);
- packet(0x023B,5,clif->pHomMenu,2,4);
- packet(0x0956,36,clif->pStoragePassword,0);
+ packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08A8,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0877,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x023B,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0888,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x088e,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
#endif
//2013-06-05Ragexe (Shakto)
#if PACKETVER >= 20130605
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0202,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x023B,26,clif->pFriendsListAdd,2);
- packet(0x0361,5,clif->pHomMenu,2,4);
- packet(0x0883,36,clif->pStoragePassword,0);
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x023B,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0883,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x097C,4,clif->pRanklist);
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x0436,4,clif->pDull); // CZ_GANGSI_RANK
@@ -2480,108 +2480,108 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-06-12Ragexe (Shakto)
#if PACKETVER >= 20130612
// most shuffle packets used from 20130605
- packet(0x087E,5,clif->pChangeDir,2,4);
- packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0940,26,clif->pFriendsListAdd,2);
- packet(0x093A,5,clif->pHomMenu,2,4);
- packet(0x0964,36,clif->pStoragePassword,0);
+ packet(0x087E,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093A,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0964,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
#endif
//2013-06-18Ragexe (Shakto)
#if PACKETVER >= 20130618
- packet(0x0889,7,clif->pActionRequest,2,6);
- packet(0x0951,10,clif->pUseSkillToId,2,4,6);
- packet(0x088E,5,clif->pWalkToXY,2);
- packet(0x0930,6,clif->pTickSend,2);
- packet(0x08A6,5,clif->pChangeDir,2,4);
- packet(0x0962,6,clif->pTakeItem,2);
- packet(0x0917,6,clif->pDropItem,2,4);
- packet(0x0885,8,clif->pMoveToKafra,2,4);
- packet(0x0936,8,clif->pMoveFromKafra,2,4);
- packet(0x096A,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x094F,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0944,6,clif->pGetCharNameRequest,2);
- packet(0x0945,6,clif->pSolveCharName,2);
- packet(0x0890,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0363,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0862,6,clif->pReqClickBuyingStore,2);
- packet(0x085A,2,clif->pReqCloseBuyingStore,0);
- packet(0x0932,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0951,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088E,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0930,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08A6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0917,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0936,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096A,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094F,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0944,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0945,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0890,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0363,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0862,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085A,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0932,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x08A7,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x08A7,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x08A7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0942,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x095B,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0887,26,clif->pPartyInvite2,2);
- packet(0x0953,26,clif->pFriendsListAdd,2);
- packet(0x02C4,5,clif->pHomMenu,2,4);
- packet(0x0864,36,clif->pStoragePassword,0);
+ packet(0x0942,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095B,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0953,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x02C4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0864,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0878,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x087a,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
#endif
//2013-06-26Ragexe (Shakto)
#if PACKETVER >= 20130626
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x094D,5,clif->pChangeDir,2,4);
- packet(0x088B,6,clif->pTakeItem,2);
- packet(0x0952,6,clif->pDropItem,2,4);
- packet(0x0921,8,clif->pMoveToKafra,2,4);
- packet(0x0817,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0365,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094D,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088B,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0952,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0921,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0817,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0894,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0894,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0894,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x08A5,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x088C,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0895,26,clif->pPartyInvite2,2);
- packet(0x08AB,26,clif->pFriendsListAdd,2);
- packet(0x0960,5,clif->pHomMenu,2,4);
- packet(0x0930,36,clif->pStoragePassword,0);
+ packet(0x08A5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088C,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0895,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08AB,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0960,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0930,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0860,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x088f,4,clif->pDull); // CZ_GANGSI_RANK
#endif
//2013-07-03Ragexe (Shakto)
#if PACKETVER >= 20130703
- packet(0x0930,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0202,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0202,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x0360,26,clif->pFriendsListAdd,2);
- packet(0x094A,5,clif->pHomMenu,2,4);
- packet(0x0873,36,clif->pStoragePassword,0);
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094A,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x0436,4,clif->pDull); // CZ_GANGSI_RANK
#endif
@@ -2658,37 +2658,37 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-08-07Ragexe (Shakto)
#if PACKETVER >= 20130807
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0202,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x023B,26,clif->pFriendsListAdd,2);
- packet(0x0361,5,clif->pHomMenu,2,4);
- packet(0x0887,36,clif->pStoragePassword,0);
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x022D,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x023B,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0887,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x0436,4,clif->pDull); // CZ_GANGSI_RANK
#endif
@@ -2702,37 +2702,37 @@ packet(0x96e,-1,clif->ackmergeitems);
//2013-08-14aRagexe - Themon
#if PACKETVER >= 20130814
- packet(0x0874,7,clif->pActionRequest,2,6);
- packet(0x0947,10,clif->pUseSkillToId,2,4,6);
- packet(0x093A,5,clif->pWalkToXY,2);
- packet(0x088A,6,clif->pTickSend,2);
- packet(0x088C,5,clif->pChangeDir,2,4);
- packet(0x0926,6,clif->pTakeItem,2);
- packet(0x095F,6,clif->pDropItem,2,4);
- packet(0x0202,8,clif->pMoveToKafra,2,4);
- packet(0x0873,8,clif->pMoveFromKafra,2,4);
- packet(0x0887,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0962,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0937,6,clif->pGetCharNameRequest,2);
- packet(0x0923,6,clif->pSolveCharName,2);
- packet(0x0868,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0941,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0895,6,clif->pReqClickBuyingStore,2);
- packet(0x094E,2,clif->pReqCloseBuyingStore,0);
- packet(0x0936,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
+ packet(0x0874,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0947,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x093A,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x088A,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088C,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0926,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095F,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0202,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0873,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0887,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0962,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0937,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0923,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0868,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0895,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094E,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0936,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
#ifdef PACKETVER_RE
packet(0x0365,41,clif->pPartyRecruitRegisterReq,2,4);
#else // not PACKETVER_RE
- packet(0x0959,18,clif->pPartyBookingRegisterReq,2,4);
+ packet(0x0959,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
#endif // PACKETVER_RE
- packet(0x08A4,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x0368,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0927,26,clif->pPartyInvite2,2);
- packet(0x0281,26,clif->pFriendsListAdd,2);
- packet(0x0958,5,clif->pHomMenu,2,4);
- packet(0x0885,36,clif->pStoragePassword,0);
+ packet(0x08A4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0368,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0815,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x0896,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
#endif
@@ -2862,33 +2862,33 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2013-12-18bRagexe - Yommy
#if PACKETVER >= 20131218
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0947,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x022D,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x092F,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x08AB,26,clif->pFriendsListAdd,2);
- packet(0x0811,5,clif->pHomMenu,2,4);
- packet(0x085C,36,clif->pStoragePassword,0);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0947,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x022D,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092F,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08AB,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0811,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x085C,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x087b,4,clif->pDull); // CZ_GANGSI_RANK
#endif
@@ -2909,33 +2909,33 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2013-12-23cRagexe - Yommy
#if PACKETVER >= 20131223
- packet(0x0369,7,clif->pActionRequest,2,6);
- packet(0x083C,10,clif->pUseSkillToId,2,4,6);
- packet(0x0437,5,clif->pWalkToXY,2);
- packet(0x035F,6,clif->pTickSend,2);
- packet(0x0202,5,clif->pChangeDir,2,4);
- packet(0x07E4,6,clif->pTakeItem,2);
- packet(0x0362,6,clif->pDropItem,2,4);
- packet(0x07EC,8,clif->pMoveToKafra,2,4);
- packet(0x0364,8,clif->pMoveFromKafra,2,4);
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x096A,6,clif->pGetCharNameRequest,2);
- packet(0x0368,6,clif->pSolveCharName,2);
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0360,6,clif->pReqClickBuyingStore,2);
- packet(0x0817,2,clif->pReqCloseBuyingStore,0);
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4);
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x0802,26,clif->pPartyInvite2,2);
- packet(0x023B,26,clif->pFriendsListAdd,2);
- packet(0x0361,5,clif->pHomMenu,2,4);
- packet(0x08A4,36,clif->pStoragePassword,0);
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083C,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035F,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x07E4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07EC,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096A,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x023B,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08A4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x0363,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
packet(0x0436,4,clif->pDull); // CZ_GANGSI_RANK
#endif
@@ -2950,33 +2950,33 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2013-12-30aRagexe - Yommy
#if PACKETVER >= 20131230
- packet(0x0871,7,clif->pActionRequest,2,6);
- packet(0x02C4,10,clif->pUseSkillToId,2,4,6);
- packet(0x035F,5,clif->pWalkToXY,2);
- packet(0x0438,6,clif->pTickSend,2);
- packet(0x094A,5,clif->pChangeDir,2,4);
- packet(0x092A,6,clif->pTakeItem,2);
- packet(0x0860,6,clif->pDropItem,2,4);
- packet(0x0968,8,clif->pMoveToKafra,2,4);
- packet(0x0895,8,clif->pMoveFromKafra,2,4);
- packet(0x091E,10,clif->pUseSkillToPos,2,4,6,8);
- packet(0x096A,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
- packet(0x0926,6,clif->pGetCharNameRequest,2);
- packet(0x0898,6,clif->pSolveCharName,2);
- packet(0x087B,12,clif->pSearchStoreInfoListItemClick,2,6,10);
- packet(0x0369,2,clif->pSearchStoreInfoNextPage,0);
- packet(0x093D,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
- packet(0x087F,-1,clif->pReqTradeBuyingStore,2,4,8,12);
- packet(0x0969,6,clif->pReqClickBuyingStore,2);
- packet(0x094C,2,clif->pReqCloseBuyingStore,0);
- packet(0x0365,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
- packet(0x091F,18,clif->pPartyBookingRegisterReq,2,4);
- packet(0x022D,-1,clif->pItemListWindowSelected,2,4,8);
- packet(0x089C,19,clif->pWantToConnection,2,6,10,14,18);
- packet(0x08A9,26,clif->pPartyInvite2,2);
- packet(0x0943,26,clif->pFriendsListAdd,2);
- packet(0x0949,5,clif->pHomMenu,2,4);
- packet(0x091D,36,clif->pStoragePassword,0);
+ packet(0x0871,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x02C4,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x035F,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094A,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092A,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0968,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091E,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x096A,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0926,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087B,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0369,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093D,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087F,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0969,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094C,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0365,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091F,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x022D,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089C,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08A9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0943,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0949,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x091D,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
packet(0x087e,4,clif->pDull); // CZ_GANGSI_RANK
packet(0x093e,8,clif->pDull); // CZ_JOIN_BATTLE_FIELD
#endif
@@ -2993,74 +2993,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2014 Packet Data
-// 2014-01-08cRagexe
-#if PACKETVER == 20140108
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-01-15eRagexe
-#if PACKETVER == 20140115
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_MOVE2
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQUEST_TIME2
- packet(0x0361,6,clif->pDropItem,2,4); // CZ_CHANGE_DIRECTION2
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND2
- packet(0x0367,8,clif->pMoveFromKafra,2,4); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX2
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME2
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQNAME_BYGID2
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_ACT2
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL2
- packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_SSILIST_ITEM_CLICK
- packet(0x0865,36,clif->pStoragePassword,0); // ZC_REASSEMBLY_AUTH12
- packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REASSEMBLY_AUTH04
- packet(0x088a,8,clif->pDull/*,XXX*/); // CZ_REASSEMBLY_AUTH07
- packet(0x088e,8,clif->pMoveToKafra,2,4); // CZ_REASSEMBLY_AUTH11
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_REASSEMBLY_AUTH24
- packet(0x08a7,5,clif->pChangeDir,2,4); // CZ_REASSEMBLY_AUTH36
- packet(0x092d,5,clif->pHomMenu,2,4); // ZC_REASSEMBLY_AUTH65
- packet(0x0940,6,clif->pTakeItem,2); // ZC_REASSEMBLY_AUTH84
- packet(0x095b,4,clif->pDull/*,XXX*/); // CZ_REASSEMBLY_AUTH69
- packet(0x095d,26,clif->pPartyInvite2,2); // CZ_REASSEMBLY_AUTH71
- packet(0x0965,-1,clif->pItemListWindowSelected,2,4,8); // CZ_REASSEMBLY_AUTH79
- packet(0x0966,19,clif->pWantToConnection,2,6,10,14,18); // CZ_REASSEMBLY_AUTH80
- packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_REASSEMBLY_AUTH84
-#endif
-
// 2014-01-15cRagexeRE
#if PACKETVER >= 20140115
// new packets
@@ -3075,40 +3007,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x09eb,-1); // ZC_ACK_READ_RODEX
#endif
-// 2014-01-22aRagexe
-#if PACKETVER == 20140122
-// shuffle packets
- packet(0x0360,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0811,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0863,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0871,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0872,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0890,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0893,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0899,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x089d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08a2,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08aa,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0917,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0925,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x092f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0941,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0942,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x094c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0950,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0952,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0955,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x095d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
-#endif
-
// 2014-01-22aRagexeRE
#if PACKETVER >= 20140122
// new packets
@@ -3121,40 +3019,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x09f9,143); // ZC_ADD_QUEST_EX
#endif
-// 2014-01-29aRagexe
-#if PACKETVER == 20140129
-// shuffle packets
- packet(0x0281,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0367,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0884,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0885,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0921,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0924,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x092c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0958,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-01-29bRagexeRE
#if PACKETVER >= 20140129
// new packets
@@ -3170,74 +3034,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif // PACKETVER_RE
#endif
-// 2014-02-05bRagexe
-#if PACKETVER == 20140205
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0938,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-02-12aRagexe
-#if PACKETVER == 20140212
-// shuffle packets
- packet(0x02c4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0369,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0438,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x086e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0874,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0877,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0878,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x087e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0888,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x088c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x08a0,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a1,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a7,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0919,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0928,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0930,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0934,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0936,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0944,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0952,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0953,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0960,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
-#endif
-
// 2014-02-12aRagexeRE
#if PACKETVER >= 20140212
// new packets
@@ -3246,40 +3042,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x09e8,11,clif->pRodexOpenMailbox); // CZ_OPEN_RODEXBOX
#endif
-// 2014-02-19aRagexe
-#if PACKETVER == 20140219
-// shuffle packets
- packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0360,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0802,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x085d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x085f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0860,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0868,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x086f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0889,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0898,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x089f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08ac,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0921,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0927,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0939,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0949,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0953,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x095a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0961,6,clif->pTickSend,2); // CZ_REQUEST_TIME
-#endif
-
// 2014-02-19aRagexeRE
#if PACKETVER >= 20140219
// Warning hercules using this packets for items manipulation. In RagexeRE from 20140129 and before 20140305, this actions broken.
@@ -3292,40 +3054,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif // PACKETVER_RE
#endif
-// 2014-02-26aRagexe
-#if PACKETVER == 20140226
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0877,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0887,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0894,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x091a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0921,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0931,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0941,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-02-26aRagexeRE
#if PACKETVER >= 20140226
// new packets
@@ -3336,40 +3064,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2014-03-05aRagexe
-#if PACKETVER == 20140305
-// shuffle packets
- packet(0x0202,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0878,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0934,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-03-05aRagexeRE
#if PACKETVER >= 20140305
// new packets
@@ -3391,40 +3085,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x09f4,3); // ZC_ACK_ITEM_FROM_RODEX
#endif
-// 2014-03-12dRagexe
-#if PACKETVER == 20140312
-// shuffle packets
- packet(0x0202,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x086f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0889,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0891,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0894,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x089b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x089e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a6,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08ad,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x091b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x091c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x091e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0948,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x094b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x094c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0957,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x095d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
// 2014-03-12bRagexeRE
#if PACKETVER >= 20140312
// new packets
@@ -3437,40 +3097,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a0d,-1); // ZC_INVENTORY_ITEMLIST_EQUIP_V6
#endif
-// 2014-03-26aRagexe
-#if PACKETVER == 20140326
-// shuffle packets
- packet(0x0362,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0365,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x07ec,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x083c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0865,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0867,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0869,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x086b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x087c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x087e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0887,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08aa,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08ac,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08ad,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0918,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0928,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x092a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x093d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0946,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x095a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x095c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0969,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
-#endif
-
// 2014-03-26cRagexeRE
#if PACKETVER >= 20140326
// changed packet sizes
@@ -3483,40 +3109,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a08,7,clif->pDull/*,XXX*/); // CZ_REQ_OPEN_WRITE_RODEX
#endif
-// 2014-04-02fRagexe
-#if PACKETVER == 20140402
-// shuffle packets
- packet(0x023b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0360,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0364,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x085b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x085d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0867,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0868,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0882,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0883,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0890,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0896,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x089a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0926,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0933,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x093f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0944,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0946,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x094c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0950,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0965,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
// 2014-04-02eRagexeRE
#if PACKETVER >= 20140402
// new packets
@@ -3526,40 +3118,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2014-04-09aRagexe
-#if PACKETVER == 20140409
-// shuffle packets
- packet(0x0819,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x085b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0868,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x086a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x086d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0873,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x087e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0883,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0884,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x088a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0890,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0896,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a2,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08a6,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x08a7,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a9,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0918,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x092e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0942,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0947,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x095e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
-#endif
-
// 2014-04-09aRagexeRE
#if PACKETVER >= 20140409
// changed packet sizes
@@ -3567,40 +3125,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x09f4,12); // ZC_ACK_ITEM_FROM_RODEX
#endif
-// 2014-04-16aRagexe
-#if PACKETVER == 20140416
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x095c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-04-16aRagexeRE
#if PACKETVER >= 20140416
// new packets
@@ -3614,40 +3138,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a08,26,clif->pRodexOpenWriteMail); // CZ_REQ_OPEN_WRITE_RODEX
#endif
-// 2014-04-23aRagexe
-#if PACKETVER == 20140423
-// shuffle packets
- packet(0x022d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0436,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0811,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x083c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x085a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x085b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0862,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0866,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x086b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x086f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0873,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0890,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0895,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0896,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0898,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x089d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08a8,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08ad,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x091a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0920,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x094f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x095e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
-#endif
-
// 2014-04-23aRagexeRE
#if PACKETVER >= 20140423
// new packets
@@ -3664,114 +3154,12 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a17,6); // ZC_DYNAMICNPC_CREATE_RESULT
#endif
-// 2014-05-08aRagexe
-#if PACKETVER == 20140508
-// shuffle packets
- packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0281,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x07ec,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
// 2014-05-08bRagexeRE
#if PACKETVER >= 20140508
// changed packet sizes
packet(0x0a15,12); // ZC_GOLDPCCAFE_POINT
#endif
-// 2014-05-14bRagexe
-#if PACKETVER == 20140514
-// shuffle packets
- packet(0x0437,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0817,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0865,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0868,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0876,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0877,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0886,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x088a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x088b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0895,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x089c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a5,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0921,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0925,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x092c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x092f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0962,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0965,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x096a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
-#endif
-
-// 2014-05-21bRagexe
-#if PACKETVER == 20140521
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x088b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x089c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0968,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-05-21aRagexeRE
#if PACKETVER >= 20140521
// changed packet sizes
@@ -3779,74 +3167,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a14,10); // ZC_CHECK_RECEIVE_CHARACTER_NAME
#endif
-// 2014-05-28aRagexe
-#if PACKETVER == 20140528
-// shuffle packets
- packet(0x0202,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x085f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0862,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0875,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0877,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0879,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x087e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x088a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x088f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0894,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08a8,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0929,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0930,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0938,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x093a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x093f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x094b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x095f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0963,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0966,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
-#endif
-
-// 2014-06-05aRagexe
-#if PACKETVER == 20140605
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0921,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x094c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
/* Roulette System [Yommy/Hercules] */
// 2014-06-05aRagexe
#if PACKETVER >= 20140605
@@ -3859,40 +3179,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a1d,14,clif->pDull/*,XXX*/); // CZ_REQ_CLOSE_ROULETTE
#endif
-// 2014-06-11cRagexe
-#if PACKETVER == 20140611
-// shuffle packets
- packet(0x0364,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0438,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0838,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0864,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0867,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0878,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0891,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0893,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0894,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a2,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0924,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x094f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0950,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0958,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0965,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
/* Roulette System [Yommy/Hercules] */
// 2014-06-11bRagexe / RE. moved by 4144
#if PACKETVER >= 20140611
@@ -3914,108 +3200,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a1d,2,clif->pRouletteClose,0); // CZ_REQ_CLOSE_ROULETTE
#endif
-// 2014-06-12aRagexe
-#if PACKETVER == 20140612
-// shuffle packets
- packet(0x0364,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0438,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0838,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0864,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0867,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0878,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0891,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0893,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0894,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a2,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0924,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x094f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0950,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0958,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0965,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
-// 2014-06-13aRagexe
-#if PACKETVER == 20140613
-// shuffle packets
- packet(0x0364,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0438,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0838,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0864,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0867,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0878,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0891,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0893,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0894,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a2,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0924,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x094f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0950,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0958,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0965,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
-// 2014-06-18aRagexe
-#if PACKETVER == 20140618
-// shuffle packets
- packet(0x085d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0860,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0861,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0878,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0884,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0885,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0886,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0890,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a7,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08ac,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0917,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x091f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0929,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0935,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0939,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x093b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0945,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0954,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0957,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x095e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0967,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
-#endif
-
// 2014-06-18cRagexeRE
#if PACKETVER >= 20140618
// changed packet sizes
@@ -4023,40 +3207,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a22,5); // ZC_RECV_ROULETTE_ITEM
#endif
-// 2014-06-25aRagexe
-#if PACKETVER == 20140625
-// shuffle packets
- packet(0x0202,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x023b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0815,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0817,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x085a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0861,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0875,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x087b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0886,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0888,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x088a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0897,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08a1,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a2,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0923,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0946,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0959,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0968,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-06-25aRagexeRE
#if PACKETVER >= 20140625
// new packets
@@ -4066,40 +3216,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a24,36); // ZC_ACH_UPDATE
#endif
-// 2014-07-02aRagexe
-#if PACKETVER == 20140702
-// shuffle packets
- packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0438,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x07e4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0887,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0892,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08a0,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0925,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0933,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-07-02aRagexeRE
#if PACKETVER >= 20140702
// new packets
@@ -4107,114 +3223,12 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a2a,6,clif->pDull/*,XXX*/); // CZ_ACK_AU_BOT
#endif
-// 2014-07-09aRagexe
-#if PACKETVER == 20140709
-// shuffle packets
- packet(0x0364,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0869,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0875,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0877,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0879,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x087a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0887,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0888,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0894,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0897,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0898,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0925,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x092f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0931,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0934,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x093f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x094f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0961,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
-#endif
-
-// 2014-07-16aRagexe
-#if PACKETVER == 20140716
-// shuffle packets
- packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0811,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0871,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0881,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0896,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x089a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x089f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08a2,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08a4,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x08ac,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0918,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0926,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0938,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0947,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0952,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0959,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
-#endif
-
// 2014-07-16aRagexeRE
#if PACKETVER >= 20140716
// changed packet sizes
packet(0x09e7,3); // ZC_NOTIFY_UNREAD_RODEX
#endif
-// 2014-07-23aRagexe
-#if PACKETVER == 20140723
-// shuffle packets
- packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0436,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0819,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x085f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x087d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0888,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0891,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0896,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0898,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x089e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08ad,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0927,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x092f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0934,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0935,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0939,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x093d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0945,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0947,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0948,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0960,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
// 2014-07-23aRagexeRE
#if PACKETVER >= 20140723
// new packets
@@ -4224,250 +3238,12 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a24,56); // ZC_ACH_UPDATE
#endif
-// 2014-07-30aRagexe
-#if PACKETVER == 20140730
-// shuffle packets
- packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0366,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0367,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x07ec,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0802,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0815,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0817,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x085f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x087d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x087e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0889,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x088b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x088d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0892,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a0,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a7,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a9,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0924,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0934,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0940,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0946,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
-#endif
-
-// 2014-08-06aRagexe
-#if PACKETVER == 20140806
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0948,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-08-13aRagexe
-#if PACKETVER == 20140813
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0878,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0882,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0897,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0899,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a7,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0967,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-08-14aRagexe
-#if PACKETVER == 20140814
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0878,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0882,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0897,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0899,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a7,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0967,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-08-20aRagexe
-#if PACKETVER == 20140820
-// shuffle packets
- packet(0x035f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0835,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0861,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0864,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0869,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x086c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0872,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0876,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0899,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a3,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a7,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0937,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x093a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x093e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0951,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0952,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0956,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0958,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
// 2014-08-20aRagexeRE
#if PACKETVER >= 20140820
// new packets
packet(0x0a2d,-1); // ZC_EQUIPWIN_MICROSCOPE_V6
#endif
-// 2014-08-27aRagexe
-#if PACKETVER == 20140827
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0943,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-09-03aRagexe
-#if PACKETVER == 20140903
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0945,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-09-03aRagexeRE
#if PACKETVER >= 20140903
// new packets
@@ -4476,74 +3252,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2014-09-17aRagexe
-#if PACKETVER == 20140917
-// shuffle packets
- packet(0x022d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0364,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0365,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0367,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0895,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0897,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0898,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a8,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0919,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x091e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x092a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0930,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0949,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x094f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0951,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0955,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0956,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x095a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x095c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x095e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0966,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
-#endif
-
-// 2014-09-24cRagexe
-#if PACKETVER == 20140924
-// shuffle packets
- packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0367,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0815,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0862,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x086b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0886,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x088b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0894,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0898,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a5,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a7,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0918,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x091b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0925,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0926,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0928,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0934,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0949,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0952,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
-#endif
-
// 2014-09-24bRagexeRE
#if PACKETVER >= 20140924
// new packets
@@ -4554,324 +3262,18 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a34,6); // ZC_UPDATE_TAIWANCASH
#endif
-// 2014-10-01aRagexe
-#if PACKETVER == 20141001
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0884,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0885,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x089d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x092a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0939,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0952,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
-#endif
-
// 2014-10-01bRagexeRE
#if PACKETVER >= 20141001
// changed packet sizes
packet(0x0a24,66); // ZC_ACH_UPDATE
#endif
-// 2014-10-08aRagexe
-#if PACKETVER == 20141008
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0942,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-10-08bRagexeRE
#if PACKETVER >= 20141008
// changed packet sizes
packet(0x0a05,49); // ZC_ACK_ADD_ITEM_RODEX
#endif
-// 2014-10-15bRagexe
-#if PACKETVER == 20141015
-// shuffle packets
- packet(0x022d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0922,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0967,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-10-16aRagexe
-#if PACKETVER == 20141016
-// shuffle packets
- packet(0x022d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0922,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0967,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-10-22bRagexe
-#if PACKETVER == 20141022
-// shuffle packets
- packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0878,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x087d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0896,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0899,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08aa,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x094e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-10-29aRagexe
-#if PACKETVER == 20141029
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0940,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-11-05aRagexe
-#if PACKETVER == 20141105
-// shuffle packets
- packet(0x022d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x035f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0360,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0864,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0865,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0871,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0874,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0875,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0877,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0879,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0887,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0892,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0898,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a0,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08a5,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a7,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08ad,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x091e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x092b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0944,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0948,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0950,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0957,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x095f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0968,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
-// 2014-11-12cRagexe
-#if PACKETVER == 20141112
-// shuffle packets
- packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0438,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x07e4,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0871,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0885,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0886,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08a0,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a1,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08ab,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0919,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0929,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0943,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x095d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0962,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
-#endif
-
-// 2014-11-19dRagexe
-#if PACKETVER == 20141119
-// shuffle packets
- packet(0x0202,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0865,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0866,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0872,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0873,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0875,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x087c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0887,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0888,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x088d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0895,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a8,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0918,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0920,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0921,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0933,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0938,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0948,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x094c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0963,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
-#endif
-
// 2014-11-19bRagexeRE
#if PACKETVER >= 20141119
// new packets
@@ -4880,40 +3282,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a05,53); // ZC_ACK_ADD_ITEM_RODEX
#endif
-// 2014-11-26aRagexe
-#if PACKETVER == 20141126
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0367,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0802,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0871,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0884,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0920,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0942,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2014-11-26aRagexeRE
#if PACKETVER >= 20141126
// new packets
@@ -4921,590 +3289,12 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a37,57); // ZC_ITEM_PICKUP_ACK_V7
#endif
-// 2014-12-03aRagexe
-#if PACKETVER == 20141203
-// shuffle packets
- packet(0x0202,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0281,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0362,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0367,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0861,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x086d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x086e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x087b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0880,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0889,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0898,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08a5,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08aa,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0917,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x091c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0928,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x092a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x095c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
-#endif
-
-// 2014-12-10bRagexe
-#if PACKETVER == 20141210
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0885,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08ac,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0917,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0927,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x092b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0947,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0954,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0958,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0963,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0967,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2014-12-24aRagexe
-#if PACKETVER == 20141224
-// shuffle packets
- packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0438,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x085a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0865,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x086c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0870,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x087b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x089b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08a3,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08ac,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0932,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0945,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0949,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x094f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0950,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0953,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0956,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x095b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x095f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
-#endif
-
-// 2014-12-31aRagexe
-#if PACKETVER == 20141231
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-01-07aRagexeRE
-#if PACKETVER == 20150107
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0895,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0943,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0947,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-01-14aRagexe
-#if PACKETVER == 20150114
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0868,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0899,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0946,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0955,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0957,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-01-21aRagexe
-#if PACKETVER == 20150121
-// shuffle packets
- packet(0x0281,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x088b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x089e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08ab,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0919,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0955,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0959,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0963,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0967,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-01-28aRagexe
-#if PACKETVER == 20150128
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x023b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0838,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0864,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x086d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0870,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0874,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0875,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0888,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0968,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
-#endif
-
// 2015-01-28aRagexeRE
#if PACKETVER >= 20150128
// new packets
packet(0x0a38,3);
#endif
-// 2015-01-29aRagexe
-#if PACKETVER == 20150129
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x023b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0838,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0864,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x086d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0870,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0874,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0875,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0888,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0968,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
-#endif
-
-// 2015-01-30aRagexe
-#if PACKETVER == 20150130
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x023b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0838,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0864,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x086d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0870,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0874,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0875,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0888,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0968,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
-#endif
-
-// 2015-02-04aRagexe
-#if PACKETVER == 20150204
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0966,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-02-11aRagexe
-#if PACKETVER == 20150211
-// shuffle packets
- packet(0x023b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0368,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0369,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0436,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0437,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x07e4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0817,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0819,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0835,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0862,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0870,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0873,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x087b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0882,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0883,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0885,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0886,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x089c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08aa,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0919,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0951,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0957,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0958,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
-// 2015-02-17aRagexe
-#if PACKETVER == 20150217
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-02-25aRagexeRE
-#if PACKETVER == 20150225
-// shuffle packets
- packet(0x02c4,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0948,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0955,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
-#endif
-
-// 2015-02-26aRagexeRE
-#if PACKETVER == 20150226
-// shuffle packets
- packet(0x02c4,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0948,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0955,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
-#endif
-
-// 2015-03-04aRagexe
-#if PACKETVER == 20150304
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0862,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x086d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0879,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0892,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x093a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x095d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0960,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-03-11aRagexeRE
-#if PACKETVER == 20150311
-// shuffle packets
- packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0360,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0438,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0838,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x086a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x086c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x087b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0883,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0888,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0896,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a5,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08a6,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0928,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x092e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0943,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0958,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x095b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0964,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
// 2015-03-11aRagexeRE
#if PACKETVER >= 20150311
// new packets
@@ -5512,176 +3302,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2015-03-18aRagexe
-#if PACKETVER == 20150318
-// shuffle packets
- packet(0x0202,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x023b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0281,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0802,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0862,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0885,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x088c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a4,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0920,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0927,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0928,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0936,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0937,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x093a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x094c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0951,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0958,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0959,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0960,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
-// 2015-03-25aRagexe
-#if PACKETVER == 20150325
-// shuffle packets
- packet(0x0202,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0365,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0438,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x085d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x086f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0883,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0885,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0893,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0897,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0899,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a7,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0919,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0931,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0932,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0938,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0950,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0954,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0969,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
-#endif
-
-// 2015-04-01aRagexe
-#if PACKETVER == 20150401
-// shuffle packets
- packet(0x0362,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0367,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0437,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x083c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x086f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0875,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x087e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x088f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0898,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a5,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0924,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0938,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0939,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x093a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x093b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x093e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0949,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0953,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0964,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
-// 2015-04-08aRagexe
-#if PACKETVER == 20150408
-// shuffle packets
- packet(0x0819,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x085a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0865,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0868,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0878,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0888,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0889,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0891,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a2,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x091e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0922,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0946,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0955,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0957,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0959,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0963,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
-// 2015-04-15aRagexe
-#if PACKETVER == 20150415
-// shuffle packets
- packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0364,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0366,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0368,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0802,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0835,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x085e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0868,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0869,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x086c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0880,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0898,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a0,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x093c,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0941,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0946,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0953,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x095c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
// 2015-04-15aRagexeRE
#if PACKETVER >= 20150415
// changed packet sizes
@@ -5689,182 +3309,12 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2015-04-22aRagexeRE
-#if PACKETVER == 20150422
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0955,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-04-22aRagexeRE
#if PACKETVER >= 20150422
// new packets
packet(0x0a3b,-1);
// changed packet sizes
#endif
-// 2015-04-29aRagexe
-#if PACKETVER == 20150429
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0886,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0894,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0899,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x089f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08a8,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08ad,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0943,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-05-07bRagexe
-#if PACKETVER == 20150507
-// shuffle packets
- packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0887,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0889,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0924,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x092e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0941,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0942,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0953,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0955,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0958,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-05-13aRagexe
-#if PACKETVER == 20150513
-// shuffle packets
- packet(0x022d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x02c4,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0883,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a8,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0923,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0924,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0927,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x094a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0960,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-05-20aRagexe
-#if PACKETVER == 20150520
-// shuffle packets
- packet(0x0202,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0361,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x085e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0865,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0868,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x087d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0880,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0882,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a2,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0924,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0931,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0936,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x093d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0940,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0945,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x094e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0960,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0961,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
// 2015-05-20aRagexeRE
#if PACKETVER >= 20150520
// new packets
@@ -5872,716 +3322,36 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a3d,18,clif->pDull/*,XXX*/);
#endif
-// 2015-05-27aRagexe
-#if PACKETVER == 20150527
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x083c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0940,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-06-03aRagexe
-#if PACKETVER == 20150603
-// shuffle packets
- packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0437,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0860,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0864,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0867,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0873,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0877,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0884,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x088b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x089a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a1,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08ad,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x091b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0922,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x093b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x093f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0955,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0956,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0960,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0969,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x096a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
-#endif
-
// 2015-06-03bRagexeRE
#if PACKETVER >= 20150603
// new packets
packet(0x0a3e,-1);
#endif
-// 2015-06-10aRagexe
-#if PACKETVER == 20150610
-// shuffle packets
- packet(0x022d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0438,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x07e4,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0835,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0872,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0877,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x087e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0884,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x088f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0897,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a0,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08ac,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0925,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x092e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0932,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x093e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0940,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0946,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0949,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0957,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x095d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0964,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
-// 2015-06-17aRagexeRE
-#if PACKETVER == 20150617
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0362,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0365,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x086b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0894,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-06-18aRagexeRE
-#if PACKETVER == 20150618
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0362,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0365,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x086b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0894,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-06-24aRagexe
-#if PACKETVER == 20150624
-// shuffle packets
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0365,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0870,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0940,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0966,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2015-06-24aRagexeRE
#if PACKETVER >= 20150624
// new packets
packet(0x0a3f,9);
#endif
-// 2015-07-02aRagexe
-#if PACKETVER == 20150702
-// shuffle packets
- packet(0x023b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0281,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x07e4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x086d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x087d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x088e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0893,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a0,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a4,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a5,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a6,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08ad,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0919,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0923,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0928,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x092c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x093f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0946,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0954,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0956,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0958,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x095f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0960,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0968,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
-// 2015-07-08cRagexe
-#if PACKETVER == 20150708
-// shuffle packets
- packet(0x022d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0368,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0872,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x092a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-07-15aRagexe
-#if PACKETVER == 20150715
-// shuffle packets
- packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0362,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0436,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0437,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x086f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0873,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0879,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x087c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x087f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0886,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0895,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0896,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0897,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0899,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x089a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a4,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08ac,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0917,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x093e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0944,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0950,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0961,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0965,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
-// 2015-07-29aRagexe
-#if PACKETVER == 20150729
-// shuffle packets
- packet(0x0437,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0438,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x085b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0860,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x086e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x086f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0870,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0880,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0881,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0886,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x089a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a3,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08ac,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08ad,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0920,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x092b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x093a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x093f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0955,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x095e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0961,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
-#endif
-
-// 2015-08-05aRagexe
-#if PACKETVER == 20150805
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-08-12aRagexe
-#if PACKETVER == 20150812
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2015-08-12aRagexeRE
#if PACKETVER >= 20150812
// new packets
packet(0x0a40,11);
#endif
-// 2015-08-19aRagexeRE
-#if PACKETVER == 20150819
-// shuffle packets
- packet(0x0202,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x022d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0281,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x085d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0862,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0865,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0871,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0888,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0919,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0927,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0961,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0967,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-08-26aRagexeRE
-#if PACKETVER == 20150826
-// shuffle packets
- packet(0x0362,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0368,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0436,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x07ec,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0861,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x086b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0870,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x087b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0890,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0891,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08a1,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0924,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x093b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0945,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0951,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0959,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0968,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0969,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
-#endif
-
-// 2015-09-02aRagexe
-#if PACKETVER == 20150902
-// shuffle packets
- packet(0x023b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0360,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0367,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0802,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x083c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x087b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0886,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0887,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0889,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x088d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0892,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0897,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0899,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08a9,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0923,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0928,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x092d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0941,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0947,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x094f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0953,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x095b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0960,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
-// 2015-09-09aRagexe
-#if PACKETVER == 20150909
-// shuffle packets
- packet(0x023b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0361,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0437,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0861,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0871,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x087b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0883,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0886,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0895,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0928,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0940,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0941,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0962,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
// 2015-09-09aRagexeRE
#if PACKETVER >= 20150909
// new packets
packet(0x0a41,18);
#endif
-// 2015-09-16aRagexe
-#if PACKETVER == 20150916
-// shuffle packets
- packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0817,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0835,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x085e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0869,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0873,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0877,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0881,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x089b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x089c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08ac,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0920,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0924,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x092f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0934,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0936,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0942,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0948,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x095a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0960,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0969,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
-#endif
-
// 2015-09-16aRagexeRE
#if PACKETVER >= 20150916
// new packets
packet(0x0a42,43);
#endif
-// 2015-09-23bRagexe
-#if PACKETVER == 20150923
-// shuffle packets
- packet(0x0361,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0817,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x085c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x085d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0864,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x086e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x086f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0870,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0879,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x087f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x088e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0892,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0895,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a0,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a2,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08a5,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08a6,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x092b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0936,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x093b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0951,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
-#endif
-
-// 2015-10-01aRagexe
-#if PACKETVER == 20151001
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-10-07aRagexeRE
-#if PACKETVER == 20151007
-// shuffle packets
- packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0862,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0961,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2015-10-07aRagexeRE
#if PACKETVER >= 20151007
// new packets
@@ -6589,284 +3359,12 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a44,-1);
#endif
-// 2015-10-14bRagexeRE
-#if PACKETVER == 20151014
-// shuffle packets
- packet(0x0202,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0817,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0838,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x085a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0863,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0874,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0881,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0883,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0884,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0889,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x088e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x089a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x089f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08aa,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0930,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0934,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0944,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x094f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0956,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x095e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0961,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
-#endif
-
-// 2015-10-21aRagexe
-#if PACKETVER == 20151021
-// shuffle packets
- packet(0x023b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x02c4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-10-22aRagexe
-#if PACKETVER == 20151022
-// shuffle packets
- packet(0x023b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x02c4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-10-28cRagexeRE
-#if PACKETVER == 20151028
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2015-10-28cRagexeRE
#if PACKETVER >= 20151028
// new packets
packet(0x0a45,-1);
#endif
-// 2015-10-29aRagexe
-#if PACKETVER == 20151029
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-11-04aRagexe
-#if PACKETVER == 20151104
-// shuffle packets
- packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0360,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0363,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0437,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0811,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0815,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0886,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x088b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x088d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08a3,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a5,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0928,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0939,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093a,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x0940,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
-#endif
-
-// 2015-11-11aRagexe
-#if PACKETVER == 20151111
-// shuffle packets
- packet(0x02c4,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085d,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x0862,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0871,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0885,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0942,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x094a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0958,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0967,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0969,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-11-18aRagexeRE
-#if PACKETVER == 20151118
-// shuffle packets
- packet(0x022d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x035f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x088b,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x08ab,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0921,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x092e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0943,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x0957,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2015-11-18aRagexeRE
#if PACKETVER >= 20151118
// new packets
@@ -6876,346 +3374,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a4c,28);
#endif
-// 2015-11-25bRagexe
-#if PACKETVER == 20151125
-// shuffle packets
- packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0366,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x0438,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0802,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0838,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0863,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0883,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0884,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x088c,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x088d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x089f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x08a9,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x092a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x092e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0939,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0951,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0956,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0959,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
-#endif
-
-// 2015-12-02bRagexeRE
-#if PACKETVER == 20151202
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0870,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2015-12-09aRagexe
-#if PACKETVER == 20151209
-// shuffle packets
- packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x07e4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x07ec,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0811,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0819,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x085b,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
- packet(0x085d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0861,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0866,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x087a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x087f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0894,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08a1,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0920,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x092d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0932,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
- packet(0x093b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0948,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094a,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0956,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x095c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0961,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0964,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
-#endif
-
-// 2015-12-16aRagexe
-#if PACKETVER == 20151216
-// shuffle packets
- packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0361,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0364,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0436,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x085b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0865,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x086a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0870,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0874,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x088b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x089e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a2,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a9,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0947,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0949,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0954,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0960,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0966,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0968,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
-#endif
-
-// 2015-12-23bRagexeRE
-#if PACKETVER == 20151223
-// shuffle packets
- packet(0x02c4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0362,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0815,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0864,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0866,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0872,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0875,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0876,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0881,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0884,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0886,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x088d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0890,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0891,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0898,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08aa,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0918,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x091a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x091b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0920,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0923,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0924,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x095e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x095f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0965,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0967,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
-// 2015-12-30aRagexe
-#if PACKETVER == 20151230
-// shuffle packets
- packet(0x02c4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x07ec,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0861,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0869,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0886,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x088e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0897,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0923,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x093a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0949,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-01-06aRagexeRE
-#if PACKETVER == 20160106
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0861,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0878,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x087f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0889,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x088a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0891,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0940,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-01-13aRagexeRE
-#if PACKETVER == 20160113
-// shuffle packets
- packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x023b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x035f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0815,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x085b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0864,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x086d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0873,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0888,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0893,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a0,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a6,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08aa,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0919,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x091b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0924,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0930,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0932,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x093c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0941,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x094d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0967,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
-#endif
-
-// 2016-01-20aRagexeRE
-#if PACKETVER == 20160120
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0865,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-01-27aRagexeRE
-#if PACKETVER == 20160127
-// shuffle packets
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-01-27aRagexeRE
#if PACKETVER >= 20160127
// new packets
@@ -7223,176 +3381,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-02-03aRagexeRE
-#if PACKETVER == 20160203
-// shuffle packets
- packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0940,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0947,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0954,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-02-11aRagexeRE
-#if PACKETVER == 20160211
-// shuffle packets
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-02-17cRagexeRE
-#if PACKETVER == 20160217
-// shuffle packets
- packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0864,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0873,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x087a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0888,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x088f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a0,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ad,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x091d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0920,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0926,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x093b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0941,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0966,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
-#endif
-
-// 2016-02-24bRagexeRE
-#if PACKETVER == 20160224
-// shuffle packets
- packet(0x022d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0364,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0436,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0861,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x086b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0884,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0885,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0888,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0920,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0929,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0938,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-03-02bRagexeRE
-#if PACKETVER == 20160302
-// shuffle packets
- packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0367,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0819,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x085b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0873,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x087a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x087d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0883,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a6,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08a9,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0927,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x092f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x094e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0950,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0957,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x095a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0968,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
-#endif
-
// 2016-03-02bRagexeRE
#if PACKETVER >= 20160302
// new packets
@@ -7403,74 +3391,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-03-09aRagexeRE
-#if PACKETVER == 20160309
-// shuffle packets
- packet(0x023b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0281,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x083c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x087e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x089b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0920,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0929,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x092a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0932,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x094f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0956,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x096a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
-#endif
-
-// 2016-03-16aRagexeRE
-#if PACKETVER == 20160316
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0922,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-03-16aRagexeRE
#if PACKETVER >= 20160316
// new packets
@@ -7490,40 +3410,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-03-23aRagexeRE
-#if PACKETVER == 20160323
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0869,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0872,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0878,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0883,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0926,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0927,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0933,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x093c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-03-23aRagexeRE
#if PACKETVER >= 20160323
// new packets
packet(0x0a68,3);
@@ -7534,40 +3420,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-03-30aRagexeRE
-#if PACKETVER == 20160330
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0878,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x088d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0918,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x092a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0939,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x093b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-03-30aRagexeRE
#if PACKETVER >= 20160330
// new packets
packet(0x0a6c,7,clif->pDull/*,XXX*/);
@@ -7577,142 +3429,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-04-06aRagexeRE
-#if PACKETVER == 20160406
-// shuffle packets
- packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x07e4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x085a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0869,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0877,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0878,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0879,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0884,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0892,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0895,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0898,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a9,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08ac,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0927,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0933,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0934,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0940,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0949,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x094d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0953,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x095f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0962,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
-#endif
-
-// 2016-04-14bRagexeRE
-#if PACKETVER == 20160414
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0363,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0862,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0880,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0885,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0918,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0922,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0927,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0931,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0934,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0945,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0953,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-04-20aRagexeRE
-#if PACKETVER == 20160420
-// shuffle packets
- packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0872,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0874,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0884,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a5,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x094e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x095c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-04-27aRagexeRE
-#if PACKETVER == 20160427
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0835,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-04-27aRagexeRE
#if PACKETVER >= 20160427
// new packets
@@ -7721,40 +3437,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-05-04aRagexeRE
-#if PACKETVER == 20160504
-// shuffle packets
- packet(0x0202,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0363,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0365,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x083c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x086b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x087f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0884,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x088d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0893,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0898,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x089d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0918,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0922,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0924,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0940,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0941,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0948,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0952,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0969,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
-#endif
-
-// 2016-05-04aRagexeRE
#if PACKETVER >= 20160504
// new packets
packet(0x0a70,2,clif->pDull/*,XXX*/);
@@ -7764,40 +3446,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-05-11aRagexeRE
-#if PACKETVER == 20160511
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0894,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0918,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0940,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-05-11aRagexeRE
#if PACKETVER >= 20160511
// new packets
packet(0x0a73,6);
@@ -7806,40 +3454,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-05-18aRagexeRE
-#if PACKETVER == 20160518
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0874,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0928,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-05-18aRagexeRE
#if PACKETVER >= 20160518
// new packets
packet(0x0a76,80);
@@ -7848,40 +3462,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-05-25aRagexeRE
-#if PACKETVER == 20160525
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0945,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x094a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0951,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0956,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-05-25aRagexeRE
#if PACKETVER >= 20160525
// new packets
packet(0x0a77,15);
@@ -7890,40 +3470,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-06-01aRagexeRE
-#if PACKETVER == 20160601
-// shuffle packets
- packet(0x0202,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0863,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0870,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x087d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x088f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0895,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08a7,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0924,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x095f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-06-01aRagexeRE
#if PACKETVER >= 20160601
// new packets
packet(0x0a79,-1);
@@ -7933,74 +3479,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-06-08aRagexeRE
-#if PACKETVER == 20160608
-// shuffle packets
- packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0802,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0889,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x094d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-06-15aRagexeRE
-#if PACKETVER == 20160615
-// shuffle packets
- packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x083c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x092f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0948,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x094b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0957,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0958,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x095e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0961,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
// 2016-06-15aRagexeRE
#if PACKETVER >= 20160615
// new packets
@@ -8012,40 +3490,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-06-22aRagexeRE
-#if PACKETVER == 20160622
-// shuffle packets
- packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x035f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x07e4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0865,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0867,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0880,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0887,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0890,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0892,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x089e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a2,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a8,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0936,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x093b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x093f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0959,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0969,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
-#endif
-
-// 2016-06-22aRagexeRE
#if PACKETVER >= 20160622
// new packets
packet(0x0a82,46);
@@ -8059,40 +3503,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-06-29aRagexeRE
-#if PACKETVER == 20160629
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x022d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0363,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x085e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0860,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0861,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0863,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x088e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0893,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0925,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x093e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0946,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0948,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x095a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0968,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0969,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
-// 2016-06-29aRagexeRE
#if PACKETVER >= 20160629
// new packets
packet(0x0a89,32);
@@ -8104,74 +3514,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a80,6);
#endif
-// 2016-06-30aRagexeRE
-#if PACKETVER == 20160630
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x022d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0363,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x085e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0860,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0861,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0863,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x088e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0893,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0925,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x093e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0946,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0948,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x095a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0968,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0969,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
-// 2016-07-06cRagexeRE
-#if PACKETVER == 20160706
-// shuffle packets
- packet(0x0362,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x085f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0860,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0869,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0884,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0886,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0892,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0899,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08a8,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0918,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x091b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0924,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0927,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0939,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x093d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0944,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
-#endif
-
// 2016-07-06cRagexeRE
#if PACKETVER >= 20160706
// new packets
@@ -8181,40 +3523,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a89,57);
#endif
-// 2016-07-13bRagexeRE
-#if PACKETVER == 20160713
-// shuffle packets
- packet(0x022d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0838,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0865,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0877,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x087b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0892,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x091c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x092c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0931,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0944,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0945,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0957,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x095b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
-#endif
-
// 2016-07-13aRagexeRE
#if PACKETVER >= 20160713
// new packets
@@ -8223,40 +3531,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-07-20aRagexeRE
-#if PACKETVER == 20160720
-// shuffle packets
- packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0365,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x07e4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0883,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08aa,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0917,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0946,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x094d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0953,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
-#endif
-
-// 2016-07-20aRagexeRE
#if PACKETVER >= 20160720
// new packets
packet(0x0a8e,2);
@@ -8265,40 +3539,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-07-27bRagexeRE
-#if PACKETVER == 20160727
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0436,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x07ec,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0869,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0883,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x089f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a4,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08a7,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0951,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0966,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
-#endif
-
// 2016-07-27aRagexeRE
#if PACKETVER >= 20160727
// new packets
@@ -8309,40 +3549,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-08-03bRagexeRE
-#if PACKETVER == 20160803
-// shuffle packets
- packet(0x0364,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x085d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0878,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0881,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0888,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0891,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0895,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x08a1,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0930,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0932,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0934,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0937,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x093a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x093e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x093f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0952,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0956,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0959,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x095a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
-#endif
-
-// 2016-08-03bRagexeRE
#if PACKETVER >= 20160803
// new packets
packet(0x0a94,2);
@@ -8350,108 +3556,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a81,4);
#endif
-// 2016-08-10aRagexeRE
-#if PACKETVER == 20160810
-// shuffle packets
- packet(0x0361,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x085d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x085f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0860,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x086f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0875,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0879,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x087a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0885,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0888,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0890,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x089f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a9,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x091c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0926,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x092b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x092d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0935,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0943,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x094b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0959,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x095b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0967,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
-#endif
-
-// 2016-08-31bRagexeRE
-#if PACKETVER == 20160831
-// shuffle packets
- packet(0x022d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0366,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x086d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0876,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x087c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08a9,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0917,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0938,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0946,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x094f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0950,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0954,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0957,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x095e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0964,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
-#endif
-
-// 2016-09-07aRagexeRE
-#if PACKETVER == 20160907
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x091c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-09-07aRagexeRE
#if PACKETVER >= 20160907
// new packets
@@ -8459,74 +3563,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-09-13aRagexeRE
-#if PACKETVER == 20160913
-// shuffle packets
- packet(0x0361,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0865,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0875,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0879,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0887,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0889,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0891,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0892,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a5,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0935,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0949,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x094a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0950,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0952,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0954,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0962,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0963,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0968,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
-#endif
-
-// 2016-09-21bRagexeRE
-#if PACKETVER == 20160921
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x094a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-09-21bRagexeRE
#if PACKETVER >= 20160921
// new packets
@@ -8535,40 +3571,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0a37,59); // ZC_ITEM_PICKUP_ACK_V7
#endif
-// 2016-09-28dRagexeRE
-#if PACKETVER == 20160928
-// shuffle packets
- packet(0x0202,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0366,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0878,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0889,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x088e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0897,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x089a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a9,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0919,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x091e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0927,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x092d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0944,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0953,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0957,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
-#endif
-
// 2016-09-28cRagexeRE
#if PACKETVER >= 20160928
// new packets
@@ -8585,40 +3587,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-10-05aRagexeRE
-#if PACKETVER == 20161005
-// shuffle packets
- packet(0x0202,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0838,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0886,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0891,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0892,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x089b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a0,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08ac,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0918,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0919,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x092b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0931,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0932,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x093b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0942,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0945,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x094a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0952,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x095b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
-#endif
-
-// 2016-10-05aRagexeRE
#if PACKETVER >= 20161005
// new packets
packet(0x0aa0,2,clif->pDull/*,XXX*/);
@@ -8629,108 +3597,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-10-12aRagexeRE
-#if PACKETVER == 20161012
-// shuffle packets
- packet(0x023b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0369,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x07ec,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0819,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x085b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0868,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0872,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0880,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0893,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0937,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0943,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0951,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x095c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0966,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
-#endif
-
-// 2016-10-19aRagexeRE
-#if PACKETVER == 20161019
-// shuffle packets
- packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0361,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0889,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0892,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-10-26bRagexeRE
-#if PACKETVER == 20161026
-// shuffle packets
- packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0862,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x086e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0886,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0894,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0898,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0926,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x092e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x092f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0930,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x094b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0953,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x095c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x095e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0962,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
// 2016-10-26bRagexeRE
#if PACKETVER >= 20161026
// new packets
@@ -8739,210 +3605,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-11-02aRagexeRE
-#if PACKETVER == 20161102
-// shuffle packets
- packet(0x0361,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0367,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0802,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x083c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0874,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0886,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a2,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08aa,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x091b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0922,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0925,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0936,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0949,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0964,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0965,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0966,6,clif->pTickSend,2); // CZ_REQUEST_TIME
-#endif
-
-// 2016-11-03aRagexeRE
-#if PACKETVER == 20161103
-// shuffle packets
- packet(0x0361,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0367,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0802,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x083c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0874,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0886,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a2,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x08aa,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x091b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0922,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0925,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0936,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0949,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0964,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0965,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0966,6,clif->pTickSend,2); // CZ_REQUEST_TIME
-#endif
-
-// 2016-11-09bRagexeRE
-#if PACKETVER == 20161109
-// shuffle packets
- packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0362,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x085d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x086a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x086d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0870,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0876,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x088e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0891,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0898,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a7,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0937,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x093c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x093f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0954,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
-// 2016-11-16cRagexeRE
-#if PACKETVER == 20161116
-// shuffle packets
- packet(0x0368,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0369,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0835,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x085f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x086f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0885,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x088f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0890,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0892,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a2,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08ac,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0920,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0925,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x092a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0931,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x093c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x094a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0957,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x095b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0967,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
-#endif
-
-// 2016-11-23aRagexeRE
-#if PACKETVER == 20161123
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0861,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0862,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x086f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0871,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0880,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0882,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x088b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a9,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x091a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0926,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x092a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x092f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x094d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x094f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x095a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x095b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0962,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x096a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
-#endif
-
-// 2016-11-30bRagexeRE
-#if PACKETVER == 20161130
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0954,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0959,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-11-30aRagexeRE
#if PACKETVER >= 20161130
// new packets
@@ -8954,40 +3616,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-12-07eRagexeRE
-#if PACKETVER == 20161207
-// shuffle packets
- packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0868,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0875,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0886,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2016-12-07cRagexeRE
#if PACKETVER >= 20161207
// new packets
@@ -8995,74 +3623,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2016-12-14bRagexeRE
-#if PACKETVER == 20161214
-// shuffle packets
- packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x02c4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0862,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x086d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0887,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0899,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x092e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x093d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2016-12-21aRagexeRE
-#if PACKETVER == 20161221
-// shuffle packets
- packet(0x035f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0366,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x085b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0876,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x08aa,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x092c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x092e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0943,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x094b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
-#endif
-
// 2016-12-21aRagexeRE
#if PACKETVER >= 20161221
// new packets
@@ -9075,40 +3635,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2016-12-28aRagexeRE
-#if PACKETVER == 20161228
-// shuffle packets
- packet(0x0362,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x085a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0865,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x086a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x086c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0870,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0871,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0875,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0889,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0893,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a2,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08a3,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a5,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ab,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08ac,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0929,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x092c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0934,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0935,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x093d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0944,6,clif->pTickSend,2); // CZ_REQUEST_TIME
-#endif
-
-// 2016-12-28aRagexeRE
#if PACKETVER >= 20161228
// new packets
// changed packet sizes
@@ -9116,40 +3642,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-01-04bRagexeRE
-#if PACKETVER == 20170104
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x085a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0896,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-01-04bRagexeRE
#if PACKETVER >= 20170104
// new packets
packet(0x0ab2,7);
@@ -9158,40 +3650,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-01-11aRagexeRE
-#if PACKETVER == 20170111
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0877,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x088a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x091b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-01-11aRagexeRE
#if PACKETVER >= 20170111
// new packets
packet(0x0ab4,4);
@@ -9204,40 +3662,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-01-18aRagexeRE
-#if PACKETVER == 20170118
-// shuffle packets
- packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0862,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0865,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x086f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0873,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08ad,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0927,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0933,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0962,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
-// 2017-01-18aRagexeRE
#if PACKETVER >= 20170118
// new packets
packet(0x0aba,2);
@@ -9247,74 +3671,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0ab3,19);
#endif
-// 2017-01-25aRagexeRE
-#if PACKETVER == 20170125
-// shuffle packets
- packet(0x0438,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0877,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0879,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x087d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0881,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0893,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0894,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0895,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x089b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08a5,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x091b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x091c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0920,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0929,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x092b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0930,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0943,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0944,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x095c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0965,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0968,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
-// 2017-02-01aRagexeRE
-#if PACKETVER == 20170201
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0815,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0875,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0879,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0886,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x088b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a4,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0919,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0920,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0938,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x094c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2017-02-01aRagexeRE
#if PACKETVER >= 20170201
// new packets
@@ -9322,74 +3678,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2017-02-08aRagexeRE
-#if PACKETVER == 20170208
-// shuffle packets
- packet(0x02c4,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0367,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0860,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0892,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a1,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0921,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0923,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0932,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0937,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-02-15aRagexeRE
-#if PACKETVER == 20170215
-// shuffle packets
- packet(0x02c4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x035f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0876,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x087c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x087d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0883,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x088c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0890,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0896,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a2,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x08a8,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0925,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0942,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x094e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x095f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0962,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0969,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
-#endif
-
// 2017-02-15aRagexeRE
#if PACKETVER >= 20170215
// new packets
@@ -9398,40 +3686,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-02-22aRagexeRE
-#if PACKETVER == 20170222
-// shuffle packets
- packet(0x0202,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0866,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0871,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0877,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0894,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08a3,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08a8,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0939,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0943,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0962,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-02-22aRagexeRE
#if PACKETVER >= 20170222
// new packets
packet(0x0abe,116);
@@ -9440,40 +3694,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-02-28aRagexeRE
-#if PACKETVER == 20170228
-// shuffle packets
- packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0360,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0819,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0863,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x086b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0873,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0876,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0883,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0889,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0893,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x089e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08a7,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x091f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0937,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x093e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0947,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0948,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0952,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
-#endif
-
-// 2017-02-28aRagexeRE
#if PACKETVER >= 20170228
// new packets
packet(0x0ac0,26,clif->pRodexOpenMailbox); // CZ_OPEN_RODEXBOX
@@ -9490,40 +3710,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-03-08bRagexeRE
-#if PACKETVER == 20170308
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-03-08bRagexeRE
#if PACKETVER >= 20170308
// new packets
packet(0x0ac8,2);
@@ -9531,74 +3717,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2017-03-15cRagexeRE
-#if PACKETVER == 20170315
-// shuffle packets
- packet(0x02c4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x035f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0360,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0366,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0436,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x07ec,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0863,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0872,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x087b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0884,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x088b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x089c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x091d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0922,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0944,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x094e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0950,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0952,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
-#endif
-
-// 2017-03-22aRagexeRE
-#if PACKETVER == 20170322
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x091a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2017-03-22aRagexeRE
#if PACKETVER >= 20170322
// new packets
@@ -9606,40 +3724,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2017-03-29dRagexeRE
-#if PACKETVER == 20170329
-// shuffle packets
- packet(0x0281,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0363,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0888,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x08a8,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0917,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0929,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x092e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2017-03-29cRagexeRE
#if PACKETVER >= 20170329
// new packets
@@ -9648,40 +3732,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-04-05bRagexeRE
-#if PACKETVER == 20170405
-// shuffle packets
- packet(0x022d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0281,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0363,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0860,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0865,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x086f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0893,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0964,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-04-05bRagexeRE
#if PACKETVER >= 20170405
// new packets
packet(0x0acb,12);
@@ -9689,74 +3739,6 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
-// 2017-04-12aRagexeRE
-#if PACKETVER == 20170412
-// shuffle packets
- packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0365,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0869,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x086d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0878,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0879,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x088b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0890,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0893,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x089a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x089c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x091e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0929,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x092e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0938,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0942,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0945,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0949,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x094f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0959,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x095c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
-#endif
-
-// 2017-04-19bRagexeRE
-#if PACKETVER == 20170419
-// shuffle packets
- packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0819,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0838,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0862,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0868,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0872,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0881,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0897,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0898,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0920,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0922,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0930,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0931,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0935,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x093a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x093f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0942,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x095c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x095d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0963,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0965,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
-#endif
-
// 2017-04-19bRagexeRE
#if PACKETVER >= 20170419
// new packets
@@ -9766,40 +3748,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-04-26dRagexeRE
-#if PACKETVER == 20170426
-// shuffle packets
- packet(0x0281,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0866,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0887,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0899,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08a2,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x08a4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0927,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0958,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0963,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-04-26dRagexeRE
#if PACKETVER >= 20170426
// new packets
// changed packet sizes
@@ -9807,216 +3755,12 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-05-02dRagexeRE
-#if PACKETVER == 20170502
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0875,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0894,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x089c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x093c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0950,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-05-02dRagexeRE
#if PACKETVER >= 20170502
// new packets
packet(0x0ace,4);
// changed packet sizes
#endif
-// 2017-05-17aRagexeRE
-#if PACKETVER == 20170517
-// shuffle packets
- packet(0x0364,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0367,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0815,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0817,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0868,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x087b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x087d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x088c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0894,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0896,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x089f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08a2,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a8,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x091b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x093b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0946,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0960,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
-#endif
-
-// 2017-05-24aRagexeRE
-#if PACKETVER == 20170524
-// shuffle packets
- packet(0x0364,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0368,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0802,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x085e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0860,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0868,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x086d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0873,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0874,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x087d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0882,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x088d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0894,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a1,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0923,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0925,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0934,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0958,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0964,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0967,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0968,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
-#endif
-
-// 2017-05-31aRagexeRE
-#if PACKETVER == 20170531
-// shuffle packets
- packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0369,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x07e4,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x07ec,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0819,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x085f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0868,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0873,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0875,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0878,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x088b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x088d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0894,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x08a2,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x08ac,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x08ad,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x092d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0933,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0940,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0945,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0963,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0968,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
-#endif
-
-// 2017-06-07bRagexeRE
-#if PACKETVER == 20170607
-// shuffle packets
- packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x07e4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x085e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0862,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0864,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0871,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0875,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0885,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x088a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0897,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x089d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a9,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08ab,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0917,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0919,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0925,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0927,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0931,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0934,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0938,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x093d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0944,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0949,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
-#endif
-
-// 2017-06-14bRagexeRE
-#if PACKETVER == 20170614
-// shuffle packets
- packet(0x023b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0361,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0364,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0367,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0838,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0865,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0866,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x086b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a2,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x08ad,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0928,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x092f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0963,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
-#endif
-
// 2017-06-14bRagexeRE
#if PACKETVER >= 20170614
// new packets
@@ -10026,187 +3770,17 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-06-21aRagexeRE
-#if PACKETVER == 20170621
-// shuffle packets
- packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0365,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0366,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0802,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x085d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x087d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0885,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a8,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0956,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0957,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x095b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x095c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0961,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-06-21aRagexeRE
#if PACKETVER >= 20170621
// changed packet sizes
packet(0x0acf,57);
#endif
-// 2017-06-28bRagexeRE
-#if PACKETVER == 20170628
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0863,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-07-05aRagexeRE
-#if PACKETVER == 20170705
-// shuffle packets
- packet(0x0202,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0886,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x088e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x089a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x089d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x092f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0930,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0932,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0934,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x094c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
// 2017-07-05aRagexeRE
#if PACKETVER >= 20170705
// changed packet sizes
packet(0x0acf,64);
#endif
-// 2017-07-12bRagexeRE
-#if PACKETVER == 20170712
-// shuffle packets
- packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0944,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-07-19aRagexeRE
-#if PACKETVER == 20170719
-// shuffle packets
- packet(0x022d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0367,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0368,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x07e4,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x085a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x085e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x087d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0881,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0882,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0898,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a8,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x091b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x092c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x092e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x093d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0944,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
-#endif
-
// 2017-07-19aRagexeRE
#if PACKETVER >= 20170719
// new packets
@@ -10222,181 +3796,11 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-07-26cRagexeRE
-#if PACKETVER == 20170726
-// shuffle packets
- packet(0x0363,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0369,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0438,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0838,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0873,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0874,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0881,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0888,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x088e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08a3,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08a7,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08aa,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x08ac,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x091e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x091f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0921,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0923,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0943,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x094f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0950,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0952,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0954,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x095a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0963,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
-#endif
-
-// 2017-07-26cRagexeRE
#if PACKETVER >= 20170726
// new packets
packet(0x0ada,30);
#endif
-// 2017-08-01aRagexeRE
-#if PACKETVER == 20170801
-// shuffle packets
- packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0281,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a6,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x094f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-08-16cRagexeRE
-#if PACKETVER == 20170816
-// shuffle packets
- packet(0x022d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x035f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0438,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x085a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0862,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0864,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0881,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0882,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0888,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0889,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x08a3,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a7,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08a9,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x08ac,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x091c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0921,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0925,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x093a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x093d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0941,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0950,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0960,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
-#endif
-
-// 2017-08-23aRagexeRE
-#if PACKETVER == 20170823
-// shuffle packets
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x086d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08ac,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-08-30bRagexeRE
-#if PACKETVER == 20170830
-// shuffle packets
- packet(0x0281,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x02c4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0363,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0364,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0860,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x086a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0875,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0884,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0899,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x089e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a8,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x091e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0921,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0925,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x092e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x093e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0940,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0942,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0943,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0947,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0951,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0959,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
-#endif
-
// 2017-08-30aRagexeRE
#if PACKETVER >= 20170830
// new packets
@@ -10408,265 +3812,164 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
// 2017-09-06cRagexeRE
-#if PACKETVER == 20170906
-// shuffle packets
- packet(0x0202,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0281,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0366,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0802,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0866,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x086c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a3,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x091e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0953,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-09-06cRagexeRE
#if PACKETVER >= 20170906
// new packets
packet(0x0adc,6);
#endif
// 2017-09-13bRagexeRE
-#if PACKETVER == 20170913
-// shuffle packets
- packet(0x0281,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x035f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0437,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x07e4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0817,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x085a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0860,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0865,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0866,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x088c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0890,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0891,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0892,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x08a7,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x08aa,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x08ab,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x08ac,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x08ad,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x091b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x091d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0920,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0923,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0925,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0927,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x095a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x095c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
-#endif
-
-// 2017-09-13bRagexeRE
#if PACKETVER >= 20170913
// new packets
packet(0x0add,22);
#endif
-// 2017-09-20bRagexeRE
-#if PACKETVER == 20170920
-// shuffle packets
- packet(0x0369,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0436,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x07ec,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x085a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0862,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0864,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0865,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x086a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x086c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0874,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0875,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0889,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x088e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0919,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0921,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0926,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x092e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x0939,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0945,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x094c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x095d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0961,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0966,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x096a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
-#endif
-
#if PACKETVER >= 20170920
// new packets
packet(0x0ade,6);
packet(0x0adf,58);
#endif
-// 2017-09-27bRagexeRE
-#if PACKETVER == 20170927
-// shuffle packets
- packet(0x02c4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x035f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
- packet(0x0361,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0362,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x085c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0873,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0875,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x087d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x088b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0899,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x08a3,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x08a5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x08ad,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x091e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0922,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0923,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0927,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x093b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0942,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0945,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x094b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x094d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x095a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
-#endif
-
#if PACKETVER >= 20170927
// new packets
packet(0x0ae0,30);
// changed packet sizes
#endif
-// 2017-10-02cRagexeRE
-#if PACKETVER == 20171002
-// shuffle packets
- packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0897,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x089d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0928,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x092d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0934,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x093b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x093d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0943,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-10-11bRagexeRE
-#if PACKETVER == 20171011
-// shuffle packets
- packet(0x023b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x087b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x0882,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0950,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
-#endif
-
-// 2017-10-18aRagexeRE
-#if PACKETVER == 20171018
-// shuffle packets
- packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
- packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
- packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
- packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
- packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
- packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
- packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
- packet(0x0436,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
- packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
- packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
- packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
- packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
- packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
- packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
- packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
- packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
- packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
- packet(0x086a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
- packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
- packet(0x087e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
- packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
- packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
- packet(0x089f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
- packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
- packet(0x0938,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
- packet(0x0944,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
- packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
- packet(0x094f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
- packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#ifdef PACKETVER_ZERO
+// 2017-10-25bRagexe_zero
+#if PACKETVER >= 20171025
+// new packets
+ packet(0x0ae1,28);
+#endif
+#endif // PACKETVER_ZERO
+
+// 2017-11-01bRagexeRE
+#if PACKETVER >= 20171101
+// new packets
+ packet(0x0ae1,28);
+#endif
+
+#ifdef PACKETVER_ZERO
+// 2017-11-09aRagexe
+#if PACKETVER >= 20171109
+// new packets
+ packet(0x0ae2,7);
+#endif
+// 2017-11-13aRagexe
+#if PACKETVER >= 20171113
+// changed packet sizes
+ packet(0x0acf,68);
+#endif
+#endif // PACKETVER_ZERO
+
+// 2017-11-15aRagexeRE
+#if PACKETVER >= 20171115
+// new packets
+ packet(0x0ae2,7);
+// changed packet sizes
+ packet(0x0acf,68);
+#endif
+
+#ifdef PACKETVER_ZERO
+// 2017-11-23dRagexe
+#if PACKETVER >= 20171123
+// new packets
+ packet(0x0ae3,-1); // AC_LOGIN_OTP
+#endif
+
+// 2017-11-30bRagexe
+#if PACKETVER >= 20171130
+// new packets
+ packet(0x0ae4,89);
+ packet(0x0ae5,-1);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
+// 2017-12-06aRagexeRE
+#if PACKETVER >= 20171206
+// new packets
+ packet(0x0ae4,89);
+ packet(0x0ae5,-1);
+// changed packet sizes
+#endif
+
+#ifndef PACKETVER_ZERO
+#if PACKETVER >= 20171213
+// new packets
+ packet(0x0ae3,-1); // AC_LOGIN_OTP
+ packet(0x0ae6,30);
+ packet(0x0ae7,30);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
+#ifdef PACKETVER_ZERO
+#if PACKETVER >= 20171214
+// new packets
+ packet(0x0ae6,30);
+ packet(0x0ae7,30);
+ packet(0x0ae8,2);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
+// 2017-12-13bRagexe
+#if PACKETVER >= 20171213
+// new packets
+ packet(0x0ae3,-1); // AC_LOGIN_OTP
+ packet(0x0ae6,30);
+ packet(0x0ae7,30);
+// changed packet sizes
+#endif
+
+// 2017-12-20aRagexe
+#if PACKETVER >= 20171220
+// new packets
+ packet(0x0ae8,2);
+ packet(0x0ae9,64);
+ packet(0x0aea,11);
+// changed packet sizes
+#endif
+
+// 2017-12-27aRagexe
+#if PACKETVER >= 20171227
+// new packets
+ packet(0x0aeb,11);
+ packet(0x0aec,2);
+// changed packet sizes
+ packet(0x0aea,2);
+#endif
+
+// 2018-01-03aRagexe
+#if PACKETVER >= 20180103
+// new packets
+ packet(0x0aed,2);
+ packet(0x0aee,2);
+// changed packet sizes
+#ifdef PACKETVER_RE
+ packet(0x09a0,6); // HC_CHARLIST_NOTIFY
+#endif
+// changed packet sizes
+#endif
+
+#if PACKETVER >= 20180117
+// new packets
+ packet(0x0aef,2);
+ packet(0x0af0,10);
+// changed packet sizes
+ packet(0x0ae9,13);
+#endif
+
+// 2018-01-24bRagexeRE
+#if PACKETVER >= 20180124
+// new packets
+ packet(0x0af2,40,clif->pDull/*,XXX*/);
+ packet(0x0af3,-1,clif->pDull/*,XXX*/);
+// changed packet sizes
+#ifndef PACKETVER_RE
+ packet(0x0821,102,clif->pDull/*,XXX*/); // AC_OTP_USER
+#endif
#endif
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys.h b/src/map/packets_keys_main.h
index 85796813a..afaf62e2d 100644
--- a/src/map/packets_keys.h
+++ b/src/map/packets_keys_main.h
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2015 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -18,8 +18,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef MAP_PACKETS_KEYS_H
-#define MAP_PACKETS_KEYS_H
+#ifndef MAP_PACKETS_MAIN_KEYS_H
+#define MAP_PACKETS_MAIN_KEYS_H
#ifndef packetKeys
#define packetKeys(a,b,c)
@@ -27,222 +27,169 @@
/* PacketKeys: http://herc.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
-// 2010-11-23aRagexe, 2010-11-23aRagexeRE
-#if PACKETVER == 20101123
- packetKeys(0x49357D72,0x22C370A1,0x5F836591);
-#endif
-
-// 2010-11-24aRagexe, 2010-11-24aRagexeRE, 2010-11-24bRagexeRE, 2010-11-24dRagexe, 2010-11-24eRagexe, 2010-11-24fRagexe
-#if PACKETVER == 20101124
- packetKeys(0x49357D72,0x22C370A1,0x5F836591);
-#endif
+/* This file is autogenerated, please do not commit manual changes */
-// 2010-11-26aRagexe, 2010-11-26aRagexeRE
-#if PACKETVER == 20101126
+// 2010-11-23aRagexe, 2010-11-24aRagexe, 2010-11-24dRagexe, 2010-11-24eRagexe, 2010-11-24fRagexe, 2010-11-26aRagexe
+#if PACKETVER == 20101123 || \
+ PACKETVER == 20101124 || \
+ PACKETVER == 20101126
packetKeys(0x49357D72,0x22C370A1,0x5F836591);
#endif
-// 2010-11-30aRagexe, 2010-11-30aRagexeRE
+// 2010-11-30aRagexe
#if PACKETVER == 20101130
packetKeys(0x3726593C,0x0EFD5EE8,0x79036DF9);
#endif
-// 2010-12-07aRagexeRE, 2010-12-07bRagexe
+// 2010-12-07bRagexe
#if PACKETVER == 20101207
packetKeys(0x66111112,0x2B7B53AA,0x04E76DF8);
#endif
-// 2010-12-14aRagexe, 2010-12-14aRagexeRE
+// 2010-12-14aRagexe
#if PACKETVER == 20101214
packetKeys(0x5E535D06,0x4E297F0E,0x400B6AD8);
#endif
-// 2010-12-21aRagexe, 2010-12-21aRagexeRE
+// 2010-12-21aRagexe
#if PACKETVER == 20101221
packetKeys(0x0448466A,0x41554AC9,0x5B4710B2);
#endif
-// 2010-12-28aRagexe, 2010-12-28aRagexeRE
+// 2010-12-28aRagexe
#if PACKETVER == 20101228
packetKeys(0x50C638A5,0x4BF86B20,0x480C3746);
#endif
-// 2011-01-04aRagexe, 2011-01-04aRagexeRE
+// 2011-01-04aRagexe
#if PACKETVER == 20110104
packetKeys(0x55DB401F,0x047D4E02,0x6D8F2EA3);
#endif
-// 2011-01-11aRagexe, 2011-01-11aRagexeRE
+// 2011-01-11aRagexe
#if PACKETVER == 20110111
packetKeys(0x2D5F6302,0x2A361CD6,0x39D661D6);
#endif
-// 2011-01-18aRagexe, 2011-01-18aRagexeRE
+// 2011-01-18aRagexe
#if PACKETVER == 20110118
packetKeys(0x3C777D2D,0x00541A1D,0x5E0053A2);
#endif
-// 2011-01-25aRagexe, 2011-01-25aRagexeRE
-#if PACKETVER == 20110125
- packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
-#endif
-
-// 2011-01-26aRagexe, 2011-01-26aRagexeRE, 2011-01-26bRagexe, 2011-01-26bRagexeRE
-#if PACKETVER == 20110126
+// 2011-01-25aRagexe, 2011-01-26aRagexe, 2011-01-26bRagexe, 2011-01-31aRagexe
+#if PACKETVER == 20110125 || \
+ PACKETVER == 20110126 || \
+ PACKETVER == 20110131
packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
#endif
-// 2011-01-31aRagexe, 2011-01-31aRagexeRE, 2011-01-31bRagexe, 2011-01-31bRagexeRE, 2011-01-31cRagexeRE
-#if PACKETVER == 20110131
- packetKeys(0x6BB84BB0,0x4C004382,0x10AE3260);
-#endif
-
-// 2011-02-01aRagexe
-#if PACKETVER == 20110201
+// 2011-01-31bRagexe, 2011-02-01aRagexe
+#if PACKETVER == 20110131 || \
+ PACKETVER == 20110201
packetKeys(0x68871E62,0x60D17266,0x74726DAA);
#endif
-// 2011-02-08aRagexe, 2011-02-08aRagexeRE
-#if PACKETVER == 20110208
- packetKeys(0x72BA4E9D,0x281E1DF1,0x208255AA);
-#endif
-
-// 2011-02-10aRagexe, 2011-02-10bRagexe
-#if PACKETVER == 20110210
+// 2011-02-08aRagexe, 2011-02-10aRagexe, 2011-02-10bRagexe
+#if PACKETVER == 20110208 || \
+ PACKETVER == 20110210
packetKeys(0x72BA4E9D,0x281E1DF1,0x208255AA);
#endif
-// 2011-02-15aRagexe, 2011-02-15aRagexeRE
+// 2011-02-15aRagexe
#if PACKETVER == 20110215
packetKeys(0x1B174D76,0x32005014,0x7B8B72D5);
#endif
-// 2011-02-22aRagexe, 2011-02-22aRagexeRE
-#if PACKETVER == 20110222
+// 2011-02-22aRagexe, 2011-02-23aRagexe, 2011-02-23bRagexe, 2011-02-24aRagexe, 2011-02-25aRagexe, 2011-02-25bRagexe
+#if PACKETVER == 20110222 || \
+ PACKETVER == 20110223 || \
+ PACKETVER == 20110224 || \
+ PACKETVER == 20110225
packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
#endif
-// 2011-02-23aRagexe, 2011-02-23aRagexeRE, 2011-02-23bRagexe, 2011-02-23bRagexeRE
-#if PACKETVER == 20110223
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
-#endif
-
-// 2011-02-24aRagexe, 2011-02-24aRagexeRE
-#if PACKETVER == 20110224
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
-#endif
-
-// 2011-02-25aRagexe, 2011-02-25aRagexeRE, 2011-02-25bRagexe
-#if PACKETVER == 20110225
- packetKeys(0x48F73B56,0x155F7D66,0x44AB57CE);
-#endif
-
-// 2011-02-28aRagexe, 2011-02-28aRagexeRE
+// 2011-02-28aRagexe
#if PACKETVER == 20110228
packetKeys(0x26385EBF,0x7A8C7534,0x60AE2C34);
#endif
-// 2011-03-08aRagexe, 2011-03-08aRagexeRE
-#if PACKETVER == 20110308
+// 2011-03-08aRagexe, 2011-03-09aRagexe, 2011-03-09bRagexe, 2011-03-09cRagexe, 2011-03-09dRagexe
+#if PACKETVER == 20110308 || \
+ PACKETVER == 20110309
packetKeys(0x003F1B20,0x7A1E12A3,0x34994AAD);
#endif
-// 2011-03-09aRagexe, 2011-03-09aRagexeRE, 2011-03-09bRagexe, 2011-03-09bRagexeRE, 2011-03-09cRagexe, 2011-03-09cRagexeRE, 2011-03-09dRagexe, 2011-03-09dRagexeRE
-#if PACKETVER == 20110309
- packetKeys(0x003F1B20,0x7A1E12A3,0x34994AAD);
-#endif
-
-// 2011-03-15aRagexe, 2011-03-15aRagexeRE
-#if PACKETVER == 20110315
+// 2011-03-15aRagexe, 2011-03-16aRagexe
+#if PACKETVER == 20110315 || \
+ PACKETVER == 20110316
packetKeys(0x62967D7D,0x34833D1A,0x26D45ECA);
#endif
-// 2011-03-16aRagexe
-#if PACKETVER == 20110316
- packetKeys(0x62967D7D,0x34833D1A,0x26D45ECA);
-#endif
-
-// 2011-03-22aRagexe, 2011-03-22aRagexeRE
+// 2011-03-22aRagexe
#if PACKETVER == 20110322
packetKeys(0x5870617C,0x638D5376,0x739F4817);
#endif
-// 2011-03-29aRagexe, 2011-03-29aRagexeRE
-#if PACKETVER == 20110329
+// 2011-03-29aRagexe, 2011-03-30aRagexe
+#if PACKETVER == 20110329 || \
+ PACKETVER == 20110330
packetKeys(0x06900BB7,0x45DB687B,0x197B017B);
#endif
-// 2011-03-30aRagexe, 2011-03-30aRagexeRE, 2011-03-30cRagexeRE
-#if PACKETVER == 20110330
- packetKeys(0x06900BB7,0x45DB687B,0x197B017B);
-#endif
-
-// 2011-04-05aRagexe, 2011-04-05aRagexeRE
+// 2011-04-05aRagexe
#if PACKETVER == 20110405
packetKeys(0x248D5C37,0x1C6A1B37,0x1F644FDB);
#endif
-// 2011-04-12aRagexeRE, 2011-04-12bRagexe
+// 2011-04-12bRagexe
#if PACKETVER == 20110412
packetKeys(0x3DE86BFC,0x0DD47F80,0x42481C9B);
#endif
-// 2011-04-19aRagexe, 2011-04-19aRagexeRE
+// 2011-04-19aRagexe
#if PACKETVER == 20110419
packetKeys(0x26073204,0x62013A51,0x22AC58E0);
#endif
-// 2011-04-26aRagexe, 2011-04-26aRagexeRE
+// 2011-04-26aRagexe
#if PACKETVER == 20110426
packetKeys(0x392813F9,0x09905054,0x40DB732E);
#endif
-// 2011-05-03aRagexe, 2011-05-03aRagexeRE
+// 2011-05-03aRagexe
#if PACKETVER == 20110503
packetKeys(0x28BE32EE,0x1D506FCB,0x63832421);
#endif
-// 2011-05-11aRagexe, 2011-05-11aRagexeRE
+// 2011-05-11aRagexe
#if PACKETVER == 20110511
packetKeys(0x6A715733,0x3C5C0D74,0x408A48EC);
#endif
-// 2011-05-17aRagexe, 2011-05-17bRagexeRE
+// 2011-05-17aRagexe
#if PACKETVER == 20110517
packetKeys(0x07FE0C72,0x46766BAD,0x5EB5126A);
#endif
-// 2011-05-23aRagexe
-#if PACKETVER == 20110523
- packetKeys(0x69166916,0x69166916,0x69166916);
-#endif
-
-// 2011-05-26aRagexeRE, 2011-05-26bRagexe
-#if PACKETVER == 20110526
+// 2011-05-23aRagexe, 2011-05-26bRagexe
+#if PACKETVER == 20110523 || \
+ PACKETVER == 20110526
packetKeys(0x69166916,0x69166916,0x69166916);
#endif
-// 2011-05-31aRagexe, 2011-05-31aRagexeRE
+// 2011-05-31aRagexe
#if PACKETVER == 20110531
packetKeys(0x5ABA2C7C,0x3CD22073,0x78953988);
#endif
-// 2011-06-07aRagexe, 2011-06-07aRagexeRE
-#if PACKETVER == 20110607
+// 2011-06-07aRagexe, 2011-06-08aRagexe, 2011-06-08bRagexe, 2011-06-08cRagexe, 2011-06-09aRagexe
+#if PACKETVER == 20110607 || \
+ PACKETVER == 20110608 || \
+ PACKETVER == 20110609
packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
#endif
-// 2011-06-08aRagexe, 2011-06-08aRagexeRE, 2011-06-08bRagexe, 2011-06-08bRagexeRE, 2011-06-08cRagexe, 2011-06-08cRagexeRE
-#if PACKETVER == 20110608
- packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
-#endif
-
-// 2011-06-09aRagexe, 2011-06-09aRagexeRE
-#if PACKETVER == 20110609
- packetKeys(0x76B0426C,0x0DD74DEB,0x1F92228E);
-#endif
-
-// 2011-06-14aRagexe, 2011-06-14bRagexeRE
+// 2011-06-14aRagexe
#if PACKETVER == 20110614
packetKeys(0x5749027B,0x71710972,0x5B096475);
#endif
@@ -262,13 +209,9 @@
packetKeys(0x48801A5E,0x68FC7726,0x081D7F6E);
#endif
-// 2011-07-11bRagexe
-#if PACKETVER == 20110711
- packetKeys(0x489C544B,0x33BA1C25,0x2DE66E4E);
-#endif
-
-// 2011-07-13aRagexe, 2011-07-13aRagexeRE, 2011-07-13bRagexe, 2011-07-13bRagexeRE, 2011-07-13cRagexeRE
-#if PACKETVER == 20110713
+// 2011-07-11bRagexe, 2011-07-13aRagexe, 2011-07-13bRagexe
+#if PACKETVER == 20110711 || \
+ PACKETVER == 20110713
packetKeys(0x489C544B,0x33BA1C25,0x2DE66E4E);
#endif
@@ -277,7 +220,7 @@
packetKeys(0x08464674,0x1EEB3BD5,0x33395199);
#endif
-// 2011-07-26aRagexe, 2011-07-26aRagexeRE
+// 2011-07-26aRagexe
#if PACKETVER == 20110726
packetKeys(0x41E5730B,0x119C6C11,0x5356524A);
#endif
@@ -292,23 +235,15 @@
packetKeys(0x742A559A,0x047F425D,0x5C8C2CA0);
#endif
-// 2011-08-16aRagexe, 2011-08-16aRagexeRE
-#if PACKETVER == 20110816
- packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED);
-#endif
-
-// 2011-08-17aRagexe, 2011-08-17aRagexeRE, 2011-08-17bRagexe, 2011-08-17bRagexeRE
-#if PACKETVER == 20110817
+// 2011-08-16aRagexe, 2011-08-16aRagexeRE, 2011-08-17aRagexe, 2011-08-17aRagexeRE, 2011-08-17bRagexe, 2011-08-17bRagexeRE
+#if PACKETVER == 20110816 || \
+ PACKETVER == 20110817
packetKeys(0x053D5CED,0x3DED6DED,0x6DED6DED);
#endif
-// 2011-08-23aRagexe, 2011-08-23aRagexeRE
-#if PACKETVER == 20110823
- packetKeys(0x35C91401,0x262A5556,0x28FA03AA);
-#endif
-
-// 2011-08-24aRagexe, 2011-08-24aRagexeRE, 2011-08-24bRagexeRE
-#if PACKETVER == 20110824
+// 2011-08-23aRagexe, 2011-08-23aRagexeRE, 2011-08-24aRagexe, 2011-08-24aRagexeRE, 2011-08-24bRagexeRE
+#if PACKETVER == 20110823 || \
+ PACKETVER == 20110824
packetKeys(0x35C91401,0x262A5556,0x28FA03AA);
#endif
@@ -317,13 +252,9 @@
packetKeys(0x3AD67ED0,0x44703C69,0x6F876809);
#endif
-// 2011-09-06aRagexe, 2011-09-06aRagexeRE
-#if PACKETVER == 20110906
- packetKeys(0x350124EC,0x39A14595,0x0DE56125);
-#endif
-
-// 2011-09-14aRagexe, 2011-09-14aRagexeRE
-#if PACKETVER == 20110914
+// 2011-09-06aRagexe, 2011-09-06aRagexeRE, 2011-09-14aRagexe, 2011-09-14aRagexeRE
+#if PACKETVER == 20110906 || \
+ PACKETVER == 20110914
packetKeys(0x350124EC,0x39A14595,0x0DE56125);
#endif
@@ -332,48 +263,28 @@
packetKeys(0x79C91A12,0x20450CC0,0x584B2A38);
#endif
-// 2011-09-28aRagexe, 2011-09-28aRagexe-retry, 2011-09-28aRagexeRE
-#if PACKETVER == 20110928
+// 2011-09-28aRagexe, 2011-09-28aRagexe-retry, 2011-09-28aRagexeRE, 2011-09-29aRagexe, 2011-09-29aRagexeRE
+#if PACKETVER == 20110928 || \
+ PACKETVER == 20110929
packetKeys(0x26567512,0x4B0732DF,0x57D266C6);
#endif
-// 2011-09-29aRagexe, 2011-09-29aRagexeRE
-#if PACKETVER == 20110929
- packetKeys(0x26567512,0x4B0732DF,0x57D266C6);
-#endif
-
-// 2011-10-04aRagexe, 2011-10-04aRagexeRE
-#if PACKETVER == 20111004
+// 2011-10-04aRagexe, 2011-10-04aRagexeRE, 2011-10-05aRagexe, 2011-10-05aRagexeRE
+#if PACKETVER == 20111004 || \
+ PACKETVER == 20111005
packetKeys(0x291E6762,0x77CD391A,0x60AC2F16);
#endif
-// 2011-10-05aRagexe, 2011-10-05aRagexeRE
-#if PACKETVER == 20111005
- packetKeys(0x291E6762,0x77CD391A,0x60AC2F16);
-#endif
-
-// 2011-10-10aRagexe, 2011-10-10bRagexeRE
-#if PACKETVER == 20111010
+// 2011-10-10aRagexe, 2011-10-10bRagexeRE, 2011-10-12aRagexeRE, 2011-10-12bRagexe
+#if PACKETVER == 20111010 || \
+ PACKETVER == 20111012
packetKeys(0x7F3C2D29,0x59B01DE6,0x1DBB44CA);
#endif
-// 2011-10-12aRagexeRE, 2011-10-12bRagexe
-#if PACKETVER == 20111012
- packetKeys(0x7F3C2D29,0x59B01DE6,0x1DBB44CA);
-#endif
-
-// 2011-10-17aRagexe, 2011-10-17aRagexeRE
-#if PACKETVER == 20111017
- packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
-#endif
-
-// 2011-10-19aRagexeRE, 2011-10-19bRagexeRE
-#if PACKETVER == 20111019
- packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
-#endif
-
-// 2011-10-21aRagexe, 2011-10-21aRagexeRE, 2011-10-21cRagexe
-#if PACKETVER == 20111021
+// 2011-10-17aRagexe, 2011-10-17aRagexeRE, 2011-10-19aRagexeRE, 2011-10-19bRagexeRE, 2011-10-21aRagexe, 2011-10-21aRagexeRE, 2011-10-21cRagexe
+#if PACKETVER == 20111017 || \
+ PACKETVER == 20111019 || \
+ PACKETVER == 20111021
packetKeys(0x357D55DC,0x5A8D759F,0x245C30F5);
#endif
@@ -382,43 +293,27 @@
packetKeys(0x50AE1A63,0x3CE579B5,0x29C10406);
#endif
-// 2011-11-01cRagexe, 2011-11-01cRagexeRE
-#if PACKETVER == 20111101
+// 2011-11-01cRagexe, 2011-11-01cRagexeRE, 2011-11-02aRagexe, 2011-11-02aRagexeRE
+#if PACKETVER == 20111101 || \
+ PACKETVER == 20111102
packetKeys(0x5324329D,0x5D545D52,0x06137269);
#endif
-// 2011-11-02aRagexe, 2011-11-02aRagexeRE
-#if PACKETVER == 20111102
- packetKeys(0x5324329D,0x5D545D52,0x06137269);
-#endif
-
-// 2011-11-08aRagexe, 2011-11-08aRagexeRE
-#if PACKETVER == 20111108
+// 2011-11-08aRagexe, 2011-11-08aRagexeRE, 2011-11-09aRagexe, 2011-11-09aRagexeRE, 2011-11-09bRagexe, 2011-11-09cRagexe, 2011-11-09dRagexe, 2011-11-09eRagexe
+#if PACKETVER == 20111108 || \
+ PACKETVER == 20111109
packetKeys(0x0B642BDA,0x6ECB1D1C,0x61C7454B);
#endif
-// 2011-11-09aRagexe, 2011-11-09aRagexeRE, 2011-11-09bRagexe, 2011-11-09cRagexe, 2011-11-09dRagexe, 2011-11-09eRagexe
-#if PACKETVER == 20111109
- packetKeys(0x0B642BDA,0x6ECB1D1C,0x61C7454B);
-#endif
-
-// 2011-11-14aRagexe, 2011-11-14aRagexeRE
-#if PACKETVER == 20111114
- packetKeys(0x419D0DB0,0x74916BF4,0x027371B4);
-#endif
-
-// 2011-11-16aRagexe, 2011-11-16aRagexeRE
-#if PACKETVER == 20111116
+// 2011-11-14aRagexe, 2011-11-14aRagexeRE, 2011-11-16aRagexe, 2011-11-16aRagexeRE
+#if PACKETVER == 20111114 || \
+ PACKETVER == 20111116
packetKeys(0x419D0DB0,0x74916BF4,0x027371B4);
#endif
-// 2011-11-22aRagexe, 2011-11-22aRagexeRE
-#if PACKETVER == 20111122
- packetKeys(0x3B550F07,0x1F666C7C,0x60304EF5);
-#endif
-
-// 2011-11-23aRagexe
-#if PACKETVER == 20111123
+// 2011-11-22aRagexe, 2011-11-22aRagexeRE, 2011-11-23aRagexe
+#if PACKETVER == 20111122 || \
+ PACKETVER == 20111123
packetKeys(0x3B550F07,0x1F666C7C,0x60304EF5);
#endif
@@ -427,13 +322,9 @@
packetKeys(0x2A610886,0x3E09165E,0x57C11888);
#endif
-// 2011-12-13aRagexe, 2011-12-13aRagexeRE
-#if PACKETVER == 20111213
- packetKeys(0x5151306B,0x7AE32886,0x53060628);
-#endif
-
-// 2011-12-14aRagexe, 2011-12-14aRagexeRE, 2011-12-14bRagexeRE, 2011-12-14cRagexeRE
-#if PACKETVER == 20111214
+// 2011-12-13aRagexe, 2011-12-13aRagexeRE, 2011-12-14aRagexe, 2011-12-14aRagexeRE, 2011-12-14bRagexeRE, 2011-12-14cRagexeRE
+#if PACKETVER == 20111213 || \
+ PACKETVER == 20111214
packetKeys(0x5151306B,0x7AE32886,0x53060628);
#endif
@@ -442,23 +333,15 @@
packetKeys(0x05D53871,0x7D0027B4,0x29975333);
#endif
-// 2011-12-27aRagexe, 2011-12-27aRagexeRE
-#if PACKETVER == 20111227
+// 2011-12-27aRagexe, 2011-12-27aRagexeRE, 2011-12-28aRagexe, 2011-12-28aRagexeRE
+#if PACKETVER == 20111227 || \
+ PACKETVER == 20111228
packetKeys(0x0FF87E93,0x6CFF7860,0x3A3D1DEC);
#endif
-// 2011-12-28aRagexe, 2011-12-28aRagexeRE
-#if PACKETVER == 20111228
- packetKeys(0x0FF87E93,0x6CFF7860,0x3A3D1DEC);
-#endif
-
-// 2012-01-03aRagexe, 2012-01-03bRagexeRE
-#if PACKETVER == 20120103
- packetKeys(0x262034A1,0x674542A5,0x73A50BA5);
-#endif
-
-// 2012-01-04aRagexe, 2012-01-04aRagexeRE, 2012-01-04bRagexe
-#if PACKETVER == 20120104
+// 2012-01-03aRagexe, 2012-01-03bRagexeRE, 2012-01-04aRagexe, 2012-01-04aRagexeRE, 2012-01-04bRagexe
+#if PACKETVER == 20120103 || \
+ PACKETVER == 20120104
packetKeys(0x262034A1,0x674542A5,0x73A50BA5);
#endif
@@ -467,13 +350,9 @@
packetKeys(0x2B412AFC,0x4FF94487,0x6705339D);
#endif
-// 2012-01-17aRagexe, 2012-01-17aRagexeRE
-#if PACKETVER == 20120117
- packetKeys(0x24E32C2E,0x48DD17A5,0x64F8771A);
-#endif
-
-// 2012-01-18aRagexe
-#if PACKETVER == 20120118
+// 2012-01-17aRagexe, 2012-01-17aRagexeRE, 2012-01-18aRagexe
+#if PACKETVER == 20120117 || \
+ PACKETVER == 20120118
packetKeys(0x24E32C2E,0x48DD17A5,0x64F8771A);
#endif
@@ -482,63 +361,35 @@
packetKeys(0x504345D0,0x3D427B1B,0x794C2DCC);
#endif
-// 2012-01-31aRagexe, 2012-01-31cRagexeRE
-#if PACKETVER == 20120131
- packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
-#endif
-
-// 2012-02-01aRagexeRE
-#if PACKETVER == 20120201
+// 2012-01-31aRagexe, 2012-01-31cRagexeRE, 2012-02-01aRagexeRE, 2012-02-02aRagexe, 2012-02-02aRagexeRE, 2012-02-02bRagexe, 2012-02-02bRagexeRE
+#if PACKETVER == 20120131 || \
+ PACKETVER == 20120201 || \
+ PACKETVER == 20120202
packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
#endif
-// 2012-02-02aRagexe, 2012-02-02aRagexeRE, 2012-02-02bRagexe, 2012-02-02bRagexeRE
-#if PACKETVER == 20120202
- packetKeys(0x2CFC0A71,0x2BA91D8D,0x087E39E0);
-#endif
-
-// 2012-02-07bRagexe, 2012-02-07bRagexeRE
-#if PACKETVER == 20120207
+// 2012-02-07bRagexe, 2012-02-07bRagexeRE, 2012-02-08aRagexe, 2012-02-09aRagexe
+#if PACKETVER == 20120207 || \
+ PACKETVER == 20120208 || \
+ PACKETVER == 20120209
packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
#endif
-// 2012-02-08aRagexe
-#if PACKETVER == 20120208
- packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
-#endif
-
-// 2012-02-09aRagexe
-#if PACKETVER == 20120209
- packetKeys(0x1D373F5D,0x5ACD604D,0x1C4D7C4D);
-#endif
-
-// 2012-02-14bRagexe, 2012-02-14bRagexeRE
-#if PACKETVER == 20120214
- packetKeys(0x7A255EFA,0x30977276,0x2D4A0448);
-#endif
-
-// 2012-02-15aRagexe
-#if PACKETVER == 20120215
+// 2012-02-14bRagexe, 2012-02-14bRagexeRE, 2012-02-15aRagexe
+#if PACKETVER == 20120214 || \
+ PACKETVER == 20120215
packetKeys(0x7A255EFA,0x30977276,0x2D4A0448);
#endif
-// 2012-02-21aRagexe, 2012-02-21aRagexeRE
-#if PACKETVER == 20120221
- packetKeys(0x1CA5130F,0x43ED240A,0x7FEA3BE0);
-#endif
-
-// 2012-02-22aRagexe, 2012-02-22aRagexeRE
-#if PACKETVER == 20120222
+// 2012-02-21aRagexe, 2012-02-21aRagexeRE, 2012-02-22aRagexe, 2012-02-22aRagexeRE
+#if PACKETVER == 20120221 || \
+ PACKETVER == 20120222
packetKeys(0x1CA5130F,0x43ED240A,0x7FEA3BE0);
#endif
-// 2012-02-28bRagexe, 2012-02-28bRagexeRE
-#if PACKETVER == 20120228
- packetKeys(0x520B4C64,0x2800407D,0x47651458);
-#endif
-
-// 2012-02-29aRagexe, 2012-02-29aRagexeRE
-#if PACKETVER == 20120229
+// 2012-02-28bRagexe, 2012-02-28bRagexeRE, 2012-02-29aRagexe, 2012-02-29aRagexeRE
+#if PACKETVER == 20120228 || \
+ PACKETVER == 20120229
packetKeys(0x520B4C64,0x2800407D,0x47651458);
#endif
@@ -552,13 +403,9 @@
packetKeys(0x689C1729,0x11812639,0x60F82967);
#endif
-// 2012-03-20aRagexe, 2012-03-20aRagexeRE
-#if PACKETVER == 20120320
- packetKeys(0x21F9683F,0x710C5CA5,0x1FD910E9);
-#endif
-
-// 2012-03-21aRagexeRE
-#if PACKETVER == 20120321
+// 2012-03-20aRagexe, 2012-03-20aRagexeRE, 2012-03-21aRagexeRE
+#if PACKETVER == 20120320 || \
+ PACKETVER == 20120321
packetKeys(0x21F9683F,0x710C5CA5,0x1FD910E9);
#endif
@@ -577,13 +424,9 @@
packetKeys(0x01581359,0x452D6FFA,0x6AFB6E2E);
#endif
-// 2012-04-17aRagexe, 2012-04-17aRagexeRE
-#if PACKETVER == 20120417
- packetKeys(0x01540E48,0x13041224,0x31247924);
-#endif
-
-// 2012-04-18aRagexeRE
-#if PACKETVER == 20120418
+// 2012-04-17aRagexe, 2012-04-17aRagexeRE, 2012-04-18aRagexeRE
+#if PACKETVER == 20120417 || \
+ PACKETVER == 20120418
packetKeys(0x01540E48,0x13041224,0x31247924);
#endif
@@ -592,23 +435,15 @@
packetKeys(0x411D1DBB,0x4CBA4848,0x1A432FC4);
#endif
-// 2012-05-02aRagexeRE
-#if PACKETVER == 20120502
- packetKeys(0x37A91D19,0x10190019,0x00190019);
-#endif
-
-// 2012-05-03aRagexe, 2012-05-03aRagexeRE, 2012-05-03bRagexe
-#if PACKETVER == 20120503
+// 2012-05-02aRagexeRE, 2012-05-03aRagexe, 2012-05-03aRagexeRE, 2012-05-03bRagexe
+#if PACKETVER == 20120502 || \
+ PACKETVER == 20120503
packetKeys(0x37A91D19,0x10190019,0x00190019);
#endif
-// 2012-05-08aRagexe, 2012-05-08aRagexeRE
-#if PACKETVER == 20120508
- packetKeys(0x16CF3301,0x1F472B9B,0x0B4A3CD2);
-#endif
-
-// 2012-05-09aRagexeRE, 2012-05-09bRagexeRE
-#if PACKETVER == 20120509
+// 2012-05-08aRagexe, 2012-05-08aRagexeRE, 2012-05-09aRagexeRE, 2012-05-09bRagexeRE
+#if PACKETVER == 20120508 || \
+ PACKETVER == 20120509
packetKeys(0x16CF3301,0x1F472B9B,0x0B4A3CD2);
#endif
@@ -617,73 +452,49 @@
packetKeys(0x4A715EF9,0x79103E4F,0x405C1238);
#endif
-// 2012-05-22aRagexe
-#if PACKETVER == 20120522
- packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
-#endif
-
-// 2012-05-23aRagexe, 2012-05-23aRagexeRE, 2012-05-23bRagexeRE
-#if PACKETVER == 20120523
- packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
-#endif
-
-// 2012-05-25aRagexeRE
-#if PACKETVER == 20120525
+// 2012-05-22aRagexe, 2012-05-23aRagexe, 2012-05-23aRagexeRE, 2012-05-23bRagexeRE, 2012-05-25aRagexeRE
+#if PACKETVER == 20120522 || \
+ PACKETVER == 20120523 || \
+ PACKETVER == 20120525
packetKeys(0x70EB4CCB,0x0487713C,0x398D4B08);
#endif
-// 2012-05-29bRagexe, 2012-05-29bRagexeRE, 2012-05-29bragexe
+// 2012-05-29bRagexe, 2012-05-29bRagexeRE
#if PACKETVER == 20120529
packetKeys(0x53415DDE,0x34953E16,0x27623DF2);
#endif
-// 2012-06-01aRagexeRE
-#if PACKETVER == 20120601
- packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
-#endif
-
-// 2012-06-04aRagexe, 2012-06-04aragexe
-#if PACKETVER == 20120604
- packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
-#endif
-
-// 2012-06-05aRagexeRE
-#if PACKETVER == 20120605
+// 2012-06-01aRagexeRE, 2012-06-04aRagexe, 2012-06-05aRagexeRE
+#if PACKETVER == 20120601 || \
+ PACKETVER == 20120604 || \
+ PACKETVER == 20120605
packetKeys(0x68CA3080,0x31B74BDD,0x505208F1);
#endif
-// 2012-06-12aRagexe, 2012-06-12aRagexeRE, 2012-06-12aragexe
+// 2012-06-12aRagexe, 2012-06-12aRagexeRE
#if PACKETVER == 20120612
packetKeys(0x32E45D64,0x35643564,0x35643564);
#endif
-// 2012-06-18aRagexe, 2012-06-18aRagexeRE, 2012-06-18aragexe
+// 2012-06-18aRagexe, 2012-06-18aRagexeRE
#if PACKETVER == 20120618
packetKeys(0x261F261F,0x261F261F,0x261F261F);
#endif
-// 2012-06-26aRagexe, 2012-06-26aRagexeRE, 2012-06-26aragexe
-#if PACKETVER == 20120626
+// 2012-06-26aRagexe, 2012-06-26aRagexeRE, 2012-06-27aRagexe, 2012-06-27aRagexeRE
+#if PACKETVER == 20120626 || \
+ PACKETVER == 20120627
packetKeys(0x02277E66,0x045723F1,0x7107392C);
#endif
-// 2012-06-27aRagexe, 2012-06-27aRagexeRE, 2012-06-27aragexe
-#if PACKETVER == 20120627
- packetKeys(0x02277E66,0x045723F1,0x7107392C);
-#endif
-
-// 2012-07-02aRagexe, 2012-07-02aRagexeRE, 2012-07-02aragexe
+// 2012-07-02aRagexe, 2012-07-02aRagexeRE
#if PACKETVER == 20120702
packetKeys(0x25733B31,0x53486CFD,0x398649BD);
#endif
-// 2012-07-10aRagexe, 2012-07-10aRagexeRE
-#if PACKETVER == 20120710
- packetKeys(0x0E8B7AFB,0x6930362D,0x42D33A57);
-#endif
-
-// 2012-07-12aRagexe, 2012-07-12aRagexeRE
-#if PACKETVER == 20120712
+// 2012-07-10aRagexe, 2012-07-10aRagexeRE, 2012-07-12aRagexe, 2012-07-12aRagexeRE
+#if PACKETVER == 20120710 || \
+ PACKETVER == 20120712
packetKeys(0x0E8B7AFB,0x6930362D,0x42D33A57);
#endif
@@ -737,23 +548,15 @@
packetKeys(0x72E00F24,0x4EA02D80,0x7C803480);
#endif
-// 2012-09-25aRagexe, 2012-09-25aRagexeRE
-#if PACKETVER == 20120925
+// 2012-09-25aRagexe, 2012-09-25aRagexeRE, 2012-09-26aRagexe, 2012-09-26aRagexeRE
+#if PACKETVER == 20120925 || \
+ PACKETVER == 20120926
packetKeys(0x43A66E22,0x36C2229F,0x08172ECE);
#endif
-// 2012-09-26aRagexe, 2012-09-26aRagexeRE
-#if PACKETVER == 20120926
- packetKeys(0x43A66E22,0x36C2229F,0x08172ECE);
-#endif
-
-// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE
-#if PACKETVER == 20121010
- packetKeys(0x169733E2,0x4C4640DC,0x31636531);
-#endif
-
-// 2012-10-11aRagexeRE
-#if PACKETVER == 20121011
+// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE
+#if PACKETVER == 20121010 || \
+ PACKETVER == 20121011
packetKeys(0x169733E2,0x4C4640DC,0x31636531);
#endif
@@ -812,13 +615,9 @@
packetKeys(0x71773018,0x36A14EEB,0x28CD5A20);
#endif
-// 2013-01-03aRagexe, 2013-01-03aRagexeRE
-#if PACKETVER == 20130103
- packetKeys(0x1E1A559A,0x199A799A,0x799A799A);
-#endif
-
-// 2013-01-07aRagexe
-#if PACKETVER == 20130107
+// 2013-01-03aRagexe, 2013-01-03aRagexeRE, 2013-01-07aRagexe
+#if PACKETVER == 20130103 || \
+ PACKETVER == 20130107
packetKeys(0x1E1A559A,0x199A799A,0x799A799A);
#endif
@@ -827,13 +626,9 @@
packetKeys(0x6435360F,0x0A283678,0x64A04AC7);
#endif
-// 2013-01-15aRagexeRE, 2013-01-15bRagexe
-#if PACKETVER == 20130115
- packetKeys(0x273C25CD,0x06AA48AF,0x45A01BD4);
-#endif
-
-// 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
-#if PACKETVER == 20130116
+// 2013-01-15aRagexeRE, 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
+#if PACKETVER == 20130115 || \
+ PACKETVER == 20130116
packetKeys(0x273C25CD,0x06AA48AF,0x45A01BD4);
#endif
@@ -922,17 +717,17 @@
packetKeys(0x75794A38,0x58A96BC1,0x296E6FB8);
#endif
-// 2013-05-22Ragexe, 2013-05-22aRagexe, 2013-05-22aRagexeRE
+// 2013-05-22aRagexe, 2013-05-22aRagexeRE
#if PACKETVER == 20130522
packetKeys(0x6948050B,0x06511D9D,0x725D4DF1);
#endif
-// 2013-05-29Ragexe, 2013-05-29aRagexe, 2013-05-29aRagexeRE
+// 2013-05-29aRagexe, 2013-05-29aRagexeRE
#if PACKETVER == 20130529
packetKeys(0x023A6C87,0x14BF1F1E,0x5CC70CC9);
#endif
-// 2013-06-05Ragexe, 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
+// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
#if PACKETVER == 20130605
packetKeys(0x646E08D9,0x5F153AB5,0x61B509B5);
#endif
@@ -942,12 +737,12 @@
packetKeys(0x6D166F66,0x3C000FCF,0x295B0FCB);
#endif
-// 2013-06-18aRagexe, 2013-06-18aRagexeRE
+// 2013-06-18#1aRagexe, 2013-06-18#1aRagexeRE, 2013-06-18aRagexe, 2013-06-18aRagexeRE
#if PACKETVER == 20130618
packetKeys(0x434115DE,0x34A10FE9,0x6791428E);
#endif
-// 2013-06-26aRagexeRE, 2013-06-26bRagexe, 2013-06-26bRagexeRE, 2013-06-26cRagexe
+// 2013-06-26_3bRagexeRE, 2013-06-26_3cRagexe, 2013-06-26aRagexeRE, 2013-06-26bRagexe, 2013-06-26bRagexeRE, 2013-06-26cRagexe
#if PACKETVER == 20130626
packetKeys(0x38F453EF,0x6A040FD8,0x65BD6668);
#endif
@@ -1042,18 +837,10 @@
packetKeys(0x4A6A3EFF,0x7E2D5237,0x01CA019E);
#endif
-// 2013-11-06aRagexe, 2013-11-06aRagexeRE
-#if PACKETVER == 20131106
- packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
-#endif
-
-// 2013-11-07aRagexe, 2013-11-07cRagexe
-#if PACKETVER == 20131107
- packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
-#endif
-
-// 2013-11-08aRagexe
-#if PACKETVER == 20131108
+// 2013-11-06aRagexe, 2013-11-06aRagexeRE, 2013-11-07aRagexe, 2013-11-07bRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe
+#if PACKETVER == 20131106 || \
+ PACKETVER == 20131107 || \
+ PACKETVER == 20131108
packetKeys(0x143E528F,0x5CA05899,0x44B85B23);
#endif
@@ -1077,7 +864,7 @@
packetKeys(0x792760B2,0x5AF45387,0x36165603);
#endif
-// 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
+// 2013-12-11cRagexe, 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
#if PACKETVER == 20131211
packetKeys(0x55B0394E,0x4D341FF2,0x60BC1DC3);
#endif
@@ -1087,7 +874,15 @@
packetKeys(0x6A596301,0x76866D0E,0x32294A45);
#endif
-// 2013-12-23aRagexeRE, 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
+// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe
+#if PACKETVER == 20131223 || \
+ PACKETVER == 20140508 || \
+ PACKETVER == 20140611 || \
+ PACKETVER == 20150225
+ packetKeys(0x00000000,0x00000000,0x00000000);
+#endif
+
+// 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
#if PACKETVER == 20131223
packetKeys(0x631C511C,0x111C111C,0x111C111C);
#endif
@@ -1102,7 +897,7 @@
packetKeys(0x4A1E26F2,0x231E7EFE,0x61FE19FE);
#endif
-// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
+// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
#if PACKETVER == 20140115
packetKeys(0x63224335,0x0F3A1F27,0x6D217B24);
#endif
@@ -1147,7 +942,7 @@
packetKeys(0x48911E4E,0x58CB2EB3,0x05232619);
#endif
-// 2014-03-19aRagexeRE
+// 2014-03-19aRagexe, 2014-03-19aRagexeRE
#if PACKETVER == 20140319
packetKeys(0x3DA44383,0x1ABB165F,0x5B6846B9);
#endif
@@ -1177,12 +972,12 @@
packetKeys(0x7E0D6B56,0x74673CD3,0x2EBA4940);
#endif
-// 2014-04-30aRagexeRE
+// 2014-04-30aRagexe, 2014-04-30aRagexeRE
#if PACKETVER == 20140430
packetKeys(0x400145D8,0x3FE50155,0x11624F70);
#endif
-// 2014-05-08aRagexe, 2014-05-08bRagexe, 2014-05-08bRagexeRE
+// 2014-05-08bRagexe, 2014-05-08bRagexeRE
#if PACKETVER == 20140508
packetKeys(0x087E57EC,0x25224F4A,0x024F12C6);
#endif
@@ -1207,18 +1002,10 @@
packetKeys(0x5ABC4223,0x04DD2636,0x0D5850E0);
#endif
-// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11eRagexe, 2014-06-11hRagexe
-#if PACKETVER == 20140611
- packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
-#endif
-
-// 2014-06-12aRagexe
-#if PACKETVER == 20140612
- packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
-#endif
-
-// 2014-06-13aRagexe
-#if PACKETVER == 20140613
+// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe
+#if PACKETVER == 20140611 || \
+ PACKETVER == 20140612 || \
+ PACKETVER == 20140613
packetKeys(0x4FC83479,0x3AB04D1F,0x477B4010);
#endif
@@ -1262,13 +1049,9 @@
packetKeys(0x0D5B69AC,0x3C001F20,0x0C201420);
#endif
-// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe
-#if PACKETVER == 20140813
- packetKeys(0x7AD51E0A,0x28C72C46,0x210205BD);
-#endif
-
-// 2014-08-14aRagexe
-#if PACKETVER == 20140814
+// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe, 2014-08-14aRagexe
+#if PACKETVER == 20140813 || \
+ PACKETVER == 20140814
packetKeys(0x7AD51E0A,0x28C72C46,0x210205BD);
#endif
@@ -1277,7 +1060,7 @@
packetKeys(0x374F15D0,0x64C87DEC,0x65CE2A41);
#endif
-// 2014-08-27aRagexe
+// 2014-08-27aRagexe, 2014-08-27aRagexeRE
#if PACKETVER == 20140827
packetKeys(0x53814CA2,0x27DE193E,0x503E683E);
#endif
@@ -1287,7 +1070,7 @@
packetKeys(0x2F386F34,0x0F935365,0x76A43888);
#endif
-// 2014-09-17aRagexe
+// 2014-09-17aRagexe, 2014-09-17cRagexeRE
#if PACKETVER == 20140917
packetKeys(0x180118EA,0x440134CF,0x3A99179D);
#endif
@@ -1307,13 +1090,9 @@
packetKeys(0x754365B3,0x36B326B3,0x26B326B3);
#endif
-// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe
-#if PACKETVER == 20141015
- packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F);
-#endif
-
-// 2014-10-16aRagexe, 2014-10-16aRagexeRE
-#if PACKETVER == 20141016
+// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe, 2014-10-16aRagexeRE
+#if PACKETVER == 20141015 || \
+ PACKETVER == 20141016
packetKeys(0x2DFF467C,0x444B37EE,0x2C1B634F);
#endif
@@ -1357,18 +1136,14 @@
packetKeys(0x0B0B1DD3,0x26EF1797,0x4F40370B);
#endif
-// 2014-12-17aRagexeRE
+// 2014-12-17aRagexe, 2014-12-17aRagexeRE
#if PACKETVER == 20141217
packetKeys(0x01AB478C,0x0FDE58F2,0x1DAC7303);
#endif
-// 2014-12-23cRagexeRE
-#if PACKETVER == 20141223
- packetKeys(0x2E8936E6,0x34463C46,0x67CD3885);
-#endif
-
-// 2014-12-24aRagexe
-#if PACKETVER == 20141224
+// 2014-12-23cRagexeRE, 2014-12-24aRagexe
+#if PACKETVER == 20141223 || \
+ PACKETVER == 20141224
packetKeys(0x2E8936E6,0x34463C46,0x67CD3885);
#endif
@@ -1392,18 +1167,10 @@
packetKeys(0x0B9D2AF5,0x658A3346,0x379E3654);
#endif
-// 2015-01-28aRagexe, 2015-01-28aRagexeRE
-#if PACKETVER == 20150128
- packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
-#endif
-
-// 2015-01-29aRagexe
-#if PACKETVER == 20150129
- packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
-#endif
-
-// 2015-01-30aRagexe
-#if PACKETVER == 20150130
+// 2015-01-28aRagexe, 2015-01-28aRagexeRE, 2015-01-29aRagexe, 2015-01-30aRagexe
+#if PACKETVER == 20150128 || \
+ PACKETVER == 20150129 || \
+ PACKETVER == 20150130
packetKeys(0x77CA2D55,0x28B608F0,0x75B47957);
#endif
@@ -1422,13 +1189,9 @@
packetKeys(0x731B731B,0x731B731B,0x731B731B);
#endif
-// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25hRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe
-#if PACKETVER == 20150225
- packetKeys(0x57FD4B7B,0x19CC16FB,0x0D255D72);
-#endif
-
-// 2015-02-26aRagexe, 2015-02-26aRagexeRE
-#if PACKETVER == 20150226
+// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe, 2015-02-26aRagexeRE
+#if PACKETVER == 20150225 || \
+ PACKETVER == 20150226
packetKeys(0x57FD4B7B,0x19CC16FB,0x0D255D72);
#endif
@@ -1507,13 +1270,9 @@
packetKeys(0x2FC406D3,0x7B3E32F5,0x02B80B47);
#endif
-// 2015-06-17aRagexe, 2015-06-17aRagexeRE
-#if PACKETVER == 20150617
- packetKeys(0x250F7E09,0x25416076,0x029A780E);
-#endif
-
-// 2015-06-18aRagexe, 2015-06-18aRagexeRE
-#if PACKETVER == 20150618
+// 2015-06-17aRagexe, 2015-06-17aRagexeRE, 2015-06-18aRagexe, 2015-06-18aRagexeRE
+#if PACKETVER == 20150617 || \
+ PACKETVER == 20150618
packetKeys(0x250F7E09,0x25416076,0x029A780E);
#endif
@@ -1522,13 +1281,9 @@
packetKeys(0x440B0E24,0x1BEA7A4C,0x2C646784);
#endif
-// 2015-07-01bRagexeRE
-#if PACKETVER == 20150701
- packetKeys(0x4DD55F9B,0x70C67B03,0x78C60DB6);
-#endif
-
-// 2015-07-02aRagexe
-#if PACKETVER == 20150702
+// 2015-07-01bRagexe, 2015-07-01bRagexeRE, 2015-07-02aRagexe
+#if PACKETVER == 20150701 || \
+ PACKETVER == 20150702
packetKeys(0x4DD55F9B,0x70C67B03,0x78C60DB6);
#endif
@@ -1542,7 +1297,7 @@
packetKeys(0x1F805483,0x67745585,0x7FCE189C);
#endif
-// 2015-07-22bRagexeRE
+// 2015-07-22bRagexe, 2015-07-22bRagexeRE
#if PACKETVER == 20150722
packetKeys(0x41FA53D4,0x2CF044E2,0x663A3F1D);
#endif
@@ -1582,12 +1337,12 @@
packetKeys(0x19AB2BF0,0x04754299,0x48770736);
#endif
-// 2015-09-16aRagexe, 2015-09-16aRagexeRE, 2015-09-16cRagexe, 2015-09-16cRagexeRE
+// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
#if PACKETVER == 20150916
packetKeys(0x17F83A19,0x116944F4,0x1CC541E9);
#endif
-// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
+// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23dRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
#if PACKETVER == 20150923
packetKeys(0x765742B9,0x22D61C2F,0x7DA94FB2);
#endif
@@ -1607,23 +1362,15 @@
packetKeys(0x402728A8,0x5D0E309F,0x240018FD);
#endif
-// 2015-10-21aRagexe
-#if PACKETVER == 20151021
+// 2015-10-21aRagexe, 2015-10-21aRagexeRE, 2015-10-22aRagexe, 2015-10-22aRagexeRE
+#if PACKETVER == 20151021 || \
+ PACKETVER == 20151022
packetKeys(0x0311104D,0x46C326D6,0x00E82720);
#endif
-// 2015-10-22aRagexe, 2015-10-22aRagexeRE
-#if PACKETVER == 20151022
- packetKeys(0x0311104D,0x46C326D6,0x00E82720);
-#endif
-
-// 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE
-#if PACKETVER == 20151028
- packetKeys(0x45B945B9,0x45B945B9,0x45B945B9);
-#endif
-
-// 2015-10-29aRagexe, 2015-10-29aRagexeRE
-#if PACKETVER == 20151029
+// 2015-10-28bRagexeRE, 2015-10-28bRagexeRE_2, 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE, 2015-10-29aRagexe, 2015-10-29aRagexeRE
+#if PACKETVER == 20151028 || \
+ PACKETVER == 20151029
packetKeys(0x45B945B9,0x45B945B9,0x45B945B9);
#endif
@@ -1667,7 +1414,7 @@
packetKeys(0x347D68D0,0x2C705320,0x7B4A199D);
#endif
-// 2015-12-30aRagexe
+// 2015-12-30aRagexe, 2015-12-30aRagexeRE
#if PACKETVER == 20151230
packetKeys(0x54C51241,0x33883499,0x3CDA35F0);
#endif
@@ -1677,7 +1424,7 @@
packetKeys(0x40520265,0x33FE26FC,0x7136294F);
#endif
-// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13cRagexeRE
+// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13bRagexeRE_2, 2016-01-13bRagexe_2, 2016-01-13cRagexeRE
#if PACKETVER == 20160113
packetKeys(0x18005C4B,0x19A94A72,0x73F678EC);
#endif
@@ -1687,7 +1434,7 @@
packetKeys(0x51495149,0x51495149,0x51495149);
#endif
-// 2016-01-27aRagexeRE, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
+// 2016-01-27aRagexeRE, 2016-01-27aRagexeRE_2, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
#if PACKETVER == 20160127
packetKeys(0x6B1E7146,0x612C47E6,0x274E56EE);
#endif
@@ -1702,7 +1449,7 @@
packetKeys(0x613813EA,0x05251DAB,0x1FD35E33);
#endif
-// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17cRagexeRE
+// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17bRagexeRE_2, 2016-02-17cRagexeRE
#if PACKETVER == 20160217
packetKeys(0x25895A8E,0x09421C19,0x763A2D7A);
#endif
@@ -1722,17 +1469,13 @@
packetKeys(0x21587520,0x353A7706,0x1B722B25);
#endif
-// 2016-03-16aRagexe, 2016-03-16aRagexeRE
-#if PACKETVER == 20160316
- packetKeys(0x62363E36,0x3E363E36,0x3E363E36);
-#endif
-
-// 2016-03-18aRagexe
-#if PACKETVER == 20160318
+// 2016-03-16aRagexe, 2016-03-16aRagexeRE, 2016-03-18aRagexe
+#if PACKETVER == 20160316 || \
+ PACKETVER == 20160318
packetKeys(0x62363E36,0x3E363E36,0x3E363E36);
#endif
-// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe
+// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe, 2016-03-23bRagexeRE
#if PACKETVER == 20160323
packetKeys(0x73E35A83,0x62142FA8,0x12BA36BD);
#endif
@@ -1747,7 +1490,7 @@
packetKeys(0x568611EA,0x32457D8D,0x2B020477);
#endif
-// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14cRagexe
+// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14bRagexe_2, 2016-04-14cRagexe
#if PACKETVER == 20160414
packetKeys(0x31BD479A,0x40C61398,0x397C1A80);
#endif
@@ -1757,7 +1500,7 @@
packetKeys(0x67D2163A,0x3068215B,0x4835474D);
#endif
-// 2016-04-27aRagexeRE
+// 2016-04-27aRagexe, 2016-04-27aRagexeRE
#if PACKETVER == 20160427
packetKeys(0x12DC378E,0x4E3E7EBE,0x0ABE2ABE);
#endif
@@ -1777,13 +1520,9 @@
packetKeys(0x57DB7CA1,0x1FEA1629,0x26DD244D);
#endif
-// 2016-05-25aRagexe, 2016-05-25aRagexeRE
-#if PACKETVER == 20160525
- packetKeys(0x485C45B6,0x47DC6192,0x76B34A36);
-#endif
-
-// 2016-05-26aRagexe
-#if PACKETVER == 20160526
+// 2016-05-25aRagexe, 2016-05-25aRagexeRE, 2016-05-26aRagexe
+#if PACKETVER == 20160525 || \
+ PACKETVER == 20160526
packetKeys(0x485C45B6,0x47DC6192,0x76B34A36);
#endif
@@ -1792,13 +1531,9 @@
packetKeys(0x3DAD32C4,0x59F001BE,0x73F65E56);
#endif
-// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE
-#if PACKETVER == 20160608
- packetKeys(0x11D74609,0x77C43E8A,0x44290F53);
-#endif
-
-// 2016-06-09aRagexe
-#if PACKETVER == 20160609
+// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE, 2016-06-09aRagexe
+#if PACKETVER == 20160608 || \
+ PACKETVER == 20160609
packetKeys(0x11D74609,0x77C43E8A,0x44290F53);
#endif
@@ -1812,13 +1547,9 @@
packetKeys(0x426548AB,0x5C0F5DD4,0x03022710);
#endif
-// 2016-06-29aRagexe, 2016-06-29aRagexeRE
-#if PACKETVER == 20160629
- packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855);
-#endif
-
-// 2016-06-30aRagexe, 2016-06-30aRagexeRE
-#if PACKETVER == 20160630
+// 2016-06-29aRagexe, 2016-06-29aRagexeRE, 2016-06-30aRagexe, 2016-06-30aRagexeRE
+#if PACKETVER == 20160629 || \
+ PACKETVER == 20160630
packetKeys(0x0DF31CCC,0x54281606,0x5C4C6855);
#endif
@@ -1827,7 +1558,7 @@
packetKeys(0x33A766D0,0x743F04F8,0x0FA0276C);
#endif
-// 2016-07-13aRagexe, 2016-07-13aRagexeRE, 2016-07-13bRagexeRE, 2016-07-13cRagexe, 2016-07-13dRagexe
+// 2016-07-13aRagexe, 2016-07-13aRagexeRE, 2016-07-13bRagexe, 2016-07-13bRagexeRE, 2016-07-13cRagexe, 2016-07-13dRagexe
#if PACKETVER == 20160713
packetKeys(0x714F2495,0x7DDC6F32,0x3FD8533D);
#endif
@@ -1852,12 +1583,17 @@
packetKeys(0x2F252886,0x242234A2,0x48BC5032);
#endif
-// 2016-08-17aRagexe
+// 2016-08-17aRagexe, 2016-08-17aRagexeRE
#if PACKETVER == 20160817
packetKeys(0x675E6900,0x3F8E1D16,0x58D650E5);
#endif
-// 2016-08-31aRagexeRE, 2016-08-31bRagexeRE
+// 2016-08-24aRagexe, 2016-08-24aRagexeRE
+#if PACKETVER == 20160824
+ packetKeys(0x2FA92FA9,0x2FA92FA9,0x2FA92FA9);
+#endif
+
+// 2016-08-31aRagexe, 2016-08-31aRagexeRE, 2016-08-31bRagexe, 2016-08-31bRagexeRE
#if PACKETVER == 20160831
packetKeys(0x564E13B0,0x7F680549,0x382D273B);
#endif
@@ -1872,47 +1608,43 @@
packetKeys(0x7C79748F,0x1AA03B1D,0x6EAC4747);
#endif
-// 2016-09-21bRagexeRE
+// 2016-09-21aRagexe, 2016-09-21bRagexeRE
#if PACKETVER == 20160921
packetKeys(0x11CD15CD,0x15CD15CD,0x15CD15CD);
#endif
-// 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
+// 2016-09-28cRagexe, 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
#if PACKETVER == 20160928
packetKeys(0x2F8C67F5,0x22D42C38,0x57513774);
#endif
-// 2016-10-05aRagexeRE
+// 2016-10-05aRagexe, 2016-10-05aRagexeRE
#if PACKETVER == 20161005
packetKeys(0x5BAE21F8,0x021E2FFC,0x3BEB7C31);
#endif
-// 2016-10-12aRagexeRE
+// 2016-10-12aRagexe, 2016-10-12aRagexeRE
#if PACKETVER == 20161012
packetKeys(0x5E2311F2,0x14FD012C,0x76EB64F6);
#endif
-// 2016-10-19aRagexeRE
+// 2016-10-19aRagexe, 2016-10-19aRagexeRE
#if PACKETVER == 20161019
packetKeys(0x34882F11,0x7C870E70,0x7E61350D);
#endif
-// 2016-10-26bRagexeRE, 2016-10-26cRagexeRE
+// 2016-10-26bRagexe, 2016-10-26bRagexeRE, 2016-10-26cRagexe, 2016-10-26cRagexeRE
#if PACKETVER == 20161026
packetKeys(0x2CB86AE6,0x7D12660E,0x1B004DEB);
#endif
-// 2016-11-02aRagexe, 2016-11-02aRagexeRE
-#if PACKETVER == 20161102
- packetKeys(0x76725C17,0x72FE4EC1,0x07A91BFD);
-#endif
-
-// 2016-11-03aRagexeRE
-#if PACKETVER == 20161103
+// 2016-11-02aRagexe, 2016-11-02aRagexeRE, 2016-11-03aRagexe, 2016-11-03aRagexeRE
+#if PACKETVER == 20161102 || \
+ PACKETVER == 20161103
packetKeys(0x76725C17,0x72FE4EC1,0x07A91BFD);
#endif
-// 2016-11-09aRagexe, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
+// 2016-11-09aRagexe, 2016-11-09aRagexeRE, 2016-11-09bRagexe, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
#if PACKETVER == 20161109
packetKeys(0x0A5277C0,0x2DB17506,0x0E8F26DA);
#endif
@@ -1927,22 +1659,22 @@
packetKeys(0x66FF559F,0x00D3535B,0x236246F7);
#endif
-// 2016-11-30aRagexeRE, 2016-11-30bRagexeRE
+// 2016-11-30aRagexe, 2016-11-30aRagexeRE, 2016-11-30bRagexe, 2016-11-30bRagexeRE
#if PACKETVER == 20161130
packetKeys(0x2ED80296,0x0D837373,0x20266F9A);
#endif
-// 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexeRE
+// 2016-12-07cRagexe, 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexe, 2016-12-07eRagexeRE
#if PACKETVER == 20161207
packetKeys(0x52D267AA,0x4FE42156,0x1292153E);
#endif
-// 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
+// 2016-12-14bRagexe, 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
#if PACKETVER == 20161214
packetKeys(0x4DDE217B,0x07863AE0,0x5B591656);
#endif
-// 2016-12-21aRagexeRE, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
+// 2016-12-21aRagexe, 2016-12-21aRagexeRE, 2016-12-21bRagexe, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
#if PACKETVER == 20161221
packetKeys(0x69CB4F56,0x793C165E,0x673A2354);
#endif
@@ -1952,12 +1684,12 @@
packetKeys(0x09366971,0x005672F1,0x6F3712AE);
#endif
-// 2017-01-04bRagexeRE
+// 2017-01-04aRagexe, 2017-01-04bRagexeRE
#if PACKETVER == 20170104
packetKeys(0x44416BC3,0x6C8D1817,0x072D75D5);
#endif
-// 2017-01-11aRagexeRE
+// 2017-01-11aRagexe, 2017-01-11aRagexeRE
#if PACKETVER == 20170111
packetKeys(0x19B637F9,0x0E9C378A,0x41673186);
#endif
@@ -1977,12 +1709,12 @@
packetKeys(0x2011228E,0x00453005,0x628E7F0A);
#endif
-// 2017-02-08aRagexeRE, 2017-02-08bRagexeRE
+// 2017-02-08aRagexeRE, 2017-02-08bRagexe, 2017-02-08bRagexeRE
#if PACKETVER == 20170208
packetKeys(0x6A764E5F,0x0609570D,0x28AE07FA);
#endif
-// 2017-02-15aRagexeRE
+// 2017-02-15aRagexe, 2017-02-15aRagexeRE
#if PACKETVER == 20170215
packetKeys(0x50C01315,0x51012A42,0x679E16C3);
#endif
@@ -1997,7 +1729,7 @@
packetKeys(0x771D4F2B,0x20EF1F4C,0x0D5135C8);
#endif
-// 2017-03-08bRagexeRE
+// 2017-03-08aRagexe, 2017-03-08bRagexeRE
#if PACKETVER == 20170308
packetKeys(0x653470A9,0x6B316A71,0x5C712C71);
#endif
@@ -2007,12 +1739,12 @@
packetKeys(0x399A0856,0x56642A94,0x7F77157D);
#endif
-// 2017-03-22aRagexeRE, 2017-03-22bRagexeRE
+// 2017-03-22aRagexe, 2017-03-22aRagexeRE, 2017-03-22bRagexe, 2017-03-22bRagexeRE
#if PACKETVER == 20170322
packetKeys(0x2050167B,0x01731233,0x40337033);
#endif
-// 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
+// 2017-03-29bRagexe, 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
#if PACKETVER == 20170329
packetKeys(0x18B31A80,0x1B0B1D56,0x16857D6A);
#endif
@@ -2027,134 +1759,200 @@
packetKeys(0x39223393,0x5C847779,0x10217985);
#endif
-// 2017-04-19bRagexeRE
+// 2017-04-19aRagexe, 2017-04-19bRagexeRE
#if PACKETVER == 20170419
packetKeys(0x1F8F4B3F,0x2E481F03,0x39ED4178);
#endif
-// 2017-04-26dRagexeRE
+// 2017-04-26bRagexe, 2017-04-26dRagexeRE
#if PACKETVER == 20170426
packetKeys(0x167642A7,0x1DEC3D26,0x6D046D4C);
#endif
-// 2017-05-02dRagexeRE
+// 2017-05-02aRagexe, 2017-05-02bRagexe, 2017-05-02dRagexeRE
#if PACKETVER == 20170502
packetKeys(0x05224194,0x466D4204,0x31F02EE0);
#endif
-// 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
+// 2017-05-17aRagexe, 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
#if PACKETVER == 20170517
packetKeys(0x2CC4749A,0x1FA954DC,0x72276857);
#endif
-// 2017-05-24aRagexeRE
+// 2017-05-24aRagexe, 2017-05-24aRagexeRE, 2017-05-24bRagexe
#if PACKETVER == 20170524
packetKeys(0x0B4E03A6,0x2B93427C,0x583D4477);
#endif
-// 2017-05-31aRagexeRE
+// 2017-05-31aRagexe, 2017-05-31aRagexeRE
#if PACKETVER == 20170531
packetKeys(0x03FA5A97,0x20B802D5,0x339F1977);
#endif
-// 2017-06-07bRagexeRE
+// 2017-06-07bRagexeRE, 2017-06-07cRagexe, 2017-06-07cRagexeRE
#if PACKETVER == 20170607
packetKeys(0x50564ACD,0x79CA4E15,0x405F4894);
#endif
-// 2017-06-14bRagexeRE
+// 2017-06-14bRagexe, 2017-06-14bRagexeRE
#if PACKETVER == 20170614
packetKeys(0x5ED10A48,0x667F4301,0x2E5D761F);
#endif
-// 2017-06-21aRagexeRE
+// 2017-06-21aRagexeRE, 2017-06-21bRagexe
#if PACKETVER == 20170621
packetKeys(0x155F34EC,0x2D943FA9,0x3D9170EB);
#endif
-// 2017-06-28bRagexeRE
+// 2017-06-28bRagexe, 2017-06-28bRagexeRE
#if PACKETVER == 20170628
packetKeys(0x04691C86,0x43C210E2,0x2FE277E2);
#endif
-// 2017-07-05aRagexeRE
+// 2017-07-05aRagexe, 2017-07-05aRagexeRE
#if PACKETVER == 20170705
packetKeys(0x7EB000AE,0x02FB1DBC,0x5CB131E6);
#endif
-// 2017-07-12bRagexeRE
+// 2017-07-12bRagexe, 2017-07-12bRagexeRE
#if PACKETVER == 20170712
packetKeys(0x2C3C202C,0x3F2C2F2C,0x2F2C2F2C);
#endif
-// 2017-07-19aRagexeRE
+// 2017-07-19aRagexe, 2017-07-19aRagexeRE
#if PACKETVER == 20170719
packetKeys(0x46465C88,0x10116F66,0x200866F9);
#endif
-// 2017-07-26cRagexeRE
+// 2017-07-26aRagexe, 2017-07-26cRagexeRE
#if PACKETVER == 20170726
packetKeys(0x102F23DB,0x7E767751,0x3BC172EF);
#endif
-// 2017-08-01aRagexeRE
+// 2017-08-01aRagexe, 2017-08-01aRagexeRE, 2017-08-01bRagexe
#if PACKETVER == 20170801
packetKeys(0x26B52A7F,0x5377619D,0x4F580AC4);
#endif
-// 2017-08-16cRagexeRE, 2017-08-16dRagexeRE
+// 2017-08-09cRagexe, 2017-08-09cRagexeRE
+#if PACKETVER == 20170809
+ packetKeys(0x452156CB,0x71442624,0x2EE66D1C);
+#endif
+
+// 2017-08-16cRagexe, 2017-08-16cRagexeRE, 2017-08-16dRagexe, 2017-08-16dRagexeRE
#if PACKETVER == 20170816
packetKeys(0x78914673,0x3F8B7634,0x55B814BC);
#endif
-// 2017-08-23aRagexeRE
+// 2017-08-23aRagexe, 2017-08-23aRagexeRE
#if PACKETVER == 20170823
packetKeys(0x22677205,0x393D1002,0x58DC6BB4);
#endif
-// 2017-08-30aRagexeRE, 2017-08-30bRagexeRE
+// 2017-08-30aRagexe, 2017-08-30aRagexeRE, 2017-08-30bRagexe, 2017-08-30bRagexeRE
#if PACKETVER == 20170830
packetKeys(0x1D49592B,0x00970C17,0x1E640103);
#endif
-// 2017-09-06cRagexeRE
+// 2017-09-06cRagexe, 2017-09-06cRagexeRE
#if PACKETVER == 20170906
packetKeys(0x7DEF7677,0x351F36E6,0x52303485);
#endif
-// 2017-09-13bRagexeRE
+// 2017-09-13bRagexeRE, 2017-09-13cRagexe
#if PACKETVER == 20170913
packetKeys(0x7A645935,0x1DA05062,0x5A7A4C43);
#endif
-// 2017-09-20bRagexeRE
+// 2017-09-20aRagexe, 2017-09-20bRagexeRE
#if PACKETVER == 20170920
packetKeys(0x53024DA5,0x04EC212D,0x0BF87CD4);
#endif
-// 2017-09-27bRagexeRE, 2017-09-27dRagexeRE
+// 2017-09-27bRagexe, 2017-09-27bRagexeRE, 2017-09-27cRagexe, 2017-09-27dRagexe, 2017-09-27dRagexeRE
#if PACKETVER == 20170927
packetKeys(0x15624100,0x0CE1463E,0x0E5D6534);
#endif
-// 2017-10-02cRagexeRE
+// 2017-10-02cRagexe, 2017-10-02cRagexeRE
#if PACKETVER == 20171002
packetKeys(0x15E1716C,0x4E765B63,0x357D2370);
#endif
-// 2017-10-11aRagexeRE, 2017-10-11bRagexeRE
+// 2017-10-11aRagexe, 2017-10-11aRagexeRE, 2017-10-11bRagexe, 2017-10-11bRagexeRE
#if PACKETVER == 20171011
packetKeys(0x4F121B3E,0x12670E17,0x19896C11);
#endif
-// 2017-10-18aRagexeRE
+// 2017-10-18aRagexe, 2017-10-18aRagexeRE
#if PACKETVER == 20171018
packetKeys(0x2CAA109C,0x158C1EC2,0x7A5E58F3);
#endif
+// 2017-10-25bRagexe, 2017-10-25bRagexeRE, 2017-10-25cRagexe, 2017-10-25cRagexeRE, 2017-10-25dRagexe, 2017-10-25dRagexeRE, 2017-10-25eRagexe, 2017-10-25eRagexeRE
+#if PACKETVER == 20171025
+ packetKeys(0x165C565C,0x565C565C,0x565C565C);
+#endif
+
+// 2017-11-01aRagexe, 2017-11-01bRagexeRE
+#if PACKETVER == 20171101
+ packetKeys(0x7056317F,0x7EEE0589,0x02672373);
+#endif
+
+// 2017-11-08aRagexe, 2017-11-08bRagexeRE
+#if PACKETVER == 20171108
+ packetKeys(0x03695685,0x7FAC12CE,0x182F7A7B);
+#endif
+
+// 2017-11-15aRagexe, 2017-11-15aRagexeRE
+#if PACKETVER == 20171115
+ packetKeys(0x23B97A3B,0x34610993,0x2892070E);
+#endif
+
+// 2017-11-22aRagexe, 2017-11-22bRagexeRE
+#if PACKETVER == 20171122
+ packetKeys(0x03221B0E,0x73AB7A5F,0x0DD80FD4);
+#endif
+
+// 2017-11-29aRagexe, 2017-11-29aRagexeRE
+#if PACKETVER == 20171129
+ packetKeys(0x581B77A7,0x62F74D7A,0x4F102173);
+#endif
+
+// 2017-12-06aRagexeRE, 2017-12-06bRagexe, 2017-12-06cRagexe
+#if PACKETVER == 20171206
+ packetKeys(0x39D54BD3,0x577A0C21,0x4C1C316E);
+#endif
+
+// 2017-12-13bRagexe, 2017-12-13bRagexeRE
+#if PACKETVER == 20171213
+ packetKeys(0x44E41107,0x3B126921,0x00E06AAC);
+#endif
+
+// 2017-12-20aRagexe, 2017-12-20aRagexeRE
+#if PACKETVER == 20171220
+ packetKeys(0x6EFE009A,0x440B7BFA,0x052339C8);
+#endif
-#if defined(OBFUSCATIONKEY1) && defined(OBFUSCATIONKEY2) && defined(OBFUSCATIONKEY3)
- packetKeys(OBFUSCATIONKEY1,OBFUSCATIONKEY2,OBFUSCATIONKEY3);
+// 2017-12-27aRagexe, 2017-12-27aRagexeRE
+#if PACKETVER == 20171227
+ packetKeys(0x257A2F6E,0x51140EEE,0x00FA4452);
#endif
-#endif /* MAP_PACKETS_KEYS_H */
+// 2018-01-03aRagexe, 2018-01-03aRagexeRE, 2018-01-03bRagexe, 2018-01-03bRagexeRE
+#if PACKETVER == 20180103
+ packetKeys(0x348F4BD7,0x7A425A54,0x628F589A);
+#endif
+
+// 2018-01-17aRagexe, 2018-01-17aRagexeRE
+#if PACKETVER == 20180117
+ packetKeys(0x21F477F4,0x37F437F4,0x37F437F4);
+#endif
+
+// 2018-01-24bRagexe, 2018-01-24bRagexeRE
+#if PACKETVER == 20180124
+ packetKeys(0x7EAA1CE0,0x415D1CFD,0x4C8F19FA);
+#endif
+
+
+#endif /* MAP_PACKETS_MAIN_KEYS_H */
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
new file mode 100644
index 000000000..93c917559
--- /dev/null
+++ b/src/map/packets_keys_zero.h
@@ -0,0 +1,118 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2013-2018 Hercules Dev Team
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MAP_PACKETS_ZERO_KEYS_H
+#define MAP_PACKETS_ZERO_KEYS_H
+
+#ifndef packetKeys
+ #define packetKeys(a,b,c)
+#endif
+
+/* PacketKeys: http://herc.ws/board/topic/1105-hercules-wpe-free-june-14th-patch/ */
+
+/* This file is autogenerated, please do not commit manual changes */
+
+// 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero
+#if PACKETVER == 20171019 || \
+ PACKETVER == 20171023 || \
+ PACKETVER == 20171024 || \
+ PACKETVER == 20171025 || \
+ PACKETVER == 20171027 || \
+ PACKETVER == 20171030 || \
+ PACKETVER == 20171031 || \
+ PACKETVER == 20171109 || \
+ PACKETVER == 20171113
+ packetKeys(0x00000000,0x00000000,0x00000000);
+#endif
+
+// 2017-11-15aRagexe_zero, 2017-11-15bRagexe_zero, 2017-11-16aRagexe_zero, 2017-11-17aRagexe_zero
+#if PACKETVER == 20171115 || \
+ PACKETVER == 20171116 || \
+ PACKETVER == 20171117
+ packetKeys(0x3B93061D,0x3CB50DCD,0x410A197E);
+#endif
+
+// 2017-11-21aRagexe_zero, 2017-11-22aRagexe_zero
+#if PACKETVER == 20171121 || \
+ PACKETVER == 20171122
+ packetKeys(0x195B4DA8,0x6E3A473B,0x126F4B61);
+#endif
+
+// 2017-11-23dRagexe_zero
+#if PACKETVER == 20171123
+ packetKeys(0x6087733A,0x5C5C4AEE,0x0F10408F);
+#endif
+
+// 2017-11-27aRagexe_zero, 2017-11-27cRagexe_zero, 2017-11-28aRagexe_zero
+#if PACKETVER == 20171127 || \
+ PACKETVER == 20171128
+ packetKeys(0x141C135C,0x675C275C,0x275C275C);
+#endif
+
+// 2017-11-30bRagexe_zero
+#if PACKETVER == 20171130
+ packetKeys(0x31A04B32,0x3AC96B76,0x1742085D);
+#endif
+
+// 2017-12-04bRagexe_zero
+#if PACKETVER == 20171204
+ packetKeys(0x06A109F1,0x6A953256,0x0A6040A3);
+#endif
+
+// 2017-12-06aRagexe_zero, 2017-12-06bRagexe_zero, 2017-12-06cRagexe_zero, 2017-12-06dRagexe_zero, 2017-12-08aRagexe_zero, 2017-12-08cRagexe_zero, 2017-12-08dRagexe_zero, 2017-12-09bRagexe_zero, 2017-12-09cRagexe_zero, 2017-12-10aRagexe_zero, 2017-12-11bRagexe_zero, 2017-12-12aRagexe_zero, 2017-12-13aRagexe_zero, 2017-12-13bRagexe_zero, 2017-12-13cRagexe_zero
+#if PACKETVER == 20171206 || \
+ PACKETVER == 20171208 || \
+ PACKETVER == 20171209 || \
+ PACKETVER == 20171210 || \
+ PACKETVER == 20171211 || \
+ PACKETVER == 20171212 || \
+ PACKETVER == 20171213
+ packetKeys(0x718D0388,0x56A11525,0x20042F67);
+#endif
+
+// 2017-12-14cRagexe_zero
+#if PACKETVER == 20171214
+ packetKeys(0x6CE1021D,0x77703B04,0x4E722232);
+#endif
+
+// 2017-12-20aRagexe_zero, 2017-12-21aRagexe_zero, 2017-12-21bRagexe_zero
+#if PACKETVER == 20171220 || \
+ PACKETVER == 20171221
+ packetKeys(0x1E2047D2,0x7EE31AC2,0x31434F61);
+#endif
+
+// 2017-12-27bRagexe_zero, 2017-12-29aRagexe_zero
+#if PACKETVER == 20171227 || \
+ PACKETVER == 20171229
+ packetKeys(0x7CBF0846,0x02F92654,0x22AA5E2D);
+#endif
+
+// 2018-01-03aRagexe_zero
+#if PACKETVER == 20180103
+ packetKeys(0x2A3D4E64,0x7008690C,0x69FF066F);
+#endif
+
+// 2018-01-17aRagexe_zero
+#if PACKETVER == 20180117
+ packetKeys(0x230959EB,0x1CCB0182,0x1FFA2B30);
+#endif
+
+
+#endif /* MAP_PACKETS_ZERO_KEYS_H */
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
new file mode 100644
index 000000000..c30f4296b
--- /dev/null
+++ b/src/map/packets_shuffle_main.h
@@ -0,0 +1,9537 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2013-2018 Hercules Dev Team
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+//Included directly by clif.c in packet_loaddb()
+
+#ifndef MAP_PACKETS_SHUFFLE_MAIN_H
+#define MAP_PACKETS_SHUFFLE_MAIN_H
+
+#ifndef packet
+ #define packet(a,b,...)
+#endif
+
+/*
+ * packet syntax
+ * - packet(packet_id,length,function,offset ( specifies the offset of a packet field in bytes from the begin of the packet ),...)
+ * - Example: packet(0x0072,19,clif->pWantToConnection,2,6,10,14,18);
+ */
+
+/* This file is autogenerated, please do not commit manual changes */
+
+
+// 2012-07-10aRagexe, 2012-07-10aRagexeRE, 2012-07-12aRagexe, 2012-07-12aRagexeRE
+#if PACKETVER == 20120710 || \
+ PACKETVER == 20120712
+ packet(0x0202,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x02c4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0362,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0365,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0367,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x07e4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0811,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0877,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0878,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0893,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a3,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a6,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a8,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08aa,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0936,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0948,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0953,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0956,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0958,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0960,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2012-07-16aRagexe, 2012-07-16aRagexeRE
+#if PACKETVER == 20120716
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x089f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-07-24aRagexe, 2012-07-24aRagexeRE
+#if PACKETVER == 20120724
+ packet(0x035f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0815,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0835,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0865,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0877,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087c,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0887,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0888,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a1,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a9,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0928,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0929,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x092b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0935,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0938,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x093c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0945,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0957,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0959,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0965,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+#endif
+
+// 2012-08-01aRagexe, 2012-08-01aRagexeRE, 2012-08-01bRagexe, 2012-08-01bRagexeRE
+#if PACKETVER == 20120801
+ packet(0x0360,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0438,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0873,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0875,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0890,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0895,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a2,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08aa,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ab,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0917,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0930,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0934,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x093c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0946,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0964,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2012-08-08aRagexe, 2012-08-08aRagexeRE, 2012-08-08bRagexe, 2012-08-08bRagexeRE, 2012-08-08cRagexe, 2012-08-08cRagexeRE, 2012-08-08dRagexeRE
+#if PACKETVER == 20120808
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-08-14aRagexe, 2012-08-14aRagexeRE, 2012-08-14bRagexe, 2012-08-14bRagexeRE
+#if PACKETVER == 20120814
+ packet(0x0281,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0365,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0366,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x07ec,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0815,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0838,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0861,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0862,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0865,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0868,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0875,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0882,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x088b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x088d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0895,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08a8,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0920,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0929,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0932,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0934,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0941,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0967,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0969,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2012-08-22aRagexe, 2012-08-22aRagexeRE, 2012-08-22bRagexe, 2012-08-22bRagexeRE, 2012-08-22cRagexe, 2012-08-22cRagexeRE
+#if PACKETVER == 20120822
+ packet(0x0365,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0437,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x085a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x085d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0872,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x087d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a5,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ab,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0917,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0924,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0927,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0935,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0937,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0940,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0943,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0953,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0955,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0958,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+#endif
+
+// 2012-08-30aRagexe, 2012-08-30aRagexeRE, 2012-08-30bRagexeRE
+#if PACKETVER == 20120830
+ packet(0x022d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0364,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0802,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0838,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0861,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0872,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0887,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0888,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0890,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0926,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0934,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0945,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094b,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-09-05aRagexe, 2012-09-05aRagexeRE
+#if PACKETVER == 20120905
+ packet(0x022d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0365,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0817,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x085a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0877,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0878,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x087e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0895,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0897,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a0,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a6,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0917,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0918,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x091a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0927,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x093c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0944,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0945,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0950,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0959,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0960,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0967,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2012-09-11aRagexe, 2012-09-11aRagexeRE
+#if PACKETVER == 20120911
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0819,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0868,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0877,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0879,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a4,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a5,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08a6,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a7,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08ad,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0930,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0935,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0948,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0949,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0958,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0959,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0962,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0963,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0968,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2012-09-19aRagexe, 2012-09-19aRagexeRE
+#if PACKETVER == 20120919
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-09-25aRagexe, 2012-09-25aRagexeRE, 2012-09-26aRagexe, 2012-09-26aRagexeRE
+#if PACKETVER == 20120925 || \
+ PACKETVER == 20120926
+ packet(0x07e4,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0815,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0835,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0838,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0873,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x087e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a4,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x091c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0923,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0927,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0932,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0942,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0948,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0950,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0956,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0958,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0963,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+#endif
+
+// 2012-10-10aRagexe, 2012-10-10aRagexeRE, 2012-10-10bRagexe, 2012-10-10bRagexeRE, 2012-10-11aRagexeRE
+#if PACKETVER == 20121010 || \
+ PACKETVER == 20121011
+ packet(0x0202,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0817,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0869,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0874,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0883,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0888,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0891,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0896,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0898,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a6,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a9,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0925,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0934,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0942,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0947,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0957,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0958,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0959,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0964,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0969,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2012-10-17aRagexe, 2012-10-17aRagexeRE, 2012-10-17bRagexe, 2012-10-17bRagexeRE
+#if PACKETVER == 20121017
+ packet(0x023b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0868,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0887,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0888,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0897,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x089a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0918,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0920,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0960,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0965,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-10-24aRagexe, 2012-10-24aRagexeRE
+#if PACKETVER == 20121024
+ packet(0x0436,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0437,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0438,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0817,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0838,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0868,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0872,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0875,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x087e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0882,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0888,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0889,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a9,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08aa,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0931,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0938,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x093a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0942,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0947,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0954,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0955,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x095d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0965,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2012-10-31aRagexe, 2012-10-31aRagexeRE
+#if PACKETVER == 20121031
+ packet(0x022d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0871,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0877,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0898,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-11-07aRagexe, 2012-11-07aRagexeRE
+#if PACKETVER == 20121107
+ packet(0x0360,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0361,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0365,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x085c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0861,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0865,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0871,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0873,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0878,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0890,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0896,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a2,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ad,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0922,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0934,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x093b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0945,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x094d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0960,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0963,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0966,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+#endif
+
+// 2012-11-14aRagexe, 2012-11-14aRagexeRE
+#if PACKETVER == 20121114
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0365,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0437,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0815,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0862,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0876,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0879,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0881,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0898,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0899,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a9,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08aa,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ab,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0930,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0935,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0938,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x093b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x093c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0944,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0949,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x095c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0965,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2012-11-21aRagexe, 2012-11-21aRagexeRE
+#if PACKETVER == 20121121
+ packet(0x0202,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0437,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0863,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0872,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0875,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0880,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0892,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a7,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08aa,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x091a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0921,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0927,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0929,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0938,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0946,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x094d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0950,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0952,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0957,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0958,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+#endif
+
+// 2012-11-28aRagexe, 2012-11-28aRagexeRE
+#if PACKETVER == 20121128
+ packet(0x0362,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x07ec,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0802,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0861,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0867,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x086c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0888,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0894,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0895,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a8,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08ad,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0921,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0931,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0945,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0950,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0953,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0960,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+#endif
+
+// 2012-12-05aRagexe, 2012-12-05aRagexeRE, 2012-12-05bRagexe, 2012-12-05bRagexeRE
+#if PACKETVER == 20121205
+ packet(0x035f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0360,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0815,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0863,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0864,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0870,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0873,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0875,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0878,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0888,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0889,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08ad,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x091c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0921,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x093a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0959,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0968,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2012-12-12aRagexe, 2012-12-12aRagexeRE, 2012-12-12bRagexe, 2012-12-12bRagexeRE, 2012-12-12cRagexeRE
+#if PACKETVER == 20121212
+ packet(0x0362,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0368,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0369,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0436,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0438,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x085c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0877,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x087d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0893,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0895,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a3,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a7,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a9,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08aa,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ac,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0917,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0920,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0932,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0947,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0951,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0953,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0957,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0965,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0966,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-12-18aRagexe, 2012-12-18aRagexeRE, 2012-12-18bRagexe, 2012-12-18bRagexeRE
+#if PACKETVER == 20121218
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0363,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0872,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0889,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0890,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x091a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0946,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0957,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2012-12-27aRagexe, 2012-12-27aRagexeRE
+#if PACKETVER == 20121227
+ packet(0x0202,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x02c4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0361,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0437,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0860,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0870,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0872,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0886,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0888,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0890,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0894,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0896,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a6,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08aa,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0917,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x091f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0920,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0932,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0933,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0943,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0947,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0953,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0958,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0962,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2013-01-03aRagexe, 2013-01-03aRagexeRE, 2013-01-07aRagexe
+#if PACKETVER == 20130103 || \
+ PACKETVER == 20130107
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0940,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-01-09aRagexe, 2013-01-09aRagexeRE
+#if PACKETVER == 20130109
+ packet(0x0281,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0365,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0368,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0838,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0888,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a2,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08aa,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ac,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0918,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0922,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0927,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0928,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0931,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093e,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0950,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0951,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0955,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2013-01-15aRagexeRE, 2013-01-15bRagexe, 2013-01-16aRagexe, 2013-01-16aRagexeRE, 2013-01-16bRagexe
+#if PACKETVER == 20130115 || \
+ PACKETVER == 20130116
+ packet(0x0361,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x07ec,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0817,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0861,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0870,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0871,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0877,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0879,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0888,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x088b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0894,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0895,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a0,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0918,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0928,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x092d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0939,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094b,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2013-01-21aRagexe, 2013-01-21aRagexeRE
+#if PACKETVER == 20130121
+ packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x035f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0802,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0815,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0817,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0874,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0893,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x094f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0963,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-01-30aRagexe, 2013-01-30aRagexeRE
+#if PACKETVER == 20130130
+ packet(0x035f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0367,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0437,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x085f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0862,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0885,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0886,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0887,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a0,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a4,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a9,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x091a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0920,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0924,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x093a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0956,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2013-02-06aRagexe, 2013-02-06aRagexeRE
+#if PACKETVER == 20130206
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0811,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0876,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0883,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0899,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0920,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0925,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x093c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0950,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-02-15aRagexe, 2013-02-15aRagexeRE, 2013-02-15bRagexe
+#if PACKETVER == 20130215
+ packet(0x023b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0886,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ad,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0923,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0956,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0962,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-02-20aRagexe, 2013-02-20bRagexeRE
+#if PACKETVER == 20130220
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-02-27aRagexe, 2013-02-27aRagexeRE
+#if PACKETVER == 20130227
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x035f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0360,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0811,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0815,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0863,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0867,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0893,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0898,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a0,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a1,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x091b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0924,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x092b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0946,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0951,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0967,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2013-03-06aRagexe, 2013-03-06aRagexeRE, 2013-03-06bRagexeRE
+#if PACKETVER == 20130306
+ packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0367,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0368,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0802,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0817,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x085b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0860,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0881,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0890,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0898,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ac,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0917,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0926,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0934,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0936,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0943,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0945,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0946,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0951,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0960,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2013-03-13aRagexe, 2013-03-13aRagexeRE, 2013-03-13bRagexeRE, 2013-03-13cRagexeRE
+#if PACKETVER == 20130313
+ packet(0x0202,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0887,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0920,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0947,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-03-20bRagexeRE, 2013-03-20cRagexeRE, 2013-03-20dRagexe, 2013-03-20eRagexe
+#if PACKETVER == 20130320
+ packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0438,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x085a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x085d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0868,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0874,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0881,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0886,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0890,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0897,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0898,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0922,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0933,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0938,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x093f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0959,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2013-03-27bRagexe, 2013-03-27bRagexeRE
+#if PACKETVER == 20130327
+ packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0835,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0873,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0878,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0893,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a1,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a2,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x092b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x092d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x092e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0933,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0938,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0939,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0955,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0960,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0961,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0967,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2013-04-03aRagexe, 2013-04-03aRagexeRE
+#if PACKETVER == 20130403
+ packet(0x023b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0884,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a5,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0942,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0950,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-04-10aRagexe, 2013-04-10aRagexeRE
+#if PACKETVER == 20130410
+ packet(0x0367,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0437,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0860,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0865,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0881,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x088c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0890,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a0,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08a7,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0917,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x091d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0933,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0939,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x093d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0944,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0945,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0955,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0960,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0967,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x096a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+#endif
+
+// 2013-04-17aRagexe, 2013-04-17aRagexeRE
+#if PACKETVER == 20130417
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0875,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0929,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0962,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0969,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x096a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2013-04-24aRagexe, 2013-04-24aRagexeRE
+#if PACKETVER == 20130424
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0969,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-05-02aRagexe, 2013-05-02aRagexeRE, 2013-05-02bRagexe
+#if PACKETVER == 20130502
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0874,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0875,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0877,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0888,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0889,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a1,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a3,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0961,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0967,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2013-05-08bRagexe, 2013-05-08bRagexeRE, 2013-05-08cRagexe, 2013-05-08dRagexe, 2013-05-08eRagexe, 2013-05-08fRagexe
+#if PACKETVER == 20130508
+ packet(0x022d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0868,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0878,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0893,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0895,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0897,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ab,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x092d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0944,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0957,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-05-15aRagexe, 2013-05-15aRagexeRE
+#if PACKETVER == 20130515
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0887,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a1,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08aa,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ac,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x093e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0944,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0947,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0962,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0963,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-05-22aRagexe, 2013-05-22aRagexeRE
+#if PACKETVER == 20130522
+ packet(0x0360,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0368,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x07ec,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0811,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x088e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a2,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a3,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a6,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a9,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08aa,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08ac,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0925,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0950,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0952,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0964,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0965,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2013-05-29aRagexe, 2013-05-29aRagexeRE
+#if PACKETVER == 20130529
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0874,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0876,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0877,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0888,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0890,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0892,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0895,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0897,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a7,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a8,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0917,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0918,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0936,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0937,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0938,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0957,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0964,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+#endif
+
+// 2013-06-05aRagexe, 2013-06-05bRagexe, 2013-06-05cRagexeRE
+#if PACKETVER == 20130605
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0883,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-06-12aRagexe, 2013-06-12bRagexe, 2013-06-12bRagexeRE, 2013-06-12cRagexe, 2013-06-12dRagexe, 2013-06-12eRagexe
+#if PACKETVER == 20130612
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0919,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0964,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-06-18#1aRagexe, 2013-06-18#1aRagexeRE, 2013-06-18aRagexe, 2013-06-18aRagexeRE
+#if PACKETVER == 20130618
+ packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0363,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0862,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0864,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0878,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x088e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0890,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0917,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0930,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0932,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0936,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0942,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0944,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0945,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0951,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0953,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2013-06-26_3bRagexeRE, 2013-06-26_3cRagexe, 2013-06-26aRagexeRE, 2013-06-26bRagexe, 2013-06-26bRagexeRE, 2013-06-26cRagexe
+#if PACKETVER == 20130626
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0860,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x088c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0894,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0895,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08ab,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0921,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0930,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0952,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0960,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-07-03aRagexe, 2013-07-03bRagexeRE
+#if PACKETVER == 20130703
+ packet(0x0202,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-07-10aRagexeRE, 2013-07-10bRagexe, 2013-07-10bRagexeRE, 2013-07-10cRagexeRE, 2013-07-10dRagexeRE, 2013-07-10eRagexeRE
+#if PACKETVER == 20130710
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0880,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-07-17cRagexe, 2013-07-17cRagexeRE, 2013-07-17dRagexeRE, 2013-07-17eRagexeRE
+#if PACKETVER == 20130717
+ packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0863,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x086b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0882,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x088a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0897,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0898,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a9,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08aa,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0917,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0918,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x091d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0956,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0958,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x095b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0960,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x096a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+#endif
+
+// 2013-07-24eRagexe, 2013-07-24eRagexeRE, 2013-07-24fRagexeRE
+#if PACKETVER == 20130724
+ packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0437,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x085a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0867,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0874,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0876,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0890,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0891,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0893,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0924,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x092b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0953,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0954,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0956,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0958,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0965,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0966,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2013-07-31cRagexe, 2013-07-31cRagexeRE
+#if PACKETVER == 20130731
+ packet(0x022d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0366,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x087e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0884,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0889,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0894,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0923,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0925,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x092b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0935,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x094c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0956,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0957,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0962,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+#endif
+
+// 2013-08-07aRagexe, 2013-08-07aRagexeRE
+#if PACKETVER == 20130807
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0887,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-08-14aRagexe, 2013-08-14aRagexeRE
+#if PACKETVER == 20130814
+ packet(0x0202,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0368,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0815,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0868,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0873,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0874,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0887,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0895,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0896,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0923,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0926,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0936,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0937,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x093a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0947,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0959,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0962,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2013-08-21bRagexe, 2013-08-21dRagexeRE
+#if PACKETVER == 20130821
+ packet(0x0202,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0437,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0438,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x07ec,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0815,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0879,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x088d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0892,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a6,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ad,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x093e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0947,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0954,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0964,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0967,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2013-08-28bRagexe, 2013-08-28bRagexeRE, 2013-08-28cRagexe, 2013-08-28cRagexeRE
+#if PACKETVER == 20130828
+ packet(0x023b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0361,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0364,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0817,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0873,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0889,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0893,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a3,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08ac,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0917,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0919,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x091e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0923,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0924,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0928,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0930,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0944,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x094f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x095d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2013-09-04aRagexe, 2013-09-04bRagexeRE
+#if PACKETVER == 20130904
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0838,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0937,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-09-11aRagexe, 2013-09-11aRagexeRE, 2013-09-11bRagexe, 2013-09-11bRagexeRE
+#if PACKETVER == 20130911
+ packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0868,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0889,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0891,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x091e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0940,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0948,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0967,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2013-09-17aRagexe, 2013-09-17aRagexeRE
+#if PACKETVER == 20130917
+ packet(0x035f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0811,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0838,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x083c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0863,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x087a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0895,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x089d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a0,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a2,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08a8,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0918,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0921,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0923,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0934,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x094c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0959,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x096a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+#endif
+
+// 2013-09-25aRagexe, 2013-09-25aRagexeRE, 2013-09-25bRagexe, 2013-09-25bRagexeRE, 2013-09-25cRagexe
+#if PACKETVER == 20130925
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0875,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0876,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0885,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0890,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0940,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-10-02aRagexe, 2013-10-02aRagexeRE
+#if PACKETVER == 20131002
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0940,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-10-08aRagexe, 2013-10-08bRagexeRE
+#if PACKETVER == 20131008
+ packet(0x0202,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0362,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x07e4,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x083c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x085e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0863,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0883,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0896,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a9,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0917,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0923,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0927,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0932,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0934,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0936,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x093c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0952,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0956,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2013-10-16aRagexe, 2013-10-16aRagexeRE, 2013-10-16bRagexe, 2013-10-16bRagexeRE
+#if PACKETVER == 20131016
+ packet(0x022d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0281,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0361,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0364,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x07ec,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x085d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0867,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0870,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0875,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0887,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0888,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0890,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0894,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x091e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0927,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0946,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0962,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0966,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2013-10-23aRagexe, 2013-10-23aRagexeRE
+#if PACKETVER == 20131023
+ packet(0x0366,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0438,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0819,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0835,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0862,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0872,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0876,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x088f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a7,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ab,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0919,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0923,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0924,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0935,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0937,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0944,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0951,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+#endif
+
+// 2013-10-30aRagexe, 2013-10-30aRagexeRE
+#if PACKETVER == 20131030
+ packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0887,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a2,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0925,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-11-06aRagexe, 2013-11-06aRagexeRE, 2013-11-07aRagexe, 2013-11-07bRagexe, 2013-11-07cRagexe, 2013-11-08aRagexe
+#if PACKETVER == 20131106 || \
+ PACKETVER == 20131107 || \
+ PACKETVER == 20131108
+ packet(0x0281,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0369,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0436,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0802,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0817,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0867,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0870,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0875,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0887,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0891,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0893,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0894,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a2,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0919,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0942,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0946,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0947,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0948,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0950,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0954,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0962,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0967,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+#endif
+
+// 2013-11-13aRagexeRE, 2013-11-13bRagexe
+#if PACKETVER == 20131113
+ packet(0x0364,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0879,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x088c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x088f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a8,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x091c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0920,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0929,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x092b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x092f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0934,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0936,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0949,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0950,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x095f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0964,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0969,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+#endif
+
+// 2013-11-20dRagexe, 2013-11-20eRagexeRE
+#if PACKETVER == 20131120
+ packet(0x0361,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0368,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0802,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0817,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0862,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0884,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a1,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a8,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0917,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0926,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0927,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0940,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0950,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0953,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0955,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2013-11-27aRagexeRE, 2013-11-27bRagexe, 2013-11-27bRagexeRE
+#if PACKETVER == 20131127
+ packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0366,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0881,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0884,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0894,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0930,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x093a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0940,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0967,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2013-12-04dRagexeRE, 2013-12-04eRagexe, 2013-12-04eRagexeRE
+#if PACKETVER == 20131204
+ packet(0x0365,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0366,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0862,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0869,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0877,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0879,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0882,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a0,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08a4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a7,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ad,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0928,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x092d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0932,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0951,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0958,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0959,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0961,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0967,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+#endif
+
+// 2013-12-11cRagexe, 2013-12-11cRagexeRE, 2013-12-11dRagexe, 2013-12-11eRagexeRE
+#if PACKETVER == 20131211
+ packet(0x0202,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0366,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0865,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0873,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0881,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0892,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a3,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ab,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x092b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0931,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-12-18aRagexeRE, 2013-12-18bRagexe
+#if PACKETVER == 20131218
+ packet(0x022d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x087b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ab,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0947,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-12-23bRagexe, 2013-12-23bRagexeRE, 2013-12-23cRagexe, 2013-12-23xRagexeRE
+#if PACKETVER == 20131223
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2013-12-30aRagexe, 2013-12-30aRagexeRE
+#if PACKETVER == 20131230
+ packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x02c4,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0365,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0369,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0871,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x087b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0926,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0943,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0949,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0968,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x096a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2014-01-08bRagexeRE, 2014-01-08cRagexe, 2014-01-08cRagexeRE, 2014-01-08dRagexe
+#if PACKETVER == 20140108
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-01-15aRagexe, 2014-01-15bRagexe, 2014-01-15cRagexe, 2014-01-15cRagexeRE, 2014-01-15dRagexeRE, 2014-01-15eRagexe, 2014-01-15eRagexeRE
+#if PACKETVER == 20140115
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0367,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0865,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a7,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0965,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0966,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2014-01-22aRagexe, 2014-01-22aRagexeRE
+#if PACKETVER == 20140122
+ packet(0x0360,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0811,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0863,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0871,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0872,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0890,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0893,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0899,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a2,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08aa,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0917,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0925,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x092f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0941,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0942,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x094c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0950,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0952,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0955,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2014-01-29aRagexe, 2014-01-29bRagexeRE, 2014-01-29cRagexe
+#if PACKETVER == 20140129
+ packet(0x0281,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0367,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0884,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0885,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0921,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0924,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0958,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-02-05bRagexe, 2014-02-05bRagexeRE
+#if PACKETVER == 20140205
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0938,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-02-12aRagexe, 2014-02-12aRagexeRE
+#if PACKETVER == 20140212
+ packet(0x02c4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0369,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0438,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0874,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0877,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0878,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0888,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x088c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a0,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a1,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a7,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0919,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0928,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0930,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0934,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0936,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x093d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0944,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0952,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0953,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0960,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+#endif
+
+// 2014-02-19aRagexe, 2014-02-19aRagexeRE, 2014-02-19bRagexeRE
+#if PACKETVER == 20140219
+ packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0360,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0802,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x085d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0860,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0868,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0889,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0898,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08ac,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0921,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0927,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0939,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0949,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0953,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x095a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0961,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+#endif
+
+// 2014-02-26aRagexe, 2014-02-26aRagexeRE, 2014-02-26bRagexeRE
+#if PACKETVER == 20140226
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0877,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0887,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0894,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0921,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0931,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0941,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-03-05aRagexe, 2014-03-05aRagexeRE, 2014-03-05bRagexe, 2014-03-05bRagexeRE
+#if PACKETVER == 20140305
+ packet(0x0202,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0878,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0934,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-03-12bRagexeRE, 2014-03-12dRagexe
+#if PACKETVER == 20140312
+ packet(0x0202,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x086f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0889,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0891,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0894,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x089b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a6,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08ad,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x091e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0948,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x094c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0957,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2014-03-19aRagexe, 2014-03-19aRagexeRE
+#if PACKETVER == 20140319
+ packet(0x02c4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07e4,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0802,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0811,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0815,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x085a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0864,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0866,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0883,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0890,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0893,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a2,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0933,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0942,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0944,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0947,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0955,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0964,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x096a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2014-03-26aRagexe, 2014-03-26cRagexeRE
+#if PACKETVER == 20140326
+ packet(0x0362,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0365,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x07ec,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x083c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0865,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0867,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0869,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0887,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08aa,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ac,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08ad,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0918,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0928,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x092a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0946,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0969,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2014-04-02eRagexeRE, 2014-04-02fRagexe, 2014-04-02fRagexeRE, 2014-04-02gRagexe
+#if PACKETVER == 20140402
+ packet(0x023b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0360,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0364,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x085d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0867,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0868,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0882,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0883,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0890,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0896,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0926,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0933,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x093f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0944,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0950,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0965,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2014-04-09aRagexe, 2014-04-09aRagexeRE, 2014-04-09bRagexe
+#if PACKETVER == 20140409
+ packet(0x0819,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x085b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0868,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0873,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0883,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0884,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0890,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0896,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a2,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a6,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08a7,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a9,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0918,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x092e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0942,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0947,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x095e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2014-04-16aRagexe, 2014-04-16aRagexeRE, 2014-04-16bRagexe
+#if PACKETVER == 20140416
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-04-23aRagexe, 2014-04-23aRagexeRE
+#if PACKETVER == 20140423
+ packet(0x022d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0436,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0811,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x083c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x085a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0866,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x086f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0873,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0890,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0895,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0896,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0898,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a8,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ad,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x091a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0920,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2014-04-30aRagexe, 2014-04-30aRagexeRE
+#if PACKETVER == 20140430
+ packet(0x023b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x035f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0860,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0871,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0875,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0884,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0899,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a1,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0940,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0953,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0956,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+#endif
+
+// 2014-05-08bRagexe, 2014-05-08bRagexeRE
+#if PACKETVER == 20140508
+ packet(0x022d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0366,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0861,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x089b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0927,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0930,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0932,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0934,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe
+#if PACKETVER == 20140508 || \
+ PACKETVER == 20140611 || \
+ PACKETVER == 20150225
+ packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0281,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x07ec,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2014-05-14bRagexe, 2014-05-14bRagexeRE, 2014-05-14cRagexeRE
+#if PACKETVER == 20140514
+ packet(0x0437,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0817,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0865,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0868,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0876,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0877,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0886,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0895,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a5,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0921,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0925,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0962,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0965,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x096a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+#endif
+
+// 2014-05-21aRagexeRE, 2014-05-21bRagexe
+#if PACKETVER == 20140521
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0869,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x089c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0968,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-05-28aRagexe, 2014-05-28aRagexeRE
+#if PACKETVER == 20140528
+ packet(0x0202,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0360,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x085f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0862,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0875,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0877,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0879,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x088f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0894,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a8,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0929,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0930,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0938,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x093a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0963,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0966,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+#endif
+
+// 2014-06-05aRagexe, 2014-06-05aRagexeRE, 2014-06-05bRagexe
+#if PACKETVER == 20140605
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0921,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-06-11bRagexeRE, 2014-06-11cRagexe, 2014-06-11dRagexe, 2014-06-11hRagexe, 2014-06-12aRagexe, 2014-06-13aRagexe
+#if PACKETVER == 20140611 || \
+ PACKETVER == 20140612 || \
+ PACKETVER == 20140613
+ packet(0x0364,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0438,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x07e4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0838,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0864,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0867,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0878,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0891,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0893,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0894,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a2,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0924,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0950,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0951,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0958,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0965,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2014-06-18aRagexe, 2014-06-18cRagexeRE
+#if PACKETVER == 20140618
+ packet(0x085d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0860,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0861,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0878,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0884,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0885,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0886,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0890,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a7,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08ac,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0917,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x091f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0929,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0935,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0939,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x093b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0945,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0957,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x095e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0967,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+#endif
+
+// 2014-06-25aRagexe, 2014-06-25aRagexeRE, 2014-06-25bRagexe
+#if PACKETVER == 20140625
+ packet(0x0202,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x023b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0815,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0817,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0861,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0875,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0886,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0888,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x088a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0897,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a1,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a2,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0923,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0959,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0968,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-07-02aRagexe, 2014-07-02aRagexeRE
+#if PACKETVER == 20140702
+ packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0438,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x07e4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0887,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0892,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a0,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0925,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0933,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-07-09aRagexe, 2014-07-09aRagexeRE
+#if PACKETVER == 20140709
+ packet(0x0364,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0869,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0875,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0877,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0879,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x087a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0887,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0888,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0894,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0897,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0898,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0925,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x092f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0931,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0934,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x093f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0961,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2014-07-16aRagexe, 2014-07-16aRagexeRE, 2014-07-16bRagexe, 2014-07-16cRagexe
+#if PACKETVER == 20140716
+ packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0811,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0871,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0881,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0896,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a2,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a4,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08ac,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0918,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0926,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0938,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0947,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0952,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0959,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2014-07-23aRagexe, 2014-07-23aRagexeRE, 2014-07-23bRagexe, 2014-07-23bRagexeRE
+#if PACKETVER == 20140723
+ packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0436,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0819,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x087d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0888,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0891,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0896,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0898,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08ad,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0927,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0934,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0935,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0939,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x093d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0945,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0947,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0948,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0960,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2014-07-30aRagexe, 2014-07-30bRagexeRE
+#if PACKETVER == 20140730
+ packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0366,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0367,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x07ec,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0802,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0815,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0817,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x087d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0889,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x088b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0892,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a7,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a9,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0924,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0934,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0940,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0946,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+#endif
+
+// 2014-08-06aRagexe, 2014-08-06aRagexeRE, 2014-08-06bRagexe
+#if PACKETVER == 20140806
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0948,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-08-13aRagexe, 2014-08-13aRagexeRE, 2014-08-13bRagexe, 2014-08-14aRagexe
+#if PACKETVER == 20140813 || \
+ PACKETVER == 20140814
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0878,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0882,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0897,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0899,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a7,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0967,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-08-20aRagexe, 2014-08-20aRagexeRE
+#if PACKETVER == 20140820
+ packet(0x035f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0835,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0861,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0864,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0869,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0872,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0876,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0899,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a3,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a7,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0936,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0937,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x093a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0951,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0952,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0956,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0958,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2014-08-27aRagexe, 2014-08-27aRagexeRE
+#if PACKETVER == 20140827
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0943,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-09-03aRagexe, 2014-09-03aRagexeRE
+#if PACKETVER == 20140903
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0945,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-09-17aRagexe, 2014-09-17cRagexeRE
+#if PACKETVER == 20140917
+ packet(0x022d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0364,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0365,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0367,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0895,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0897,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0898,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a8,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0919,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x091e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0930,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0949,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0951,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0955,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0956,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x095e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0966,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2014-09-24bRagexeRE, 2014-09-24cRagexe, 2014-09-24cRagexeRE
+#if PACKETVER == 20140924
+ packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0367,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0815,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x086b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0886,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0894,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0898,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a5,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a7,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0918,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0925,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0926,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0928,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0934,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0949,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0952,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+#endif
+
+// 2014-10-01aRagexe, 2014-10-01bRagexeRE, 2014-10-01cRagexeRE
+#if PACKETVER == 20141001
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0885,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0939,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0952,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+#endif
+
+// 2014-10-08aRagexe, 2014-10-08bRagexe, 2014-10-08bRagexeRE, 2014-10-08cRagexe, 2014-10-08cRagexeRE, 2014-10-08dRagexe
+#if PACKETVER == 20141008
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0942,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-10-15bRagexe, 2014-10-15bRagexeRE, 2014-10-15cRagexe, 2014-10-15dRagexe, 2014-10-16aRagexe, 2014-10-16aRagexeRE
+#if PACKETVER == 20141015 || \
+ PACKETVER == 20141016
+ packet(0x022d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0922,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0967,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-10-22aRagexeRE, 2014-10-22bRagexe
+#if PACKETVER == 20141022
+ packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0878,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0896,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0899,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08aa,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08ab,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x094e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-10-29aRagexe, 2014-10-29aRagexeRE
+#if PACKETVER == 20141029
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0940,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-11-05aRagexe, 2014-11-05aRagexeRE, 2014-11-05bRagexe, 2014-11-05bRagexeRE
+#if PACKETVER == 20141105
+ packet(0x022d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x035f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0360,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0864,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0865,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0871,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0874,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0875,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0877,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0879,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0887,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0892,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0898,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a0,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a5,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ad,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0944,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0948,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0950,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0957,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x095f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0968,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2014-11-12aRagexeRE, 2014-11-12cRagexe, 2014-11-12dRagexe
+#if PACKETVER == 20141112
+ packet(0x0362,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0438,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x07e4,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0869,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0871,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0885,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0886,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08a0,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a1,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08ab,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0919,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0926,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0929,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0943,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0962,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2014-11-19bRagexeRE, 2014-11-19dRagexe
+#if PACKETVER == 20141119
+ packet(0x0202,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0865,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0866,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0872,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0873,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0875,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x087c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0887,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0888,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x088d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0895,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a8,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0918,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0920,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0921,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0933,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0938,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0940,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0948,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x094c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0963,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2014-11-26aRagexe, 2014-11-26aRagexeRE, 2014-11-26bRagexe, 2014-11-26bRagexeRE, 2014-11-26cRagexe, 2014-11-26cRagexeRE, 2014-11-26dRagexe, 2014-11-26dRagexeRE, 2014-11-26eRagexeRE
+#if PACKETVER == 20141126
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0367,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0871,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0884,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0920,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0942,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-12-03aRagexe, 2014-12-03aRagexeRE
+#if PACKETVER == 20141203
+ packet(0x0202,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0281,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0362,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0367,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0861,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x086e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0880,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0889,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0898,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08a5,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08aa,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0917,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x092a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2014-12-10bRagexe, 2014-12-10cRagexe, 2014-12-10cRagexeRE
+#if PACKETVER == 20141210
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0885,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08ac,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0917,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0927,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x092b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0947,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0954,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0958,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0963,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0967,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2014-12-17aRagexe, 2014-12-17aRagexeRE
+#if PACKETVER == 20141217
+ packet(0x0360,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0875,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0878,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0879,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0883,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0889,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x088e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a1,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a2,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a8,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ab,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08ac,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0919,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0924,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0930,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0932,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0933,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0939,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0940,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0944,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0945,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0948,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0960,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2014-12-23cRagexeRE, 2014-12-24aRagexe
+#if PACKETVER == 20141223 || \
+ PACKETVER == 20141224
+ packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0438,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0865,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086c,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0870,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x089b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a3,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08ac,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0932,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0945,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0949,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x094f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0950,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0953,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0956,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2014-12-31aRagexe, 2014-12-31aRagexeRE
+#if PACKETVER == 20141231
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-01-07aRagexe, 2015-01-07aRagexeRE
+#if PACKETVER == 20150107
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0895,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0943,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0947,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-01-14aRagexe, 2015-01-14aRagexeRE, 2015-01-14bRagexe, 2015-01-14cRagexe, 2015-01-14dRagexe
+#if PACKETVER == 20150114
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0868,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0899,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0946,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0955,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0957,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-01-21aRagexe, 2015-01-21aRagexeRE, 2015-01-21bRagexeRE
+#if PACKETVER == 20150121
+ packet(0x0281,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ab,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0919,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0955,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0959,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0963,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0967,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-01-28aRagexe, 2015-01-28aRagexeRE, 2015-01-29aRagexe, 2015-01-30aRagexe
+#if PACKETVER == 20150128 || \
+ PACKETVER == 20150129 || \
+ PACKETVER == 20150130
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x023b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0368,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0838,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0864,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0870,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0874,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0875,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0888,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x093a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0968,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+#endif
+
+// 2015-02-04aRagexe, 2015-02-04cRagexeRE
+#if PACKETVER == 20150204
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0966,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-02-11aRagexe, 2015-02-11aRagexeRE
+#if PACKETVER == 20150211
+ packet(0x023b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0368,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0369,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0436,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0437,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x07e4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0817,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0819,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0835,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0862,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0870,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0873,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0882,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0883,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0885,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0886,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x089c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08aa,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0919,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0951,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0958,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2015-02-17aRagexe, 2015-02-17aRagexeRE
+#if PACKETVER == 20150217
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-02-25aRagexeRE, 2015-02-25bRagexeRE, 2015-02-25cRagexeRE, 2015-02-25dRagexeRE, 2015-02-25eRagexe, 2015-02-25eRagexeRE, 2015-02-25fRagexe, 2015-02-25gRagexe, 2015-02-25iRagexe, 2015-02-25jRagexe, 2015-02-26aRagexe, 2015-02-26aRagexeRE
+#if PACKETVER == 20150225 || \
+ PACKETVER == 20150226
+ packet(0x02c4,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0948,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0952,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0955,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2015-03-04aRagexe, 2015-03-04aRagexeRE, 2015-03-04bRagexeRE
+#if PACKETVER == 20150304
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x086d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0879,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0892,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0960,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-03-11aRagexe, 2015-03-11aRagexeRE, 2015-03-11bRagexe, 2015-03-11bRagexeRE
+#if PACKETVER == 20150311
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0360,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0438,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0838,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x087b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0883,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0888,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0896,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a1,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a5,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08a6,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0928,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x092e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0943,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0957,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0958,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0963,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0964,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2015-03-18aRagexe, 2015-03-18aRagexeRE, 2015-03-18bRagexe, 2015-03-18bRagexeRE, 2015-03-18cRagexeRE
+#if PACKETVER == 20150318
+ packet(0x0202,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x023b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0281,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0802,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0862,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0885,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0889,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x088c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a4,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0920,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0927,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0928,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0936,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0937,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0951,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0958,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0959,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0960,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2015-03-25aRagexe, 2015-03-25bRagexeRE, 2015-03-25cRagexeRE
+#if PACKETVER == 20150325
+ packet(0x0202,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0365,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0438,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0883,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0885,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0897,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0899,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a7,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0919,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0931,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0932,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0938,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0950,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0954,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0969,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+#endif
+
+// 2015-04-01aRagexe, 2015-04-01bRagexeRE
+#if PACKETVER == 20150401
+ packet(0x0362,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0367,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0437,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x083c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0875,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x087e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0895,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0898,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a5,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x091c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0924,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0938,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0939,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x093a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x093b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x093e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0949,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0953,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0964,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2015-04-08aRagexe, 2015-04-08aRagexeRE
+#if PACKETVER == 20150408
+ packet(0x0819,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x085a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0865,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0868,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0878,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0888,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0889,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0891,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a2,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0922,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0946,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0955,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0957,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0959,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0963,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2015-04-15aRagexe, 2015-04-15aRagexeRE
+#if PACKETVER == 20150415
+ packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0364,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0366,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0368,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0802,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0835,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x085e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0868,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0869,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0880,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0898,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a0,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x093c,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0941,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0946,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0953,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2015-04-22aRagexe, 2015-04-22aRagexeRE
+#if PACKETVER == 20150422
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0955,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-04-29aRagexe, 2015-04-29aRagexeRE
+#if PACKETVER == 20150429
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0886,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0894,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0899,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x089f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a8,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ad,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0943,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-05-07bRagexe, 2015-05-07bRagexeRE, 2015-05-07cRagexe
+#if PACKETVER == 20150507
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0887,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0889,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0924,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0941,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0942,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0953,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0955,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-05-13aRagexe, 2015-05-13aRagexeRE
+#if PACKETVER == 20150513
+ packet(0x022d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x02c4,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0883,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a8,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0923,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0924,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0927,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0960,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-05-20aRagexe, 2015-05-20aRagexeRE
+#if PACKETVER == 20150520
+ packet(0x0202,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0868,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0880,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0882,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a2,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0924,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0931,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0936,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x093d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0940,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0945,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0960,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0961,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2015-05-27aRagexe, 2015-05-27aRagexeRE
+#if PACKETVER == 20150527
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x083c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0940,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-06-03aRagexe, 2015-06-03bRagexeRE
+#if PACKETVER == 20150603
+ packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0437,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0860,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0864,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0867,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0873,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0877,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a1,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ad,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0922,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0955,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0956,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0960,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0969,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x096a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+#endif
+
+// 2015-06-10aRagexe, 2015-06-10aRagexeRE
+#if PACKETVER == 20150610
+ packet(0x022d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0438,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x07e4,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0872,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0877,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x088f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0897,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a0,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08ac,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0925,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x092e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0932,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0940,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0946,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0949,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0957,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0964,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2015-06-17aRagexe, 2015-06-17aRagexeRE, 2015-06-18aRagexe, 2015-06-18aRagexeRE
+#if PACKETVER == 20150617 || \
+ PACKETVER == 20150618
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0365,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0869,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0870,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0894,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-06-24aRagexe, 2015-06-24aRagexeRE
+#if PACKETVER == 20150624
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0365,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0870,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0940,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0966,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-07-01bRagexe, 2015-07-01bRagexeRE, 2015-07-02aRagexe
+#if PACKETVER == 20150701 || \
+ PACKETVER == 20150702
+ packet(0x023b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x07e4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x087d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0893,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a0,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a4,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a5,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a6,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08ad,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0919,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0923,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0928,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x093f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0946,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0954,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0956,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0958,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x095f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0960,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0968,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2015-07-08bRagexeRE, 2015-07-08cRagexe, 2015-07-08cRagexeRE, 2015-07-08dRagexeRE
+#if PACKETVER == 20150708
+ packet(0x022d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0368,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0872,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0962,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-07-15aRagexe, 2015-07-15aRagexeRE
+#if PACKETVER == 20150715
+ packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0362,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0436,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0437,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0835,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0873,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0879,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x087f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0886,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0895,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0896,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0897,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0899,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x089a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a4,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08ac,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0917,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x093e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0944,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0950,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0956,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0965,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2015-07-22bRagexe, 2015-07-22bRagexeRE
+#if PACKETVER == 20150722
+ packet(0x023b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0281,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0360,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0361,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0368,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0811,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0869,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x087d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0880,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0884,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0899,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a8,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0919,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0921,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0925,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x092e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x093d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x094c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2015-07-29aRagexe, 2015-07-29aRagexeRE
+#if PACKETVER == 20150729
+ packet(0x0437,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0438,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x085b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0870,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0880,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0886,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a3,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ac,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ad,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0920,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x092b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x093a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0955,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0961,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+#endif
+
+// 2015-08-05aRagexe, 2015-08-05dRagexeRE
+#if PACKETVER == 20150805
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-08-12aRagexe, 2015-08-12aRagexeRE
+#if PACKETVER == 20150812
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-08-19aRagexe, 2015-08-19aRagexeRE, 2015-08-19bRagexeRE
+#if PACKETVER == 20150819
+ packet(0x0202,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x022d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0281,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x085d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0862,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0865,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0871,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0888,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0919,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0927,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0961,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0967,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-08-26aRagexe, 2015-08-26aRagexeRE, 2015-08-26bRagexe, 2015-08-26bRagexeRE
+#if PACKETVER == 20150826
+ packet(0x0362,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0436,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x07ec,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0819,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0861,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0870,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x087b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0890,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0891,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08a1,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0924,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0945,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0951,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0959,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0968,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0969,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+#endif
+
+// 2015-09-02aRagexe, 2015-09-02aRagexeRE
+#if PACKETVER == 20150902
+ packet(0x023b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0360,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0367,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0802,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x083c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0863,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0886,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0887,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0889,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x088d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0892,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0897,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0899,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a9,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0923,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0928,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0941,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0947,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x094f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0953,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0960,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2015-09-09aRagexe, 2015-09-09aRagexeRE
+#if PACKETVER == 20150909
+ packet(0x023b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0361,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0437,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0861,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0871,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x087b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0883,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0886,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0895,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0928,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0940,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0941,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0962,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2015-09-16aRagexe, 2015-09-16cRagexe, 2015-09-16cRagexeRE
+#if PACKETVER == 20150916
+ packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0817,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0835,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0869,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0873,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0877,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08ac,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0920,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0924,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0934,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0936,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x093e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0941,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0942,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0948,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0960,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0969,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2015-09-23bRagexe, 2015-09-23bRagexeRE, 2015-09-23cRagexe, 2015-09-23dRagexe, 2015-09-23eRagexe, 2015-09-23eRagexeRE, 2015-09-23fRagexe, 2015-09-23fRagexeRE
+#if PACKETVER == 20150923
+ packet(0x0361,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0817,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x085c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0864,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0870,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0879,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x088e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0892,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0895,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a2,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a5,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a6,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x092b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0936,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0951,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2015-10-01aRagexe, 2015-10-01bRagexeRE
+#if PACKETVER == 20151001
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0960,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-10-07aRagexe, 2015-10-07aRagexeRE
+#if PACKETVER == 20151007
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x093f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0961,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-10-14bRagexe, 2015-10-14bRagexeRE
+#if PACKETVER == 20151014
+ packet(0x0202,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0817,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0838,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x085a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0863,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0874,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0881,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0883,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0884,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0889,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x089f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08aa,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0930,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0934,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0944,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x094f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0956,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0961,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+#endif
+
+// 2015-10-21aRagexe, 2015-10-21aRagexeRE, 2015-10-22aRagexe, 2015-10-22aRagexeRE
+#if PACKETVER == 20151021 || \
+ PACKETVER == 20151022
+ packet(0x023b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x02c4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-10-28bRagexeRE, 2015-10-28bRagexeRE_2, 2015-10-28cRagexe, 2015-10-28cRagexeRE, 2015-10-28dRagexe, 2015-10-28dRagexeRE, 2015-10-29aRagexe, 2015-10-29aRagexeRE
+#if PACKETVER == 20151028 || \
+ PACKETVER == 20151029
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0860,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-11-04aRagexe, 2015-11-04aRagexeRE
+#if PACKETVER == 20151104
+ packet(0x023b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0360,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0363,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0437,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0811,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0815,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0886,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a3,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a5,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0939,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093a,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x0940,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2015-11-11aRagexe, 2015-11-11aRagexeRE, 2015-11-11bRagexe
+#if PACKETVER == 20151111
+ packet(0x02c4,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x0862,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0871,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0885,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0942,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0958,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0967,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0969,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-11-18aRagexe, 2015-11-18aRagexeRE
+#if PACKETVER == 20151118
+ packet(0x022d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x035f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088b,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x08ab,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0921,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0943,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-11-25bRagexe, 2015-11-25bRagexeRE, 2015-11-25cRagexeRE, 2015-11-25dRagexe, 2015-11-25dRagexeRE
+#if PACKETVER == 20151125
+ packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0366,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x0438,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0802,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0838,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0863,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0883,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0884,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x0885,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088c,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a9,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0939,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x093e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0951,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0956,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0959,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2015-12-02aRagexe, 2015-12-02bRagexeRE
+#if PACKETVER == 20151202
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0870,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2015-12-09aRagexe, 2015-12-09aRagexeRE
+#if PACKETVER == 20151209
+ packet(0x0365,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x07e4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x07ec,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0811,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0819,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085b,36,clif->pStoragePassword,2,4,20); // CZ_ACK_STORE_PASSWORD
+ packet(0x085d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0861,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0866,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0894,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a1,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0920,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0930,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0932,-1,clif->pItemListWindowSelected,2,4,8,12); // CZ_ITEMLISTWIN_RES
+ packet(0x093b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0948,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094a,18,clif->pPartyBookingRegisterReq,2,4,6); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0956,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0961,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0964,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+#endif
+
+// 2015-12-16aRagexe, 2015-12-16aRagexeRE
+#if PACKETVER == 20151216
+ packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0361,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0364,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0436,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0865,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0870,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0874,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0885,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a2,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a9,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0947,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0949,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0954,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0960,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0966,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0968,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2015-12-23bRagexe, 2015-12-23bRagexeRE
+#if PACKETVER == 20151223
+ packet(0x02c4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0362,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0802,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0815,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0864,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0866,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0872,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0875,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0876,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0881,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0884,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0886,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0890,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0898,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08aa,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0918,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x091b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0920,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0923,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0924,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0965,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0967,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2015-12-30aRagexe, 2015-12-30aRagexeRE
+#if PACKETVER == 20151230
+ packet(0x02c4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x07ec,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0861,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0869,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0886,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x088e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0897,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0923,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0949,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-01-06aRagexe, 2016-01-06aRagexeRE
+#if PACKETVER == 20160106
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0861,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x086c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0878,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x087f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0889,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0891,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0940,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-01-13aRagexe, 2016-01-13aRagexeRE, 2016-01-13bRagexe, 2016-01-13bRagexeRE, 2016-01-13bRagexeRE_2, 2016-01-13bRagexe_2, 2016-01-13cRagexeRE
+#if PACKETVER == 20160113
+ packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x023b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0815,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x085b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0864,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x086d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0888,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0893,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a0,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a6,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08aa,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0919,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0924,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0930,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0932,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0941,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0967,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2016-01-20aRagexe, 2016-01-20aRagexeRE
+#if PACKETVER == 20160120
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0865,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-01-27aRagexeRE, 2016-01-27aRagexeRE_2, 2016-01-27bRagexeRE, 2016-01-27cRagexe, 2016-01-27dRagexe
+#if PACKETVER == 20160127
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-03aRagexe, 2016-02-03aRagexeRE
+#if PACKETVER == 20160203
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0835,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0940,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0947,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0954,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-11aRagexe, 2016-02-11aRagexeRE
+#if PACKETVER == 20160211
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0886,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-02-17aRagexe, 2016-02-17aRagexeRE, 2016-02-17bRagexeRE, 2016-02-17bRagexeRE_2, 2016-02-17cRagexeRE
+#if PACKETVER == 20160217
+ packet(0x0202,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x023b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0362,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0365,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0864,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0870,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0873,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x087a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0888,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a0,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a9,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ac,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ad,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x091d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0920,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0926,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0941,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0966,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2016-02-24aRagexe, 2016-02-24aRagexeRE, 2016-02-24bRagexeRE
+#if PACKETVER == 20160224
+ packet(0x022d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0364,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0436,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0861,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0884,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0885,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0888,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0920,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0929,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0936,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0938,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-03-02bRagexe, 2016-03-02bRagexeRE
+#if PACKETVER == 20160302
+ packet(0x022d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0367,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0802,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0864,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0865,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0867,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0868,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0883,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a6,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a9,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0927,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094e,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0950,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0967,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0968,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+#endif
+
+// 2016-03-09aRagexeRE, 2016-03-09cRagexe
+#if PACKETVER == 20160309
+ packet(0x023b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0281,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x083c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0920,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0922,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0929,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0932,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0956,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x096a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-03-16aRagexe, 2016-03-16aRagexeRE, 2016-03-18aRagexe
+#if PACKETVER == 20160316 || \
+ PACKETVER == 20160318
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0922,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-03-23aRagexe, 2016-03-23aRagexeRE, 2016-03-23bRagexe, 2016-03-23bRagexeRE
+#if PACKETVER == 20160323
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0869,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0872,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0878,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0883,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0896,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0926,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0927,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0933,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-03-30aRagexe, 2016-03-30aRagexeRE, 2016-03-30bRagexe
+#if PACKETVER == 20160330
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0365,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0925,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0939,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x093b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-04-06aRagexe, 2016-04-06aRagexeRE, 2016-04-06bRagexe
+#if PACKETVER == 20160406
+ packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x07e4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0869,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0877,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0879,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0884,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0892,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0895,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0898,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a9,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ac,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0927,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0933,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0934,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0940,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0949,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0953,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0962,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2016-04-14aRagexe, 2016-04-14aRagexeRE, 2016-04-14bRagexe, 2016-04-14bRagexeRE, 2016-04-14bRagexe_2, 2016-04-14cRagexe
+#if PACKETVER == 20160414
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0363,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0880,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0918,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0922,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0927,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0931,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0934,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0945,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0953,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-04-20aRagexeRE, 2016-04-20cRagexe
+#if PACKETVER == 20160420
+ packet(0x022d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0872,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0874,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a5,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0935,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-04-27aRagexe, 2016-04-27aRagexeRE
+#if PACKETVER == 20160427
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0835,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-04aRagexe, 2016-05-04aRagexeRE
+#if PACKETVER == 20160504
+ packet(0x0202,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0363,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0365,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x083c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x087f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0884,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0887,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x088d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0893,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0898,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08ad,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0918,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0922,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0924,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0940,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0941,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0948,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0952,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0969,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2016-05-11aRagexe, 2016-05-11aRagexeRE, 2016-05-11bRagexeRE
+#if PACKETVER == 20160511
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0894,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0918,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-18aRagexe, 2016-05-18aRagexeRE
+#if PACKETVER == 20160518
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0874,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a9,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0928,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-05-25aRagexe, 2016-05-25aRagexeRE, 2016-05-26aRagexe
+#if PACKETVER == 20160525 || \
+ PACKETVER == 20160526
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0867,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x092c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0945,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0956,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-06-01aRagexe, 2016-06-01aRagexeRE
+#if PACKETVER == 20160601
+ packet(0x0202,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0863,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0870,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x088f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0895,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a7,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ac,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0924,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0961,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-06-08aRagexe, 2016-06-08aRagexeRE, 2016-06-08bRagexe, 2016-06-08bRagexeRE, 2016-06-09aRagexe
+#if PACKETVER == 20160608 || \
+ PACKETVER == 20160609
+ packet(0x022d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0437,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07ec,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0802,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0889,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0899,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-06-15aRagexe, 2016-06-15aRagexeRE
+#if PACKETVER == 20160615
+ packet(0x0281,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x083c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0866,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0870,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0887,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x092f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0947,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0948,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0957,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0958,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0961,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2016-06-22aRagexe, 2016-06-22aRagexeRE
+#if PACKETVER == 20160622
+ packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x035f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x07e4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0865,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0867,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0880,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0887,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0890,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0892,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x089a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a2,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a8,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092d,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x092f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0936,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x093b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0959,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0969,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+#endif
+
+// 2016-06-29aRagexe, 2016-06-29aRagexeRE, 2016-06-30aRagexe, 2016-06-30aRagexeRE
+#if PACKETVER == 20160629 || \
+ PACKETVER == 20160630
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x022d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0363,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x085e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0861,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0863,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0867,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x086b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0885,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0922,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0925,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0946,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0948,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0957,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0968,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0969,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2016-07-06bRagexe, 2016-07-06cRagexeRE
+#if PACKETVER == 20160706
+ packet(0x0362,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x085f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0860,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0869,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x086b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0884,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0886,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0892,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0899,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a8,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0918,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x091b,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0924,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0927,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0929,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0939,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x093d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0944,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0945,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0957,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0958,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2016-07-13aRagexe, 2016-07-13aRagexeRE, 2016-07-13bRagexe, 2016-07-13bRagexeRE, 2016-07-13cRagexe, 2016-07-13dRagexe
+#if PACKETVER == 20160713
+ packet(0x022d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0363,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0838,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0869,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0877,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0883,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0892,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x089a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0921,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0922,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0931,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0944,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0945,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0947,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0957,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x095b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2016-07-20aRagexe, 2016-07-20aRagexeRE, 2016-07-20bRagexe, 2016-07-20bRagexeRE
+#if PACKETVER == 20160720
+ packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0363,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0365,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x07e4,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0838,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x085b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0883,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a0,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08aa,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0917,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x091c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093b,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0946,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0953,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0960,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2016-07-27aRagexe, 2016-07-27aRagexeRE, 2016-07-27bRagexe, 2016-07-27bRagexeRE
+#if PACKETVER == 20160727
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x023b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0436,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x07ec,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0868,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0869,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0883,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0887,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0891,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x089f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a4,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a7,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0936,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0946,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0951,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0966,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2016-08-03bRagexe, 2016-08-03bRagexeRE
+#if PACKETVER == 20160803
+ packet(0x0364,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x085d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0878,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0881,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0886,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0887,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0888,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0891,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0895,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08a1,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0929,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0930,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0932,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0934,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0937,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x093a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x093e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0952,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0955,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0956,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0959,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+#endif
+
+// 2016-08-10aRagexe, 2016-08-10aRagexeRE
+#if PACKETVER == 20160810
+ packet(0x0361,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0819,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x085d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x085e,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x085f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0860,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0875,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0879,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0885,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0888,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0890,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x089f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a9,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0926,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0935,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0943,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0959,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x095b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0967,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2016-08-17aRagexe, 2016-08-17aRagexeRE
+#if PACKETVER == 20160817
+ packet(0x0364,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0437,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x07e4,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0811,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0819,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x083c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x085c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0867,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0875,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0886,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0891,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x089c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08a5,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a9,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08ab,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ac,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08ad,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0929,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0930,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0939,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0960,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0963,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-08-24aRagexe, 2016-08-24aRagexeRE
+#if PACKETVER == 20160824
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0934,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-08-31aRagexe, 2016-08-31aRagexeRE, 2016-08-31bRagexe, 2016-08-31bRagexeRE
+#if PACKETVER == 20160831
+ packet(0x022d,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0366,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0874,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0876,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x087c,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08a8,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a9,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0917,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0938,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0946,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0950,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0954,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0957,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0960,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0964,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2016-09-07aRagexe, 2016-09-07aRagexeRE
+#if PACKETVER == 20160907
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x091c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-13aRagexe, 2016-09-13aRagexeRE
+#if PACKETVER == 20160913
+ packet(0x0361,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0865,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0874,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0875,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0879,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0887,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0889,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x088e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0891,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0892,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a5,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0935,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x093a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0949,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x094a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0950,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0952,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0954,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0962,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0963,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0968,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+#endif
+
+// 2016-09-21aRagexe, 2016-09-21bRagexeRE
+#if PACKETVER == 20160921
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-09-28cRagexe, 2016-09-28cRagexeRE, 2016-09-28dRagexeRE
+#if PACKETVER == 20160928
+ packet(0x0202,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0366,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0811,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0864,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0872,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0878,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0889,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x088e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0897,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x089a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a9,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0919,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0927,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0944,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0953,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0957,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+#endif
+
+// 2016-10-05aRagexe, 2016-10-05aRagexeRE
+#if PACKETVER == 20161005
+ packet(0x0202,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0838,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0863,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0886,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0891,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0892,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a0,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08ac,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0918,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0919,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x092b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0931,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0932,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x093b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0942,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0944,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0945,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x094a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0952,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x095b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2016-10-12aRagexe, 2016-10-12aRagexeRE
+#if PACKETVER == 20161012
+ packet(0x023b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0369,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x07ec,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0819,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x085b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x085e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0863,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0868,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0872,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0875,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0880,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0893,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0937,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0939,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0943,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0962,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0966,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0967,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2016-10-19aRagexe, 2016-10-19aRagexeRE
+#if PACKETVER == 20161019
+ packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0361,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0889,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0892,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0963,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-10-26bRagexe, 2016-10-26bRagexeRE, 2016-10-26cRagexe, 2016-10-26cRagexeRE
+#if PACKETVER == 20161026
+ packet(0x0363,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085f,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0862,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x086a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x086e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x087c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0886,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0891,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0894,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0898,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0926,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x092e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0930,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0953,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x095e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0962,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-11-02aRagexe, 2016-11-02aRagexeRE, 2016-11-03aRagexe, 2016-11-03aRagexeRE
+#if PACKETVER == 20161102 || \
+ PACKETVER == 20161103
+ packet(0x0361,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0367,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0802,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x083c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0869,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0874,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0886,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a2,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08aa,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x091b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0922,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0925,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0936,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0946,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0949,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x095e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0964,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0965,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0966,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+#endif
+
+// 2016-11-09aRagexe, 2016-11-09aRagexeRE, 2016-11-09bRagexe, 2016-11-09bRagexeRE, 2016-11-09cRagexeRE, 2016-11-09dRagexeRE
+#if PACKETVER == 20161109
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0362,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0366,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x085d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0870,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0876,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x088e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0898,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a7,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ad,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0927,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0937,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0954,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0956,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-11-16aRagexe, 2016-11-16bRagexeRE, 2016-11-16cRagexeRE
+#if PACKETVER == 20161116
+ packet(0x0368,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0369,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0835,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x085f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0885,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x088d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0890,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0892,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a2,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08ac,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0920,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0925,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x092a,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0931,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x093c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x094a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0957,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x095b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0967,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+#endif
+
+// 2016-11-23aRagexe, 2016-11-23aRagexeRE
+#if PACKETVER == 20161123
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0362,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0437,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085c,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0861,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0866,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x086f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0871,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0880,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0882,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089c,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a9,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08aa,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0926,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x094f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x095b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0962,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+#endif
+
+// 2016-11-30aRagexe, 2016-11-30aRagexeRE, 2016-11-30bRagexe, 2016-11-30bRagexeRE
+#if PACKETVER == 20161130
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0931,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0943,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0954,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0959,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-07cRagexe, 2016-12-07cRagexeRE, 2016-12-07dRagexeRE, 2016-12-07eRagexe, 2016-12-07eRagexeRE
+#if PACKETVER == 20161207
+ packet(0x023b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0868,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0875,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087e,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0886,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a2,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ad,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0943,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0965,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-14bRagexe, 2016-12-14bRagexeRE, 2016-12-14cRagexe, 2016-12-14cRagexeRE
+#if PACKETVER == 20161214
+ packet(0x022d,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0281,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x02c4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0436,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0862,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x086d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0887,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0895,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0899,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2016-12-21aRagexe, 2016-12-21aRagexeRE, 2016-12-21bRagexe, 2016-12-21bRagexeRE, 2016-12-21cRagexeRE, 2016-12-21dRagexeRE
+#if PACKETVER == 20161221
+ packet(0x035f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0438,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0817,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x085b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0876,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0881,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0899,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08aa,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0926,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x092e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0930,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0943,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x094b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0964,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0965,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2016-12-28aRagexe, 2016-12-28aRagexeRE
+#if PACKETVER == 20161228
+ packet(0x0362,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x085a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0865,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x086a,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0870,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0871,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0875,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x087f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0886,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0889,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0893,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a2,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a3,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a5,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ab,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08ac,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08ad,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0929,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x092c,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0934,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0935,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0938,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x093d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0944,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+#endif
+
+// 2017-01-04aRagexe, 2017-01-04bRagexeRE
+#if PACKETVER == 20170104
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x085a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0896,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-01-11aRagexe, 2017-01-11aRagexeRE
+#if PACKETVER == 20170111
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0877,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a1,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a3,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a6,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0961,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0969,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-01-18aRagexe, 2017-01-18aRagexeRE
+#if PACKETVER == 20170118
+ packet(0x022d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0364,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0865,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086f,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0873,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08ad,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x091f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0927,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0933,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0962,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2017-01-25aRagexe, 2017-01-25aRagexeRE
+#if PACKETVER == 20170125
+ packet(0x0438,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0876,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0877,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0879,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0881,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0893,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0894,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0895,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08a5,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091b,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x091c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0920,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0929,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x092b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0930,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0943,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0944,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0965,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0968,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2017-02-01aRagexe, 2017-02-01aRagexeRE
+#if PACKETVER == 20170201
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0815,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0875,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0879,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0881,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0886,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a4,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0919,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0920,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0938,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0940,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x094c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0969,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-02-08aRagexeRE, 2017-02-08bRagexe, 2017-02-08bRagexeRE
+#if PACKETVER == 20170208
+ packet(0x02c4,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0367,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0860,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0892,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a1,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ac,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0921,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0923,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0932,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0937,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-02-15aRagexe, 2017-02-15aRagexeRE
+#if PACKETVER == 20170215
+ packet(0x02c4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x035f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0876,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087c,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x087d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087e,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0883,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x088b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x088c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0890,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0896,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a2,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08a8,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0925,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x092d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0942,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x094e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x095f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0962,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0969,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+#endif
+
+// 2017-02-22aRagexe, 2017-02-22aRagexeRE
+#if PACKETVER == 20170222
+ packet(0x0202,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0866,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0870,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0871,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0877,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0894,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a3,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a8,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0939,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0943,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0962,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-02-28aRagexe, 2017-02-28aRagexeRE, 2017-02-28bRagexe
+#if PACKETVER == 20170228
+ packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0360,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0819,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x085e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0863,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086b,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0873,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0874,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0876,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0883,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0884,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0889,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0893,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x089e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a0,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a7,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x091f,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x092a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0937,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0944,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0947,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0948,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0952,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2017-03-08aRagexe, 2017-03-08bRagexeRE
+#if PACKETVER == 20170308
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-03-15cRagexe, 2017-03-15cRagexeRE
+#if PACKETVER == 20170315
+ packet(0x02c4,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x035f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0360,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0366,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0436,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x07ec,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085c,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0863,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x086a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0872,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0884,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x088b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x089c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x091d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0920,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0922,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0944,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x094a,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x094e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0950,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0952,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2017-03-22aRagexe, 2017-03-22aRagexeRE, 2017-03-22bRagexe, 2017-03-22bRagexeRE
+#if PACKETVER == 20170322
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x091a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-03-29bRagexe, 2017-03-29cRagexe, 2017-03-29cRagexeRE, 2017-03-29dRagexeRE
+#if PACKETVER == 20170329
+ packet(0x0281,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0363,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0888,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a8,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0917,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0926,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0929,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x092e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0937,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0949,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-04-05bRagexe, 2017-04-05bRagexeRE, 2017-04-05cRagexe, 2017-04-05cRagexeRE
+#if PACKETVER == 20170405
+ packet(0x022d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0281,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0363,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085f,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0860,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0864,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0865,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0893,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a5,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094c,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0964,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-04-12aRagexe, 2017-04-12aRagexeRE
+#if PACKETVER == 20170412
+ packet(0x023b,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0365,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0863,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0869,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086d,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0878,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0879,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x088b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0890,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0893,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0898,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x089a,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08a1,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x091e,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0929,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x092e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0938,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0942,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0945,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0949,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x094f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0952,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0959,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x095c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x095d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+#endif
+
+// 2017-04-19aRagexe, 2017-04-19bRagexeRE
+#if PACKETVER == 20170419
+ packet(0x0811,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0819,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0838,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0862,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0868,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0872,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0881,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0897,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0898,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x089d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0920,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0922,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0930,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0931,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0935,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093f,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0942,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x095c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x095d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0963,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0965,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+#endif
+
+// 2017-04-26bRagexe, 2017-04-26dRagexeRE
+#if PACKETVER == 20170426
+ packet(0x0281,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0866,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0887,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0899,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a2,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x08a4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0927,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0940,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0958,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0963,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-05-02aRagexe, 2017-05-02bRagexe, 2017-05-02dRagexeRE
+#if PACKETVER == 20170502
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0875,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0894,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x089c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x093c,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0950,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-05-17aRagexe, 2017-05-17aRagexeRE, 2017-05-17bRagexeRE
+#if PACKETVER == 20170517
+ packet(0x0364,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0367,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0815,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0817,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0868,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0875,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087b,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x088d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0894,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0896,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x089f,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a2,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a8,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08aa,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x091b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x093b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0946,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0960,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0964,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+#endif
+
+// 2017-05-24aRagexe, 2017-05-24aRagexeRE, 2017-05-24bRagexe
+#if PACKETVER == 20170524
+ packet(0x0364,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0368,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0802,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x085e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0860,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0864,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0866,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0868,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x086d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0873,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0874,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087d,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0882,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0894,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089c,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a1,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0923,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0925,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0934,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0946,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0958,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x095b,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0964,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0967,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0968,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+#endif
+
+// 2017-05-31aRagexe, 2017-05-31aRagexeRE
+#if PACKETVER == 20170531
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0369,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x07e4,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x07ec,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0819,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x085f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0868,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0873,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0875,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0878,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x088d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0894,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a2,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x08ac,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08ad,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0933,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0940,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0945,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0963,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0968,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+#endif
+
+// 2017-06-07bRagexeRE, 2017-06-07cRagexe, 2017-06-07cRagexeRE
+#if PACKETVER == 20170607
+ packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0364,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x07e4,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x085e,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0862,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0864,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0871,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0873,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0875,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0885,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x088a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0897,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x089d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a9,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08ab,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0917,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0918,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0919,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0925,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0927,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0931,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0934,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0938,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x093d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0944,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0949,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2017-06-14bRagexe, 2017-06-14bRagexeRE
+#if PACKETVER == 20170614
+ packet(0x023b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0361,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0364,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0367,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0838,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x083c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0860,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0865,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0866,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0867,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x086b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x086c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0877,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x087d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0889,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a2,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08ad,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0928,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x092f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0936,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0944,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0957,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0963,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2017-06-21aRagexeRE, 2017-06-21bRagexe
+#if PACKETVER == 20170621
+ packet(0x0202,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0365,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0366,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0802,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085d,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x087d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0885,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a8,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0956,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0957,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x095c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0961,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-06-28bRagexe, 2017-06-28bRagexeRE
+#if PACKETVER == 20170628
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0863,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-07-05aRagexe, 2017-07-05aRagexeRE
+#if PACKETVER == 20170705
+ packet(0x0202,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x02c4,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0879,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0886,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x088d,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x092f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0930,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0932,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0934,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x094c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-07-12bRagexe, 2017-07-12bRagexeRE
+#if PACKETVER == 20170712
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0944,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-07-19aRagexe, 2017-07-19aRagexeRE
+#if PACKETVER == 20170719
+ packet(0x022d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0367,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0368,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0369,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x07e4,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085a,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0863,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x086e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x087d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0881,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0882,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0891,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0898,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089d,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a6,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a8,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091b,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x092c,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x092e,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x092f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x093d,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0944,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0966,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+#endif
+
+// 2017-07-26aRagexe, 2017-07-26cRagexeRE
+#if PACKETVER == 20170726
+ packet(0x0363,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0369,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0438,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0838,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0873,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0874,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0878,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0881,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0888,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x088e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a3,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a7,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08aa,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08ab,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08ac,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x091e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0921,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0923,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0943,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x094f,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0950,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0952,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0954,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095a,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0963,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+#endif
+
+// 2017-08-01aRagexe, 2017-08-01aRagexeRE, 2017-08-01bRagexe
+#if PACKETVER == 20170801
+ packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0281,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0362,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095a,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-08-09cRagexe, 2017-08-09cRagexeRE
+#if PACKETVER == 20170809
+ packet(0x022d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0281,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0364,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0366,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0367,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x07e4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0802,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0835,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0868,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x086e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086f,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0876,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0880,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0892,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0895,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0899,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a3,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a6,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0918,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0921,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x092b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0931,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0939,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x093b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0940,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2017-08-16cRagexe, 2017-08-16cRagexeRE, 2017-08-16dRagexe, 2017-08-16dRagexeRE
+#if PACKETVER == 20170816
+ packet(0x022d,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x035f,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0361,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0362,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0438,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x085a,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0862,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0864,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x087e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0881,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0882,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0884,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0888,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0889,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x08a3,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a7,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08a9,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08ac,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x091c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0921,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0925,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x092c,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x093a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x093d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0940,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0941,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0950,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0960,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+#endif
+
+// 2017-08-23aRagexe, 2017-08-23aRagexeRE
+#if PACKETVER == 20170823
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x086d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08ac,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-08-30aRagexe, 2017-08-30aRagexeRE, 2017-08-30bRagexe, 2017-08-30bRagexeRE
+#if PACKETVER == 20170830
+ packet(0x0281,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x02c4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0363,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0364,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0865,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x086a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0875,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0884,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0888,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0897,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0899,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089e,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a8,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0921,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0925,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x092e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0939,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x093e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0940,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0942,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0943,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0947,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0951,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0959,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2017-09-06cRagexe, 2017-09-06cRagexeRE
+#if PACKETVER == 20170906
+ packet(0x0202,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0281,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x02c4,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0860,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a2,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a3,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a7,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x091a,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0953,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-09-13bRagexeRE, 2017-09-13cRagexe
+#if PACKETVER == 20170913
+ packet(0x0281,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x035f,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0437,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x07e4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0817,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0835,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x085a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0860,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0865,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0866,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x088c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0890,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0891,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0892,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a6,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x08a7,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x08aa,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08ab,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08ac,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ad,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x091b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0920,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0923,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0925,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0927,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x095a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095c,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+#endif
+
+// 2017-09-20aRagexe, 2017-09-20bRagexeRE
+#if PACKETVER == 20170920
+ packet(0x0369,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0436,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x07ec,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x085a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0861,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0862,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0864,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0865,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x086c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0874,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0875,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0889,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x088e,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x089b,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0919,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x091e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0921,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0923,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0926,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0937,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0939,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0945,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x094c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0961,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0966,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x096a,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+#endif
+
+// 2017-09-27bRagexe, 2017-09-27bRagexeRE, 2017-09-27cRagexe, 2017-09-27dRagexe, 2017-09-27dRagexeRE
+#if PACKETVER == 20170927
+ packet(0x02c4,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x035f,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0361,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0362,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0366,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x085c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0873,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0875,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x087e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x088b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0899,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x089a,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08a3,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a5,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a6,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08ad,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x091e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0922,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0923,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0927,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x093b,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0942,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0945,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0959,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x095a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2017-10-02cRagexe, 2017-10-02cRagexeRE
+#if PACKETVER == 20171002
+ packet(0x022d,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0885,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0897,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0928,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x092d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0934,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093b,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x093e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0943,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-10-11aRagexe, 2017-10-11aRagexeRE, 2017-10-11bRagexe, 2017-10-11bRagexeRE
+#if PACKETVER == 20171011
+ packet(0x023b,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0882,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0950,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0954,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-10-18aRagexe, 2017-10-18aRagexeRE
+#if PACKETVER == 20171018
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0363,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x087a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089a,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a6,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0938,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0944,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x094a,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x094f,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-10-25bRagexe, 2017-10-25bRagexeRE, 2017-10-25cRagexe, 2017-10-25cRagexeRE, 2017-10-25dRagexe, 2017-10-25dRagexeRE, 2017-10-25eRagexe, 2017-10-25eRagexeRE
+#if PACKETVER == 20171025
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a2,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-01aRagexe, 2017-11-01bRagexeRE
+#if PACKETVER == 20171101
+ packet(0x022d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0368,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0369,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0438,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0835,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x085b,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0860,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0872,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0876,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0886,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088e,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0890,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0895,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0899,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x089b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x089c,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a0,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x08ab,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08ad,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x091b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0939,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x094a,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x094d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0952,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0957,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x095a,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0962,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0966,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2017-11-08aRagexe, 2017-11-08bRagexeRE
+#if PACKETVER == 20171108
+ packet(0x0202,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x07e4,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0815,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0819,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0838,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x085d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0863,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0878,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x087e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0884,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0896,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0897,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x08a2,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x08a9,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08ad,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091d,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x091f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0940,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0941,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0945,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0947,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0949,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x094e,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0958,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x095a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0963,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0965,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0967,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2017-11-15aRagexe, 2017-11-15aRagexeRE
+#if PACKETVER == 20171115
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0365,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x086d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x086f,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x087e,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0883,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0890,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0898,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0926,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0958,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x095a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-22aRagexe, 2017-11-22bRagexeRE
+#if PACKETVER == 20171122
+ packet(0x0281,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x02c4,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x035f,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0838,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x083c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x085b,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0862,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0867,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0877,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0885,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0890,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0891,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0893,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0897,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0898,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x089a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x089e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x08a6,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x08a9,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x091e,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0920,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0923,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0934,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x093b,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0945,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0947,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0962,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0968,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+#endif
+
+// 2017-11-29aRagexe, 2017-11-29aRagexeRE
+#if PACKETVER == 20171129
+ packet(0x02c4,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x035f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0363,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0365,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0862,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x086d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0876,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0878,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x08a5,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0940,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x094b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0953,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0966,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-12-06aRagexeRE, 2017-12-06bRagexe, 2017-12-06cRagexe
+#if PACKETVER == 20171206
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0867,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x086a,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x086e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0885,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0888,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0897,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x089d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08a2,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x08a4,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0923,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x092e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0936,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0942,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0958,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0961,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-12-13bRagexe, 2017-12-13bRagexeRE
+#if PACKETVER == 20171213
+ packet(0x0202,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0860,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0881,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0890,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x091a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0957,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-12-20aRagexe, 2017-12-20aRagexeRE
+#if PACKETVER == 20171220
+ packet(0x0281,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0366,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0369,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0436,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0437,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x085e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0861,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0872,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0873,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0880,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0882,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0885,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0899,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x089e,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x08a7,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x091b,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091e,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0924,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0929,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0933,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x093e,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0941,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0946,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x094e,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0951,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0957,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0960,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0964,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+#endif
+
+// 2017-12-27aRagexe, 2017-12-27aRagexeRE
+#if PACKETVER == 20171227
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x087d,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0888,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x088a,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x088d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x08a0,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a5,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092c,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x092e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0938,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0945,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0969,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x096a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+#endif
+
+// 2018-01-03aRagexe, 2018-01-03aRagexeRE, 2018-01-03bRagexe, 2018-01-03bRagexeRE
+#if PACKETVER == 20180103
+ packet(0x02c4,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0363,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0865,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x086b,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x086d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0872,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0876,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0879,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x088e,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0899,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x089f,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x08a9,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ab,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x08ac,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x091d,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0922,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0926,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0927,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0935,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0938,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0941,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0946,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0948,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094e,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095d,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x095f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0960,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+#endif
+
+// 2018-01-17aRagexe, 2018-01-17aRagexeRE
+#if PACKETVER == 20180117
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0875,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2018-01-24bRagexe, 2018-01-24bRagexeRE
+#if PACKETVER == 20180124
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0802,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085f,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0868,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x086a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x086f,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x087a,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0888,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0890,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0919,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0940,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0946,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x094d,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0958,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0961,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+
+#endif /* MAP_PACKETS_SHUFFLE_MAIN_H */
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
new file mode 100644
index 000000000..01facb96b
--- /dev/null
+++ b/src/map/packets_shuffle_zero.h
@@ -0,0 +1,489 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2013-2018 Hercules Dev Team
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+//Included directly by clif.c in packet_loaddb()
+
+#ifndef MAP_PACKETS_SHUFFLE_ZERO_H
+#define MAP_PACKETS_SHUFFLE_ZERO_H
+
+#ifndef packet
+ #define packet(a,b,...)
+#endif
+
+/*
+ * packet syntax
+ * - packet(packet_id,length,function,offset ( specifies the offset of a packet field in bytes from the begin of the packet ),...)
+ * - Example: packet(0x0072,19,clif->pWantToConnection,2,6,10,14,18);
+ */
+
+/* This file is autogenerated, please do not commit manual changes */
+
+
+// 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero
+#if PACKETVER == 20171019 || \
+ PACKETVER == 20171023 || \
+ PACKETVER == 20171024 || \
+ PACKETVER == 20171025 || \
+ PACKETVER == 20171027 || \
+ PACKETVER == 20171030 || \
+ PACKETVER == 20171031 || \
+ PACKETVER == 20171109 || \
+ PACKETVER == 20171113
+ packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0281,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x02c4,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x035f,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0360,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0361,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0362,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0363,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0364,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0365,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0366,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0367,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0369,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0436,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0437,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0438,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x07e4,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x07ec,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0802,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0811,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0815,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0817,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0819,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2017-11-15aRagexe_zero, 2017-11-15bRagexe_zero, 2017-11-16aRagexe_zero, 2017-11-17aRagexe_zero
+#if PACKETVER == 20171115 || \
+ PACKETVER == 20171116 || \
+ PACKETVER == 20171117
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0860,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0881,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0922,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0959,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0966,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-21aRagexe_zero, 2017-11-22aRagexe_zero
+#if PACKETVER == 20171121 || \
+ PACKETVER == 20171122
+ packet(0x0202,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x022d,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0866,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0889,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0892,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08ad,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0918,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x091f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0928,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0943,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0950,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-23dRagexe_zero
+#if PACKETVER == 20171123
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0367,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085f,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0860,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0876,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0882,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x088c,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0896,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x089e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x08a8,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x092b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0930,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0935,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0947,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0960,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-27aRagexe_zero, 2017-11-27cRagexe_zero, 2017-11-28aRagexe_zero
+#if PACKETVER == 20171127 || \
+ PACKETVER == 20171128
+ packet(0x0202,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x022d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x023b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0361,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0362,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0363,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0364,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0365,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0436,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x07e4,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x07ec,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0802,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0893,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-11-30bRagexe_zero
+#if PACKETVER == 20171130
+ packet(0x0361,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0864,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x086f,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0871,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0872,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0875,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0878,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0881,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0884,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0886,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0887,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x088b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0894,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0899,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x08a0,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x08a7,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0925,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0928,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0930,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0931,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0935,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093a,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0947,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x094c,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x095b,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x095f,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0960,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0965,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+#endif
+
+// 2017-12-04bRagexe_zero
+#if PACKETVER == 20171204
+ packet(0x0281,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x035f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0360,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0368,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0369,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0437,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0438,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0817,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0835,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0838,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x083c,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x085b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086f,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x087d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0885,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0887,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0892,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0896,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x08aa,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0917,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091b,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0921,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0924,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0937,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0960,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x096a,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+#endif
+
+// 2017-12-06aRagexe_zero, 2017-12-06bRagexe_zero, 2017-12-06cRagexe_zero, 2017-12-06dRagexe_zero, 2017-12-08aRagexe_zero, 2017-12-08cRagexe_zero, 2017-12-08dRagexe_zero, 2017-12-09bRagexe_zero, 2017-12-09cRagexe_zero, 2017-12-10aRagexe_zero, 2017-12-11bRagexe_zero, 2017-12-12aRagexe_zero, 2017-12-13aRagexe_zero, 2017-12-13bRagexe_zero, 2017-12-13cRagexe_zero
+#if PACKETVER == 20171206 || \
+ PACKETVER == 20171208 || \
+ PACKETVER == 20171209 || \
+ PACKETVER == 20171210 || \
+ PACKETVER == 20171211 || \
+ PACKETVER == 20171212 || \
+ PACKETVER == 20171213
+ packet(0x0281,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0366,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0436,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0835,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x083c,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0860,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0862,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0864,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0870,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0878,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x087a,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x087b,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0885,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x088d,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0893,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0897,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x089e,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x08a4,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x08ac,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0920,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0934,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0936,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x093a,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0940,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0941,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0959,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x095c,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x095f,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+#endif
+
+// 2017-12-14cRagexe_zero
+#if PACKETVER == 20171214
+ packet(0x023b,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x02c4,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0438,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x085b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x085e,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0862,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0864,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x086a,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0871,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0873,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x0886,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x088b,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x088c,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0892,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0894,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0897,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x08a3,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x08a5,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x08ac,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0933,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x094d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x094f,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0951,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x095a,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x095b,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0960,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0969,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x096a,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+#endif
+
+// 2017-12-20aRagexe_zero, 2017-12-21aRagexe_zero, 2017-12-21bRagexe_zero
+#if PACKETVER == 20171220 || \
+ PACKETVER == 20171221
+ packet(0x022d,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0281,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0438,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x07ec,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0819,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0835,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0838,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x085f,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0867,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x086c,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0872,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x087a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x087e,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0899,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x089b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x089c,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x08a3,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x08a5,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x08ad,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x091f,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0921,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x092d,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092e,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0932,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0934,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0937,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x094d,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x095b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x096a,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+#endif
+
+// 2017-12-27bRagexe_zero, 2017-12-29aRagexe_zero
+#if PACKETVER == 20171227 || \
+ PACKETVER == 20171229
+ packet(0x02c4,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0860,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x086c,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0871,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0872,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0874,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0876,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0877,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0878,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x087b,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0885,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x0889,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x088b,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0894,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x089f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x091c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0920,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0925,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x092d,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0930,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x0939,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x093e,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0941,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0945,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0946,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x094b,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x095e,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0967,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0968,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+#endif
+
+// 2018-01-03aRagexe_zero
+#if PACKETVER == 20180103
+ packet(0x035f,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0360,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x0366,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x07e4,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x083c,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x0860,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+ packet(0x0866,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x086d,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x0871,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x0872,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x0874,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x087b,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x0885,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0888,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0890,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0896,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x089d,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x08a6,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x091e,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0924,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0938,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x093b,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0956,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x0958,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x095b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x095d,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0964,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x0966,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x096a,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+#endif
+
+// 2018-01-17aRagexe_zero
+#if PACKETVER == 20180117
+ packet(0x0361,26,clif->pPartyInvite2,2); // CZ_PARTY_JOIN_REQ
+ packet(0x0364,6,clif->pSolveCharName,2); // CZ_REQNAME_BYGID
+ packet(0x0438,8,clif->pDull/*,XXX*/); // CZ_JOIN_BATTLE_FIELD
+ packet(0x07e4,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
+ packet(0x083c,6,clif->pDropItem,2,4); // CZ_ITEM_THROW
+ packet(0x0866,-1,clif->pReqOpenBuyingStore,2,4,8,9,89); // CZ_REQ_OPEN_BUYING_STORE
+ packet(0x086e,10,clif->pUseSkillToPos,2,4,6,8); // CZ_USE_SKILL_TOGROUND
+ packet(0x086f,6,clif->pReqClickBuyingStore,2); // CZ_REQ_CLICK_TO_BUYING_STORE
+ packet(0x087d,19,clif->pWantToConnection,2,6,10,14,18); // CZ_ENTER
+ packet(0x0881,10,clif->pUseSkillToId,2,4,6); // CZ_USE_SKILL
+ packet(0x0884,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
+ packet(0x0886,6,clif->pTakeItem,2); // CZ_ITEM_PICKUP
+ packet(0x0890,8,clif->pMoveToKafra,2,4); // CZ_MOVE_ITEM_FROM_BODY_TO_STORE
+ packet(0x0891,6,clif->pGetCharNameRequest,2); // CZ_REQNAME
+ packet(0x0893,7,clif->pActionRequest,2,6); // CZ_REQUEST_ACT
+ packet(0x0899,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15); // CZ_SEARCH_STORE_INFO
+ packet(0x089d,-1,clif->pItemListWindowSelected,2,4,8); // CZ_ITEMLISTWIN_RES
+ packet(0x089e,5,clif->pChangeDir,2,4); // CZ_CHANGE_DIRECTION
+ packet(0x0919,6,clif->pTickSend,2); // CZ_REQUEST_TIME
+ packet(0x091c,8,clif->pMoveFromKafra,2,4); // CZ_MOVE_ITEM_FROM_STORE_TO_BODY
+ packet(0x091f,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10); // CZ_USE_SKILL_TOGROUND_WITHTALKBOX
+ packet(0x0921,5,clif->pWalkToXY,2); // CZ_REQUEST_MOVE
+ packet(0x0928,2,clif->pReqCloseBuyingStore,0); // CZ_REQ_CLOSE_BUYING_STORE
+ packet(0x0929,18,clif->pPartyBookingRegisterReq,2,4); // CZ_PARTY_BOOKING_REQ_REGISTER
+ packet(0x092d,4,clif->pDull/*,XXX*/); // CZ_GANGSI_RANK
+ packet(0x0933,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
+ packet(0x0946,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
+ packet(0x095e,-1,clif->pReqTradeBuyingStore,2,4,8,12); // CZ_REQ_TRADE_BUYING_STORE
+ packet(0x0963,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
+#endif
+
+
+#endif /* MAP_PACKETS_SHUFFLE_ZERO_H */
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index 03b555e2b..1105bec96 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -191,7 +191,9 @@ enum packet_headers {
skill_entryType = 0x9ca,
#endif
graffiti_entryType = 0x1c9,
-#if PACKETVER > 20130000 /* not sure date */
+#ifdef PACKETVER_ZERO
+ dropflooritemType = 0xadd,
+#elif PACKETVER > 20130000 /* not sure date */
dropflooritemType = 0x84b,
#else
dropflooritemType = 0x9e,
@@ -330,6 +332,23 @@ enum packet_headers {
#else // PACKETVER >= 20160316
rodexcheckplayer = 0x0A51,
#endif
+#if PACKETVER >= 20151223
+ skillscale = 0xA41,
+#endif
+#if PACKETVER >= 20130821
+ progressbarunit = 0x09D1,
+#endif
+#if PACKETVER >= 20171207
+ partymemberinfo = 0x0ae4,
+ partyinfo = 0x0ae5,
+#elif PACKETVER >= 20170502
+// [4144] probably 0xa43 packet can works on older clients because in client was added in 2015-10-07
+ partymemberinfo = 0x0a43,
+ partyinfo = 0x0a44,
+#else
+ partymemberinfo = 0x01e9,
+ partyinfo = 0x00fb,
+#endif
};
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
@@ -492,6 +511,10 @@ struct packet_dropflooritem {
uint8 subX;
uint8 subY;
int16 count;
+#ifdef PACKETVER_ZERO
+ int8 showdropeffect;
+ int16 dropeffectmode;
+#endif
} __attribute__((packed));
struct packet_idle_unit2 {
#if PACKETVER < 20091103
@@ -1478,6 +1501,67 @@ struct PACKET_ZC_ACK_ITEM_FROM_MAIL {
int8 result;
} __attribute__((packed));
+struct PACKET_ZC_SKILL_SCALE {
+ int16 PacketType;
+ uint32 AID;
+ int16 skill_id;
+ int16 skill_lv;
+ int16 x;
+ int16 y;
+ uint32 casttime;
+} __attribute__((packed));
+
+struct ZC_PROGRESS_ACTOR {
+ int16 PacketType;
+ int32 GID;
+ int32 color;
+ uint32 time;
+} __attribute__((packed));
+
+struct PACKET_ZC_ADD_MEMBER_TO_GROUP {
+ int16 packetType;
+ uint32 AID;
+#if PACKETVER >= 20171207
+ uint32 GID;
+#endif
+ uint32 leader;
+// [4144] probably 0xa43 packet can works on older clients because in client was added in 2015-10-07
+#if PACKETVER >= 20170502
+ int16 class;
+ int16 baseLevel;
+#endif
+ int16 x;
+ int16 y;
+ uint8 offline;
+ char partyName[NAME_LENGTH];
+ char playerName[NAME_LENGTH];
+ char mapName[MAP_NAME_LENGTH_EXT];
+ int8 sharePickup;
+ int8 shareLoot;
+} __attribute__((packed));
+
+struct PACKET_ZC_GROUP_LIST_SUB {
+ uint32 AID;
+#if PACKETVER >= 20171207
+ uint32 GID;
+#endif
+ char playerName[NAME_LENGTH];
+ char mapName[MAP_NAME_LENGTH_EXT];
+ uint8 leader;
+ uint8 offline;
+#if PACKETVER >= 20170502
+ int16 class;
+ int16 baseLevel;
+#endif
+} __attribute__((packed));
+
+struct PACKET_ZC_GROUP_LIST {
+ int16 packetType;
+ int16 packetLen;
+ char partyName[NAME_LENGTH];
+ struct PACKET_ZC_GROUP_LIST_SUB members[];
+} __attribute__((packed));
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris
diff --git a/src/map/pc.c b/src/map/pc.c
index 0636ebafa..449cb25d3 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1560,7 +1560,7 @@ int pc_calc_skillpoint(struct map_session_data* sd) {
nullpo_ret(sd);
- for (i = 1; i < MAX_SKILL; i++) {
+ for (i = 1; i < MAX_SKILL_DB; i++) {
int skill_lv = pc->checkskill2(sd,i);
if (skill_lv > 0) {
inf2 = skill->dbs->db[i].inf2;
@@ -1596,7 +1596,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
classidx = pc->class2idx(class);
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED ) //Don't touch these
sd->status.skill[i].id = 0; //First clear skills.
/* permanent skills that must be re-checked */
@@ -1613,7 +1613,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
}
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if( sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED )
{ // Restore original level of skills after deleting earned skills.
sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0;
@@ -1622,18 +1622,25 @@ int pc_calc_skilltree(struct map_session_data *sd)
if( sd->sc.count && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER && skill->dbs->db[i].nameid >= DC_HUMMING && skill->dbs->db[i].nameid <= DC_SERVICEFORYOU )
{ //Enable Bard/Dancer spirit linked skills.
- if( sd->status.sex )
- { //Link dancer skills to bard.
- // i can be < 8?
- if( sd->status.skill[i-8].lv < 10 )
+ if (sd->status.sex) {
+ // Link dancer skills to bard.
+ if (i < 8) {
+ Assert_report(i >= 8);
+ continue;
+ }
+ if (sd->status.skill[i-8].lv < 10)
continue;
sd->status.skill[i].id = skill->dbs->db[i].nameid;
sd->status.skill[i].lv = sd->status.skill[i-8].lv; // Set the level to the same as the linking skill
sd->status.skill[i].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill
- } else { //Link bard skills to dancer.
- if( sd->status.skill[i].lv < 10 )
+ } else {
+ // Link bard skills to dancer.
+ if (i < 8) {
+ Assert_report(i >= 8);
+ continue;
+ }
+ if (sd->status.skill[i].lv < 10)
continue;
- // i can be < 8?
sd->status.skill[i-8].id = skill->dbs->db[i-8].nameid;
sd->status.skill[i-8].lv = sd->status.skill[i].lv; // Set the level to the same as the linking skill
sd->status.skill[i-8].flag = SKILL_FLAG_TEMPORARY; // Tag it as a non-savable, non-uppable, bonus skill
@@ -1642,7 +1649,7 @@ int pc_calc_skilltree(struct map_session_data *sd)
}
if( pc_has_permission(sd, PC_PERM_ALL_SKILL) ) {
- for( i = 0; i < MAX_SKILL; i++ ) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
switch(skill->dbs->db[i].nameid) {
/**
* Dummy skills must be added here otherwise they'll be displayed in the,
@@ -1836,7 +1843,7 @@ int pc_clean_skilltree(struct map_session_data *sd)
{
int i;
nullpo_ret(sd);
- for (i = 0; i < MAX_SKILL; i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY || sd->status.skill[i].flag == SKILL_FLAG_PLAGIARIZED) {
sd->status.skill[i].id = 0;
sd->status.skill[i].lv = 0;
@@ -4143,7 +4150,7 @@ int pc_bonus5(struct map_session_data *sd,int type,int type2,int type3,int type4
*------------------------------------------*/
int pc_skill(struct map_session_data *sd, int id, int level, int flag)
{
- uint16 index = 0;
+ int index = 0;
nullpo_ret(sd);
if (!(index = skill->get_index(id))) {
@@ -4774,7 +4781,7 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount)
return 0;
}
- if (!map->addflooritem(&sd->bl, &sd->status.inventory[n], amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 2))
+ if (!map->addflooritem(&sd->bl, &sd->status.inventory[n], amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 2, false))
return 0;
pc->delitem(sd, n, amount, 1, DELITEM_NORMAL, LOG_TYPE_PICKDROP_PLAYER);
@@ -5869,7 +5876,7 @@ int pc_memo(struct map_session_data* sd, int pos) {
* Return player sd skill_lv learned for given skill
*------------------------------------------*/
int pc_checkskill(struct map_session_data *sd,uint16 skill_id) {
- uint16 index = 0;
+ int index = 0;
if(sd == NULL) return 0;
if( skill_id >= GD_SKILLBASE && skill_id < GD_MAX ) {
struct guild *g;
@@ -5888,8 +5895,9 @@ int pc_checkskill(struct map_session_data *sd,uint16 skill_id) {
return 0;
}
int pc_checkskill2(struct map_session_data *sd,uint16 index) {
- if(sd == NULL) return 0;
- if(index >= ARRAYLENGTH(sd->status.skill) ) {
+ if (sd == NULL)
+ return 0;
+ if (index >= MAX_SKILL_DB) {
ShowError("pc_checkskill: Invalid skill index %d (char_id=%d).\n", index, sd->status.char_id);
return 0;
}
@@ -7229,7 +7237,7 @@ int pc_statusup2(struct map_session_data* sd, int type, int val)
* Skill point allocation
*------------------------------------------*/
int pc_skillup(struct map_session_data *sd,uint16 skill_id) {
- uint16 index = 0;
+ int index = 0;
nullpo_ret(sd);
if( skill_id >= GD_SKILLBASE && skill_id < GD_SKILLBASE+MAX_GUILDSKILL ) {
@@ -7286,7 +7294,7 @@ int pc_allskillup(struct map_session_data *sd)
nullpo_ret(sd);
- for(i=0;i<MAX_SKILL;i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if (sd->status.skill[i].flag != SKILL_FLAG_PERMANENT && sd->status.skill[i].flag != SKILL_FLAG_PERM_GRANTED && sd->status.skill[i].flag != SKILL_FLAG_PLAGIARIZED) {
sd->status.skill[i].lv = (sd->status.skill[i].flag == SKILL_FLAG_TEMPORARY) ? 0 : sd->status.skill[i].flag - SKILL_FLAG_REPLACED_LV_0;
sd->status.skill[i].flag = SKILL_FLAG_PERMANENT;
@@ -7297,7 +7305,7 @@ int pc_allskillup(struct map_session_data *sd)
if (pc_has_permission(sd, PC_PERM_ALL_SKILL)) { //Get ALL skills except npc/guild ones. [Skotlex]
//and except SG_DEVIL [Komurka] and MO_TRIPLEATTACK and RG_SNATCHER [ultramage]
- for(i=0;i<MAX_SKILL;i++){
+ for (i = 0; i < MAX_SKILL_DB; i++) {
switch( skill->dbs->db[i].nameid ) {
case SG_DEVIL:
case MO_TRIPLEATTACK:
@@ -7537,9 +7545,7 @@ int pc_resetskill(struct map_session_data* sd, int flag)
status_change_end(&sd->bl, SC_SPRITEMABLE, INVALID_TIMER);
}
- for( i = 1; i < MAX_SKILL; i++ ) {
- // FIXME: We're looping on i = [1..MAX_SKILL-1] (which makes sense as index for sd->status.skill[]) but then we're using the
- // same i to access skill->dbs->db[], and especially to check skill_ischangesex(). This is wrong.
+ for (i = 1; i < MAX_SKILL_DB; i++) {
uint16 skill_id = 0;
int lv = sd->status.skill[i].lv;
if (lv < 1) continue;
@@ -7956,7 +7962,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) {
item_tmp.card[1]=0;
item_tmp.card[2]=GetWord(sd->status.char_id,0); // CharId
item_tmp.card[3]=GetWord(sd->status.char_id,1);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
// activate Steel body if a super novice dies at 99+% exp [celest]
diff --git a/src/map/pc.h b/src/map/pc.h
index 50cb1b68e..df0df979d 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -292,7 +292,7 @@ struct map_session_data {
uint16 skill_id_old,skill_lv_old;
uint16 skill_id_dance,skill_lv_dance;
short cook_mastery; // range: [0,1999] [Inkfish]
- bool blockskill[MAX_SKILL];
+ bool blockskill[MAX_SKILL_DB];
int cloneskill_id, reproduceskill_id;
int menuskill_id, menuskill_val, menuskill_val2;
int invincible_timer;
diff --git a/src/map/pet.c b/src/map/pet.c
index 9ac496659..2997a4b5a 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -325,7 +325,7 @@ int pet_return_egg(struct map_session_data *sd, struct pet_data *pd)
tmp_item.card[3] = pd->pet.rename_flag;
if((flag = pc->additem(sd,&tmp_item,1,LOG_TYPE_EGG))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
pd->pet.incubate = 1;
unit->free(&pd->bl,CLR_OUTSIGHT);
@@ -610,7 +610,7 @@ bool pet_get_egg(int account_id, short pet_class, int pet_id ) {
tmp_item.card[3] = 0; //New pets are not named.
if((ret = pc->additem(sd,&tmp_item,1,LOG_TYPE_PICKDROP_PLAYER))) {
clif->additem(sd,0,0,ret);
- map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
return true;
@@ -751,7 +751,7 @@ int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) {
tmp_item.identify = 1;
if((flag = pc->additem(sd,&tmp_item,1,LOG_TYPE_CONSUME))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
if( battle_config.pet_equip_required )
{ // Skotlex: halt support timers if needed
@@ -1026,7 +1026,7 @@ int pet_delay_item_drop(int tid, int64 tick, int id, intptr_t data) {
struct item_drop *ditem_prev;
map->addflooritem(NULL, &ditem->item_data, ditem->item_data.amount,
list->m, list->x, list->y,
- list->first_charid, list->second_charid, list->third_charid, 0);
+ list->first_charid, list->second_charid, list->third_charid, 0, false);
ditem_prev = ditem;
ditem = ditem->next;
ers_free(pet->item_drop_ers, ditem_prev);
diff --git a/src/map/script.c b/src/map/script.c
index d2101d21f..d7a65f554 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7923,7 +7923,7 @@ BUILDIN(getitem) {
if ((flag = pc->additem(sd, &it, get_count, LOG_TYPE_SCRIPT))) {
clif->additem(sd, 0, 0, flag);
if( pc->candrop(sd,&it) )
- map->addflooritem(&sd->bl, &it, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &it, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -8031,7 +8031,7 @@ BUILDIN(getitem2)
if ((flag = pc->additem(sd, &item_tmp, get_count, LOG_TYPE_SCRIPT))) {
clif->additem(sd, 0, 0, flag);
if( pc->candrop(sd,&item_tmp) )
- map->addflooritem(&sd->bl, &item_tmp, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -8224,7 +8224,7 @@ BUILDIN(makeitem)
item_tmp.nameid = nameid;
item_tmp.identify=1;
- map->addflooritem(NULL, &item_tmp, amount, m, x, y, 0, 0, 0, 0);
+ map->addflooritem(NULL, &item_tmp, amount, m, x, y, 0, 0, 0, 0, false);
return true;
}
@@ -8308,7 +8308,7 @@ BUILDIN(makeitem2)
item_tmp.card[2] = (short)script_getnum(st, 9);
item_tmp.card[3] = (short)script_getnum(st, 10);
- map->addflooritem(NULL, &item_tmp, amount, m, x, y, 0, 0, 0, 0);
+ map->addflooritem(NULL, &item_tmp, amount, m, x, y, 0, 0, 0, 0, false);
return true;
}
@@ -12190,7 +12190,7 @@ BUILDIN(homunculus_mutate)
if (script_hasdata(st,2))
homun_id = script_getnum(st,2);
else
- homun_id = 6048 + (rnd() % 4);
+ homun_id = HOMID_EIRA + (rnd() % 4);
m_class = homun->class2type(sd->hd->homunculus.class_);
m_id = homun->class2type(homun_id);
@@ -13576,7 +13576,7 @@ BUILDIN(successremovecards)
if ((flag = pc->additem(sd, &item_tmp, 1, LOG_TYPE_SCRIPT))) {
clif->additem(sd, 0, 0, flag);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -13634,7 +13634,7 @@ BUILDIN(failedremovecards)
if ((flag = pc->additem(sd, &item_tmp, 1, LOG_TYPE_SCRIPT))) {
clif->additem(sd, 0, 0, flag);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -14081,53 +14081,61 @@ BUILDIN(getiteminfo)
}
switch (n) {
- case 0:
+ case ITEMINFO_BUYPRICE:
script_pushint(st, it->value_buy);
break;
- case 1:
+ case ITEMINFO_SELLPRICE:
script_pushint(st, it->value_sell);
break;
- case 2:
+ case ITEMINFO_TYPE:
script_pushint(st, it->type);
break;
- case 3:
+ case ITEMINFO_MAXCHANCE:
script_pushint(st, it->maxchance);
break;
- case 4:
+ case ITEMINFO_SEX:
script_pushint(st, it->sex);
break;
- case 5:
+ case ITEMINFO_LOC:
script_pushint(st, it->equip);
break;
- case 6:
+ case ITEMINFO_WEIGHT:
script_pushint(st, it->weight);
break;
- case 7:
+ case ITEMINFO_ATK:
script_pushint(st, it->atk);
break;
- case 8:
+ case ITEMINFO_DEF:
script_pushint(st, it->def);
break;
- case 9:
+ case ITEMINFO_RANGE:
script_pushint(st, it->range);
break;
- case 10:
+ case ITEMINFO_SLOTS:
script_pushint(st, it->slot);
break;
- case 11:
+ case ITEMINFO_SUBTYPE:
script_pushint(st, it->subtype);
break;
- case 12:
+ case ITEMINFO_ELV:
script_pushint(st, it->elv);
break;
- case 13:
+ case ITEMINFO_WLV:
script_pushint(st, it->wlv);
break;
- case 14:
+ case ITEMINFO_VIEWID:
script_pushint(st, it->view_id);
break;
+ case ITEMINFO_MATK:
+ script_pushint(st, it->matk);
+ break;
+ case ITEMINFO_VIEWSPRITE:
+ script_pushint(st, it->view_sprite);
+ break;
default:
+ ShowError("buildin_getiteminfo: Invalid item type %d.\n", n);
script_pushint(st,-1);
+ return false;
}
return true;
}
@@ -14270,31 +14278,36 @@ BUILDIN(setequipoption)
if (equip_index > 0 && equip_index <= ARRAYLENGTH(script->equip)) {
if ((i = pc->checkequip(sd, script->equip[equip_index - 1])) == -1) {
- ShowError("buildin_setequipoptioninfo: No equipment is equipped in the given index %d.\n", equip_index);
+ ShowError("buildin_setequipoption: No equipment is equipped in the given index %d.\n", equip_index);
script_pushint(st, 0);
return false;
}
} else {
- ShowError("buildin_setequipoptioninfo: Invalid equipment index %d provided.\n", equip_index);
+ ShowError("buildin_setequipoption: Invalid equipment index %d provided.\n", equip_index);
script_pushint(st, 0);
return false;
}
if (sd->status.inventory[i].nameid != 0) {
-
- if ((ito = itemdb->option_exists(opt_index)) == NULL) {
- script_pushint(st, 0);
- ShowError("buildin_setequipotion: Option index %d does not exist!\n", opt_index);
- return false;
- } else if (value < -INT16_MAX || value > INT16_MAX) {
- script_pushint(st, 0);
- ShowError("buildin_setequipotion: Option value %d exceeds maximum limit (%d to %d) for type!\n", value, -INT16_MAX, INT16_MAX);
- return false;
+ if (opt_index == 0) {
+ // Remove the option
+ sd->status.inventory[i].option[slot-1].index = 0;
+ sd->status.inventory[i].option[slot-1].value = 0;
+ } else {
+ if ((ito = itemdb->option_exists(opt_index)) == NULL) {
+ script_pushint(st, 0);
+ ShowError("buildin_setequipotion: Option index %d does not exist!\n", opt_index);
+ return false;
+ } else if (value < -INT16_MAX || value > INT16_MAX) {
+ script_pushint(st, 0);
+ ShowError("buildin_setequipotion: Option value %d exceeds maximum limit (%d to %d) for type!\n", value, -INT16_MAX, INT16_MAX);
+ return false;
+ }
+ /* Add Option Index */
+ sd->status.inventory[i].option[slot-1].index = ito->index;
+ /* Add Option Value */
+ sd->status.inventory[i].option[slot-1].value = value;
}
- /* Add Option Index */
- sd->status.inventory[i].option[slot-1].index = ito->index;
- /* Add Option Value */
- sd->status.inventory[i].option[slot-1].value = value;
/* Unequip and simulate deletion of the item. */
pc->unequipitem(sd, i, PCUNEQUIPITEM_FORCE); // status calc will happen in pc->equipitem() below
@@ -14334,54 +14347,61 @@ BUILDIN(setiteminfo)
}
switch (n) {
- case 0:
+ case ITEMINFO_BUYPRICE:
it->value_buy = value;
break;
- case 1:
+ case ITEMINFO_SELLPRICE:
it->value_sell = value;
break;
- case 2:
+ case ITEMINFO_TYPE:
it->type = value;
break;
- case 3:
+ case ITEMINFO_MAXCHANCE:
it->maxchance = value;
break;
- case 4:
+ case ITEMINFO_SEX:
it->sex = value;
break;
- case 5:
+ case ITEMINFO_LOC:
it->equip = value;
break;
- case 6:
+ case ITEMINFO_WEIGHT:
it->weight = value;
break;
- case 7:
+ case ITEMINFO_ATK:
it->atk = value;
break;
- case 8:
+ case ITEMINFO_DEF:
it->def = value;
break;
- case 9:
+ case ITEMINFO_RANGE:
it->range = value;
break;
- case 10:
+ case ITEMINFO_SLOTS:
it->slot = value;
break;
- case 11:
+ case ITEMINFO_SUBTYPE:
it->subtype = value;
break;
- case 12:
+ case ITEMINFO_ELV:
it->elv = value;
break;
- case 13:
+ case ITEMINFO_WLV:
it->wlv = value;
break;
- case 14:
+ case ITEMINFO_VIEWID:
it->view_id = value;
break;
+ case ITEMINFO_MATK:
+ it->matk = value;
+ break;
+ case ITEMINFO_VIEWSPRITE:
+ it->view_sprite = value;
+ break;
default:
+ ShowError("buildin_setiteminfo: invalid type %d.\n", n);
script_pushint(st,-1);
- return true;
+ return false;
}
script_pushint(st,value);
return true;
@@ -14585,7 +14605,7 @@ BUILDIN(getskilllist)
int i,j=0;
if (sd == NULL)
return true;
- for(i=0;i<MAX_SKILL;i++) {
+ for (i = 0; i < MAX_SKILL_DB; i++) {
if(sd->status.skill[i].id > 0 && sd->status.skill[i].lv > 0) {
pc->setreg(sd,reference_uid(script->add_str("@skilllist_id"), j),sd->status.skill[i].id);
pc->setreg(sd,reference_uid(script->add_str("@skilllist_lv"), j),sd->status.skill[i].lv);
@@ -15866,11 +15886,12 @@ enum logmes_type {
/*==========================================
* Allows player to write logs (i.e. Bank NPC, etc) [Lupus]
*------------------------------------------*/
-BUILDIN(logmes) {
+BUILDIN(logmes)
+{
const char *str = script_getstr(st, 2);
struct map_session_data *sd = script->rid2sd(st);
enum logmes_type type = LOGMES_NPC;
- nullpo_retr(sd, false);
+ nullpo_retr(false, sd);
if (script_hasdata(st, 3)) {
type = script_getnum(st, 3);
@@ -18211,6 +18232,8 @@ BUILDIN(setunitdata)
case UDT_INTIMACY:
case UDT_LIFETIME:
case UDT_MERC_KILLCOUNT:
+ case UDT_ROBE:
+ case UDT_BODY2:
setunitdata_check_min(4, 0);
break;
case UDT_MASTERAID:
@@ -19149,6 +19172,40 @@ BUILDIN(setunitdata)
case UDT_DMOTION:
nd->status.dmotion = (unsigned short) val;
break;
+ case UDT_SEX:
+ nd->vd.sex = (char)val;
+ npc->refresh(nd);
+ break;
+ case UDT_HAIRSTYLE:
+ clif->changelook(bl, LOOK_HAIR, val);
+ break;
+ case UDT_HAIRCOLOR:
+ clif->changelook(bl, LOOK_HAIR_COLOR, val);
+ break;
+ case UDT_HEADBOTTOM:
+ clif->changelook(bl, LOOK_HEAD_BOTTOM, val);
+ break;
+ case UDT_HEADMIDDLE:
+ clif->changelook(bl, LOOK_HEAD_MID, val);
+ break;
+ case UDT_HEADTOP:
+ clif->changelook(bl, LOOK_HEAD_TOP, val);
+ break;
+ case UDT_CLOTHCOLOR:
+ clif->changelook(bl, LOOK_CLOTHES_COLOR, val);
+ break;
+ case UDT_SHIELD:
+ clif->changelook(bl, LOOK_SHIELD, val);
+ break;
+ case UDT_WEAPON:
+ clif->changelook(bl, LOOK_WEAPON, val);
+ break;
+ case UDT_ROBE:
+ clif->changelook(bl, LOOK_ROBE, val);
+ break;
+ case UDT_BODY2:
+ clif->changelook(bl, LOOK_BODY2, val);
+ break;
default:
ShowWarning("buildin_setunitdata: Invalid data type '%s' for NPC unit.\n", udtype);
script_pushint(st, 0);
@@ -19559,6 +19616,18 @@ BUILDIN(getunitdata)
case UDT_AMOTION: script_pushint(st, nd->status.amotion); break;
case UDT_ADELAY: script_pushint(st, nd->status.adelay); break;
case UDT_DMOTION: script_pushint(st, nd->status.dmotion); break;
+ case UDT_SEX: script_pushint(st, nd->vd.sex); break;
+ case UDT_CLASS: script_pushint(st, nd->vd.class); break;
+ case UDT_HAIRSTYLE: script_pushint(st, nd->vd.hair_style); break;
+ case UDT_HAIRCOLOR: script_pushint(st, nd->vd.hair_color); break;
+ case UDT_HEADBOTTOM: script_pushint(st, nd->vd.head_bottom); break;
+ case UDT_HEADMIDDLE: script_pushint(st, nd->vd.head_mid); break;
+ case UDT_HEADTOP: script_pushint(st, nd->vd.head_top); break;
+ case UDT_CLOTHCOLOR: script_pushint(st, nd->vd.cloth_color); break;
+ case UDT_SHIELD: script_pushint(st, nd->vd.shield); break;
+ case UDT_WEAPON: script_pushint(st, nd->vd.weapon); break;
+ case UDT_ROBE: script_pushint(st, nd->vd.robe); break;
+ case UDT_BODY2: script_pushint(st, nd->vd.body_style); break;
default:
ShowWarning("buildin_getunitdata: Invalid data type '%s' for NPC unit.\n", udtype);
script_pushint(st, 0);
@@ -20446,15 +20515,18 @@ BUILDIN(questinfo)
quest_id = script_getnum(st, 2);
icon = script_getnum(st, 3);
- #if PACKETVER >= 20120410
- if(icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
- icon = 9999; // Default to nothing if icon id is invalid.
- #else
- if(icon < 0 || icon > 7)
- icon = 0;
- else
- icon = icon + 1;
- #endif
+#if PACKETVER >= 20170315
+ if (icon < 0 || (icon > 10 && icon != 9999))
+ icon = 9999;
+#elif PACKETVER >= 20120410
+ if (icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
+ icon = 9999; // Default to nothing if icon id is invalid.
+#else
+ if (icon < 0 || icon > 7)
+ icon = 0;
+ else
+ icon = icon + 1;
+#endif
qi.quest_id = quest_id;
qi.icon = (unsigned char)icon;
@@ -20648,15 +20720,18 @@ BUILDIN(showevent)
}
}
- #if PACKETVER >= 20120410
- if(icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
- icon = 9999; // Default to nothing if icon id is invalid.
- #else
- if(icon < 0 || icon > 7)
- icon = 0;
- else
- icon = icon + 1;
- #endif
+#if PACKETVER >= 20170315
+ if (icon < 0 || (icon > 10 && icon != 9999))
+ icon = 9999;
+#elif PACKETVER >= 20120410
+ if (icon < 0 || (icon > 8 && icon != 9999) || icon == 7)
+ icon = 9999; // Default to nothing if icon id is invalid.
+#else
+ if (icon < 0 || icon > 7)
+ icon = 0;
+ else
+ icon = icon + 1;
+#endif
clif->quest_show_event(sd, &nd->bl, icon, color);
return true;
@@ -21128,72 +21203,90 @@ BUILDIN(has_instance)
const char *str;
int16 m;
int instance_id = -1;
+ int i = 0, j = 0;
bool type = strcmp(script->getfuncname(st),"has_instance2") == 0 ? true : false;
str = script_getstr(st, 2);
- if( (m = map->mapname2mapid(str)) < 0 ) {
- if( type )
+ if ((m = map->mapname2mapid(str)) < 0) {
+ if (type) {
script_pushint(st, -1);
- else
+ } else {
script_pushconststr(st, "");
+ }
return true;
}
- if( script_hasdata(st, 3) )
+ if (script_hasdata(st, 3))
instance_id = script_getnum(st, 3);
- else if( st->instance_id >= 0 )
+ else if (st->instance_id >= 0)
instance_id = st->instance_id;
- else if( (sd = script->rid2sd(st)) != NULL ) {
+ else if ((sd = script->rid2sd(st)) != NULL) {
struct party_data *p;
- int i = 0, j = 0;
- if( sd->instances ) {
- for( i = 0; i < sd->instances; i++ ) {
- if( sd->instance[i] >= 0 ) {
+ if (sd->instances) {
+ for (i = 0; i < sd->instances; i++) {
+ if (sd->instance[i] >= 0) {
ARR_FIND(0, instance->list[sd->instance[i]].num_map, j, map->list[instance->list[sd->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[sd->instance[i]].num_map )
+ if (j != instance->list[sd->instance[i]].num_map)
break;
}
}
- if( i != sd->instances )
+ if (i != sd->instances) {
instance_id = sd->instance[i];
+ }
}
if (instance_id == -1 && sd->status.party_id && (p = party->search(sd->status.party_id)) != NULL && p->instances) {
- for( i = 0; i < p->instances; i++ ) {
- if( p->instance[i] >= 0 ) {
+ for (i = 0; i < p->instances; i++) {
+ if (p->instance[i] >= 0) {
ARR_FIND(0, instance->list[p->instance[i]].num_map, j, map->list[instance->list[p->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[p->instance[i]].num_map )
+ if (j != instance->list[p->instance[i]].num_map)
break;
}
}
- if( i != p->instances )
+ if (i != p->instances) {
instance_id = p->instance[i];
+ }
}
- if( instance_id == -1 && sd->guild && sd->guild->instances ) {
- for( i = 0; i < sd->guild->instances; i++ ) {
- if( sd->guild->instance[i] >= 0 ) {
+ if (instance_id == -1 && sd->guild && sd->guild->instances) {
+ for (i = 0; i < sd->guild->instances; i++) {
+ if (sd->guild->instance[i] >= 0) {
ARR_FIND(0, instance->list[sd->guild->instance[i]].num_map, j, map->list[instance->list[sd->guild->instance[i]].map[j]].instance_src_map == m);
- if( j != instance->list[sd->guild->instance[i]].num_map )
+ if (j != instance->list[sd->guild->instance[i]].num_map)
break;
}
}
- if( i != sd->guild->instances )
+ if (i != sd->guild->instances)
instance_id = sd->guild->instance[i];
}
}
- if( !instance->valid(instance_id) || (m = instance->map2imap(m, instance_id)) < 0 ) {
- if( type )
+ if (instance_id == -1) {
+ for (i = 0; i < instance->instances; i++) {
+ if (instance->list[i].state != INSTANCE_FREE && instance->list[i].owner_type == IOT_NONE && instance->list[i].num_map > 0) {
+ ARR_FIND(0, instance->list[i].num_map, j, map->list[instance->list[i].map[j]].instance_src_map == m);
+ if (j != instance->list[i].num_map)
+ break;
+ }
+ }
+ if (i != instance->instances) {
+ instance_id = instance->list[i].id;
+ }
+ }
+
+ if (!instance->valid(instance_id) || (m = instance->map2imap(m, instance_id)) < 0) {
+ if (type) {
script_pushint(st, -1);
- else
+ } else {
script_pushconststr(st, "");
+ }
return true;
}
- if( type )
+ if (type) {
script_pushint(st, instance_id);
- else
+ } else {
script_pushconststr(st, map->list[m].name);
+ }
return true;
}
@@ -21477,7 +21570,29 @@ BUILDIN(progressbar)
clif->progressbar(sd, (unsigned int)strtoul(color, (char **)NULL, 0), second);
return true;
}
+BUILDIN(progressbar_unit)
+{
+ const char *color = script_getstr(st, 2);
+ uint32 second = script_getnum(st, 3);
+ if (script_hasdata(st, 4)) {
+ struct block_list *bl = map->id2bl(script_getnum(st, 4));
+
+ if (bl == NULL) {
+ ShowWarning("buildin_progressbar_unit: Error in finding object with given GID %d!\n", script_getnum(st, 4));
+ return true;
+ }
+ clif->progressbar_unit(bl, (unsigned int)strtoul(color, (char **)NULL, 0), second);
+ } else {
+ struct map_session_data *sd = script->rid2sd(st);
+
+ if (sd == NULL)
+ return false;
+
+ clif->progressbar_unit(&sd->bl, (unsigned int)strtoul(color, (char **)NULL, 0), second);
+ }
+ return true;
+}
BUILDIN(pushpc)
{
uint8 dir;
@@ -22078,7 +22193,7 @@ BUILDIN(getrandgroupitem)
if ((flag = pc->additem(sd, &it, get_count, LOG_TYPE_SCRIPT))) {
clif->additem(sd, 0, 0, flag);
if( pc->candrop(sd,&it) )
- map->addflooritem(&sd->bl, &it, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &it, get_count, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -23505,7 +23620,7 @@ BUILDIN(dressroom)
clif->dressroom_open(sd, 0);
break;
default:
- ShowWarning("script:dressroom: unknown mode (%i).\n", mode);
+ ShowWarning("script:dressroom: unknown mode (%u).\n", mode);
script_pushint(st, 0);
return false;
}
@@ -24312,6 +24427,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(setfont,"i"),
BUILDIN_DEF(areamobuseskill,"siiiiviiiii"),
BUILDIN_DEF(progressbar,"si"),
+ BUILDIN_DEF(progressbar_unit,"si?"),
BUILDIN_DEF(pushpc,"ii"),
BUILDIN_DEF(buyingstore,"i"),
BUILDIN_DEF(searchstores,"ii"),
@@ -24751,6 +24867,25 @@ void script_hardcoded_constants(void)
script->set_constant("MAPINFO_SIZE_Y", MAPINFO_SIZE_Y, false, false);
script->set_constant("MAPINFO_ZONE", MAPINFO_ZONE, false, false);
+ script->constdb_comment("set/getiteminfo options");
+ script->set_constant("ITEMINFO_BUYPRICE", ITEMINFO_BUYPRICE, false, false);
+ script->set_constant("ITEMINFO_SELLPRICE", ITEMINFO_SELLPRICE, false, false);
+ script->set_constant("ITEMINFO_TYPE", ITEMINFO_TYPE, false, false);
+ script->set_constant("ITEMINFO_MAXCHANCE", ITEMINFO_MAXCHANCE, false, false);
+ script->set_constant("ITEMINFO_SEX", ITEMINFO_SEX, false, false);
+ script->set_constant("ITEMINFO_LOC", ITEMINFO_LOC, false, false);
+ script->set_constant("ITEMINFO_WEIGHT", ITEMINFO_WEIGHT, false, false);
+ script->set_constant("ITEMINFO_ATK", ITEMINFO_ATK, false, false);
+ script->set_constant("ITEMINFO_DEF", ITEMINFO_DEF, false, false);
+ script->set_constant("ITEMINFO_RANGE", ITEMINFO_RANGE, false, false);
+ script->set_constant("ITEMINFO_SLOTS", ITEMINFO_SLOTS, false, false);
+ script->set_constant("ITEMINFO_SUBTYPE", ITEMINFO_SUBTYPE, false, false);
+ script->set_constant("ITEMINFO_ELV", ITEMINFO_ELV, false, false);
+ script->set_constant("ITEMINFO_WLV", ITEMINFO_WLV, false, false);
+ script->set_constant("ITEMINFO_VIEWID", ITEMINFO_VIEWID, false, false);
+ script->set_constant("ITEMINFO_MATK", ITEMINFO_MATK, false, false);
+ script->set_constant("ITEMINFO_VIEWSPRITE", ITEMINFO_VIEWSPRITE, false, false);
+
script->constdb_comment("Renewal");
#ifdef RENEWAL
script->set_constant("RENEWAL", 1, false, false);
diff --git a/src/map/script.h b/src/map/script.h
index 283afa496..14d20838d 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -423,10 +423,37 @@ enum script_unit_data_types {
UDT_LIFETIME,
UDT_MERC_KILLCOUNT,
UDT_STATPOINT,
+ UDT_ROBE,
+ UDT_BODY2,
UDT_MAX
};
/**
+ * Item Info types.
+ */
+enum script_iteminfo_types {
+ ITEMINFO_BUYPRICE = 0,
+ ITEMINFO_SELLPRICE,
+ ITEMINFO_TYPE,
+ ITEMINFO_MAXCHANCE,
+ ITEMINFO_SEX,
+ ITEMINFO_LOC,
+ ITEMINFO_WEIGHT,
+ ITEMINFO_ATK,
+ ITEMINFO_DEF,
+ ITEMINFO_RANGE,
+ ITEMINFO_SLOTS,
+ ITEMINFO_SUBTYPE,
+ ITEMINFO_ELV,
+ ITEMINFO_WLV,
+ ITEMINFO_VIEWID,
+ ITEMINFO_MATK,
+ ITEMINFO_VIEWSPRITE,
+
+ ITEMINFO_MAX
+};
+
+/**
* Structures
**/
diff --git a/src/map/skill.c b/src/map/skill.c
index 726deaa9a..4c9e83579 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -105,7 +105,7 @@ int skill_name2id(const char* name)
/// Maps skill ids to skill db offsets.
/// Returns the skill's array index, or 0 (Unknown Skill).
-int skill_get_index (uint16 skill_id)
+int skill_get_index(int skill_id)
{
// avoid ranges reserved for mapping guild/homun/mercenary skills
if( (skill_id >= GD_SKILLRANGEMIN && skill_id <= GD_SKILLRANGEMAX)
@@ -138,88 +138,593 @@ int skill_get_index (uint16 skill_id)
}
// validate result
- if( !skill_id || skill_id >= MAX_SKILL_DB )
+ if (skill_id <= 0|| skill_id >= MAX_SKILL_DB)
return 0;
return skill_id;
}
-const char* skill_get_name( uint16 skill_id ) {
+const char *skill_get_name(int skill_id)
+{
return skill->dbs->db[skill->get_index(skill_id)].name;
}
-const char* skill_get_desc( uint16 skill_id ) {
+const char *skill_get_desc(int skill_id)
+{
return skill->dbs->db[skill->get_index(skill_id)].desc;
}
-// out of bounds error checking [celest]
-void skill_chk(uint16* skill_id) {
- *skill_id = skill->get_index(*skill_id); // checks/adjusts id
-}
+#define skill_get_lvl_idx(lv) (min((lv), MAX_SKILL_LEVEL) - 1)
+#define skill_adjust_over_level(val, lv, max_lv) ((val) > 1 ? ((val) + ((lv) - (max_lv)) / 2) : (val))
-#define skill_get(var,id) do { skill->chk(&(id)); if(!(id)) return 0; return (var); } while(0)
-#define skill_get2(var,id,lv) do { \
- skill->chk(&(id)); \
- if(!(id)) return 0; \
- if( (lv) > MAX_SKILL_LEVEL && (var) > 1 ) { \
- int lv2__ = (lv); (lv) = skill->dbs->db[(id)].max; \
- return (var) + ((lv2__-(lv))/2);\
- } \
- return (var);\
-} while(0)
-#define skill_glv(lv) min((lv),MAX_SKILL_LEVEL-1)
// Skill DB
-int skill_get_hit( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].hit, skill_id); }
-int skill_get_inf( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].inf, skill_id); }
-int skill_get_ele( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get (skill->dbs->db[skill_id].element[skill_glv(skill_lv-1)], skill_id); }
-int skill_get_nk( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].nk, skill_id); }
-int skill_get_max( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].max, skill_id); }
-int skill_get_range( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_splash( uint16 skill_id , uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 ( (skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]>=0?skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]:AREA_SIZE), skill_id, skill_lv); }
-int skill_get_hp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_hp_rate(uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_sp_rate(uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_state(uint16 skill_id) { skill_get (skill->dbs->db[skill_id].state, skill_id); }
-int skill_get_spiritball(uint16 skill_id, uint16 skill_lv) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].spiritball[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_itemid(uint16 skill_id, int idx) { skill_get (skill->dbs->db[skill_id].itemid[idx], skill_id); }
-int skill_get_itemqty(uint16 skill_id, int idx) { skill_get (skill->dbs->db[skill_id].amount[idx], skill_id); }
-int skill_get_zeny( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_num( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cast( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_time2( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castdef( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].cast_def_rate, skill_id); }
-int skill_get_weapontype( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].weapon, skill_id); }
-int skill_get_ammotype( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].ammo, skill_id); }
-int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].ammo_qty[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_inf2( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].inf2, skill_id); }
-int skill_get_castcancel( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].castcancel, skill_id); }
-int skill_get_maxcount( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].maxcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_blewcount( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].blewcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_mhp( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].mhp[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_castnodex( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].castnodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_delaynodex( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delaynodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_type( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].skill_type, skill_id); }
-int skill_get_unit_id ( uint16 skill_id, int flag ){ skill_get (skill->dbs->db[skill_id].unit_id[flag], skill_id); }
-int skill_get_unit_interval( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_interval, skill_id); }
-int skill_get_unit_range( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_range[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_unit_target( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_target&BCT_ALL, skill_id); }
-int skill_get_unit_bl_target( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_target&BL_ALL, skill_id); }
-int skill_get_unit_flag( uint16 skill_id ) { skill_get (skill->dbs->db[skill_id].unit_flag, skill_id); }
-int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_cooldown( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); }
-int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) {
+
+int skill_get_hit(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].hit;
+}
+
+int skill_get_inf(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return INF_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(INF_NONE, idx != 0);
+ return skill->dbs->db[idx].inf;
+}
+
+int skill_get_ele(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return ELE_NEUTRAL;
+ idx = skill->get_index(skill_id);
+ Assert_retr(ELE_NEUTRAL, idx != 0);
+ Assert_retr(ELE_NEUTRAL, skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].element[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].element[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_nk(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return NK_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(NK_NONE, idx != 0);
+ return skill->dbs->db[idx].nk;
+}
+
+int skill_get_max(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].max;
+}
+
+int skill_get_range(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].range[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].range[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_splash(int skill_id, int skill_lv)
+{
+ int idx, val;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ val = skill->dbs->db[idx].splash[skill_get_lvl_idx(skill_lv)];
+ if (val < 0) {
+ val = AREA_SIZE;
+ }
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return val;
+}
+
+int skill_get_hp(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].hp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].hp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_sp(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].sp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].sp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_hp_rate(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].hp_rate[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].hp_rate[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_sp_rate(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].sp_rate[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].sp_rate[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_state(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return ST_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(ST_NONE, idx != 0);
+ return skill->dbs->db[idx].state;
+}
+
+int skill_get_spiritball(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].spiritball[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].spiritball[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_itemid(int skill_id, int item_idx)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE);
+ return skill->dbs->db[idx].itemid[item_idx];
+}
+
+int skill_get_itemqty(int skill_id, int item_idx)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(item_idx >= 0 && item_idx < MAX_SKILL_ITEM_REQUIRE);
+ return skill->dbs->db[idx].amount[item_idx];
+}
+
+int skill_get_zeny(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].zeny[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].zeny[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_num(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].num[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].num[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_cast(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].cast[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].cast[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_delay(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].delay[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].delay[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_walkdelay(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].walkdelay[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].walkdelay[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_time(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].upkeep_time[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].upkeep_time[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_time2(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].upkeep_time2[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].upkeep_time2[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_castdef(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].cast_def_rate;
+}
+
+int skill_get_weapontype(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].weapon;
+}
+
+int skill_get_ammotype(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].ammo;
+}
+
+int skill_get_ammo_qty(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].ammo_qty[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].ammo_qty[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_inf2(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return INF2_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(INF2_NONE, idx != 0);
+ return skill->dbs->db[idx].inf2;
+}
+
+int skill_get_castcancel(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].castcancel;
+}
+
+int skill_get_maxcount(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].maxcount[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].maxcount[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_blewcount(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].blewcount[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].blewcount[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_mhp(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].mhp[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].mhp[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_castnodex(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].castnodex[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].castnodex[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_delaynodex(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].delaynodex[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].delaynodex[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_type(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return BF_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(BF_NONE, idx != 0);
+ return skill->dbs->db[idx].skill_type;
+}
+
+int skill_get_unit_id(int skill_id, int flag)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(flag >= 0 && flag < ARRAYLENGTH(skill->dbs->db[0].unit_id));
+ return skill->dbs->db[idx].unit_id[flag];
+}
+
+int skill_get_unit_interval(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ return skill->dbs->db[idx].unit_interval;
+}
+
+int skill_get_unit_range(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].unit_range[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].unit_range[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_unit_target(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return BCT_NOONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(BCT_NOONE, idx != 0);
+ return skill->dbs->db[idx].unit_target & BCT_ALL;
+}
+
+int skill_get_unit_bl_target(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return BL_NUL;
+ idx = skill->get_index(skill_id);
+ Assert_retr(BL_NUL, idx != 0);
+ return skill->dbs->db[idx].unit_target & BL_ALL;
+}
+
+int skill_get_unit_flag(int skill_id)
+{
+ int idx;
+ if (skill_id == 0)
+ return UF_NONE;
+ idx = skill->get_index(skill_id);
+ Assert_retr(UF_NONE, idx != 0);
+ return skill->dbs->db[idx].unit_flag;
+}
+
+int skill_get_unit_layout_type(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].unit_layout_type[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].unit_layout_type[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_cooldown(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].cooldown[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].cooldown[skill_get_lvl_idx(skill_lv)];
+}
+
+int skill_get_fixed_cast(int skill_id, int skill_lv)
+{
+ int idx;
+ if (skill_id == 0)
+ return 0;
+ idx = skill->get_index(skill_id);
+ Assert_ret(idx != 0);
+ Assert_ret(skill_lv > 0);
#ifdef RENEWAL_CAST
- Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].fixed_cast[skill_glv(skill_lv-1)], skill_id, skill_lv);
+ if (skill_lv > MAX_SKILL_LEVEL) {
+ int val = skill->dbs->db[idx].fixed_cast[skill_get_lvl_idx(skill_lv)];
+ return skill_adjust_over_level(val, skill_lv, skill->dbs->db[idx].max);
+ }
+ return skill->dbs->db[idx].fixed_cast[skill_get_lvl_idx(skill_lv)];
#else
return 0;
#endif
}
-int skill_tree_get_max(uint16 skill_id, int class)
+int skill_tree_get_max(int skill_id, int class)
{
int i;
int class_idx = pc->class2idx(class);
@@ -231,7 +736,7 @@ int skill_tree_get_max(uint16 skill_id, int class)
return skill->get_max(skill_id);
}
-int skill_get_casttype(uint16 skill_id)
+int skill_get_casttype(int skill_id)
{
int inf = skill->get_inf(skill_id);
if (inf&(INF_GROUND_SKILL))
@@ -248,7 +753,7 @@ int skill_get_casttype(uint16 skill_id)
return CAST_DAMAGE;
}
-int skill_get_casttype2(uint16 index)
+int skill_get_casttype2(int index)
{
int inf;
Assert_retr(CAST_NODAMAGE, index < MAX_SKILL_DB);
@@ -268,7 +773,7 @@ int skill_get_casttype2(uint16 index)
}
//Returns actual skill range taking into account attack range and AC_OWL [Skotlex]
-int skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
+int skill_get_range2(struct block_list *bl, int skill_id, int skill_lv)
{
int range;
struct map_session_data *sd = BL_CAST(BL_PC, bl);
@@ -482,7 +987,7 @@ int can_copy (struct map_session_data *sd, uint16 skill_id, struct block_list* b
(skill_id >= GC_DARKCROW && skill_id <= SU_FRESHSHRIMP)))
return 0;
// Reproduce will only copy skills according on the list. [Jobbie]
- else if( sd->sc.data[SC__REPRODUCE] && !skill->dbs->reproduce_db[skill->get_index(skill_id)] )
+ else if (sd->sc.data[SC__REPRODUCE] && (skill->get_inf2(skill_id) & INF2_ALLOW_REPRODUCE) == 0)
return 0;
return 1;
@@ -3175,8 +3680,8 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
struct status_data *st;
struct map_session_data *sd = NULL;
int i, hp, sp, hp_rate, sp_rate, state, mhp;
- uint16 idx;
- int itemid[MAX_SKILL_ITEM_REQUIRE],amount[ARRAYLENGTH(itemid)],index[ARRAYLENGTH(itemid)];
+ int idx;
+ int itemid[MAX_SKILL_ITEM_REQUIRE], amount[MAX_SKILL_ITEM_REQUIRE], index[MAX_SKILL_ITEM_REQUIRE];
if( lv < 1 || lv > MAX_SKILL_LEVEL )
return 0;
@@ -3192,8 +3697,7 @@ int skill_check_condition_mercenary(struct block_list *bl, int skill_id, int lv,
return 0;
// Requirements
- for( i = 0; i < ARRAYLENGTH(itemid); i++ )
- {
+ for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) {
itemid[i] = skill->dbs->db[idx].itemid[i];
amount[i] = skill->dbs->db[idx].amount[i];
}
@@ -4703,7 +5207,7 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1
item_tmp.nameid = sg->item_id ? sg->item_id : ITEMID_BOOBY_TRAP;
item_tmp.identify = 1;
if( item_tmp.nameid )
- map->addflooritem(bl, &item_tmp, 1, bl->m, bl->x, bl->y, 0, 0, 0, 0);
+ map->addflooritem(bl, &item_tmp, 1, bl->m, bl->x, bl->y, 0, 0, 0, 0, false);
}
skill->delunit(su);
}
@@ -6666,7 +7170,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
// custom hack to make the mob display the skill, because these skills don't show the skill use text themselves
//NOTE: mobs don't have the sprite animation that is used when performing this skill (will cause glitches)
char temp[70];
- snprintf(temp, sizeof(temp), "%s : %s !!",md->name,skill->dbs->db[skill_id].desc);
+ snprintf(temp, sizeof(temp), "%s : %s !!", md->name, skill->get_desc(skill_id));
clif->disp_overhead(&md->bl,temp);
}
break;
@@ -6865,7 +7369,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
return 1;
}
if( sd->skillitem != skill_id )
- status_zap(src,0,skill->dbs->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded
+ status_zap(src, 0, skill->get_sp(skill_id, skill_lv)); // consume sp only if succeeded
}
break;
@@ -6948,7 +7452,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
eflag = pc->additem(sd,&item_tmp,1,LOG_TYPE_PRODUCE);
if(eflag) {
clif->additem(sd,0,0,eflag);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
break;
@@ -7041,21 +7545,22 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
return 1;
}
if( sd ) {
- int x,bonus=100, potion = min(500+skill_lv,505);
- x = skill_lv%11 - 1;
- i = pc->search_inventory(sd,skill->dbs->db[skill_id].itemid[x]);
- if (i == INDEX_NOT_FOUND || skill->dbs->db[skill_id].itemid[x] <= 0) {
+ int bonus = 100, potion = min(500+skill_lv,505);
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ int inventory_idx = pc->search_inventory(sd, item_id);
+ if (inventory_idx == INDEX_NOT_FOUND || item_id <= 0) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
}
- if(sd->inventory_data[i] == NULL || sd->status.inventory[i].amount < skill->dbs->db[skill_id].amount[x]) {
+ if (sd->inventory_data[inventory_idx] == NULL || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx)) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
}
if( skill_id == AM_BERSERKPITCHER ) {
- if (dstsd && dstsd->status.base_level < sd->inventory_data[i]->elv) {
+ if (dstsd != NULL && dstsd->status.base_level < sd->inventory_data[inventory_idx]->elv) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map->freeblock_unlock();
return 1;
@@ -7064,7 +7569,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
script->potion_flag = 1;
script->potion_hp = script->potion_sp = script->potion_per_hp = script->potion_per_sp = 0;
script->potion_target = bl->id;
- script->run_use_script(sd, sd->inventory_data[i], 0);
+ script->run_use_script(sd, sd->inventory_data[inventory_idx], 0);
script->potion_flag = script->potion_target = 0;
if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ALCHEMIST )
bonus += sd->status.base_level;
@@ -7384,7 +7889,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
maxlv = skill_lv - 4;
}
else if(skill_lv >=2) {
- int i = rnd()%3;
+ int i = rnd() % ARRAYLENGTH(spellarray);
spellid = spellarray[i];
maxlv = skill_lv - 1;
}
@@ -7591,14 +8096,14 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case WE_MALE:
{
- int hp_rate = (!skill_lv)? 0:skill->dbs->db[skill_id].hp_rate[skill_lv-1];
+ int hp_rate = skill_lv == 0 ? 0 : skill->get_hp_rate(skill_id, skill_lv);
int gain_hp = tstatus->max_hp*abs(hp_rate)/100; // The earned is the same % of the target HP than it cost the caster. [Skotlex]
clif->skill_nodamage(src,bl,skill_id,status->heal(bl, gain_hp, 0, 0),1);
}
break;
case WE_FEMALE:
{
- int sp_rate = (!skill_lv)? 0:skill->dbs->db[skill_id].sp_rate[skill_lv-1];
+ int sp_rate = skill_lv == 0 ? 0 : skill->get_sp_rate(skill_id, skill_lv);
int gain_sp = tstatus->max_sp*abs(sp_rate)/100;// The earned is the same % of the target SP than it cost the caster. [Skotlex]
clif->skill_nodamage(src,bl,skill_id,status->heal(bl, 0, gain_sp, 0),1);
}
@@ -7661,16 +8166,17 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
if( battle_config.skill_removetrap_type ) {
int i;
// get back all items used to deploy the trap
- for( i = 0; i < 10; i++ ) {
- if( skill->dbs->db[su->group->skill_id].itemid[i] > 0 ) {
+ for (i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++) {
+ int nameid = skill->get_itemid(su->group->skill_id, i);
+ if (nameid > 0) {
int success;
- struct item item_tmp;
- memset(&item_tmp,0,sizeof(item_tmp));
- item_tmp.nameid = skill->dbs->db[su->group->skill_id].itemid[i];
+ struct item item_tmp = { 0 };
+ int amount = skill->get_itemqty(su->group->skill_id, i);
+ item_tmp.nameid = nameid;
item_tmp.identify = 1;
- if (item_tmp.nameid && (success=pc->additem(sd,&item_tmp,skill->dbs->db[su->group->skill_id].amount[i],LOG_TYPE_SKILL)) != 0) {
+ if ((success = pc->additem(sd, &item_tmp, amount, LOG_TYPE_SKILL)) != 0) {
clif->additem(sd,0,0,success);
- map->addflooritem(&sd->bl, &item_tmp, skill->dbs->db[su->group->skill_id].amount[i], sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -7682,7 +8188,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
item_tmp.identify = 1;
if (item_tmp.nameid && (flag=pc->additem(sd,&item_tmp,1,LOG_TYPE_SKILL)) != 0) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &item_tmp, 1, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
}
@@ -7902,7 +8408,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
map->freeblock_unlock();
return 0;
}
- status_zap(src,0,skill->dbs->db[skill->get_index(skill_id)].sp[skill_lv]); // consume sp only if succeeded [Inkfish]
+ status_zap(src, 0, skill->get_sp(skill_id, skill_lv)); // consume sp only if succeeded [Inkfish]
do {
int eff = rnd() % 14;
if( eff == 5 )
@@ -7926,7 +8432,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
clif->damage(src,bl,0,0,1000,0,BDT_NORMAL,0);
if( !status->isdead(bl) ) {
int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT };
- skill->break_equip(bl, where[rnd()%5], 10000, BCT_ENEMY);
+ skill->break_equip(bl, where[rnd() % ARRAYLENGTH(where)], 10000, BCT_ENEMY);
}
}
break;
@@ -7947,7 +8453,7 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
case 7: // stop freeze or stoned
{
enum sc_type sc[] = { SC_STOP, SC_FREEZE, SC_STONE };
- sc_start(src,bl,sc[rnd()%3],100,skill_lv,skill->get_time2(skill_id,skill_lv));
+ sc_start(src,bl,sc[rnd() % ARRAYLENGTH(sc)],100,skill_lv,skill->get_time2(skill_id,skill_lv));
}
break;
case 8: // curse coma and poison
@@ -10837,10 +11343,13 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
// Slim Pitcher [Celest]
case CR_SLIMPITCHER:
if (sd) {
- int i = skill_lv%11 - 1;
- int j = pc->search_inventory(sd,skill->dbs->db[skill_id].itemid[i]);
- if (j == INDEX_NOT_FOUND || skill->dbs->db[skill_id].itemid[i] <= 0
- || sd->inventory_data[j] == NULL || sd->status.inventory[j].amount < skill->dbs->db[skill_id].amount[i]
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ int inventory_idx = pc->search_inventory(sd, item_id);
+ int bonus;
+ if (inventory_idx == INDEX_NOT_FOUND || item_id <= 0
+ || sd->inventory_data[inventory_idx] == NULL
+ || sd->status.inventory[inventory_idx].amount < skill->get_itemqty(skill_id, item_idx)
) {
clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
return 1;
@@ -10848,44 +11357,44 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
script->potion_flag = 1;
script->potion_hp = 0;
script->potion_sp = 0;
- script->run_use_script(sd, sd->inventory_data[j], 0);
+ script->run_use_script(sd, sd->inventory_data[inventory_idx], 0);
script->potion_flag = 0;
//Apply skill bonuses
- i = pc->checkskill(sd,CR_SLIMPITCHER)*10
+ bonus = pc->checkskill(sd,CR_SLIMPITCHER)*10
+ pc->checkskill(sd,AM_POTIONPITCHER)*10
+ pc->checkskill(sd,AM_LEARNINGPOTION)*5
+ pc->skillheal_bonus(sd, skill_id);
- script->potion_hp = script->potion_hp * (100+i)/100;
- script->potion_sp = script->potion_sp * (100+i)/100;
+ script->potion_hp = script->potion_hp * (100 + bonus) / 100;
+ script->potion_sp = script->potion_sp * (100 + bonus) / 100;
- if(script->potion_hp > 0 || script->potion_sp > 0) {
- i = skill->get_splash(skill_id, skill_lv);
+ if (script->potion_hp > 0 || script->potion_sp > 0) {
+ r = skill->get_splash(skill_id, skill_lv);
map->foreachinarea(skill->area_sub,
- src->m,x-i,y-i,x+i,y+i,BL_CHAR,
- src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
+ src->m, x - r, y - r, x + r, y + r, BL_CHAR,
+ src, skill_id, skill_lv, tick, flag|BCT_PARTY|BCT_GUILD|1,
skill->castend_nodamage_id);
}
} else {
- int i = skill_lv%11 - 1;
- struct item_data *item;
- i = skill->dbs->db[skill_id].itemid[i];
- item = itemdb->search(i);
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ int item_id = skill->get_itemid(skill_id, item_idx);
+ struct item_data *item = itemdb->search(item_id);
+ int bonus;
script->potion_flag = 1;
script->potion_hp = 0;
script->potion_sp = 0;
script->run(item->script,0,src->id,0);
script->potion_flag = 0;
- i = skill->get_max(CR_SLIMPITCHER)*10;
+ bonus = skill->get_max(CR_SLIMPITCHER)*10;
- script->potion_hp = script->potion_hp * (100+i)/100;
- script->potion_sp = script->potion_sp * (100+i)/100;
+ script->potion_hp = script->potion_hp * (100 + bonus)/100;
+ script->potion_sp = script->potion_sp * (100 + bonus)/100;
- if(script->potion_hp > 0 || script->potion_sp > 0) {
- i = skill->get_splash(skill_id, skill_lv);
+ if (script->potion_hp > 0 || script->potion_sp > 0) {
+ r = skill->get_splash(skill_id, skill_lv);
map->foreachinarea(skill->area_sub,
- src->m,x-i,y-i,x+i,y+i,BL_CHAR,
- src,skill_id,skill_lv,tick,flag|BCT_PARTY|BCT_GUILD|1,
+ src->m, x - r, y - r, x + r, y + r, BL_CHAR,
+ src, skill_id, skill_lv, tick, flag|BCT_PARTY|BCT_GUILD|1,
skill->castend_nodamage_id);
}
}
@@ -11636,27 +12145,27 @@ struct skill_unit_group* skill_unitsetting(struct block_list *src, uint16 skill_
int element[5]={ELE_WIND,ELE_DARK,ELE_POISON,ELE_WATER,ELE_FIRE};
val1 = st->rhw.ele;
- if (!val1)
- val1=element[rnd()%5];
+ if (val1 == ELE_NEUTRAL)
+ val1 = element[rnd() % ARRAYLENGTH(element)];
- switch (val1)
- {
+ switch (val1) {
case ELE_FIRE:
- subunt++;
- FALLTHROUGH
+ subunt = 4;
+ break;
case ELE_WATER:
- subunt++;
- FALLTHROUGH
+ subunt = 3;
+ break;
case ELE_POISON:
- subunt++;
- FALLTHROUGH
+ subunt = 2;
+ break;
case ELE_DARK:
- subunt++;
- FALLTHROUGH
+ subunt = 1;
+ break;
case ELE_WIND:
+ subunt = 0;
break;
default:
- subunt=rnd()%5;
+ subunt = rnd() % 5;
break;
}
@@ -14824,7 +15333,8 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
}
for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++ ) {
- if( (skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != skill_lv%11 - 1 )
+ int item_idx = (skill_lv - 1) % MAX_SKILL_ITEM_REQUIRE;
+ if ((skill_id == AM_POTIONPITCHER || skill_id == CR_SLIMPITCHER || skill_id == CR_CULTIVATION) && i != item_idx)
continue;
switch( skill_id ) {
@@ -16618,15 +17128,16 @@ struct skill_unit_group* skill_id2group(int group_id)
/// Fatal error if nothing is available.
int skill_get_new_group_id(void)
{
- if( skill->unit_group_newid >= MAX_SKILL_DB && skill->id2group(skill->unit_group_newid) == NULL )
+ if (skill->unit_group_newid > MAX_SKILL_ID && skill->id2group(skill->unit_group_newid) == NULL)
return skill->unit_group_newid++;// available
- {// find next id
+
+ {
+ // find next id
int base_id = skill->unit_group_newid;
- while( base_id != ++skill->unit_group_newid )
- {
- if( skill->unit_group_newid < MAX_SKILL_DB )
- skill->unit_group_newid = MAX_SKILL_DB;
- if( skill->id2group(skill->unit_group_newid) == NULL )
+ while (base_id != ++skill->unit_group_newid) {
+ if (skill->unit_group_newid <= MAX_SKILL_ID)
+ skill->unit_group_newid = MAX_SKILL_ID + 1;
+ if (skill->id2group(skill->unit_group_newid) == NULL)
return skill->unit_group_newid++;// available
}
// full loop, nothing available
@@ -16991,7 +17502,7 @@ int skill_unit_timer_sub(union DBKey key, struct DBData *data, va_list ap)
memset(&item_tmp,0,sizeof(item_tmp));
item_tmp.nameid = group->item_id ? group->item_id : ITEMID_BOOBY_TRAP;
item_tmp.identify = 1;
- map->addflooritem(bl, &item_tmp, 1, bl->m, bl->x, bl->y, 0, 0, 0, 0);
+ map->addflooritem(bl, &item_tmp, 1, bl->m, bl->x, bl->y, 0, 0, 0, 0, false);
}
skill->delunit(su);
}
@@ -17719,7 +18230,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
int difficulty = 30 + rnd()%120; // Random number between (30 ~ 150)
make_per = sd->status.job_level / 4 + st->luk / 2 + st->dex / 3; // (Caster?s Job Level / 4) + (Caster?s LUK / 2) + (Caster?s DEX / 3)
- qty = ~(5 + rnd()%5) + 1;
+ qty = ~(5 + rnd()%5) + 1; // FIXME[Haru]: This smells, if anyone knows the intent, please rewrite the expression in a more clear form.
switch(nameid){// difficulty factor
case ITEMID_APPLE_BOMB:
@@ -17755,7 +18266,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
qty = 5;
if( qty < 0 || (skill_lv == 1 && make_per < difficulty)){
- qty = ~qty + 1;
+ qty = ~qty + 1; // FIXME[Haru]: This smells. If anyone knows the intent, please rewrite the expression in a more clear form.
make_per = 0;
}else
make_per = 10000;
@@ -17946,7 +18457,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
tmp_item.amount = qty * skill->dbs->changematerial_db[i].qty[j];
if((flag = pc->additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_PRODUCE))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
k++;
}
@@ -17960,7 +18471,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
} else if (tmp_item.amount) { //Success
if((flag = pc->additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_PRODUCE))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
if( skill_id == GN_MIX_COOKING || skill_id == GN_MAKEBOMB || skill_id == GN_S_PHARMACY )
clif->msgtable_skill(sd, skill_id, MSG_SKILL_SUCCESS);
@@ -18012,7 +18523,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
int rate = rnd()%500;
memset(&tmp_item,0,sizeof(tmp_item));
if( rate < 50) i = 4;
- else if( rate < 100) i = 2+rnd()%1;
+ else if( rate < 100) i = 2+rnd()%1; // FIXME[Haru]: This '%1' is certainly not intended. If anyone knows the purpose, please rewrite this code.
else if( rate < 250 ) i = 1;
else if( rate < 500 ) i = 0;
tmp_item.nameid = compensation[i];
@@ -18020,7 +18531,7 @@ int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int nameid,
tmp_item.identify = 1;
if( pc->additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_PRODUCE) ) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
clif->msgtable_skill(sd, skill_id, MSG_SKILL_FAILURE);
}
@@ -18077,7 +18588,7 @@ int skill_arrow_create (struct map_session_data *sd, int nameid)
continue;
if((flag = pc->additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_PRODUCE))) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
@@ -18332,7 +18843,7 @@ int skill_elementalanalysis(struct map_session_data *sd, uint16 skill_lv, const
int flag = pc->additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_CONSUME);
if (flag) {
clif->additem(sd,0,0,flag);
- map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0);
+ map->addflooritem(&sd->bl, &tmp_item, tmp_item.amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 0, false);
}
}
@@ -18435,7 +18946,7 @@ int skill_blockpc_end(int tid, int64 tick, int id, intptr_t data)
struct map_session_data *sd = map->id2sd(id);
struct skill_cd * cd = NULL;
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (!sd || !sd->blockskill[data])
return 0;
@@ -18571,7 +19082,7 @@ int skill_blockpc_start_(struct map_session_data *sd, uint16 skill_id, int tick)
int skill_blockhomun_end(int tid, int64 tick, int id, intptr_t data)
{
struct homun_data *hd = map->id2hd(id);
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (hd != NULL)
hd->blockskill[data] = 0;
@@ -18600,7 +19111,7 @@ int skill_blockhomun_start(struct homun_data *hd, uint16 skill_id, int tick)
int skill_blockmerc_end(int tid, int64 tick, int id, intptr_t data)
{
struct mercenary_data *md = map->id2mc(id);
- if (data <= 0 || data >= MAX_SKILL)
+ if (data <= 0 || data >= MAX_SKILL_DB)
return 0;
if (md != NULL)
md->blockskill[data] = 0;
@@ -19338,21 +19849,6 @@ bool skill_parse_row_magicmushroomdb(char* split[], int column, int current)
return true;
}
-bool skill_parse_row_reproducedb(char* split[], int column, int current)
-{
- uint16 skill_id;
- uint16 idx;
- nullpo_retr(false, split);
- skill_id = atoi(split[0]);
- idx = skill->get_index(skill_id);
- if( !idx )
- return false;
-
- skill->dbs->reproduce_db[idx] = true;
-
- return true;
-}
-
bool skill_parse_row_abradb(char* split[], int columns, int current)
{
// skill_id,DummyName,RequiredHocusPocusLevel,Rate
@@ -19651,6 +20147,18 @@ void skill_validate_skillinfo(struct config_setting_t *conf, struct s_skill_db *
} else {
sk->inf2 &= ~INF2_FREE_CAST_REDUCED;
}
+ } else if (strcmpi(type, "ShowSkillScale") == 0) {
+ if (on) {
+ sk->inf2 |= INF2_SHOW_SKILL_SCALE;
+ } else {
+ sk->inf2 &= ~INF2_SHOW_SKILL_SCALE;
+ }
+ } else if (strcmpi(type, "AllowReproduce") == 0) {
+ if (on) {
+ sk->inf2 |= INF2_ALLOW_REPRODUCE;
+ } else {
+ sk->inf2 &= ~INF2_ALLOW_REPRODUCE;
+ }
} else if (strcmpi(type, "None") != 0) {
skilldb_invalid_error(type, config_setting_name(t), sk->nameid);
}
@@ -20477,7 +20985,7 @@ bool skill_read_skilldb(const char *filename)
struct config_setting_t *sk, *conf;
char filepath[256];
int count=0, index=0;
- bool duplicate[MAX_SKILL] = {0};
+ bool duplicate[MAX_SKILL_DB] = {0};
nullpo_retr(false, filename);
@@ -20763,7 +21271,6 @@ void skill_readdb(bool minimal)
sv->readdb(map->db_path, "spellbook_db.txt", ',', 3, 3, MAX_SKILL_SPELLBOOK_DB, skill->parse_row_spellbookdb);
//Guillotine Cross
sv->readdb(map->db_path, "magicmushroom_db.txt", ',', 1, 1, MAX_SKILL_MAGICMUSHROOM_DB, skill->parse_row_magicmushroomdb);
- sv->readdb(map->db_path, "skill_reproduce_db.txt", ',', 1, 1, MAX_SKILL_DB, skill->parse_row_reproducedb);
sv->readdb(map->db_path, "skill_improvise_db.txt", ',', 2, 2, MAX_SKILL_IMPROVISE_DB, skill->parse_row_improvisedb);
sv->readdb(map->db_path, "skill_changematerial_db.txt", ',', 4, 4+2*5, MAX_SKILL_PRODUCE_DB, skill->parse_row_changematerialdb);
}
@@ -20902,8 +21409,12 @@ void skill_defaults(void)
skill->get_hp = skill_get_hp;
skill->get_mhp = skill_get_mhp;
skill->get_sp = skill_get_sp;
+ skill->get_hp_rate = skill_get_hp_rate;
+ skill->get_sp_rate = skill_get_sp_rate;
skill->get_state = skill_get_state;
skill->get_spiritball = skill_get_spiritball;
+ skill->get_itemid = skill_get_itemid;
+ skill->get_itemqty = skill_get_itemqty;
skill->get_zeny = skill_get_zeny;
skill->get_num = skill_get_num;
skill->get_cast = skill_get_cast;
@@ -20932,7 +21443,6 @@ void skill_defaults(void)
skill->tree_get_max = skill_tree_get_max;
skill->get_name = skill_get_name;
skill->get_desc = skill_get_desc;
- skill->chk = skill_chk;
skill->get_casttype = skill_get_casttype;
skill->get_casttype2 = skill_get_casttype2;
skill->is_combo = skill_is_combo;
@@ -21074,7 +21584,6 @@ void skill_defaults(void)
skill->parse_row_abradb = skill_parse_row_abradb;
skill->parse_row_spellbookdb = skill_parse_row_spellbookdb;
skill->parse_row_magicmushroomdb = skill_parse_row_magicmushroomdb;
- skill->parse_row_reproducedb = skill_parse_row_reproducedb;
skill->parse_row_improvisedb = skill_parse_row_improvisedb;
skill->parse_row_changematerialdb = skill_parse_row_changematerialdb;
skill->usave_add = skill_usave_add;
diff --git a/src/map/skill.h b/src/map/skill.h
index bba440107..c494c0e83 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -25,7 +25,7 @@
#include "map/status.h" // enum sc_type
#include "common/hercules.h"
#include "common/db.h"
-#include "common/mmo.h" // MAX_SKILL, struct square
+#include "common/mmo.h" // MAX_SKILL_DB, struct square
/**
* Declarations
@@ -43,7 +43,6 @@ struct status_change_entry;
/**
* Defines
**/
-#define MAX_SKILL_DB MAX_SKILL
#define MAX_SKILL_PRODUCE_DB 270
#define MAX_PRODUCE_RESOURCE 10
#define MAX_SKILL_ARROW_DB 140
@@ -77,6 +76,7 @@ struct status_change_entry;
//Constants to identify the skill's inf value:
enum e_skill_inf {
+ INF_NONE = 0x00,
INF_ATTACK_SKILL = 0x01,
INF_GROUND_SKILL = 0x02,
INF_SELF_SKILL = 0x04, // Skills casted on self where target is automatically chosen
@@ -89,6 +89,7 @@ enum e_skill_inf {
//The NK value applies only to non INF_GROUND_SKILL skills
//when determining skill castend function to invoke.
enum e_skill_nk {
+ NK_NONE = 0x00,
NK_NO_DAMAGE = 0x01,
NK_SPLASH = 0x02|0x04, // 0x4 = splash & split
NK_SPLASH_ONLY = 0x02,
@@ -103,6 +104,7 @@ enum e_skill_nk {
//A skill with 3 would be no damage + splash: area of effect.
//Constants to identify a skill's inf2 value.
enum e_skill_inf2 {
+ INF2_NONE = 0x00000,
INF2_QUEST_SKILL = 0x00001,
INF2_NPC_SKILL = 0x00002, // NPC skills are those that players can't have in their skill tree.
INF2_WEDDING_SKILL = 0x00004,
@@ -120,6 +122,8 @@ enum e_skill_inf2 {
INF2_CHORUS_SKILL = 0x04000, // Chorus skill
INF2_FREE_CAST_NORMAL = 0x08000,
INF2_FREE_CAST_REDUCED = 0x10000,
+ INF2_SHOW_SKILL_SCALE = 0x20000,
+ INF2_ALLOW_REPRODUCE = 0x40000,
};
@@ -132,6 +136,7 @@ enum e_skill_display {
};
enum {
+ UF_NONE = 0x0000,
UF_DEFNOTENEMY = 0x0001, // If 'defunit_not_enemy' is set, the target is changed to 'friend'
UF_NOREITERATION = 0x0002, // Spell cannot be stacked
UF_NOFOOTSET = 0x0004, // Spell cannot be cast near/on targets
@@ -158,7 +163,7 @@ enum wl_spheres {
};
enum {
- ST_NONE,
+ ST_NONE = 0,
ST_HIDING,
ST_CLOAKING,
ST_HIDDEN,
@@ -1893,7 +1898,6 @@ BEGIN_ZEROED_BLOCK; // This block will be zeroed in skill_defaults() as well as
struct s_skill_improvise_db improvise_db[MAX_SKILL_IMPROVISE_DB];
struct s_skill_changematerial_db changematerial_db[MAX_SKILL_PRODUCE_DB];
struct s_skill_spellbook_db spellbook_db[MAX_SKILL_SPELLBOOK_DB];
- bool reproduce_db[MAX_SKILL_DB];
END_ZEROED_BLOCK;
struct s_skill_unit_layout unit_layout[MAX_SKILL_UNIT_LAYOUT];
};
@@ -1930,54 +1934,56 @@ struct skill_interface {
int unit_temp[20]; // temporary storage for tracking skill unit skill ids as players move in/out of them
int unit_group_newid;
/* accesssors */
- int (*get_index) ( uint16 skill_id );
- int (*get_type) ( uint16 skill_id );
- int (*get_hit) ( uint16 skill_id );
- int (*get_inf) ( uint16 skill_id );
- int (*get_ele) ( uint16 skill_id, uint16 skill_lv );
- int (*get_nk) ( uint16 skill_id );
- int (*get_max) ( uint16 skill_id );
- int (*get_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_range2) (struct block_list *bl, uint16 skill_id, uint16 skill_lv);
- int (*get_splash) ( uint16 skill_id, uint16 skill_lv );
- int (*get_hp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_mhp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_sp) ( uint16 skill_id, uint16 skill_lv );
- int (*get_state) (uint16 skill_id);
- int (*get_spiritball) (uint16 skill_id, uint16 skill_lv);
- int (*get_zeny) ( uint16 skill_id, uint16 skill_lv );
- int (*get_num) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cast) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_walkdelay) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time) ( uint16 skill_id, uint16 skill_lv );
- int (*get_time2) ( uint16 skill_id, uint16 skill_lv );
- int (*get_castnodex) ( uint16 skill_id, uint16 skill_lv );
- int (*get_delaynodex) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_castdef) ( uint16 skill_id );
- int (*get_weapontype) ( uint16 skill_id );
- int (*get_ammotype) ( uint16 skill_id );
- int (*get_ammo_qty) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_id) (uint16 skill_id,int flag);
- int (*get_inf2) ( uint16 skill_id );
- int (*get_castcancel) ( uint16 skill_id );
- int (*get_maxcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_blewcount) ( uint16 skill_id, uint16 skill_lv );
- int (*get_unit_flag) ( uint16 skill_id );
- int (*get_unit_target) ( uint16 skill_id );
- int (*get_unit_interval) ( uint16 skill_id );
- int (*get_unit_bl_target) ( uint16 skill_id );
- int (*get_unit_layout_type) ( uint16 skill_id ,uint16 skill_lv );
- int (*get_unit_range) ( uint16 skill_id, uint16 skill_lv );
- int (*get_cooldown) ( uint16 skill_id, uint16 skill_lv );
- int (*tree_get_max) (uint16 skill_id, int class);
- const char *(*get_name) ( uint16 skill_id );
- const char *(*get_desc) ( uint16 skill_id );
- /* check */
- void (*chk) (uint16* skill_id);
+ int (*get_index) (int skill_id);
+ int (*get_type) (int skill_id);
+ int (*get_hit) (int skill_id);
+ int (*get_inf) (int skill_id);
+ int (*get_ele) (int skill_id, int skill_lv);
+ int (*get_nk) (int skill_id);
+ int (*get_max) (int skill_id);
+ int (*get_range) (int skill_id, int skill_lv);
+ int (*get_range2) (struct block_list *bl, int skill_id, int skill_lv);
+ int (*get_splash) (int skill_id, int skill_lv);
+ int (*get_hp) (int skill_id, int skill_lv);
+ int (*get_mhp) (int skill_id, int skill_lv);
+ int (*get_sp) (int skill_id, int skill_lv);
+ int (*get_hp_rate) (int skill_id, int skill_lv);
+ int (*get_sp_rate) (int skill_id, int skill_lv);
+ int (*get_state) (int skill_id);
+ int (*get_spiritball) (int skill_id, int skill_lv);
+ int (*get_itemid) (int skill_id, int item_idx);
+ int (*get_itemqty) (int skill_id, int item_idx);
+ int (*get_zeny) (int skill_id, int skill_lv);
+ int (*get_num) (int skill_id, int skill_lv);
+ int (*get_cast) (int skill_id, int skill_lv);
+ int (*get_delay) (int skill_id, int skill_lv);
+ int (*get_walkdelay) (int skill_id, int skill_lv);
+ int (*get_time) (int skill_id, int skill_lv);
+ int (*get_time2) (int skill_id, int skill_lv);
+ int (*get_castnodex) (int skill_id, int skill_lv);
+ int (*get_delaynodex) (int skill_id, int skill_lv);
+ int (*get_castdef) (int skill_id);
+ int (*get_weapontype) (int skill_id);
+ int (*get_ammotype) (int skill_id);
+ int (*get_ammo_qty) (int skill_id, int skill_lv);
+ int (*get_unit_id) (int skill_id, int flag);
+ int (*get_inf2) (int skill_id);
+ int (*get_castcancel) (int skill_id);
+ int (*get_maxcount) (int skill_id, int skill_lv);
+ int (*get_blewcount) (int skill_id, int skill_lv);
+ int (*get_unit_flag) (int skill_id);
+ int (*get_unit_target) (int skill_id);
+ int (*get_unit_interval) (int skill_id);
+ int (*get_unit_bl_target) (int skill_id);
+ int (*get_unit_layout_type) (int skill_id, int skill_lv);
+ int (*get_unit_range) (int skill_id, int skill_lv);
+ int (*get_cooldown) (int skill_id, int skill_lv);
+ int (*tree_get_max) (int skill_id, int class);
+ const char *(*get_name) (int skill_id);
+ const char *(*get_desc) (int skill_id);
/* whether its CAST_GROUND, CAST_DAMAGE or CAST_NODAMAGE */
- int (*get_casttype) (uint16 skill_id);
- int (*get_casttype2) (uint16 index);
+ int (*get_casttype) (int skill_id);
+ int (*get_casttype2) (int index);
bool (*is_combo) (int skill_id);
int (*name2id) (const char* name);
int (*isammotype) (struct map_session_data *sd, int skill_id);
@@ -2071,7 +2077,7 @@ struct skill_interface {
int (*check_condition_mob_master_sub) (struct block_list *bl, va_list ap);
void (*brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y);
void (*brandishspear_dir) (struct square* tc, uint8 dir, int are);
- int (*get_fixed_cast) ( uint16 skill_id ,uint16 skill_lv );
+ int (*get_fixed_cast) (int skill_id, int skill_lv);
int (*sit_count) (struct block_list *bl, va_list ap);
int (*sit_in) (struct block_list *bl, va_list ap);
int (*sit_out) (struct block_list *bl, va_list ap);
@@ -2115,7 +2121,6 @@ struct skill_interface {
bool (*parse_row_abradb) (char* split[], int columns, int current);
bool (*parse_row_spellbookdb) (char* split[], int columns, int current);
bool (*parse_row_magicmushroomdb) (char* split[], int column, int current);
- bool (*parse_row_reproducedb) (char* split[], int column, int current);
bool (*parse_row_improvisedb) (char* split[], int columns, int current);
bool (*parse_row_changematerialdb) (char* split[], int columns, int current);
/* save new unit skill */
diff --git a/src/map/status.c b/src/map/status.c
index e0893aa36..9e578bc12 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -159,7 +159,7 @@ void initChangeTables(void)
for (i = 0; i < SC_MAX; i++)
status->dbs->IconChangeTable[i] = SI_BLANK;
- for (i = 0; i < MAX_SKILL; i++)
+ for (i = 0; i < MAX_SKILL_DB; i++)
status->dbs->Skill2SCTable[i] = SC_NONE;
for (i = 0; i < SI_MAX; i++)
@@ -2329,7 +2329,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
static int calculating = 0; //Check for recursive call preemption. [Skotlex]
struct status_data *bstatus; // pointer to the player's base status
const struct status_change *sc;
- struct s_skill b_skill[MAX_SKILL]; // previous skill tree
+ struct s_skill b_skill[MAX_SKILL_DB]; // previous skill tree
int b_weight, b_max_weight, b_cart_weight_max, // previous weight
i, k, index, skill_lv,refinedef=0;
int64 i64;
@@ -6809,7 +6809,7 @@ struct view_data *status_get_viewdata(struct block_list *bl)
case BL_PC: return &BL_UCAST(BL_PC, bl)->vd;
case BL_MOB: return BL_UCAST(BL_MOB, bl)->vd;
case BL_PET: return &BL_UCAST(BL_PET, bl)->vd;
- case BL_NPC: return BL_UCAST(BL_NPC, bl)->vd;
+ case BL_NPC: return &BL_UCAST(BL_NPC, bl)->vd;
case BL_HOM: return BL_UCAST(BL_HOM, bl)->vd;
case BL_MER: return BL_UCAST(BL_MER, bl)->vd;
case BL_ELEM: return BL_UCAST(BL_ELEM, bl)->vd;
@@ -6927,10 +6927,14 @@ void status_set_viewdata(struct block_list *bl, int class_)
case BL_NPC:
{
struct npc_data *nd = BL_UCAST(BL_NPC, bl);
- if (vd != NULL)
- nd->vd = vd;
- else
+ if (vd != NULL) {
+ memcpy(&nd->vd, vd, sizeof(struct view_data));
+ } else if (pc->db_checkid(class_)) {
+ memset(&nd->vd, 0, sizeof(struct view_data));
+ nd->vd.class = class_;
+ } else {
ShowError("status_set_viewdata (NPC): No view data for class %d (name=%s)\n", class_, nd->name);
+ }
}
break;
case BL_HOM: //[blackhole89]
@@ -11542,24 +11546,26 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data)
break;
case SC_POISON:
- if(st->hp <= max(st->max_hp>>2, sce->val4)) //Stop damaging after 25% HP left.
+ if (st->hp <= max(st->max_hp / 4, sce->val4)) //Stop damaging after 25% HP left.
break;
FALLTHROUGH
case SC_DPOISON:
if (--(sce->val3) > 0) {
- if (!sc->data[SC_SLOWPOISON]) {
- if( sce->val2 && bl->type == BL_MOB ) {
- struct block_list* src = map->id2bl(sce->val2);
- if (src != NULL)
- mob->log_damage(BL_UCAST(BL_MOB, bl), src, sce->val4);
- }
- map->freeblock_lock();
- status_zap(bl, sce->val4, 0);
- if (sc->data[type]) { // Check if the status still last ( can be dead since then ).
- sc_timer_next(1000 + tick, status->change_timer, bl->id, data );
- }
- map->freeblock_unlock();
+ if (sc->data[SC_SLOWPOISON] != NULL) {
+ sc_timer_next(1000 + tick, status->change_timer, bl->id, data);
+ return 0;
+ }
+ if (sce->val2 != 0 && bl->type == BL_MOB) {
+ struct block_list* src = map->id2bl(sce->val2);
+ if (src != NULL)
+ mob->log_damage(BL_UCAST(BL_MOB, bl), src, sce->val4);
}
+ map->freeblock_lock();
+ status_zap(bl, sce->val4, 0);
+ if (sc->data[type] != NULL) { // Check if the status still last (can be dead since then).
+ sc_timer_next(1000 + tick, status->change_timer, bl->id, data);
+ }
+ map->freeblock_unlock();
return 0;
}
break;
diff --git a/src/map/status.h b/src/map/status.h
index a104c66ab..e9c2218e8 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -2257,7 +2257,7 @@ BEGIN_ZEROED_BLOCK; /* Everything within this block will be memset to 0 when sta
int HP_table[CLASS_COUNT][MAX_LEVEL + 1];
int SP_table[CLASS_COUNT][MAX_LEVEL + 1];
int aspd_base[CLASS_COUNT][MAX_SINGLE_WEAPON_TYPE+1]; // +1 for RENEWAL_ASPD
- sc_type Skill2SCTable[MAX_SKILL]; // skill -> status
+ sc_type Skill2SCTable[MAX_SKILL_DB]; // skill -> status
int IconChangeTable[SC_MAX]; // status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated)
unsigned int ChangeFlagTable[SC_MAX]; // status -> flags
int SkillChangeTable[SC_MAX]; // status -> skill
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc
index d6ce83912..db578e59f 100644
--- a/src/plugins/HPMHooking/HPMHooking.Defs.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1174,8 +1174,8 @@ typedef void (*HPMHOOK_pre_clif_feel_hate_reset) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_feel_hate_reset) (struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_partytickack) (struct map_session_data **sd, bool *flag);
typedef void (*HPMHOOK_post_clif_partytickack) (struct map_session_data *sd, bool flag);
-typedef void (*HPMHOOK_pre_clif_equiptickack) (struct map_session_data **sd, int *flag);
-typedef void (*HPMHOOK_post_clif_equiptickack) (struct map_session_data *sd, int flag);
+typedef void (*HPMHOOK_pre_clif_zc_config) (struct map_session_data **sd, int *type, int *flag);
+typedef void (*HPMHOOK_post_clif_zc_config) (struct map_session_data *sd, int type, int flag);
typedef void (*HPMHOOK_pre_clif_viewequip_ack) (struct map_session_data **sd, struct map_session_data **tsd);
typedef void (*HPMHOOK_post_clif_viewequip_ack) (struct map_session_data *sd, struct map_session_data *tsd);
typedef void (*HPMHOOK_pre_clif_equpcheckbox) (struct map_session_data **sd);
@@ -1188,6 +1188,8 @@ typedef void (*HPMHOOK_pre_clif_progressbar) (struct map_session_data **sd, unsi
typedef void (*HPMHOOK_post_clif_progressbar) (struct map_session_data *sd, unsigned int color, unsigned int second);
typedef void (*HPMHOOK_pre_clif_progressbar_abort) (struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_progressbar_abort) (struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_progressbar_unit) (struct block_list **bl, uint32 *color, uint32 *time);
+typedef void (*HPMHOOK_post_clif_progressbar_unit) (struct block_list *bl, uint32 color, uint32 time);
typedef void (*HPMHOOK_pre_clif_showdigit) (struct map_session_data **sd, unsigned char *type, int *value);
typedef void (*HPMHOOK_post_clif_showdigit) (struct map_session_data *sd, unsigned char type, int value);
typedef int (*HPMHOOK_pre_clif_elementalconverter_list) (struct map_session_data **sd);
@@ -2132,8 +2134,8 @@ typedef void (*HPMHOOK_pre_clif_pAdopt_reply) (int *fd, struct map_session_data
typedef void (*HPMHOOK_post_clif_pAdopt_reply) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pViewPlayerEquip) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pViewPlayerEquip) (int fd, struct map_session_data *sd);
-typedef void (*HPMHOOK_pre_clif_pEquipTick) (int *fd, struct map_session_data **sd);
-typedef void (*HPMHOOK_post_clif_pEquipTick) (int fd, struct map_session_data *sd);
+typedef void (*HPMHOOK_pre_clif_p_cz_config) (int *fd, struct map_session_data **sd);
+typedef void (*HPMHOOK_post_clif_p_cz_config) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pquestStateAck) (int *fd, struct map_session_data **sd);
typedef void (*HPMHOOK_post_clif_pquestStateAck) (int fd, struct map_session_data *sd);
typedef void (*HPMHOOK_pre_clif_pmercenary_action) (int *fd, struct map_session_data **sd);
@@ -2294,6 +2296,8 @@ typedef void (*HPMHOOK_pre_clif_rodex_request_items) (struct map_session_data **
typedef void (*HPMHOOK_post_clif_rodex_request_items) (struct map_session_data *sd, int8 opentype, int64 mail_id, int8 result);
typedef void (*HPMHOOK_pre_clif_rodex_icon) (int *fd, bool *show);
typedef void (*HPMHOOK_post_clif_rodex_icon) (int fd, bool show);
+typedef void (*HPMHOOK_pre_clif_skill_scale) (struct block_list **bl, int *src_id, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int *casttime);
+typedef void (*HPMHOOK_post_clif_skill_scale) (struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime);
#endif // MAP_CLIF_H
#ifdef COMMON_CORE_H /* cmdline */
typedef void (*HPMHOOK_pre_cmdline_init) (void);
@@ -3560,6 +3564,8 @@ typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_LOGIN_HAN) (int
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_LOGIN_HAN) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) (int *fd, struct login_session_data **sd);
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_LOGIN_OTP) (int *fd, struct login_session_data **sd);
+typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_LOGIN_OTP) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_REQ_HASH) (int *fd, struct login_session_data **sd);
typedef enum parsefunc_rcode (*HPMHOOK_post_PRIV__lclif_parse_CA_REQ_HASH) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
typedef enum parsefunc_rcode (*HPMHOOK_pre_PRIV__lclif_parse_CA_CHARSERVERCONNECT) (int *fd, struct login_session_data **sd);
@@ -3840,6 +3846,8 @@ typedef void (*HPMHOOK_pre_login_auth_failed) (struct login_session_data **sd, i
typedef void (*HPMHOOK_post_login_auth_failed) (struct login_session_data *sd, int result);
typedef bool (*HPMHOOK_pre_login_client_login) (int *fd, struct login_session_data **sd);
typedef bool (*HPMHOOK_post_login_client_login) (bool retVal___, int fd, struct login_session_data *sd);
+typedef bool (*HPMHOOK_pre_login_client_login_otp) (int *fd, struct login_session_data **sd);
+typedef bool (*HPMHOOK_post_login_client_login_otp) (bool retVal___, int fd, struct login_session_data *sd);
typedef void (*HPMHOOK_pre_login_char_server_connection_status) (int *fd, struct login_session_data **sd, uint8 *status);
typedef void (*HPMHOOK_post_login_char_server_connection_status) (int fd, struct login_session_data *sd, uint8 status);
typedef void (*HPMHOOK_pre_login_parse_request_connection) (int *fd, struct login_session_data **sd, const char **ip, uint32 *ipl);
@@ -3848,6 +3856,32 @@ typedef void (*HPMHOOK_pre_login_config_set_defaults) (void);
typedef void (*HPMHOOK_post_login_config_set_defaults) (void);
typedef bool (*HPMHOOK_pre_login_config_read) (const char **filename, bool *included);
typedef bool (*HPMHOOK_post_login_config_read) (bool retVal___, const char *filename, bool included);
+typedef bool (*HPMHOOK_pre_login_config_read_inter) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_inter) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_console) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_console) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_log) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_log) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_account) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_account) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_permission) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_permission) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_permission_hash) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_permission_hash) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_permission_blacklist) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_permission_blacklist) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef bool (*HPMHOOK_pre_login_config_read_users) (const char **filename, struct config_t **config, bool *imported);
+typedef bool (*HPMHOOK_post_login_config_read_users) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+typedef void (*HPMHOOK_pre_login_clear_dnsbl_servers) (void);
+typedef void (*HPMHOOK_post_login_clear_dnsbl_servers) (void);
+typedef void (*HPMHOOK_pre_login_config_set_dnsbl_servers) (struct config_setting_t **setting);
+typedef void (*HPMHOOK_post_login_config_set_dnsbl_servers) (struct config_setting_t *setting);
+typedef void (*HPMHOOK_pre_login_clear_client_hash_nodes) (void);
+typedef void (*HPMHOOK_post_login_clear_client_hash_nodes) (void);
+typedef void (*HPMHOOK_pre_login_config_set_md5hash) (struct config_setting_t **setting);
+typedef void (*HPMHOOK_post_login_config_set_md5hash) (struct config_setting_t *setting);
+typedef uint16 (*HPMHOOK_pre_login_convert_users_to_colors) (uint16 *users);
+typedef uint16 (*HPMHOOK_post_login_convert_users_to_colors) (uint16 retVal___, uint16 users);
#endif // LOGIN_LOGIN_H
#ifdef CHAR_LOGINIF_H /* loginif */
typedef void (*HPMHOOK_pre_loginif_init) (void);
@@ -3952,8 +3986,8 @@ typedef int (*HPMHOOK_pre_map_removemobs_timer) (int *tid, int64 *tick, int *id,
typedef int (*HPMHOOK_post_map_removemobs_timer) (int retVal___, int tid, int64 tick, int id, intptr_t data);
typedef void (*HPMHOOK_pre_map_clearflooritem) (struct block_list **bl);
typedef void (*HPMHOOK_post_map_clearflooritem) (struct block_list *bl);
-typedef int (*HPMHOOK_pre_map_addflooritem) (const struct block_list **bl, struct item **item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags);
-typedef int (*HPMHOOK_post_map_addflooritem) (int retVal___, const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags);
+typedef int (*HPMHOOK_pre_map_addflooritem) (const struct block_list **bl, struct item **item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags, bool *showdropeffect);
+typedef int (*HPMHOOK_post_map_addflooritem) (int retVal___, const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags, bool showdropeffect);
typedef void (*HPMHOOK_pre_map_addnickdb) (int *charid, const char **nick);
typedef void (*HPMHOOK_post_map_addnickdb) (int charid, const char *nick);
typedef void (*HPMHOOK_pre_map_delnickdb) (int *charid, const char **nick);
@@ -5124,6 +5158,8 @@ typedef void (*HPMHOOK_pre_npc_market_delfromsql_sub) (const char **npcname, uns
typedef void (*HPMHOOK_post_npc_market_delfromsql_sub) (const char *npcname, unsigned short index);
typedef bool (*HPMHOOK_pre_npc_db_checkid) (const int *id);
typedef bool (*HPMHOOK_post_npc_db_checkid) (bool retVal___, const int id);
+typedef void (*HPMHOOK_pre_npc_refresh) (struct npc_data **nd);
+typedef void (*HPMHOOK_post_npc_refresh) (struct npc_data *nd);
typedef int (*HPMHOOK_pre_npc_secure_timeout_timer) (int *tid, int64 *tick, int *id, intptr_t *data);
typedef int (*HPMHOOK_post_npc_secure_timeout_timer) (int retVal___, int tid, int64 tick, int id, intptr_t data);
#endif // MAP_NPC_H
@@ -6330,98 +6366,104 @@ typedef void (*HPMHOOK_pre_skill_reload) (void);
typedef void (*HPMHOOK_post_skill_reload) (void);
typedef void (*HPMHOOK_pre_skill_read_db) (bool *minimal);
typedef void (*HPMHOOK_post_skill_read_db) (bool minimal);
-typedef int (*HPMHOOK_pre_skill_get_index) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_index) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_type) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_hit) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_inf) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_inf) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ele) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_ele) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_nk) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_nk) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_max) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_max) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_range) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_range) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_range2) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_range2) (int retVal___, struct block_list *bl, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_splash) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_splash) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_hp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_hp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_mhp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_mhp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_sp) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_sp) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_state) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_spiritball) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_spiritball) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_zeny) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_zeny) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_num) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_num) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_cast) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_cast) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_delay) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_delay) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_walkdelay) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_walkdelay) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_time) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_time) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_time2) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_time2) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_castnodex) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_castnodex) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_delaynodex) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_delaynodex) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_castdef) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_weapontype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_weapontype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ammotype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_ammotype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_ammo_qty) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_ammo_qty) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_id) (uint16 *skill_id, int *flag);
-typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, uint16 skill_id, int flag);
-typedef int (*HPMHOOK_pre_skill_get_inf2) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_inf2) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_castcancel) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_maxcount) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_maxcount) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_blewcount) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_blewcount) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_flag) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_flag) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_target) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_interval) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_unit_layout_type) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_unit_layout_type) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_unit_range) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_unit_range) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_get_cooldown) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_cooldown) (int retVal___, uint16 skill_id, uint16 skill_lv);
-typedef int (*HPMHOOK_pre_skill_tree_get_max) (uint16 *skill_id, int *class);
-typedef int (*HPMHOOK_post_skill_tree_get_max) (int retVal___, uint16 skill_id, int class);
-typedef const char* (*HPMHOOK_pre_skill_get_name) (uint16 *skill_id);
-typedef const char* (*HPMHOOK_post_skill_get_name) (const char* retVal___, uint16 skill_id);
-typedef const char* (*HPMHOOK_pre_skill_get_desc) (uint16 *skill_id);
-typedef const char* (*HPMHOOK_post_skill_get_desc) (const char* retVal___, uint16 skill_id);
-typedef void (*HPMHOOK_pre_skill_chk) (uint16 **skill_id);
-typedef void (*HPMHOOK_post_skill_chk) (uint16 *skill_id);
-typedef int (*HPMHOOK_pre_skill_get_casttype) (uint16 *skill_id);
-typedef int (*HPMHOOK_post_skill_get_casttype) (int retVal___, uint16 skill_id);
-typedef int (*HPMHOOK_pre_skill_get_casttype2) (uint16 *index);
-typedef int (*HPMHOOK_post_skill_get_casttype2) (int retVal___, uint16 index);
+typedef int (*HPMHOOK_pre_skill_get_index) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_index) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_type) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_type) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_hit) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_hit) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_inf) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_inf) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ele) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_ele) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_nk) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_nk) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_max) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_max) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_range) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_range) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_range2) (struct block_list **bl, int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_range2) (int retVal___, struct block_list *bl, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_splash) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_splash) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_hp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_hp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_mhp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_mhp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_sp) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_sp) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_hp_rate) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_hp_rate) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_sp_rate) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_sp_rate) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_state) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_state) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_spiritball) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_spiritball) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_itemid) (int *skill_id, int *item_idx);
+typedef int (*HPMHOOK_post_skill_get_itemid) (int retVal___, int skill_id, int item_idx);
+typedef int (*HPMHOOK_pre_skill_get_itemqty) (int *skill_id, int *item_idx);
+typedef int (*HPMHOOK_post_skill_get_itemqty) (int retVal___, int skill_id, int item_idx);
+typedef int (*HPMHOOK_pre_skill_get_zeny) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_zeny) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_num) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_num) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_cast) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_cast) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_delay) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_delay) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_walkdelay) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_walkdelay) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_time) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_time) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_time2) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_time2) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_castnodex) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_castnodex) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_delaynodex) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_delaynodex) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_castdef) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_castdef) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_weapontype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_weapontype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ammotype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_ammotype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_ammo_qty) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_ammo_qty) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_id) (int *skill_id, int *flag);
+typedef int (*HPMHOOK_post_skill_get_unit_id) (int retVal___, int skill_id, int flag);
+typedef int (*HPMHOOK_pre_skill_get_inf2) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_inf2) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_castcancel) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_castcancel) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_maxcount) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_maxcount) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_blewcount) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_blewcount) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_flag) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_flag) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_target) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_target) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_interval) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_interval) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_bl_target) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_unit_bl_target) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_unit_layout_type) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_unit_layout_type) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_unit_range) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_unit_range) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_cooldown) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_cooldown) (int retVal___, int skill_id, int skill_lv);
+typedef int (*HPMHOOK_pre_skill_tree_get_max) (int *skill_id, int *class);
+typedef int (*HPMHOOK_post_skill_tree_get_max) (int retVal___, int skill_id, int class);
+typedef const char* (*HPMHOOK_pre_skill_get_name) (int *skill_id);
+typedef const char* (*HPMHOOK_post_skill_get_name) (const char* retVal___, int skill_id);
+typedef const char* (*HPMHOOK_pre_skill_get_desc) (int *skill_id);
+typedef const char* (*HPMHOOK_post_skill_get_desc) (const char* retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_casttype) (int *skill_id);
+typedef int (*HPMHOOK_post_skill_get_casttype) (int retVal___, int skill_id);
+typedef int (*HPMHOOK_pre_skill_get_casttype2) (int *index);
+typedef int (*HPMHOOK_post_skill_get_casttype2) (int retVal___, int index);
typedef bool (*HPMHOOK_pre_skill_is_combo) (int *skill_id);
typedef bool (*HPMHOOK_post_skill_is_combo) (bool retVal___, int skill_id);
typedef int (*HPMHOOK_pre_skill_name2id) (const char **name);
@@ -6608,8 +6650,8 @@ typedef void (*HPMHOOK_pre_skill_brandishspear_first) (struct square **tc, uint8
typedef void (*HPMHOOK_post_skill_brandishspear_first) (struct square *tc, uint8 dir, int16 x, int16 y);
typedef void (*HPMHOOK_pre_skill_brandishspear_dir) (struct square **tc, uint8 *dir, int *are);
typedef void (*HPMHOOK_post_skill_brandishspear_dir) (struct square *tc, uint8 dir, int are);
-typedef int (*HPMHOOK_pre_skill_get_fixed_cast) (uint16 *skill_id, uint16 *skill_lv);
-typedef int (*HPMHOOK_post_skill_get_fixed_cast) (int retVal___, uint16 skill_id, uint16 skill_lv);
+typedef int (*HPMHOOK_pre_skill_get_fixed_cast) (int *skill_id, int *skill_lv);
+typedef int (*HPMHOOK_post_skill_get_fixed_cast) (int retVal___, int skill_id, int skill_lv);
typedef int (*HPMHOOK_pre_skill_sit_count) (struct block_list **bl, va_list ap);
typedef int (*HPMHOOK_post_skill_sit_count) (int retVal___, struct block_list *bl, va_list ap);
typedef int (*HPMHOOK_pre_skill_sit_in) (struct block_list **bl, va_list ap);
@@ -6696,8 +6738,6 @@ typedef bool (*HPMHOOK_pre_skill_parse_row_spellbookdb) (char **split[], int *co
typedef bool (*HPMHOOK_post_skill_parse_row_spellbookdb) (bool retVal___, char *split[], int columns, int current);
typedef bool (*HPMHOOK_pre_skill_parse_row_magicmushroomdb) (char **split[], int *column, int *current);
typedef bool (*HPMHOOK_post_skill_parse_row_magicmushroomdb) (bool retVal___, char *split[], int column, int current);
-typedef bool (*HPMHOOK_pre_skill_parse_row_reproducedb) (char **split[], int *column, int *current);
-typedef bool (*HPMHOOK_post_skill_parse_row_reproducedb) (bool retVal___, char *split[], int column, int current);
typedef bool (*HPMHOOK_pre_skill_parse_row_improvisedb) (char **split[], int *columns, int *current);
typedef bool (*HPMHOOK_post_skill_parse_row_improvisedb) (bool retVal___, char *split[], int columns, int current);
typedef bool (*HPMHOOK_pre_skill_parse_row_changematerialdb) (char **split[], int *columns, int *current);
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
index 3eeb7fd91..d7e6f524d 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
index bbd484fe1..14dc89804 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
index a372f83b3..1836bf6ba 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_char.sources.inc b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
index b5e9afc08..8b2f1b071 100644
--- a/src/plugins/HPMHooking/HPMHooking_char.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_char.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
index 57c1e0233..f8c270de3 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -138,6 +138,8 @@ struct {
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_LOGIN_HAN_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_pre;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_post;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre;
+ struct HPMHookPoint *HP_PRIV__lclif_parse_CA_LOGIN_OTP_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_REQ_HASH_pre;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_REQ_HASH_post;
struct HPMHookPoint *HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT_pre;
@@ -368,6 +370,8 @@ struct {
struct HPMHookPoint *HP_login_auth_failed_post;
struct HPMHookPoint *HP_login_client_login_pre;
struct HPMHookPoint *HP_login_client_login_post;
+ struct HPMHookPoint *HP_login_client_login_otp_pre;
+ struct HPMHookPoint *HP_login_client_login_otp_post;
struct HPMHookPoint *HP_login_char_server_connection_status_pre;
struct HPMHookPoint *HP_login_char_server_connection_status_post;
struct HPMHookPoint *HP_login_parse_request_connection_pre;
@@ -376,6 +380,32 @@ struct {
struct HPMHookPoint *HP_login_config_set_defaults_post;
struct HPMHookPoint *HP_login_config_read_pre;
struct HPMHookPoint *HP_login_config_read_post;
+ struct HPMHookPoint *HP_login_config_read_inter_pre;
+ struct HPMHookPoint *HP_login_config_read_inter_post;
+ struct HPMHookPoint *HP_login_config_read_console_pre;
+ struct HPMHookPoint *HP_login_config_read_console_post;
+ struct HPMHookPoint *HP_login_config_read_log_pre;
+ struct HPMHookPoint *HP_login_config_read_log_post;
+ struct HPMHookPoint *HP_login_config_read_account_pre;
+ struct HPMHookPoint *HP_login_config_read_account_post;
+ struct HPMHookPoint *HP_login_config_read_permission_pre;
+ struct HPMHookPoint *HP_login_config_read_permission_post;
+ struct HPMHookPoint *HP_login_config_read_permission_hash_pre;
+ struct HPMHookPoint *HP_login_config_read_permission_hash_post;
+ struct HPMHookPoint *HP_login_config_read_permission_blacklist_pre;
+ struct HPMHookPoint *HP_login_config_read_permission_blacklist_post;
+ struct HPMHookPoint *HP_login_config_read_users_pre;
+ struct HPMHookPoint *HP_login_config_read_users_post;
+ struct HPMHookPoint *HP_login_clear_dnsbl_servers_pre;
+ struct HPMHookPoint *HP_login_clear_dnsbl_servers_post;
+ struct HPMHookPoint *HP_login_config_set_dnsbl_servers_pre;
+ struct HPMHookPoint *HP_login_config_set_dnsbl_servers_post;
+ struct HPMHookPoint *HP_login_clear_client_hash_nodes_pre;
+ struct HPMHookPoint *HP_login_clear_client_hash_nodes_post;
+ struct HPMHookPoint *HP_login_config_set_md5hash_pre;
+ struct HPMHookPoint *HP_login_config_set_md5hash_post;
+ struct HPMHookPoint *HP_login_convert_users_to_colors_pre;
+ struct HPMHookPoint *HP_login_convert_users_to_colors_post;
struct HPMHookPoint *HP_md5_string_pre;
struct HPMHookPoint *HP_md5_string_post;
struct HPMHookPoint *HP_md5_binary_pre;
@@ -811,6 +841,8 @@ struct {
int HP_PRIV__lclif_parse_CA_LOGIN_HAN_post;
int HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_pre;
int HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ_post;
+ int HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre;
+ int HP_PRIV__lclif_parse_CA_LOGIN_OTP_post;
int HP_PRIV__lclif_parse_CA_REQ_HASH_pre;
int HP_PRIV__lclif_parse_CA_REQ_HASH_post;
int HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT_pre;
@@ -1041,6 +1073,8 @@ struct {
int HP_login_auth_failed_post;
int HP_login_client_login_pre;
int HP_login_client_login_post;
+ int HP_login_client_login_otp_pre;
+ int HP_login_client_login_otp_post;
int HP_login_char_server_connection_status_pre;
int HP_login_char_server_connection_status_post;
int HP_login_parse_request_connection_pre;
@@ -1049,6 +1083,32 @@ struct {
int HP_login_config_set_defaults_post;
int HP_login_config_read_pre;
int HP_login_config_read_post;
+ int HP_login_config_read_inter_pre;
+ int HP_login_config_read_inter_post;
+ int HP_login_config_read_console_pre;
+ int HP_login_config_read_console_post;
+ int HP_login_config_read_log_pre;
+ int HP_login_config_read_log_post;
+ int HP_login_config_read_account_pre;
+ int HP_login_config_read_account_post;
+ int HP_login_config_read_permission_pre;
+ int HP_login_config_read_permission_post;
+ int HP_login_config_read_permission_hash_pre;
+ int HP_login_config_read_permission_hash_post;
+ int HP_login_config_read_permission_blacklist_pre;
+ int HP_login_config_read_permission_blacklist_post;
+ int HP_login_config_read_users_pre;
+ int HP_login_config_read_users_post;
+ int HP_login_clear_dnsbl_servers_pre;
+ int HP_login_clear_dnsbl_servers_post;
+ int HP_login_config_set_dnsbl_servers_pre;
+ int HP_login_config_set_dnsbl_servers_post;
+ int HP_login_clear_client_hash_nodes_pre;
+ int HP_login_clear_client_hash_nodes_post;
+ int HP_login_config_set_md5hash_pre;
+ int HP_login_config_set_md5hash_post;
+ int HP_login_convert_users_to_colors_pre;
+ int HP_login_convert_users_to_colors_post;
int HP_md5_string_pre;
int HP_md5_string_post;
int HP_md5_binary_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
index 125c54a12..8cec39974 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -90,6 +90,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(lclif->p->parse_CA_LOGIN_PCBANG, HP_PRIV__lclif_parse_CA_LOGIN_PCBANG) },
{ HP_POP(lclif->p->parse_CA_LOGIN_HAN, HP_PRIV__lclif_parse_CA_LOGIN_HAN) },
{ HP_POP(lclif->p->parse_CA_SSO_LOGIN_REQ, HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ) },
+ { HP_POP(lclif->p->parse_CA_LOGIN_OTP, HP_PRIV__lclif_parse_CA_LOGIN_OTP) },
{ HP_POP(lclif->p->parse_CA_REQ_HASH, HP_PRIV__lclif_parse_CA_REQ_HASH) },
{ HP_POP(lclif->p->parse_CA_CHARSERVERCONNECT, HP_PRIV__lclif_parse_CA_CHARSERVERCONNECT) },
/* libconfig_interface */
@@ -207,10 +208,24 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(login->auth_ok, HP_login_auth_ok) },
{ HP_POP(login->auth_failed, HP_login_auth_failed) },
{ HP_POP(login->client_login, HP_login_client_login) },
+ { HP_POP(login->client_login_otp, HP_login_client_login_otp) },
{ HP_POP(login->char_server_connection_status, HP_login_char_server_connection_status) },
{ HP_POP(login->parse_request_connection, HP_login_parse_request_connection) },
{ HP_POP(login->config_set_defaults, HP_login_config_set_defaults) },
{ HP_POP(login->config_read, HP_login_config_read) },
+ { HP_POP(login->config_read_inter, HP_login_config_read_inter) },
+ { HP_POP(login->config_read_console, HP_login_config_read_console) },
+ { HP_POP(login->config_read_log, HP_login_config_read_log) },
+ { HP_POP(login->config_read_account, HP_login_config_read_account) },
+ { HP_POP(login->config_read_permission, HP_login_config_read_permission) },
+ { HP_POP(login->config_read_permission_hash, HP_login_config_read_permission_hash) },
+ { HP_POP(login->config_read_permission_blacklist, HP_login_config_read_permission_blacklist) },
+ { HP_POP(login->config_read_users, HP_login_config_read_users) },
+ { HP_POP(login->clear_dnsbl_servers, HP_login_clear_dnsbl_servers) },
+ { HP_POP(login->config_set_dnsbl_servers, HP_login_config_set_dnsbl_servers) },
+ { HP_POP(login->clear_client_hash_nodes, HP_login_clear_client_hash_nodes) },
+ { HP_POP(login->config_set_md5hash, HP_login_config_set_md5hash) },
+ { HP_POP(login->convert_users_to_colors, HP_login_convert_users_to_colors) },
/* md5_interface */
{ HP_POP(md5->string, HP_md5_string) },
{ HP_POP(md5->binary, HP_md5_binary) },
diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
index 964d46b0a..658ee874d 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1526,6 +1526,33 @@ enum parsefunc_rcode HP_PRIV__lclif_parse_CA_SSO_LOGIN_REQ(int fd, struct login_
}
return retVal___;
}
+enum parsefunc_rcode HP_PRIV__lclif_parse_CA_LOGIN_OTP(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ enum parsefunc_rcode retVal___ = PACKET_UNKNOWN;
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre > 0) {
+ enum parsefunc_rcode (*preHookFunc) (int *fd, struct login_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_LOGIN_OTP_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.PRIV__lclif.parse_CA_LOGIN_OTP(fd, sd);
+ }
+ if (HPMHooks.count.HP_PRIV__lclif_parse_CA_LOGIN_OTP_post > 0) {
+ enum parsefunc_rcode (*postHookFunc) (enum parsefunc_rcode retVal___, int fd, struct login_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_PRIV__lclif_parse_CA_LOGIN_OTP_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_PRIV__lclif_parse_CA_LOGIN_OTP_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, fd, sd);
+ }
+ }
+ return retVal___;
+}
enum parsefunc_rcode HP_PRIV__lclif_parse_CA_REQ_HASH(int fd, struct login_session_data *sd) {
int hIndex = 0;
enum parsefunc_rcode retVal___ = PACKET_UNKNOWN;
@@ -4611,6 +4638,33 @@ bool HP_login_client_login(int fd, struct login_session_data *sd) {
}
return retVal___;
}
+bool HP_login_client_login_otp(int fd, struct login_session_data *sd) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_client_login_otp_pre > 0) {
+ bool (*preHookFunc) (int *fd, struct login_session_data **sd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_client_login_otp_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_client_login_otp_pre[hIndex].func;
+ retVal___ = preHookFunc(&fd, &sd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.client_login_otp(fd, sd);
+ }
+ if (HPMHooks.count.HP_login_client_login_otp_post > 0) {
+ bool (*postHookFunc) (bool retVal___, int fd, struct login_session_data *sd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_client_login_otp_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_client_login_otp_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, fd, sd);
+ }
+ }
+ return retVal___;
+}
void HP_login_char_server_connection_status(int fd, struct login_session_data *sd, uint8 status) {
int hIndex = 0;
if (HPMHooks.count.HP_login_char_server_connection_status_pre > 0) {
@@ -4716,6 +4770,353 @@ bool HP_login_config_read(const char *filename, bool included) {
}
return retVal___;
}
+bool HP_login_config_read_inter(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_inter_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_inter_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_inter_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_inter(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_inter_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_inter_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_inter_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_console(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_console_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_console_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_console_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_console(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_console_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_console_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_console_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_log(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_log_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_log_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_log_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_log(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_log_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_log_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_log_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_account(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_account_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_account_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_account_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_account(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_account_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_account_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_account_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_permission(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_permission_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_permission_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_permission(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_permission_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_permission_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_permission_hash(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_permission_hash_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_hash_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_permission_hash_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_permission_hash(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_permission_hash_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_hash_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_permission_hash_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_permission_blacklist(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_permission_blacklist_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_blacklist_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_permission_blacklist_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_permission_blacklist(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_permission_blacklist_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_permission_blacklist_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_permission_blacklist_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+bool HP_login_config_read_users(const char *filename, struct config_t *config, bool imported) {
+ int hIndex = 0;
+ bool retVal___ = false;
+ if (HPMHooks.count.HP_login_config_read_users_pre > 0) {
+ bool (*preHookFunc) (const char **filename, struct config_t **config, bool *imported);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_users_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_read_users_pre[hIndex].func;
+ retVal___ = preHookFunc(&filename, &config, &imported);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.config_read_users(filename, config, imported);
+ }
+ if (HPMHooks.count.HP_login_config_read_users_post > 0) {
+ bool (*postHookFunc) (bool retVal___, const char *filename, struct config_t *config, bool imported);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_read_users_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_read_users_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, filename, config, imported);
+ }
+ }
+ return retVal___;
+}
+void HP_login_clear_dnsbl_servers(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_login_clear_dnsbl_servers_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_clear_dnsbl_servers_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_clear_dnsbl_servers_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.clear_dnsbl_servers();
+ }
+ if (HPMHooks.count.HP_login_clear_dnsbl_servers_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_clear_dnsbl_servers_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_clear_dnsbl_servers_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_login_config_set_dnsbl_servers(struct config_setting_t *setting) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_login_config_set_dnsbl_servers_pre > 0) {
+ void (*preHookFunc) (struct config_setting_t **setting);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_set_dnsbl_servers_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_set_dnsbl_servers_pre[hIndex].func;
+ preHookFunc(&setting);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.config_set_dnsbl_servers(setting);
+ }
+ if (HPMHooks.count.HP_login_config_set_dnsbl_servers_post > 0) {
+ void (*postHookFunc) (struct config_setting_t *setting);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_set_dnsbl_servers_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_set_dnsbl_servers_post[hIndex].func;
+ postHookFunc(setting);
+ }
+ }
+ return;
+}
+void HP_login_clear_client_hash_nodes(void) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_login_clear_client_hash_nodes_pre > 0) {
+ void (*preHookFunc) (void);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_clear_client_hash_nodes_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_clear_client_hash_nodes_pre[hIndex].func;
+ preHookFunc();
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.clear_client_hash_nodes();
+ }
+ if (HPMHooks.count.HP_login_clear_client_hash_nodes_post > 0) {
+ void (*postHookFunc) (void);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_clear_client_hash_nodes_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_clear_client_hash_nodes_post[hIndex].func;
+ postHookFunc();
+ }
+ }
+ return;
+}
+void HP_login_config_set_md5hash(struct config_setting_t *setting) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_login_config_set_md5hash_pre > 0) {
+ void (*preHookFunc) (struct config_setting_t **setting);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_set_md5hash_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_config_set_md5hash_pre[hIndex].func;
+ preHookFunc(&setting);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.login.config_set_md5hash(setting);
+ }
+ if (HPMHooks.count.HP_login_config_set_md5hash_post > 0) {
+ void (*postHookFunc) (struct config_setting_t *setting);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_config_set_md5hash_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_config_set_md5hash_post[hIndex].func;
+ postHookFunc(setting);
+ }
+ }
+ return;
+}
+uint16 HP_login_convert_users_to_colors(uint16 users) {
+ int hIndex = 0;
+ uint16 retVal___ = 0;
+ if (HPMHooks.count.HP_login_convert_users_to_colors_pre > 0) {
+ uint16 (*preHookFunc) (uint16 *users);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_convert_users_to_colors_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_login_convert_users_to_colors_pre[hIndex].func;
+ retVal___ = preHookFunc(&users);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.login.convert_users_to_colors(users);
+ }
+ if (HPMHooks.count.HP_login_convert_users_to_colors_post > 0) {
+ uint16 (*postHookFunc) (uint16 retVal___, uint16 users);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_login_convert_users_to_colors_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_login_convert_users_to_colors_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, users);
+ }
+ }
+ return retVal___;
+}
/* md5_interface */
void HP_md5_string(const char *string, char *output) {
int hIndex = 0;
diff --git a/src/plugins/HPMHooking/HPMHooking_login.sources.inc b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
index 8c3b935ac..55ced3025 100644
--- a/src/plugins/HPMHooking/HPMHooking_login.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_login.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 4bdc167f2..f057b34d8 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -810,8 +810,8 @@ struct {
struct HPMHookPoint *HP_clif_feel_hate_reset_post;
struct HPMHookPoint *HP_clif_partytickack_pre;
struct HPMHookPoint *HP_clif_partytickack_post;
- struct HPMHookPoint *HP_clif_equiptickack_pre;
- struct HPMHookPoint *HP_clif_equiptickack_post;
+ struct HPMHookPoint *HP_clif_zc_config_pre;
+ struct HPMHookPoint *HP_clif_zc_config_post;
struct HPMHookPoint *HP_clif_viewequip_ack_pre;
struct HPMHookPoint *HP_clif_viewequip_ack_post;
struct HPMHookPoint *HP_clif_equpcheckbox_pre;
@@ -824,6 +824,8 @@ struct {
struct HPMHookPoint *HP_clif_progressbar_post;
struct HPMHookPoint *HP_clif_progressbar_abort_pre;
struct HPMHookPoint *HP_clif_progressbar_abort_post;
+ struct HPMHookPoint *HP_clif_progressbar_unit_pre;
+ struct HPMHookPoint *HP_clif_progressbar_unit_post;
struct HPMHookPoint *HP_clif_showdigit_pre;
struct HPMHookPoint *HP_clif_showdigit_post;
struct HPMHookPoint *HP_clif_elementalconverter_list_pre;
@@ -1768,8 +1770,8 @@ struct {
struct HPMHookPoint *HP_clif_pAdopt_reply_post;
struct HPMHookPoint *HP_clif_pViewPlayerEquip_pre;
struct HPMHookPoint *HP_clif_pViewPlayerEquip_post;
- struct HPMHookPoint *HP_clif_pEquipTick_pre;
- struct HPMHookPoint *HP_clif_pEquipTick_post;
+ struct HPMHookPoint *HP_clif_p_cz_config_pre;
+ struct HPMHookPoint *HP_clif_p_cz_config_post;
struct HPMHookPoint *HP_clif_pquestStateAck_pre;
struct HPMHookPoint *HP_clif_pquestStateAck_post;
struct HPMHookPoint *HP_clif_pmercenary_action_pre;
@@ -1930,6 +1932,8 @@ struct {
struct HPMHookPoint *HP_clif_rodex_request_items_post;
struct HPMHookPoint *HP_clif_rodex_icon_pre;
struct HPMHookPoint *HP_clif_rodex_icon_post;
+ struct HPMHookPoint *HP_clif_skill_scale_pre;
+ struct HPMHookPoint *HP_clif_skill_scale_post;
struct HPMHookPoint *HP_cmdline_init_pre;
struct HPMHookPoint *HP_cmdline_init_post;
struct HPMHookPoint *HP_cmdline_final_pre;
@@ -3918,6 +3922,8 @@ struct {
struct HPMHookPoint *HP_npc_market_delfromsql_sub_post;
struct HPMHookPoint *HP_npc_db_checkid_pre;
struct HPMHookPoint *HP_npc_db_checkid_post;
+ struct HPMHookPoint *HP_npc_refresh_pre;
+ struct HPMHookPoint *HP_npc_refresh_post;
struct HPMHookPoint *HP_npc_secure_timeout_timer_pre;
struct HPMHookPoint *HP_npc_secure_timeout_timer_post;
struct HPMHookPoint *HP_nullpo_assert_report_pre;
@@ -5100,10 +5106,18 @@ struct {
struct HPMHookPoint *HP_skill_get_mhp_post;
struct HPMHookPoint *HP_skill_get_sp_pre;
struct HPMHookPoint *HP_skill_get_sp_post;
+ struct HPMHookPoint *HP_skill_get_hp_rate_pre;
+ struct HPMHookPoint *HP_skill_get_hp_rate_post;
+ struct HPMHookPoint *HP_skill_get_sp_rate_pre;
+ struct HPMHookPoint *HP_skill_get_sp_rate_post;
struct HPMHookPoint *HP_skill_get_state_pre;
struct HPMHookPoint *HP_skill_get_state_post;
struct HPMHookPoint *HP_skill_get_spiritball_pre;
struct HPMHookPoint *HP_skill_get_spiritball_post;
+ struct HPMHookPoint *HP_skill_get_itemid_pre;
+ struct HPMHookPoint *HP_skill_get_itemid_post;
+ struct HPMHookPoint *HP_skill_get_itemqty_pre;
+ struct HPMHookPoint *HP_skill_get_itemqty_post;
struct HPMHookPoint *HP_skill_get_zeny_pre;
struct HPMHookPoint *HP_skill_get_zeny_post;
struct HPMHookPoint *HP_skill_get_num_pre;
@@ -5160,8 +5174,6 @@ struct {
struct HPMHookPoint *HP_skill_get_name_post;
struct HPMHookPoint *HP_skill_get_desc_pre;
struct HPMHookPoint *HP_skill_get_desc_post;
- struct HPMHookPoint *HP_skill_chk_pre;
- struct HPMHookPoint *HP_skill_chk_post;
struct HPMHookPoint *HP_skill_get_casttype_pre;
struct HPMHookPoint *HP_skill_get_casttype_post;
struct HPMHookPoint *HP_skill_get_casttype2_pre;
@@ -5440,8 +5452,6 @@ struct {
struct HPMHookPoint *HP_skill_parse_row_spellbookdb_post;
struct HPMHookPoint *HP_skill_parse_row_magicmushroomdb_pre;
struct HPMHookPoint *HP_skill_parse_row_magicmushroomdb_post;
- struct HPMHookPoint *HP_skill_parse_row_reproducedb_pre;
- struct HPMHookPoint *HP_skill_parse_row_reproducedb_post;
struct HPMHookPoint *HP_skill_parse_row_improvisedb_pre;
struct HPMHookPoint *HP_skill_parse_row_improvisedb_post;
struct HPMHookPoint *HP_skill_parse_row_changematerialdb_pre;
@@ -7009,8 +7019,8 @@ struct {
int HP_clif_feel_hate_reset_post;
int HP_clif_partytickack_pre;
int HP_clif_partytickack_post;
- int HP_clif_equiptickack_pre;
- int HP_clif_equiptickack_post;
+ int HP_clif_zc_config_pre;
+ int HP_clif_zc_config_post;
int HP_clif_viewequip_ack_pre;
int HP_clif_viewequip_ack_post;
int HP_clif_equpcheckbox_pre;
@@ -7023,6 +7033,8 @@ struct {
int HP_clif_progressbar_post;
int HP_clif_progressbar_abort_pre;
int HP_clif_progressbar_abort_post;
+ int HP_clif_progressbar_unit_pre;
+ int HP_clif_progressbar_unit_post;
int HP_clif_showdigit_pre;
int HP_clif_showdigit_post;
int HP_clif_elementalconverter_list_pre;
@@ -7967,8 +7979,8 @@ struct {
int HP_clif_pAdopt_reply_post;
int HP_clif_pViewPlayerEquip_pre;
int HP_clif_pViewPlayerEquip_post;
- int HP_clif_pEquipTick_pre;
- int HP_clif_pEquipTick_post;
+ int HP_clif_p_cz_config_pre;
+ int HP_clif_p_cz_config_post;
int HP_clif_pquestStateAck_pre;
int HP_clif_pquestStateAck_post;
int HP_clif_pmercenary_action_pre;
@@ -8129,6 +8141,8 @@ struct {
int HP_clif_rodex_request_items_post;
int HP_clif_rodex_icon_pre;
int HP_clif_rodex_icon_post;
+ int HP_clif_skill_scale_pre;
+ int HP_clif_skill_scale_post;
int HP_cmdline_init_pre;
int HP_cmdline_init_post;
int HP_cmdline_final_pre;
@@ -10117,6 +10131,8 @@ struct {
int HP_npc_market_delfromsql_sub_post;
int HP_npc_db_checkid_pre;
int HP_npc_db_checkid_post;
+ int HP_npc_refresh_pre;
+ int HP_npc_refresh_post;
int HP_npc_secure_timeout_timer_pre;
int HP_npc_secure_timeout_timer_post;
int HP_nullpo_assert_report_pre;
@@ -11299,10 +11315,18 @@ struct {
int HP_skill_get_mhp_post;
int HP_skill_get_sp_pre;
int HP_skill_get_sp_post;
+ int HP_skill_get_hp_rate_pre;
+ int HP_skill_get_hp_rate_post;
+ int HP_skill_get_sp_rate_pre;
+ int HP_skill_get_sp_rate_post;
int HP_skill_get_state_pre;
int HP_skill_get_state_post;
int HP_skill_get_spiritball_pre;
int HP_skill_get_spiritball_post;
+ int HP_skill_get_itemid_pre;
+ int HP_skill_get_itemid_post;
+ int HP_skill_get_itemqty_pre;
+ int HP_skill_get_itemqty_post;
int HP_skill_get_zeny_pre;
int HP_skill_get_zeny_post;
int HP_skill_get_num_pre;
@@ -11359,8 +11383,6 @@ struct {
int HP_skill_get_name_post;
int HP_skill_get_desc_pre;
int HP_skill_get_desc_post;
- int HP_skill_chk_pre;
- int HP_skill_chk_post;
int HP_skill_get_casttype_pre;
int HP_skill_get_casttype_post;
int HP_skill_get_casttype2_pre;
@@ -11639,8 +11661,6 @@ struct {
int HP_skill_parse_row_spellbookdb_post;
int HP_skill_parse_row_magicmushroomdb_pre;
int HP_skill_parse_row_magicmushroomdb_post;
- int HP_skill_parse_row_reproducedb_pre;
- int HP_skill_parse_row_reproducedb_post;
int HP_skill_parse_row_improvisedb_pre;
int HP_skill_parse_row_improvisedb_post;
int HP_skill_parse_row_changematerialdb_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 34b79bff8..6a27f3d94 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -427,13 +427,14 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->mission_info, HP_clif_mission_info) },
{ HP_POP(clif->feel_hate_reset, HP_clif_feel_hate_reset) },
{ HP_POP(clif->partytickack, HP_clif_partytickack) },
- { HP_POP(clif->equiptickack, HP_clif_equiptickack) },
+ { HP_POP(clif->zc_config, HP_clif_zc_config) },
{ HP_POP(clif->viewequip_ack, HP_clif_viewequip_ack) },
{ HP_POP(clif->equpcheckbox, HP_clif_equpcheckbox) },
{ HP_POP(clif->displayexp, HP_clif_displayexp) },
{ HP_POP(clif->font, HP_clif_font) },
{ HP_POP(clif->progressbar, HP_clif_progressbar) },
{ HP_POP(clif->progressbar_abort, HP_clif_progressbar_abort) },
+ { HP_POP(clif->progressbar_unit, HP_clif_progressbar_unit) },
{ HP_POP(clif->showdigit, HP_clif_showdigit) },
{ HP_POP(clif->elementalconverter_list, HP_clif_elementalconverter_list) },
{ HP_POP(clif->spellbook_list, HP_clif_spellbook_list) },
@@ -906,7 +907,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pAdopt_request, HP_clif_pAdopt_request) },
{ HP_POP(clif->pAdopt_reply, HP_clif_pAdopt_reply) },
{ HP_POP(clif->pViewPlayerEquip, HP_clif_pViewPlayerEquip) },
- { HP_POP(clif->pEquipTick, HP_clif_pEquipTick) },
+ { HP_POP(clif->p_cz_config, HP_clif_p_cz_config) },
{ HP_POP(clif->pquestStateAck, HP_clif_pquestStateAck) },
{ HP_POP(clif->pmercenary_action, HP_clif_pmercenary_action) },
{ HP_POP(clif->pBattleChat, HP_clif_pBattleChat) },
@@ -987,6 +988,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->pRodexRequestItems, HP_clif_pRodexRequestItems) },
{ HP_POP(clif->rodex_request_items, HP_clif_rodex_request_items) },
{ HP_POP(clif->rodex_icon, HP_clif_rodex_icon) },
+ { HP_POP(clif->skill_scale, HP_clif_skill_scale) },
/* cmdline_interface */
{ HP_POP(cmdline->init, HP_cmdline_init) },
{ HP_POP(cmdline->final, HP_cmdline_final) },
@@ -2009,6 +2011,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(npc->market_delfromsql, HP_npc_market_delfromsql) },
{ HP_POP(npc->market_delfromsql_sub, HP_npc_market_delfromsql_sub) },
{ HP_POP(npc->db_checkid, HP_npc_db_checkid) },
+ { HP_POP(npc->refresh, HP_npc_refresh) },
{ HP_POP(npc->secure_timeout_timer, HP_npc_secure_timeout_timer) },
/* nullpo_interface */
{ HP_POP(nullpo->assert_report, HP_nullpo_assert_report) },
@@ -2614,8 +2617,12 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->get_hp, HP_skill_get_hp) },
{ HP_POP(skill->get_mhp, HP_skill_get_mhp) },
{ HP_POP(skill->get_sp, HP_skill_get_sp) },
+ { HP_POP(skill->get_hp_rate, HP_skill_get_hp_rate) },
+ { HP_POP(skill->get_sp_rate, HP_skill_get_sp_rate) },
{ HP_POP(skill->get_state, HP_skill_get_state) },
{ HP_POP(skill->get_spiritball, HP_skill_get_spiritball) },
+ { HP_POP(skill->get_itemid, HP_skill_get_itemid) },
+ { HP_POP(skill->get_itemqty, HP_skill_get_itemqty) },
{ HP_POP(skill->get_zeny, HP_skill_get_zeny) },
{ HP_POP(skill->get_num, HP_skill_get_num) },
{ HP_POP(skill->get_cast, HP_skill_get_cast) },
@@ -2644,7 +2651,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->tree_get_max, HP_skill_tree_get_max) },
{ HP_POP(skill->get_name, HP_skill_get_name) },
{ HP_POP(skill->get_desc, HP_skill_get_desc) },
- { HP_POP(skill->chk, HP_skill_chk) },
{ HP_POP(skill->get_casttype, HP_skill_get_casttype) },
{ HP_POP(skill->get_casttype2, HP_skill_get_casttype2) },
{ HP_POP(skill->is_combo, HP_skill_is_combo) },
@@ -2784,7 +2790,6 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->parse_row_abradb, HP_skill_parse_row_abradb) },
{ HP_POP(skill->parse_row_spellbookdb, HP_skill_parse_row_spellbookdb) },
{ HP_POP(skill->parse_row_magicmushroomdb, HP_skill_parse_row_magicmushroomdb) },
- { HP_POP(skill->parse_row_reproducedb, HP_skill_parse_row_reproducedb) },
{ HP_POP(skill->parse_row_improvisedb, HP_skill_parse_row_improvisedb) },
{ HP_POP(skill->parse_row_changematerialdb, HP_skill_parse_row_changematerialdb) },
{ HP_POP(skill->usave_add, HP_skill_usave_add) },
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
index d0d062f4e..5b0ae00a7 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -10524,14 +10524,14 @@ void HP_clif_partytickack(struct map_session_data *sd, bool flag) {
}
return;
}
-void HP_clif_equiptickack(struct map_session_data *sd, int flag) {
+void HP_clif_zc_config(struct map_session_data *sd, int type, int flag) {
int hIndex = 0;
- if (HPMHooks.count.HP_clif_equiptickack_pre > 0) {
- void (*preHookFunc) (struct map_session_data **sd, int *flag);
+ if (HPMHooks.count.HP_clif_zc_config_pre > 0) {
+ void (*preHookFunc) (struct map_session_data **sd, int *type, int *flag);
*HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiptickack_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_clif_equiptickack_pre[hIndex].func;
- preHookFunc(&sd, &flag);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_zc_config_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_zc_config_pre[hIndex].func;
+ preHookFunc(&sd, &type, &flag);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -10539,13 +10539,13 @@ void HP_clif_equiptickack(struct map_session_data *sd, int flag) {
}
}
{
- HPMHooks.source.clif.equiptickack(sd, flag);
+ HPMHooks.source.clif.zc_config(sd, type, flag);
}
- if (HPMHooks.count.HP_clif_equiptickack_post > 0) {
- void (*postHookFunc) (struct map_session_data *sd, int flag);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_equiptickack_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_clif_equiptickack_post[hIndex].func;
- postHookFunc(sd, flag);
+ if (HPMHooks.count.HP_clif_zc_config_post > 0) {
+ void (*postHookFunc) (struct map_session_data *sd, int type, int flag);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_zc_config_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_zc_config_post[hIndex].func;
+ postHookFunc(sd, type, flag);
}
}
return;
@@ -10706,6 +10706,32 @@ void HP_clif_progressbar_abort(struct map_session_data *sd) {
}
return;
}
+void HP_clif_progressbar_unit(struct block_list *bl, uint32 color, uint32 time) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_progressbar_unit_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, uint32 *color, uint32 *time);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_unit_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_progressbar_unit_pre[hIndex].func;
+ preHookFunc(&bl, &color, &time);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.progressbar_unit(bl, color, time);
+ }
+ if (HPMHooks.count.HP_clif_progressbar_unit_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, uint32 color, uint32 time);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_progressbar_unit_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_progressbar_unit_post[hIndex].func;
+ postHookFunc(bl, color, time);
+ }
+ }
+ return;
+}
void HP_clif_showdigit(struct map_session_data *sd, unsigned char type, int value) {
int hIndex = 0;
if (HPMHooks.count.HP_clif_showdigit_pre > 0) {
@@ -23005,13 +23031,13 @@ void HP_clif_pViewPlayerEquip(int fd, struct map_session_data *sd) {
}
return;
}
-void HP_clif_pEquipTick(int fd, struct map_session_data *sd) {
+void HP_clif_p_cz_config(int fd, struct map_session_data *sd) {
int hIndex = 0;
- if (HPMHooks.count.HP_clif_pEquipTick_pre > 0) {
+ if (HPMHooks.count.HP_clif_p_cz_config_pre > 0) {
void (*preHookFunc) (int *fd, struct map_session_data **sd);
*HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipTick_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_clif_pEquipTick_pre[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_p_cz_config_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_p_cz_config_pre[hIndex].func;
preHookFunc(&fd, &sd);
}
if (*HPMforce_return) {
@@ -23020,12 +23046,12 @@ void HP_clif_pEquipTick(int fd, struct map_session_data *sd) {
}
}
{
- HPMHooks.source.clif.pEquipTick(fd, sd);
+ HPMHooks.source.clif.p_cz_config(fd, sd);
}
- if (HPMHooks.count.HP_clif_pEquipTick_post > 0) {
+ if (HPMHooks.count.HP_clif_p_cz_config_post > 0) {
void (*postHookFunc) (int fd, struct map_session_data *sd);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_pEquipTick_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_clif_pEquipTick_post[hIndex].func;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_p_cz_config_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_p_cz_config_post[hIndex].func;
postHookFunc(fd, sd);
}
}
@@ -25113,6 +25139,32 @@ void HP_clif_rodex_icon(int fd, bool show) {
}
return;
}
+void HP_clif_skill_scale(struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_clif_skill_scale_pre > 0) {
+ void (*preHookFunc) (struct block_list **bl, int *src_id, int *x, int *y, uint16 *skill_id, uint16 *skill_lv, int *casttime);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_scale_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_clif_skill_scale_pre[hIndex].func;
+ preHookFunc(&bl, &src_id, &x, &y, &skill_id, &skill_lv, &casttime);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.skill_scale(bl, src_id, x, y, skill_id, skill_lv, casttime);
+ }
+ if (HPMHooks.count.HP_clif_skill_scale_post > 0) {
+ void (*postHookFunc) (struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_clif_skill_scale_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_clif_skill_scale_post[hIndex].func;
+ postHookFunc(bl, src_id, x, y, skill_id, skill_lv, casttime);
+ }
+ }
+ return;
+}
/* cmdline_interface */
void HP_cmdline_init(void) {
int hIndex = 0;
@@ -41230,15 +41282,15 @@ void HP_map_clearflooritem(struct block_list *bl) {
}
return;
}
-int HP_map_addflooritem(const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags) {
+int HP_map_addflooritem(const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags, bool showdropeffect) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_map_addflooritem_pre > 0) {
- int (*preHookFunc) (const struct block_list **bl, struct item **item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags);
+ int (*preHookFunc) (const struct block_list **bl, struct item **item_data, int *amount, int16 *m, int16 *x, int16 *y, int *first_charid, int *second_charid, int *third_charid, int *flags, bool *showdropeffect);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_map_addflooritem_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_map_addflooritem_pre[hIndex].func;
- retVal___ = preHookFunc(&bl, &item_data, &amount, &m, &x, &y, &first_charid, &second_charid, &third_charid, &flags);
+ retVal___ = preHookFunc(&bl, &item_data, &amount, &m, &x, &y, &first_charid, &second_charid, &third_charid, &flags, &showdropeffect);
}
if (*HPMforce_return) {
*HPMforce_return = false;
@@ -41246,13 +41298,13 @@ int HP_map_addflooritem(const struct block_list *bl, struct item *item_data, int
}
}
{
- retVal___ = HPMHooks.source.map.addflooritem(bl, item_data, amount, m, x, y, first_charid, second_charid, third_charid, flags);
+ retVal___ = HPMHooks.source.map.addflooritem(bl, item_data, amount, m, x, y, first_charid, second_charid, third_charid, flags, showdropeffect);
}
if (HPMHooks.count.HP_map_addflooritem_post > 0) {
- int (*postHookFunc) (int retVal___, const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags);
+ int (*postHookFunc) (int retVal___, const struct block_list *bl, struct item *item_data, int amount, int16 m, int16 x, int16 y, int first_charid, int second_charid, int third_charid, int flags, bool showdropeffect);
for (hIndex = 0; hIndex < HPMHooks.count.HP_map_addflooritem_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_map_addflooritem_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, bl, item_data, amount, m, x, y, first_charid, second_charid, third_charid, flags);
+ retVal___ = postHookFunc(retVal___, bl, item_data, amount, m, x, y, first_charid, second_charid, third_charid, flags, showdropeffect);
}
}
return retVal___;
@@ -52089,6 +52141,32 @@ bool HP_npc_db_checkid(const int id) {
}
return retVal___;
}
+void HP_npc_refresh(struct npc_data *nd) {
+ int hIndex = 0;
+ if (HPMHooks.count.HP_npc_refresh_pre > 0) {
+ void (*preHookFunc) (struct npc_data **nd);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_npc_refresh_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_npc_refresh_pre[hIndex].func;
+ preHookFunc(&nd);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.npc.refresh(nd);
+ }
+ if (HPMHooks.count.HP_npc_refresh_post > 0) {
+ void (*postHookFunc) (struct npc_data *nd);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_npc_refresh_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_npc_refresh_post[hIndex].func;
+ postHookFunc(nd);
+ }
+ }
+ return;
+}
int HP_npc_secure_timeout_timer(int tid, int64 tick, int id, intptr_t data) {
int hIndex = 0;
int retVal___ = 0;
@@ -67767,11 +67845,11 @@ void HP_skill_read_db(bool minimal) {
}
return;
}
-int HP_skill_get_index(uint16 skill_id) {
+int HP_skill_get_index(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_index_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_index_pre[hIndex].func;
@@ -67786,7 +67864,7 @@ int HP_skill_get_index(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_index(skill_id);
}
if (HPMHooks.count.HP_skill_get_index_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_index_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_index_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67794,11 +67872,11 @@ int HP_skill_get_index(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_type(uint16 skill_id) {
+int HP_skill_get_type(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_type_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_type_pre[hIndex].func;
@@ -67813,7 +67891,7 @@ int HP_skill_get_type(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_type(skill_id);
}
if (HPMHooks.count.HP_skill_get_type_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_type_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_type_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67821,11 +67899,11 @@ int HP_skill_get_type(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_hit(uint16 skill_id) {
+int HP_skill_get_hit(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_hit_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_hit_pre[hIndex].func;
@@ -67840,7 +67918,7 @@ int HP_skill_get_hit(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_hit(skill_id);
}
if (HPMHooks.count.HP_skill_get_hit_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hit_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_hit_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67848,11 +67926,11 @@ int HP_skill_get_hit(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_inf(uint16 skill_id) {
+int HP_skill_get_inf(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_inf_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_inf_pre[hIndex].func;
@@ -67867,7 +67945,7 @@ int HP_skill_get_inf(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_inf(skill_id);
}
if (HPMHooks.count.HP_skill_get_inf_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_inf_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67875,11 +67953,11 @@ int HP_skill_get_inf(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_ele(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ele_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ele_pre[hIndex].func;
@@ -67894,7 +67972,7 @@ int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_ele(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_ele_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ele_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ele_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -67902,11 +67980,11 @@ int HP_skill_get_ele(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_nk(uint16 skill_id) {
+int HP_skill_get_nk(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_nk_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_nk_pre[hIndex].func;
@@ -67921,7 +67999,7 @@ int HP_skill_get_nk(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_nk(skill_id);
}
if (HPMHooks.count.HP_skill_get_nk_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_nk_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_nk_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67929,11 +68007,11 @@ int HP_skill_get_nk(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_max(uint16 skill_id) {
+int HP_skill_get_max(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_max_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_max_pre[hIndex].func;
@@ -67948,7 +68026,7 @@ int HP_skill_get_max(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_max(skill_id);
}
if (HPMHooks.count.HP_skill_get_max_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_max_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_max_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -67956,11 +68034,11 @@ int HP_skill_get_max(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_range(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_range_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_range_pre[hIndex].func;
@@ -67975,7 +68053,7 @@ int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_range(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_range_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_range_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -67983,11 +68061,11 @@ int HP_skill_get_range(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_range2(struct block_list *bl, int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_range2_pre > 0) {
- int (*preHookFunc) (struct block_list **bl, uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (struct block_list **bl, int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_range2_pre[hIndex].func;
@@ -68002,7 +68080,7 @@ int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
retVal___ = HPMHooks.source.skill.get_range2(bl, skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_range2_post > 0) {
- int (*postHookFunc) (int retVal___, struct block_list *bl, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, struct block_list *bl, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_range2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_range2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, bl, skill_id, skill_lv);
@@ -68010,11 +68088,11 @@ int HP_skill_get_range2(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
}
return retVal___;
}
-int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_splash(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_splash_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_splash_pre[hIndex].func;
@@ -68029,7 +68107,7 @@ int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_splash(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_splash_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_splash_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_splash_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68037,11 +68115,11 @@ int HP_skill_get_splash(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_hp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_hp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_hp_pre[hIndex].func;
@@ -68056,7 +68134,7 @@ int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_hp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_hp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_hp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68064,11 +68142,11 @@ int HP_skill_get_hp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_mhp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_mhp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_mhp_pre[hIndex].func;
@@ -68083,7 +68161,7 @@ int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_mhp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_mhp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_mhp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_mhp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68091,11 +68169,11 @@ int HP_skill_get_mhp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_sp(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_sp_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_sp_pre[hIndex].func;
@@ -68110,7 +68188,7 @@ int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_sp(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_sp_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_sp_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68118,11 +68196,65 @@ int HP_skill_get_sp(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_state(uint16 skill_id) {
+int HP_skill_get_hp_rate(int skill_id, int skill_lv) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_hp_rate_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_rate_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_hp_rate_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &skill_lv);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_hp_rate(skill_id, skill_lv);
+ }
+ if (HPMHooks.count.HP_skill_get_hp_rate_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_hp_rate_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_hp_rate_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_sp_rate(int skill_id, int skill_lv) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_sp_rate_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_rate_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_sp_rate_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &skill_lv);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_sp_rate(skill_id, skill_lv);
+ }
+ if (HPMHooks.count.HP_skill_get_sp_rate_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_sp_rate_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_sp_rate_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_state(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_state_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_state_pre[hIndex].func;
@@ -68137,7 +68269,7 @@ int HP_skill_get_state(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_state(skill_id);
}
if (HPMHooks.count.HP_skill_get_state_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_state_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_state_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68145,11 +68277,11 @@ int HP_skill_get_state(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_spiritball(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_spiritball_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_spiritball_pre[hIndex].func;
@@ -68164,7 +68296,7 @@ int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_spiritball(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_spiritball_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_spiritball_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_spiritball_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68172,11 +68304,65 @@ int HP_skill_get_spiritball(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_itemid(int skill_id, int item_idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_itemid_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *item_idx);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemid_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_itemid_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &item_idx);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_itemid(skill_id, item_idx);
+ }
+ if (HPMHooks.count.HP_skill_get_itemid_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int item_idx);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemid_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_itemid_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, item_idx);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_itemqty(int skill_id, int item_idx) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if (HPMHooks.count.HP_skill_get_itemqty_pre > 0) {
+ int (*preHookFunc) (int *skill_id, int *item_idx);
+ *HPMforce_return = false;
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_pre; hIndex++) {
+ preHookFunc = HPMHooks.list.HP_skill_get_itemqty_pre[hIndex].func;
+ retVal___ = preHookFunc(&skill_id, &item_idx);
+ }
+ if (*HPMforce_return) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.skill.get_itemqty(skill_id, item_idx);
+ }
+ if (HPMHooks.count.HP_skill_get_itemqty_post > 0) {
+ int (*postHookFunc) (int retVal___, int skill_id, int item_idx);
+ for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_itemqty_post; hIndex++) {
+ postHookFunc = HPMHooks.list.HP_skill_get_itemqty_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, skill_id, item_idx);
+ }
+ }
+ return retVal___;
+}
+int HP_skill_get_zeny(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_zeny_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_zeny_pre[hIndex].func;
@@ -68191,7 +68377,7 @@ int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_zeny(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_zeny_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_zeny_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_zeny_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68199,11 +68385,11 @@ int HP_skill_get_zeny(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_num(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_num_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_num_pre[hIndex].func;
@@ -68218,7 +68404,7 @@ int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_num(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_num_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_num_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_num_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68226,11 +68412,11 @@ int HP_skill_get_num(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_cast(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_cast_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_cast_pre[hIndex].func;
@@ -68245,7 +68431,7 @@ int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_cast(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_cast_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cast_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_cast_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68253,11 +68439,11 @@ int HP_skill_get_cast(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_delay(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_delay_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_delay_pre[hIndex].func;
@@ -68272,7 +68458,7 @@ int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_delay(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_delay_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delay_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_delay_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68280,11 +68466,11 @@ int HP_skill_get_delay(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_walkdelay(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_walkdelay_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_walkdelay_pre[hIndex].func;
@@ -68299,7 +68485,7 @@ int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_walkdelay(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_walkdelay_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_walkdelay_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_walkdelay_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68307,11 +68493,11 @@ int HP_skill_get_walkdelay(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_time(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_time_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_time_pre[hIndex].func;
@@ -68326,7 +68512,7 @@ int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_time(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_time_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_time_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68334,11 +68520,11 @@ int HP_skill_get_time(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_time2(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_time2_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_time2_pre[hIndex].func;
@@ -68353,7 +68539,7 @@ int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_time2(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_time2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_time2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_time2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68361,11 +68547,11 @@ int HP_skill_get_time2(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_castnodex(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castnodex_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castnodex_pre[hIndex].func;
@@ -68380,7 +68566,7 @@ int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_castnodex(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_castnodex_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castnodex_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castnodex_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68388,11 +68574,11 @@ int HP_skill_get_castnodex(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_delaynodex(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_delaynodex_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_delaynodex_pre[hIndex].func;
@@ -68407,7 +68593,7 @@ int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_delaynodex(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_delaynodex_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_delaynodex_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_delaynodex_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68415,11 +68601,11 @@ int HP_skill_get_delaynodex(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_castdef(uint16 skill_id) {
+int HP_skill_get_castdef(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castdef_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castdef_pre[hIndex].func;
@@ -68434,7 +68620,7 @@ int HP_skill_get_castdef(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_castdef(skill_id);
}
if (HPMHooks.count.HP_skill_get_castdef_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castdef_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castdef_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68442,11 +68628,11 @@ int HP_skill_get_castdef(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_weapontype(uint16 skill_id) {
+int HP_skill_get_weapontype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_weapontype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_weapontype_pre[hIndex].func;
@@ -68461,7 +68647,7 @@ int HP_skill_get_weapontype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_weapontype(skill_id);
}
if (HPMHooks.count.HP_skill_get_weapontype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_weapontype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_weapontype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68469,11 +68655,11 @@ int HP_skill_get_weapontype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ammotype(uint16 skill_id) {
+int HP_skill_get_ammotype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ammotype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ammotype_pre[hIndex].func;
@@ -68488,7 +68674,7 @@ int HP_skill_get_ammotype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_ammotype(skill_id);
}
if (HPMHooks.count.HP_skill_get_ammotype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammotype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ammotype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68496,11 +68682,11 @@ int HP_skill_get_ammotype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_ammo_qty(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_ammo_qty_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_pre[hIndex].func;
@@ -68515,7 +68701,7 @@ int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_ammo_qty(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_ammo_qty_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_ammo_qty_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_ammo_qty_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68523,11 +68709,11 @@ int HP_skill_get_ammo_qty(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_id(uint16 skill_id, int flag) {
+int HP_skill_get_unit_id(int skill_id, int flag) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_id_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, int *flag);
+ int (*preHookFunc) (int *skill_id, int *flag);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_id_pre[hIndex].func;
@@ -68542,7 +68728,7 @@ int HP_skill_get_unit_id(uint16 skill_id, int flag) {
retVal___ = HPMHooks.source.skill.get_unit_id(skill_id, flag);
}
if (HPMHooks.count.HP_skill_get_unit_id_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, int flag);
+ int (*postHookFunc) (int retVal___, int skill_id, int flag);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_id_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_id_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, flag);
@@ -68550,11 +68736,11 @@ int HP_skill_get_unit_id(uint16 skill_id, int flag) {
}
return retVal___;
}
-int HP_skill_get_inf2(uint16 skill_id) {
+int HP_skill_get_inf2(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_inf2_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_inf2_pre[hIndex].func;
@@ -68569,7 +68755,7 @@ int HP_skill_get_inf2(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_inf2(skill_id);
}
if (HPMHooks.count.HP_skill_get_inf2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_inf2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_inf2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68577,11 +68763,11 @@ int HP_skill_get_inf2(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_castcancel(uint16 skill_id) {
+int HP_skill_get_castcancel(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_castcancel_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_castcancel_pre[hIndex].func;
@@ -68596,7 +68782,7 @@ int HP_skill_get_castcancel(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_castcancel(skill_id);
}
if (HPMHooks.count.HP_skill_get_castcancel_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_castcancel_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_castcancel_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68604,11 +68790,11 @@ int HP_skill_get_castcancel(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_maxcount(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_maxcount_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_maxcount_pre[hIndex].func;
@@ -68623,7 +68809,7 @@ int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_maxcount(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_maxcount_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_maxcount_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_maxcount_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68631,11 +68817,11 @@ int HP_skill_get_maxcount(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_blewcount(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_blewcount_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_blewcount_pre[hIndex].func;
@@ -68650,7 +68836,7 @@ int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_blewcount(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_blewcount_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_blewcount_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_blewcount_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68658,11 +68844,11 @@ int HP_skill_get_blewcount(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_flag(uint16 skill_id) {
+int HP_skill_get_unit_flag(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_flag_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_flag_pre[hIndex].func;
@@ -68677,7 +68863,7 @@ int HP_skill_get_unit_flag(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_flag(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_flag_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_flag_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_flag_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68685,11 +68871,11 @@ int HP_skill_get_unit_flag(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_target(uint16 skill_id) {
+int HP_skill_get_unit_target(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_target_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_target_pre[hIndex].func;
@@ -68704,7 +68890,7 @@ int HP_skill_get_unit_target(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_target(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_target_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_target_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_target_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68712,11 +68898,11 @@ int HP_skill_get_unit_target(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_interval(uint16 skill_id) {
+int HP_skill_get_unit_interval(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_interval_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_interval_pre[hIndex].func;
@@ -68731,7 +68917,7 @@ int HP_skill_get_unit_interval(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_interval(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_interval_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_interval_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_interval_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68739,11 +68925,11 @@ int HP_skill_get_unit_interval(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_bl_target(uint16 skill_id) {
+int HP_skill_get_unit_bl_target(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_bl_target_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_pre[hIndex].func;
@@ -68758,7 +68944,7 @@ int HP_skill_get_unit_bl_target(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_unit_bl_target(skill_id);
}
if (HPMHooks.count.HP_skill_get_unit_bl_target_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_bl_target_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_bl_target_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68766,11 +68952,11 @@ int HP_skill_get_unit_bl_target(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_unit_layout_type(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_layout_type_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_pre[hIndex].func;
@@ -68785,7 +68971,7 @@ int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_unit_layout_type(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_unit_layout_type_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_layout_type_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_layout_type_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68793,11 +68979,11 @@ int HP_skill_get_unit_layout_type(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_unit_range(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_unit_range_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_unit_range_pre[hIndex].func;
@@ -68812,7 +68998,7 @@ int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_unit_range(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_unit_range_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_unit_range_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_unit_range_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68820,11 +69006,11 @@ int HP_skill_get_unit_range(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_cooldown(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_cooldown_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_cooldown_pre[hIndex].func;
@@ -68839,7 +69025,7 @@ int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_cooldown(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_cooldown_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_cooldown_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_cooldown_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -68847,11 +69033,11 @@ int HP_skill_get_cooldown(uint16 skill_id, uint16 skill_lv) {
}
return retVal___;
}
-int HP_skill_tree_get_max(uint16 skill_id, int class) {
+int HP_skill_tree_get_max(int skill_id, int class) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_tree_get_max_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, int *class);
+ int (*preHookFunc) (int *skill_id, int *class);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_tree_get_max_pre[hIndex].func;
@@ -68866,7 +69052,7 @@ int HP_skill_tree_get_max(uint16 skill_id, int class) {
retVal___ = HPMHooks.source.skill.tree_get_max(skill_id, class);
}
if (HPMHooks.count.HP_skill_tree_get_max_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, int class);
+ int (*postHookFunc) (int retVal___, int skill_id, int class);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_tree_get_max_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_tree_get_max_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, class);
@@ -68874,11 +69060,11 @@ int HP_skill_tree_get_max(uint16 skill_id, int class) {
}
return retVal___;
}
-const char* HP_skill_get_name(uint16 skill_id) {
+const char* HP_skill_get_name(int skill_id) {
int hIndex = 0;
const char* retVal___ = NULL;
if (HPMHooks.count.HP_skill_get_name_pre > 0) {
- const char* (*preHookFunc) (uint16 *skill_id);
+ const char* (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_name_pre[hIndex].func;
@@ -68893,7 +69079,7 @@ const char* HP_skill_get_name(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_name(skill_id);
}
if (HPMHooks.count.HP_skill_get_name_post > 0) {
- const char* (*postHookFunc) (const char* retVal___, uint16 skill_id);
+ const char* (*postHookFunc) (const char* retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_name_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_name_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68901,11 +69087,11 @@ const char* HP_skill_get_name(uint16 skill_id) {
}
return retVal___;
}
-const char* HP_skill_get_desc(uint16 skill_id) {
+const char* HP_skill_get_desc(int skill_id) {
int hIndex = 0;
const char* retVal___ = NULL;
if (HPMHooks.count.HP_skill_get_desc_pre > 0) {
- const char* (*preHookFunc) (uint16 *skill_id);
+ const char* (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_desc_pre[hIndex].func;
@@ -68920,7 +69106,7 @@ const char* HP_skill_get_desc(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_desc(skill_id);
}
if (HPMHooks.count.HP_skill_get_desc_post > 0) {
- const char* (*postHookFunc) (const char* retVal___, uint16 skill_id);
+ const char* (*postHookFunc) (const char* retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_desc_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_desc_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68928,37 +69114,11 @@ const char* HP_skill_get_desc(uint16 skill_id) {
}
return retVal___;
}
-void HP_skill_chk(uint16 *skill_id) {
- int hIndex = 0;
- if (HPMHooks.count.HP_skill_chk_pre > 0) {
- void (*preHookFunc) (uint16 **skill_id);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_skill_chk_pre[hIndex].func;
- preHookFunc(&skill_id);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return;
- }
- }
- {
- HPMHooks.source.skill.chk(skill_id);
- }
- if (HPMHooks.count.HP_skill_chk_post > 0) {
- void (*postHookFunc) (uint16 *skill_id);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_chk_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_skill_chk_post[hIndex].func;
- postHookFunc(skill_id);
- }
- }
- return;
-}
-int HP_skill_get_casttype(uint16 skill_id) {
+int HP_skill_get_casttype(int skill_id) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_casttype_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id);
+ int (*preHookFunc) (int *skill_id);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_casttype_pre[hIndex].func;
@@ -68973,7 +69133,7 @@ int HP_skill_get_casttype(uint16 skill_id) {
retVal___ = HPMHooks.source.skill.get_casttype(skill_id);
}
if (HPMHooks.count.HP_skill_get_casttype_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id);
+ int (*postHookFunc) (int retVal___, int skill_id);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_casttype_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id);
@@ -68981,11 +69141,11 @@ int HP_skill_get_casttype(uint16 skill_id) {
}
return retVal___;
}
-int HP_skill_get_casttype2(uint16 index) {
+int HP_skill_get_casttype2(int index) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_casttype2_pre > 0) {
- int (*preHookFunc) (uint16 *index);
+ int (*preHookFunc) (int *index);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_casttype2_pre[hIndex].func;
@@ -69000,7 +69160,7 @@ int HP_skill_get_casttype2(uint16 index) {
retVal___ = HPMHooks.source.skill.get_casttype2(index);
}
if (HPMHooks.count.HP_skill_get_casttype2_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 index);
+ int (*postHookFunc) (int retVal___, int index);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_casttype2_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_casttype2_post[hIndex].func;
retVal___ = postHookFunc(retVal___, index);
@@ -71607,11 +71767,11 @@ void HP_skill_brandishspear_dir(struct square *tc, uint8 dir, int are) {
}
return;
}
-int HP_skill_get_fixed_cast(uint16 skill_id, uint16 skill_lv) {
+int HP_skill_get_fixed_cast(int skill_id, int skill_lv) {
int hIndex = 0;
int retVal___ = 0;
if (HPMHooks.count.HP_skill_get_fixed_cast_pre > 0) {
- int (*preHookFunc) (uint16 *skill_id, uint16 *skill_lv);
+ int (*preHookFunc) (int *skill_id, int *skill_lv);
*HPMforce_return = false;
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_pre; hIndex++) {
preHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_pre[hIndex].func;
@@ -71626,7 +71786,7 @@ int HP_skill_get_fixed_cast(uint16 skill_id, uint16 skill_lv) {
retVal___ = HPMHooks.source.skill.get_fixed_cast(skill_id, skill_lv);
}
if (HPMHooks.count.HP_skill_get_fixed_cast_post > 0) {
- int (*postHookFunc) (int retVal___, uint16 skill_id, uint16 skill_lv);
+ int (*postHookFunc) (int retVal___, int skill_id, int skill_lv);
for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_get_fixed_cast_post; hIndex++) {
postHookFunc = HPMHooks.list.HP_skill_get_fixed_cast_post[hIndex].func;
retVal___ = postHookFunc(retVal___, skill_id, skill_lv);
@@ -72817,33 +72977,6 @@ bool HP_skill_parse_row_magicmushroomdb(char *split[], int column, int current)
}
return retVal___;
}
-bool HP_skill_parse_row_reproducedb(char *split[], int column, int current) {
- int hIndex = 0;
- bool retVal___ = false;
- if (HPMHooks.count.HP_skill_parse_row_reproducedb_pre > 0) {
- bool (*preHookFunc) (char **split[], int *column, int *current);
- *HPMforce_return = false;
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_reproducedb_pre; hIndex++) {
- preHookFunc = HPMHooks.list.HP_skill_parse_row_reproducedb_pre[hIndex].func;
- retVal___ = preHookFunc(&split, &column, &current);
- }
- if (*HPMforce_return) {
- *HPMforce_return = false;
- return retVal___;
- }
- }
- {
- retVal___ = HPMHooks.source.skill.parse_row_reproducedb(split, column, current);
- }
- if (HPMHooks.count.HP_skill_parse_row_reproducedb_post > 0) {
- bool (*postHookFunc) (bool retVal___, char *split[], int column, int current);
- for (hIndex = 0; hIndex < HPMHooks.count.HP_skill_parse_row_reproducedb_post; hIndex++) {
- postHookFunc = HPMHooks.list.HP_skill_parse_row_reproducedb_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, split, column, current);
- }
- }
- return retVal___;
-}
bool HP_skill_parse_row_improvisedb(char *split[], int columns, int current) {
int hIndex = 0;
bool retVal___ = false;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.sources.inc b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
index ada63e53d..23f762151 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.sources.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.sources.inc
@@ -2,7 +2,7 @@
* This file is part of Hercules.
* http://herc.ws - http://github.com/HerculesWS/Hercules
*
- * Copyright (C) 2013-2017 Hercules Dev Team
+ * Copyright (C) 2013-2018 Hercules Dev Team
*
* Hercules is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/tools/ci/travis.sh b/tools/ci/travis.sh
index cc1f15ee8..f6c799934 100755
--- a/tools/ci/travis.sh
+++ b/tools/ci/travis.sh
@@ -203,6 +203,12 @@ EOF
ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt"
PLUGINS="--load-plugin HPMHooking --load-plugin sample"
echo "run tests"
+ if [[ $DBUSER == "travis" ]]; then
+ echo "Disable leak dection on travis"
+ export ASAN_OPTIONS=detect_leaks=0:detect_stack_use_after_return=true:strict_init_order=true
+ else
+ export ASAN_OPTIONS=detect_stack_use_after_return=true:strict_init_order=true
+ fi
# run_test spinlock # Not running the spinlock test for the time being (too time consuming)
run_test libconfig
echo "run all servers without HPM"