Advertisement
ZrnecX

Untitled

Jun 11th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.54 KB | None | 0 0
  1.  
  2. //--
  3. CPacketCreateCharacter::CPacketCreateCharacter(const string &name, const string &password)
  4. : CPacket(104)
  5. {
  6. //SEX
  7. uint sex = (uchar)g_CreateCharacterManager.GetFemale();
  8.  
  9.  
  10.  
  11. uint slot = 0xFFFFFFFF;
  12. IFOR(i, 0, g_CharacterList.Count)
  13. {
  14. if (!g_CharacterList.GetName(i).length())
  15. {
  16. slot = (uint)i;
  17. break;
  18. }
  19. }
  20.  
  21. //Podle http://uo.torfo.org/packetguide/
  22.  
  23. // BYTE cmd
  24. WriteUInt8(0x00);
  25. // BYTE[4] pattern1 (0xedededed)
  26. WriteUInt32BE(0xEDEDEDED);
  27. // BYTE[4] pattern2 (0xffffffff)
  28. WriteUInt32BE(0xffffffff);
  29. // BYTE pattern3 (0x00)
  30. WriteUInt8(0x00);
  31. // BYTE[30] char name
  32. WriteString(name.c_str(), 30, false);
  33. // BYTE[30] char password
  34. WriteString(password.c_str(), 30, false);
  35. // BYTE sex (0=male, 1=female)
  36. WriteUInt8(sex);
  37. // BYTE str
  38. WriteUInt8(0x14);
  39. // BYTE dex
  40. WriteUInt8(0x14);
  41. // BYTE int
  42. WriteUInt8(0x19);
  43. // BYTE skill1
  44. WriteUInt8(0x01);
  45. // BYTE skill1value
  46. WriteUInt8(0x21);
  47. // BYTE skill2
  48. WriteUInt8(0x02);
  49. // BYTE skill2value
  50. WriteUInt8(0x21);
  51. // BYTE skill3
  52. WriteUInt8(0x03);
  53. // BYTE skill3value
  54. WriteUInt8(0x22);
  55. // BYTE[2] skinColor
  56. WriteUInt16BE(g_CreateCharacterManager.SkinTone);
  57. // BYTE[2] hairStyle
  58. WriteUInt16BE(g_CreateCharacterManager.GetHair(g_CreateCharacterManager.HairStyle).GraphicID);
  59. // BYTE[2] hairColor
  60. WriteUInt16BE(g_CreateCharacterManager.HairColor);
  61. // BYTE[2] facial hair
  62. WriteUInt16BE(g_CreateCharacterManager.GetBeard(g_CreateCharacterManager.BeardStyle).GraphicID);
  63. // BYTE[2] facial hair color
  64. WriteUInt16BE(g_CreateCharacterManager.BeardColor);
  65. // BYTE[2] location # from starting list
  66. WriteUInt16BE(0x01); //koho zajma lokace...
  67. // BYTE[2] unknown1
  68. WriteUInt16BE(0x0000);
  69. // BYTE[2] slot
  70. WriteUInt16BE(slot);
  71. // BYTE[4] clientIP
  72. WriteDataBE(g_ConnectionManager.GetClientIP(), 4);
  73. // BYTE[2] shirt color
  74. WriteUInt16BE(g_CreateCharacterManager.ShirtColor);
  75. // BYTE[2] pants color
  76. WriteUInt16BE(g_CreateCharacterManager.PantsColor);
  77.  
  78. return;
  79.  
  80. //Podle http://necrotoolz.sourceforge.net/kairpacketguide/packet00.htm
  81.  
  82. // byte 0x00 The packet number.
  83. WriteUInt8(0x00);
  84. // uint 0xEDEDEDED Unknown
  85. WriteUInt32BE(0xEDEDEDED);
  86. // uint 0xFFFFFFFF Unknown
  87. WriteUInt32BE(0xffffffff);
  88. // byte 0x00 Unknown
  89. WriteUInt8(0x00);
  90. // char[30] Name The character's name.
  91. WriteString(name.c_str(), 30, false);
  92. // char[30] Password The character's password.
  93. WriteString(password.c_str(), 30, false);
  94. // byte Gender The character's gender (C#|VB7).
  95. WriteUInt8(sex);
  96. // byte Strength The character's strength.
  97. WriteUInt8(0x14);
  98. // byte Dexterity The character's dexterity.
  99. WriteUInt8(0x14);
  100. // byte Intelligencer The character's intelligence.
  101. WriteUInt8(0x19);
  102. // byte Skill1 The character's first skill (See List).
  103. WriteUInt8(0x01);
  104. // byte Skill1Amount The character's first skill value.
  105. WriteUInt8(0x21);
  106. // byte Skill2 The character's second skill (See List).
  107. WriteUInt8(0x02);
  108. // byte Skill2Amount The character's second skill value.
  109. WriteUInt8(0x21);
  110. // byte Skill3 The character's third skill (See List).
  111. WriteUInt8(0x03);
  112. // byte Skill3Amount The character's third skill value.
  113. WriteUInt8(0x22);
  114. // ushort Hue The character's skin color.
  115. WriteUInt16BE(g_CreateCharacterManager.SkinTone);
  116. // ushort HairStyle The artwork number for the character's hair.
  117. WriteUInt16BE(g_CreateCharacterManager.GetHair(g_CreateCharacterManager.HairStyle).GraphicID);
  118. // ushort HairColor The character's hair color.
  119. WriteUInt16BE(g_CreateCharacterManager.HairColor);
  120. // ushort BeardStyle The artwork number for the character's beard.
  121. WriteUInt16BE(g_CreateCharacterManager.GetBeard(g_CreateCharacterManager.BeardStyle).GraphicID);
  122. // ushort BeardColor The character's beard color.
  123. WriteUInt16BE(g_CreateCharacterManager.BeardColor);
  124. // ushort City The character's starting city (as listed in the character list).
  125. WriteUInt8(0x01); //koho zajma lokace...
  126. // ushort 0x0000 Unknown.
  127. WriteUInt16BE(0x0000);
  128. // ushort Slot The character slot number.
  129. WriteUInt8(slot);
  130. // uint Key The user's gameplay encryption key.
  131. WriteDataBE(g_ConnectionManager.GetClientIP(), 4);
  132. // ushort Shirt The color of the character's shirt.
  133. WriteUInt16BE(g_CreateCharacterManager.ShirtColor);
  134. // ushort Pants The color of the character's pants.
  135. WriteUInt16BE(g_CreateCharacterManager.PantsColor);
  136.  
  137.  
  138. return;
  139.  
  140. //Podle seznamu na POL serveru.... (nefungovalo)
  141.  
  142. // BYTE[1] Command
  143. WriteUInt8(0x00);
  144. // BYTE[4] pattern1 (0xedededed) =5
  145. WriteUInt32BE(0xEDEDEDED);
  146. // BYTE[4] pattern2 (0xffffffff) =9
  147. WriteUInt32BE(0xffffffff);
  148. // BYTE[1] pattern3 (0x00) =10
  149. WriteUInt8(0x00);
  150. // BYTE[30] char name = 40
  151. WriteString(name.c_str(), 30, false);
  152. // BYTE[2] unknown0=42
  153. WriteUInt16BE(0x0000);
  154. // BYTE[4] clientflag (see notes)=46
  155. WriteUInt32BE(0x20);
  156. // BYTE[4] unknown1=50
  157. WriteUInt32BE(0x00000000);
  158. // BYTE[4] logincount=54
  159. WriteUInt32BE(0x00000000);
  160. // BYTE[1] profession=55
  161. WriteUInt8(0x01); //profession nezajem... dam tam jednucku treba :D:D
  162. // BYTE[15] unknown2=70
  163. Move(15);
  164. // BYTE[1] sex (see notes)=71
  165. WriteUInt8(sex);
  166. // BYTE[1] str =72
  167. WriteUInt8(0x14);
  168. // BYTE[1] dex =73
  169. WriteUInt8(0x14);
  170. // BYTE[1] int
  171. WriteUInt8(0x19);
  172. // BYTE[1] skill1
  173. WriteUInt8(0x01);
  174. // BYTE[1] skill1value
  175. WriteUInt8(0x21);
  176. // BYTE[1] skill2
  177. WriteUInt8(0x02);
  178. // BYTE[1] skill2value
  179. WriteUInt8(0x21);
  180. // BYTE[1] skill3
  181. WriteUInt8(0x03);
  182. // BYTE[1] skill3value =80
  183. WriteUInt8(0x22);
  184. // BYTE[2] skinColor =82
  185. WriteUInt16BE(g_CreateCharacterManager.SkinTone);
  186. // BYTE[2] hairStyle =84
  187. WriteUInt16BE(g_CreateCharacterManager.GetHair(g_CreateCharacterManager.HairStyle).GraphicID);
  188. // BYTE[2] hairColor =86
  189. WriteUInt16BE(g_CreateCharacterManager.HairColor);
  190. // BYTE[2] facial hair =88
  191. WriteUInt16BE(g_CreateCharacterManager.GetBeard(g_CreateCharacterManager.BeardStyle).GraphicID);
  192. // BYTE[2] facial hair color =90
  193. WriteUInt16BE(g_CreateCharacterManager.BeardColor);
  194. // BYTE[2] location # from starting list =92
  195. WriteUInt8(0x01); //koho zajma lokace...
  196. // BYTE[2] unknown3 (Usually 0x00 in testing)=94
  197. WriteUInt8(0x00);
  198. // BYTE[2] slot=96
  199. WriteUInt8(slot);
  200. // BYTE[4] clientIP =100
  201. WriteDataBE(g_ConnectionManager.GetClientIP(), 4);
  202. // BYTE[2] shirt color=102
  203. WriteUInt16BE(g_CreateCharacterManager.ShirtColor);
  204. // BYTE[2] pants color=104
  205. WriteUInt16BE(g_CreateCharacterManager.PantsColor);
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement