ソースを参照

Added support for 2018-01-24 (#2884)

In this client the new character select and cash shop UI from Ragnarok Zero were merged into the Sakray client.
Increased MAX_CHARS to 15 to fit the new character select
Added possibility to overwrite MAX_CHARS in defines_pre.h

As always thanks to @4144 for the shuffle packets and keys.
Lemongrass3110 7 年 前
コミット
8792960df2
3 ファイル変更42 行追加1 行削除
  1. 9 1
      src/common/mmo.h
  2. 2 0
      src/map/clif_obfuscation.hpp
  3. 31 0
      src/map/clif_shuffle.hpp

+ 9 - 1
src/common/mmo.h

@@ -34,7 +34,15 @@
 #define MAX_INVENTORY 100 ///Maximum items in player inventory
 /** Max number of characters per account. Note that changing this setting alone is not enough if the client is not hexed to support more characters as well.
 * Max value tested was 265 */
-#define MAX_CHARS 9 
+#ifndef MAX_CHARS
+	#if PACKETVER >= 20180124
+		#define MAX_CHARS 15
+	#elif PACKETVER >= 20100413
+		#define MAX_CHARS 12
+	#else
+		#define MAX_CHARS 9
+	#endif
+#endif
 /** Number of slots carded equipment can have. Never set to less than 4 as they are also used to keep the data of forged items/equipment. [Skotlex]
 * Note: The client seems unable to receive data for more than 4 slots due to all related packets having a fixed size. */
 #define MAX_SLOTS 4

+ 2 - 0
src/map/clif_obfuscation.hpp

@@ -408,6 +408,8 @@
 		packet_keys(0x348F4BD7,0x7A425A54,0x628F589A);
 	#elif PACKETVER == 20180117 // 2018-01-17aRagexeRE
 		packet_keys(0x21F477F4,0x37F437F4,0x37F437F4);
+	#elif PACKETVER == 20180124 // 2018-01-24bRagexeRE
+		packet_keys(0x7EAA1CE0,0x415D1CFD,0x4C8F19FA);
 	#elif PACKETVER > 20110817
 		#error Unsupported packet version.
 	#endif

+ 31 - 0
src/map/clif_shuffle.hpp

@@ -4563,6 +4563,37 @@
 	parseable_packet(0x083C,10,clif_parse_UseSkillToId,2,4,6);
 	parseable_packet(0x0875,36,clif_parse_StoragePassword,0);
 	parseable_packet(0x096A,6,clif_parse_GetCharNameRequest,2);
+// 2018-01-24bRagexeRE
+#elif PACKETVER == 20180124
+	parseable_packet(0x035F,6,clif_parse_TickSend,2);
+	parseable_packet(0x0360,6,clif_parse_ReqClickBuyingStore,2);
+	parseable_packet(0x0366,90,clif_parse_UseSkillToPosMoreInfo,2,4,6,8,10);
+	parseable_packet(0x0368,6,clif_parse_SolveCharName,2);
+	parseable_packet(0x0369,7,clif_parse_ActionRequest,2,6);
+	parseable_packet(0x0436,8,clif_parse_MoveToKafra,2,4);
+	parseable_packet(0x0437,5,clif_parse_WalkToXY,2);
+	parseable_packet(0x0438,10,clif_parse_UseSkillToPos,2,4,6,8);
+	parseable_packet(0x0802,6,clif_parse_DropItem,2,4);
+	parseable_packet(0x0811,-1,clif_parse_ReqTradeBuyingStore,2,4,8,12);
+	parseable_packet(0x0815,-1,clif_parse_ReqOpenBuyingStore,2,4,8,9,89);
+	parseable_packet(0x0817,2,clif_parse_ReqCloseBuyingStore,0);
+	parseable_packet(0x0819,2,clif_parse_SearchStoreInfoNextPage,0);
+	parseable_packet(0x0838,12,clif_parse_SearchStoreInfoListItemClick,2,6,10);
+	parseable_packet(0x083C,10,clif_parse_UseSkillToId,2,4,6);
+	parseable_packet(0x085F,36,clif_parse_StoragePassword,0);
+	//parseable_packet(0x0868,4,NULL,0); // CZ_GANGSI_RANK
+	parseable_packet(0x086A,18,clif_parse_PartyBookingRegisterReq,2,4);
+	//parseable_packet(0x086F,8,NULL,0); // CZ_JOIN_BATTLE_FIELD
+	parseable_packet(0x087A,26,clif_parse_PartyInvite2,2);
+	parseable_packet(0x0888,19,clif_parse_WantToConnection,2,6,10,14,18);
+	parseable_packet(0x0890,8,clif_parse_MoveFromKafra,2,4);
+	parseable_packet(0x0919,26,clif_parse_FriendsListAdd,2);
+	parseable_packet(0x0940,-1,clif_parse_SearchStoreInfo,2,4,5,9,13,14,15);
+	parseable_packet(0x0946,-1,clif_parse_ItemListWindowSelected,2,4,8,12);
+	parseable_packet(0x094D,6,clif_parse_TakeItem,2);
+	parseable_packet(0x0958,5,clif_parse_ChangeDir,2,4);
+	parseable_packet(0x0961,5,clif_parse_HomMenu,2,4);
+	parseable_packet(0x096A,6,clif_parse_GetCharNameRequest,2);
 #endif
 
 #endif /* _CLIF_SHUFFLE_HPP_ */