Henrybk

servertype 2014-10-22 openkore patch

Feb 29th, 2016
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 10.74 KB | None | 0 0
  1. Index: Network/Receive.pm
  2. ===================================================================
  3. --- Network/Receive.pm  (revision 9030)
  4. +++ Network/Receive.pm  (working copy)
  5. @@ -2137,6 +2137,44 @@
  6.     }
  7.  }
  8.  
  9. +# 097A
  10. +sub quest_all_list2 {
  11. +   my ($self, $args) = @_;
  12. +   $questList = {};
  13. +   my $msg;
  14. +   my ($questID, $active, $time_start, $time, $mission_amount);
  15. +   my $i = 0;
  16. +   my ($mobID, $count, $amount, $mobName);
  17. +   while ($i < $args->{RAW_MSG_SIZE} - 8) {
  18. +       $msg = substr($args->{message}, $i, 15);
  19. +       ($questID, $active, $time_start, $time, $mission_amount) = unpack('V C V2 v', $msg);
  20. +       $questList->{$questID}->{active} = $active;
  21. +       debug "$questID $active\n", "info";
  22. +
  23. +       my $quest = \%{$questList->{$questID}};
  24. +       $quest->{time_start} = $time_start;
  25. +       $quest->{time} = $time;
  26. +       $quest->{mission_amount} = $mission_amount;
  27. +       debug "$questID $time_start $time $mission_amount\n", "info";
  28. +       $i += 15;
  29. +
  30. +       if ($mission_amount > 0) {
  31. +           for (my $j = 0 ; $j < $mission_amount ; $j++) {
  32. +               $msg = substr($args->{message}, $i, 32);
  33. +               ($mobID, $count, $amount, $mobName) = unpack('V v2 Z24', $msg);
  34. +               my $mission = \%{$quest->{missions}->{$mobID}};
  35. +               $mission->{mobID} = $mobID;
  36. +               $mission->{count} = $count;
  37. +               $mission->{amount} = $amount;
  38. +               $mission->{mobName_org} = $mobName;
  39. +               $mission->{mobName} = bytesToString($mobName);
  40. +               debug "- $mobID $count / $amount $mobName\n", "info";
  41. +               $i += 32;
  42. +           }
  43. +       }
  44. +   }
  45. +}
  46. +
  47.  # 02B2
  48.  # note: this packet shows all quests + their missions and has variable length
  49.  sub quest_all_mission {
  50. Index: Network/Receive/kRO/Ragexe_2014_10_22b.pm
  51. ===================================================================
  52. --- Network/Receive/kRO/Ragexe_2014_10_22b.pm   (revision 0)
  53. +++ Network/Receive/kRO/Ragexe_2014_10_22b.pm   (working copy)
  54. @@ -0,0 +1,41 @@
  55. +#########################################################################
  56. +#  OpenKore - Packet Receiveing
  57. +#  This module contains functions for Receiveing packets to the server.
  58. +#
  59. +#  This software is open source, licensed under the GNU General Public
  60. +#  License, version 2.
  61. +#  Basically, this means that you're allowed to modify and distribute
  62. +#  this software. However, if you distribute modified versions, you MUST
  63. +#  also distribute the source code.
  64. +#  See http://www.gnu.org/licenses/gpl.html for the full license.
  65. +########################################################################
  66. +# Korea (kRO)
  67. +# The majority of private servers use eAthena, this is a clone of kRO
  68. +
  69. +package Network::Receive::kRO::Ragexe_2014_10_22b;
  70. +
  71. +use strict;
  72. +use base qw(Network::Receive::kRO::RagexeRE_2013_08_07a);
  73. +
  74. +sub new {
  75. +   my ($class) = @_;
  76. +   my $self = $class->SUPER::new(@_);
  77. +   my %packets = (
  78. +       '0A18' => ['map_loaded', 'V a3 C2 v C', [qw(syncMapSync coords xSize ySize font sex)]], # 13
  79. +       '0984' => ['actor_status_active', 'a4 v V5', [qw(ID type tick unknown1 unknown2 unknown3 unknown4)]], # 28
  80. +       '097A' => ['quest_all_list2', 'v3 a*', [qw(len count unknown message)]],
  81. +       '09DB' => ['actor_moved', 'v C a4 a4 v3 V v10 a4 a2 v V C2 a3 C3 v2 Z*', [qw(len object_type ID AID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir guildID emblemID manner opt3 stance sex coords xSize ySize act lv font name)]],
  82. +       '09DC' => ['actor_connected', 'v C a4 a4 v3 V v11 a4 a2 v V C2 a3 C2 v2 a9 Z*', [qw(len object_type ID AID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir costume guildID emblemID manner opt3 stance sex coords xSize ySize lv font opt4 name)]],
  83. +       '09DD' => ['actor_exists', 'v C a4 a4 v3 V v11 a4 a2 v V C2 a3 C3 v2 a9 Z*', [qw(len object_type ID AID walk_speed opt1 opt2 option type hair_style weapon shield lowhead tophead midhead hair_color clothes_color head_dir costume guildID emblemID manner opt3 stance sex coords xSize ySize act lv font opt4 name)]],
  84. +       '09DF' => ['private_message_sent', 'C V', [qw(type unknown)]],
  85. +       '0A00' => ['hotkeys'],
  86. +       );
  87. +  
  88. +   foreach my $switch (keys %packets) {
  89. +       $self->{packet_list}{$switch} = $packets{$switch};
  90. +   }
  91. +
  92. +   return $self;
  93. +}
  94. +
  95. +1;
  96. \ No newline at end of file
  97. Index: Network/Receive/ServerType0.pm
  98. ===================================================================
  99. --- Network/Receive/ServerType0.pm  (revision 9030)
  100. +++ Network/Receive/ServerType0.pm  (working copy)
  101. @@ -7391,43 +7391,6 @@
  102.     #   '07E6' => ['skill_msg', 'v V', [qw(id msgid)]], #TODO: PACKET_ZC_MSG_SKILL     **msgtable
  103.  }
  104.  
  105. -sub quest_all_list2 {
  106. -   my ($self, $args) = @_;
  107. -   $questList = {};
  108. -   my $msg;
  109. -   my ($questID, $active, $time_start, $time, $mission_amount);
  110. -   my $i = 0;
  111. -   my ($mobID, $count, $amount, $mobName);
  112. -   while ($i < $args->{RAW_MSG_SIZE} - 8) {
  113. -       $msg = substr($args->{message}, $i, 15);
  114. -       ($questID, $active, $time_start, $time, $mission_amount) = unpack('V C V2 v', $msg);
  115. -       $questList->{$questID}->{active} = $active;
  116. -       debug "$questID $active\n", "info";
  117. -
  118. -       my $quest = \%{$questList->{$questID}};
  119. -       $quest->{time_start} = $time_start;
  120. -       $quest->{time} = $time;
  121. -       $quest->{mission_amount} = $mission_amount;
  122. -       debug "$questID $time_start $time $mission_amount\n", "info";
  123. -       $i += 15;
  124. -
  125. -       if ($mission_amount > 0) {
  126. -           for (my $j = 0 ; $j < $mission_amount ; $j++) {
  127. -               $msg = substr($args->{message}, $i, 32);
  128. -               ($mobID, $count, $amount, $mobName) = unpack('V v2 Z24', $msg);
  129. -               my $mission = \%{$quest->{missions}->{$mobID}};
  130. -               $mission->{mobID} = $mobID;
  131. -               $mission->{count} = $count;
  132. -               $mission->{amount} = $amount;
  133. -               $mission->{mobName_org} = $mobName;
  134. -               $mission->{mobName} = bytesToString($mobName);
  135. -               debug "- $mobID $count / $amount $mobName\n", "info";
  136. -               $i += 32;
  137. -           }
  138. -       }
  139. -   }
  140. -}
  141. -
  142.  sub show_script {
  143.     my ($self, $args) = @_;
  144.    
  145. Index: Network/Send/kRO/Ragexe_2014_10_22b.pm
  146. ===================================================================
  147. --- Network/Send/kRO/Ragexe_2014_10_22b.pm  (revision 0)
  148. +++ Network/Send/kRO/Ragexe_2014_10_22b.pm  (working copy)
  149. @@ -0,0 +1,140 @@
  150. +package Network::Send::kRO::Ragexe_2014_10_22b;
  151. +
  152. +use strict;
  153. +use base qw(Network::Send::kRO::RagexeRE_2013_08_07a);
  154. +
  155. +sub new {
  156. +   my ($class) = @_;
  157. +   my $self = $class->SUPER::new(@_);
  158. +  
  159. +   my %packets = (
  160. +       '08A2' => undef,
  161. +       '0369' => ['actor_action', 'a4 C', [qw(targetID type)]],#7
  162. +       '095C' => undef,
  163. +       '083C' => ['skill_use', 'v2 a4', [qw(lv skillID targetID)]],#10
  164. +       '0360' => undef,
  165. +       '0437' => ['character_move','a3', [qw(coordString)]],#5
  166. +#      '07EC' => undef,
  167. +       '035F' => ['sync', 'V', [qw(time)]],#6
  168. +       '0925' => undef,
  169. +       '08AD' => ['actor_look_at', 'v C', [qw(head body)]],#5
  170. +       '095E' => undef,
  171. +       '094E' => ['item_take', 'a4', [qw(ID)]],#6
  172. +       '089C' => undef,
  173. +       '087D' => ['item_drop', 'v2', [qw(index amount)]],#6
  174. +       '08A3' => undef,
  175. +       '0878' => ['storage_item_add', 'v V', [qw(index amount)]],#8
  176. +       '087E' => undef,
  177. +       '08AA' => ['storage_item_remove', 'v V', [qw(index amount)]],#8
  178. +       '0811' => undef,
  179. +       '023B' => ['skill_use_location', 'v4', [qw(lv skillID x y)]],#10
  180. +       '08A6' => undef,
  181. +       '096A' => ['actor_info_request', 'a4', [qw(ID)]],#6
  182. +#      '0369' => undef,
  183. +       '0368' => ['actor_name_request', 'a4', [qw(ID)]],#6
  184. +       '08A9' => undef,
  185. +       '093B' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],#19
  186. +       '0950' => undef,
  187. +       '0896' => ['party_join_request_by_name', 'Z24', [qw(partyName)]],#26
  188. +#      '0362' => undef,
  189. +       '091A' => ['friend_request', 'a*', [qw(username)]],#26
  190. +       '0926' => undef,
  191. +       '0899' => ['homunculus_command', 'v C', [qw(commandType, commandID)]],#5
  192. +   );
  193. +   $self->{packet_list}{$_} = $packets{$_} for keys %packets;
  194. +
  195. +   my %handlers = qw(
  196. +       actor_action 0369
  197. +       actor_info_request 096A
  198. +       actor_look_at 08AD
  199. +       actor_name_request 0368
  200. +       character_move 0437
  201. +       friend_request 091A
  202. +       homunculus_command 0899
  203. +       item_drop 087D
  204. +       item_take 094E
  205. +       map_login 093B
  206. +       party_join_request_by_name 0896
  207. +       skill_use 083C
  208. +       skill_use_location 023B
  209. +       storage_item_add 0878
  210. +       storage_item_remove 08AA
  211. +       sync 035F
  212. +   );
  213. +   $self->{packet_lut}{$_} = $handlers{$_} for keys %handlers;
  214. +
  215. +#  $self->cryptKeys(688214506, 731196533, 761751195);
  216. +
  217. +   $self;
  218. +}
  219. +
  220. +1;
  221. +
  222. +=pod
  223. +//2014-10-22bRagexe
  224. +packet_ver: 51
  225. +packet_keys: 0x290551EA,0x2B952C75,0x2D67669B // [YomRawr]
  226. +0x006d,149
  227. +0x023b,10,useskilltopos,2:4:6:8
  228. +0x0281,-1,itemlistwindowselected,2:4:8:12
  229. +0x035f,6,ticksend,2
  230. +0x0360,6,reqclickbuyingstore,2
  231. +0x0366,90,useskilltoposinfo,2:4:6:8:10
  232. +0x0368,6,solvecharname,2
  233. +0x0369,7,actionrequest,2:6
  234. +0x0437,5,walktoxy,2
  235. +0x0438,36,storagepassword,2:4:20
  236. +0x0811,-1,reqtradebuyingstore,2:4:8:12
  237. +0x0815,-1,reqopenbuyingstore,2:4:8:9:89
  238. +0x0817,2,reqclosebuyingstore,0
  239. +0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
  240. +0x0835,12,searchstoreinfolistitemclick,2:6:10
  241. +0x083c,10,useskilltoid,2:4:6
  242. +0x0878,8,movetokafra,2:4
  243. +0x087d,6,dropitem,2:4
  244. +0x0896,26,partyinvite2,2
  245. +0x0899,5,hommenu,2:4
  246. +0x08aa,8,movefromkafra,2:4
  247. +//0x08ab,4 // CZ_GANGSI_RANK
  248. +0x08ad,5,changedir,2:4
  249. +0x08e3,149
  250. +0x091a,26,friendslistadd,2
  251. +//0x092b,8 // CZ_JOIN_BATTLE_FIELD
  252. +0x093b,19,wanttoconnection,2:6:10:14:18
  253. +0x0940,2,searchstoreinfonextpage,0
  254. +0x094e,6,takeitem,2
  255. +0x0955,18,bookingregreq,2:4:6
  256. +0x096a,6,getcharnamerequest,2
  257. +
  258. +#  packet(0x0369,7,clif->pActionRequest,2,6);
  259. +#  packet(0x083C,10,clif->pUseSkillToId,2,4,6);
  260. +#  packet(0x0437,5,clif->pWalkToXY,2);
  261. +#  packet(0x035F,6,clif->pTickSend,2);
  262. +#  packet(0x08AD,5,clif->pChangeDir,2,4);
  263. +#  packet(0x094E,6,clif->pTakeItem,2);
  264. +#  packet(0x087D,6,clif->pDropItem,2,4);
  265. +#  packet(0x0878,8,clif->pMoveToKafra,2,4);
  266. +#  packet(0x08AA,8,clif->pMoveFromKafra,2,4);
  267. +#  packet(0x023B,10,clif->pUseSkillToPos,2,4,6,8);
  268. +   packet(0x0366,90,clif->pUseSkillToPosMoreInfo,2,4,6,8,10);
  269. +#  packet(0x096A,6,clif->pGetCharNameRequest,2);
  270. +#  packet(0x0368,6,clif->pSolveCharName,2);
  271. +   packet(0x0835,12,clif->pSearchStoreInfoListItemClick,2,6,10);
  272. +   packet(0x0940,2,clif->pSearchStoreInfoNextPage,0);
  273. +   packet(0x0819,-1,clif->pSearchStoreInfo,2,4,5,9,13,14,15);
  274. +   packet(0x0811,-1,clif->pReqTradeBuyingStore,2,4,8,12);
  275. +   packet(0x0360,6,clif->pReqClickBuyingStore,2);
  276. +   packet(0x0817,2,clif->pReqCloseBuyingStore,0);
  277. +   packet(0x0815,-1,clif->pReqOpenBuyingStore,2,4,8,9,89);
  278. +   packet(0x0955,18,clif->pPartyBookingRegisterReq,2,4);
  279. +   // packet(0x092B,8); // CZ_JOIN_BATTLE_FIELD
  280. +   packet(0x0281,-1,clif->pItemListWindowSelected,2,4,8);
  281. +#  packet(0x093B,19,clif->pWantToConnection,2,6,10,14,18);
  282. +#  packet(0x0896,26,clif->pPartyInvite2,2);
  283. +   // packet(0x08AB,4); // CZ_GANGSI_RANK
  284. +#  packet(0x091A,26,clif->pFriendsListAdd,2);
  285. +#  packet(0x0899,5,clif->pHomMenu,2,4);
  286. +   packet(0x0438,36,clif->pStoragePassword,0);
  287. +   packet(0x0A01,3,clif->pHotkeyRowShift,2);
  288. +
  289. +=cut
  290. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment