1. 1. Kemer Envanterinde Kullanılmayan Slotlar Kullanıma Açıldı.
  2. 2. Kemer Envanterinde İtem var iken Kemer Değişmez veya Çıkmaz.
  3. 3. 5x 8x 9x 12x 15x 18x Envanterli Oyun yapılabilir hale getirildi.
  4. 4. Ticaret Yaparken İtem Taşma Sorunu Fixlendi.
  5. 5. Dragon soul Sistem yuvaları Düzenli hale geldi.
  6. 6. Aklıma gelmeyen Daha bir çok Slot Envanter sorunları Çözülecektir.
  7. Aşşağıdaki Anlatımları Kesinlikle en az 5x Envanter kullananların eklemesi gerekir. 4 envanter Kullanıcılarının eklemesine gerek yoktur. Çünki 4 envanter ile sınırı Aşmıyorsunuz.
  8. Asıl sorun Game'lerde BYTE ve 255 olarak yapılandırılması ve bunları UINT ve 1000 yaparak tüm sorunlara elveda diyeceğiz.
  9. Şimdi Başlayalım
  10. common/tables.h Açılır ve Aratılır
  11. Kod:
  12. typedef struct SQuickslot{
  13. BYTE type;
  14. BYTE pos;
  15. } TQuickslot;
  16. Değiştirilir.
  17. Kod:
  18. typedef struct SQuickslot{
  19. BYTE type;
  20. UINT pos;
  21. } TQuickslot;
  22. game/src/char.h Açılır ve Aratılır
  23. Kod:
  24. BYTE bItemGrid[INVENTORY_AND_EQUIP_SLOT_MAX];
  25. Değiştirilir
  26. Kod:
  27. UINT bItemGrid[INVENTORY_AND_EQUIP_SLOT_MAX];
  28. 1.Aratılır
  29. Kod:
  30. void SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos);
  31. 1.Değiştirilir
  32. Kod:
  33. void SyncQuickslot(BYTE bType, UINT bOldPos, UINT bNewPos);
  34. 2.Aratılır
  35. Kod:
  36. bool GetQuickslot(BYTE pos, TQuickslot ** ppSlot);
  37. 2.Değiştirilir
  38. Kod:
  39. bool GetQuickslot(UINT pos, TQuickslot ** ppSlot);
  40. 3.Aratılır
  41. Kod:
  42. bool SetQuickslot(BYTE pos, TQuickslot & rSlot);
  43. 3.Değiştirilir
  44. Kod:
  45. bool SetQuickslot(UINT pos, TQuickslot & rSlot);
  46. 4.Aratılır
  47. Kod:
  48. bool DelQuickslot(BYTE pos);
  49. 4.Değiştirilir
  50. Kod:
  51. bool DelQuickslot(UINT pos);
  52. 5.Aratılır
  53. Kod:
  54. bool SwapQuickslot(BYTE a, BYTE b);
  55. 5.Değiştirilir
  56. Kod:
  57. bool SwapQuickslot(UINT a, UINT b);
  58. 6.Aratılır
  59. Kod:
  60. void ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos);
  61. 6.Değiştirilir
  62. Kod:
  63. void ChainQuickslotItem(LPITEM pItem, BYTE bType, UINT bOldPos);
  64. 7.Aratılır
  65. Kod:
  66. void SetWear(BYTE bCell, LPITEM item);
  67. 7.Değiştirilir
  68. Kod:
  69. void SetWear(UINT bCell, LPITEM item);
  70. 8.Aratılır
  71. Kod:
  72. LPITEM GetWear(BYTE bCell) const;
  73. 8.Değiştirilir
  74. Kod:
  75. LPITEM GetWear(UINT bCell) const;
  76. 9.Aratılır
  77. Kod:
  78. bool RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell = -1);
  79. 9.Değiştirilir
  80. Kod:
  81. bool RefineInformation(UINT bCell, BYTE bType, int iAdditionalCell = -1);
  82. 10.Aratılır
  83. Kod:
  84. bool SwapItem(BYTE bCell, BYTE bDestCell);
  85. 10.Değiştirilir
  86. Kod:
  87. bool SwapItem(UINT bCell, UINT bDestCell);
  88. game/src/char_battle.cpp Açılır ve Aratılır 2x defa Aratın
  89. Kod:
  90. SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots[i], 255);
  91. Değiştirilir 2x
  92. Kod:
  93. SyncQuickslot(QUICKSLOT_TYPE_ITEM, vec_bSlots[i], 1000);
  94. Aratılır 2x defa Aratın
  95. Kod:
  96. SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, 255);
  97. Değiştirilir 2x
  98. Kod:
  99. SyncQuickslot(QUICKSLOT_TYPE_ITEM, WEAR_UNIQUE1, 1000);
  100. game/src/char_item.cpp Açılır ve Aratılır
  101. Kod:
  102. LPITEM CHARACTER::GetWear(BYTE bCell) const
  103. Değiştirilir
  104. Kod:
  105. LPITEM CHARACTER::GetWear(UINT bCell) const
  106. 1.Aratılır
  107. Kod:
  108. void CHARACTER::SetWear(BYTE bCell, LPITEM item)
  109. 1.Değiştirilir
  110. Kod:
  111. void CHARACTER::SetWear(UINT bCell, LPITEM item)
  112. 2.Aratılır
  113. Kod:
  114. SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255);
  115. 2.Değiştirilir
  116. Kod:
  117. SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 1000);
  118. 3.Aratılır
  119. Kod:
  120. BYTE bCell = Cell.cell;
  121. 3.Değiştirilir
  122. Kod:
  123. UINT bCell = Cell.cell;
  124. 4.Aratılır 2x Aratılır
  125. Kod:
  126. if (m_pointsInstant.bItemGrid[bCell] == iExceptionCell)
  127. 4.Değiştirilir 2x
  128. Kod:
  129. if (m_pointsInstant.bItemGrid[bCell] == (UINT)iExceptionCell)
  130. 5.Aratılır 2x Aratılır
  131. Kod:
  132. BYTE p = bCell + (5 * j);
  133. 5.Değiştirilir 2x
  134. Kod:
  135. UINT p = bCell + (5 * j);
  136. 6.Aratılır 3x Aratılır
  137. Kod:
  138. BYTE bCell = item->GetCell();
  139. 6.Değiştirilir 3x
  140. Kod:
  141. UINT bCell = item->GetCell();
  142. 7.Aratılır
  143. Kod:
  144. bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
  145. 7.Değiştirilir
  146. Kod:
  147. bool CHARACTER::RefineInformation(UINT bCell, BYTE bType, int iAdditionalCell)
  148. 8.Aratılır
  149. Kod:
  150. SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, 255);
  151. 8.Değiştirilir
  152. Kod:
  153. SyncQuickslot(QUICKSLOT_TYPE_ITEM, Cell.cell, 1000);
  154. 9.Aratılır
  155. Kod:
  156. bool CHARACTER::SwapItem(BYTE bCell, BYTE bDestCell)
  157. 9.Değiştirilir
  158. Kod:
  159. bool CHARACTER::SwapItem(UINT bCell, UINT bDestCell)
  160. 10.Aratılır
  161. Kod:
  162. BYTE bEquipCell = item2->GetCell() - INVENTORY_MAX_NUM;
  163. 10.Değiştirilir
  164. Kod:
  165. INT bEquipCell = item2->GetCell() - INVENTORY_MAX_NUM;
  166. 11.Aratılır
  167. Kod:
  168. BYTE bInvenCell = item1->GetCell();
  169. 11.Değiştirilir
  170. Kod:
  171. UINT bInvenCell = item1->GetCell();
  172. 12.Aratılır
  173. Kod:
  174. BYTE bCell1 = item1->GetCell();
  175. 12.Değiştirilir
  176. Kod:
  177. UINT bCell1 = item1->GetCell();
  178. 13.Aratılır
  179. Kod:
  180. BYTE bCell2 = item2->GetCell();
  181. 13.Değiştirilir
  182. Kod:
  183. UINT bCell2 = item2->GetCell();
  184. 14.Aratılır
  185. Kod:
  186. BYTE bOldCell = item->GetCell();
  187. 14.Değiştirilir
  188. Kod:
  189. UINT bOldCell = item->GetCell();
  190. game/src/char_quickslot.cpp Açılır ve Aratılır
  191. Kod:
  192. void CHARACTER::SyncQuickslot(BYTE bType, BYTE bOldPos, BYTE bNewPos)
  193. Değiştirilir
  194. Kod:
  195. void CHARACTER::SyncQuickslot(BYTE bType, UINT bOldPos, UINT bNewPos)
  196. 1.Aratılır
  197. Kod:
  198. if (bNewPos == 255)
  199. 1.Değiştirilir
  200. Kod:
  201. if (bNewPos == 1000)
  202. 2.Aratılır
  203. Kod:
  204. bool CHARACTER::GetQuickslot(BYTE pos, TQuickslot ** ppSlot)
  205. 2.Değiştirilir
  206. Kod:
  207. bool CHARACTER::GetQuickslot(UINT pos, TQuickslot ** ppSlot)
  208. 3.Aratılır
  209. Kod:
  210. bool CHARACTER::SetQuickslot(BYTE pos, TQuickslot & rSlot)
  211. 3.Değiştirilir
  212. Kod:
  213. bool CHARACTER::SetQuickslot(UINT pos, TQuickslot & rSlot)
  214. 4.Aratılır
  215. Kod:
  216. bool CHARACTER::DelQuickslot(BYTE pos)
  217. 4.Değiştirilir
  218. Kod:
  219. bool CHARACTER::DelQuickslot(UINT pos)
  220. 5.Aratılır
  221. Kod:
  222. bool CHARACTER::SwapQuickslot(BYTE a, BYTE b)
  223. 5.Değiştirilir
  224. Kod:
  225. bool CHARACTER::SwapQuickslot(UINT a, UINT b)
  226. 6.Aratılır
  227. Kod:
  228. void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, BYTE bOldPos)
  229. 6.Değiştirilir
  230. Kod:
  231. void CHARACTER::ChainQuickslotItem(LPITEM pItem, BYTE bType, UINT bOldPos)
  232. game/src/cmd_general.cpp Açın ve Aratın
  233. Kod:
  234. for (BYTE i=0; i<INVENTORY_MAX_NUM; ++i)
  235. Değiştirin
  236. Kod:
  237. for (UINT i=0; i<INVENTORY_MAX_NUM; ++i)
  238. game/src/cmd_gm.cpp Açın ve Aratın
  239. Kod:
  240. ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255);
  241. Değiştirin
  242. Kod:
  243. ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 1000);
  244. Aratılır 3x Aratın
  245. Kod:
  246. BYTE cell = 0;
  247. Değiştirin 3x
  248. Kod:
  249. UINT cell = 0;
  250. game/src/exchange.cpp Açın ve Aratın
  251. Kod:
  252. m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);
  253. Değiştirin
  254. Kod:
  255. m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 1000);
  256. game/src/fishing.cpp Açın ve Aratın 2x Aratın
  257. Kod:
  258. BYTE bCell = rod->GetCell();
  259. Değiştirin
  260. Kod:
  261. UINT bCell = rod->GetCell();
  262. game/src/input_main.cpp Açın ve Aratın
  263. Kod:
  264. if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
  265. Değiştirin
  266. Kod:
  267. if (uiBytes < sizeof(UINT) + sizeof(BYTE))
  268. 1.Aratın
  269. Kod:
  270. BYTE pos = *(c_pData++);
  271. BYTE count = *(c_pData);
  272. 1.Değiştirin
  273. Kod:
  274. UINT pos = *reinterpret_cast<const UINT*>(c_pData++);
  275. BYTE count = *(c_pData);
  276. 2.Aratın
  277. Kod:
  278. CShopManager::instance().Sell(ch, pos, count);
  279. return sizeof(BYTE) + sizeof(BYTE);
  280. 2.Değiştirin
  281. Kod:
  282. CShopManager::instance().Sell(ch, pos, count);
  283. return sizeof(UINT) + sizeof(BYTE);
  284. 3.Aratın
  285. Kod:
  286. ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, p->ItemPos.cell, 255);
  287. 3.Değiştirin
  288. Kod:
  289. ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, p->ItemPos.cell, 1000);
  290. game/src/item.cpp Açın ve Aratın
  291. Kod:
  292. pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, wCell, 255);
  293. Değiştirin
  294. Kod:
  295. pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, wCell, 1000);
  296. 1.Aratın
  297. Kod:
  298. m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, m_wCell, 255);
  299. 1.Değiştirin
  300. Kod:
  301. m_pOwner->SyncQuickslot(QUICKSLOT_TYPE_ITEM, m_wCell, 1000);
  302. 2.Aratın
  303. Kod:
  304. bool CItem::EquipTo(LPCHARACTER ch, BYTE bWearCell)
  305. 2.Değiştirin
  306. Kod:
  307. bool CItem::EquipTo(LPCHARACTER ch, UINT bWearCell)
  308. game/src/item.h Açın ve Aratın
  309. Kod:
  310. bool EquipTo(LPCHARACTER ch, BYTE bWearCell);
  311. Değiştirin
  312. Kod:
  313. bool EquipTo(LPCHARACTER ch, UINT bWearCell);
  314. game/src/item_manager.cpp Açın ve Aratın
  315. Kod:
  316. o->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);
  317. Değiştirin
  318. Kod:
  319. o->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 1000);
  320. game/src/minig.cpp Açın ve 2x Aratın
  321. Kod:
  322. BYTE bCell = rkOldPick.GetCell();
  323. Değiştirin 2.x
  324. Kod:
  325. UINT bCell = rkOldPick.GetCell();
  326. game/src/packet.h Açın ve Aratın
  327. Kod:
  328. typedef struct command_quickslot_add{
  329. BYTE header;
  330. BYTE pos;
  331. TQuickslot slot;
  332. Değiştirin
  333. Kod:
  334. typedef struct command_quickslot_add{
  335. BYTE header;
  336. UINT pos;
  337. TQuickslot slot;
  338. 1.Aratın
  339. Kod:
  340. typedef struct command_quickslot_del{
  341. BYTE header;
  342. BYTE pos;
  343. } TPacketCGQuickslotDel;
  344. 1.Değiştirin
  345. Kod:
  346. typedef struct command_quickslot_del{
  347. BYTE header;
  348. UINT pos;
  349. } TPacketCGQuickslotDel;
  350. 2.Aratın
  351. Kod:
  352. typedef struct command_quickslot_swap{
  353. BYTE header;
  354. BYTE pos;
  355. BYTE change_pos;
  356. } TPacketCGQuickslotSwap;
  357. 2.Değiştirin
  358. Kod:
  359. typedef struct command_quickslot_swap{
  360. BYTE header;
  361. UINT pos;
  362. UINT change_pos;
  363. } TPacketCGQuickslotSwap;
  364. 3.Aratın
  365. Kod:
  366. typedef struct packet_item_del{
  367. BYTE header;
  368. BYTE pos;
  369. } TPacketGCItemDel;
  370. 3.Değiştirin
  371. Kod:
  372. typedef struct packet_item_del{
  373. BYTE header;
  374. UINT pos;
  375. } TPacketGCItemDel;
  376. 4.Aratın
  377. Kod:
  378. struct packet_quickslot_add{
  379. BYTE header;
  380. BYTE pos;
  381. TQuickslot slot;
  382. };
  383. 4.Değiştirin
  384. Kod:
  385. struct packet_quickslot_add{
  386. BYTE header;
  387. UINT pos;
  388. TQuickslot slot;
  389. };
  390. 5.Aratın
  391. Kod:
  392. struct packet_quickslot_del{
  393. BYTE header;
  394. BYTE pos;
  395. };
  396. 5.Değiştirin
  397. Kod:
  398. struct packet_quickslot_del{
  399. BYTE header;
  400. UINT pos;
  401. };
  402. 6.Aratın
  403. Kod:
  404. struct packet_quickslot_swap{
  405. BYTE header;
  406. BYTE pos;
  407. BYTE pos_to;
  408. };
  409. 6.Değiştirin
  410. Kod:
  411. struct packet_quickslot_swap{
  412. BYTE header;
  413. UINT pos;
  414. UINT pos_to;
  415. };
  416. 7.Aratın
  417. Kod:
  418. typedef struct SPacketCGRefine{
  419. BYTE header;
  420. BYTE pos;
  421. BYTE type;
  422. } TPacketCGRefine;
  423. 7.Değiştirin
  424. Kod:
  425. typedef struct SPacketCGRefine{
  426. BYTE header;
  427. UINT pos;
  428. BYTE type;
  429. } TPacketCGRefine;
  430. 8.Aratın
  431. Kod:
  432. typedef struct SPacketCGRequestRefineInfo{
  433. BYTE header;
  434. BYTE pos;
  435. } TPacketCGRequestRefineInfo;
  436. 8.Değiştirin
  437. Kod:
  438. typedef struct SPacketCGRequestRefineInfo{
  439. BYTE header;
  440. UINT pos;
  441. } TPacketCGRequestRefineInfo;
  442. 9.Aratın
  443. Kod:
  444. typedef struct SPacketGCRefineInformaion{
  445. BYTE header;
  446. BYTE type;
  447. BYTE pos;
  448. DWORD src_vnum;
  449. DWORD result_vnum;
  450. BYTE material_count;
  451. 9.Değiştirin
  452. Kod:
  453. typedef struct SPacketGCRefineInformaion{
  454. BYTE header;
  455. BYTE type;
  456. UINT pos;
  457. DWORD src_vnum;
  458. DWORD result_vnum;
  459. BYTE material_count;
  460. game/src/questlua_global.cpp Açın ve 2x Aratın
  461. Kod:
  462. BYTE bCell = (BYTE) lua_tonumber(L,-1);
  463. Değiştirin 2x
  464. Kod:
  465. UINT bCell = lua_tonumber(L, -1);
  466. game/src/questlua_item.cpp Açın ve Aratın
  467. Kod:
  468. BYTE bCell = pItem->GetCell();
  469. Değiştirin
  470. Kod:
  471. UINT bCell = pItem->GetCell();
  472. game/src/questlua_pc.cpp Açın ve Aratın
  473. Kod:
  474. BYTE bCell = (BYTE)lua_tonumber(L, 1);
  475. Değiştirin
  476. Kod:
  477. UINT bCell = lua_tonumber(L, 1);
  478. game/src/safebox.cpp Açın ve Aratın
  479. Kod:
  480. LPITEM CSafebox::GetItem(BYTE bCell)
  481. Değiştirin
  482. Kod:
  483. LPITEM CSafebox::GetItem(INT bCell)
  484. Aratın
  485. Kod:
  486. bool CSafebox::MoveItem(BYTE bCell, BYTE bDestCell, BYTE count)
  487. Değiştirin
  488. Kod:
  489. bool CSafebox::MoveItem(INT bCell, INT bDestCell, BYTE count)
  490. game/src/safebox.h Açın ve Aratın
  491. Kod:
  492. bool MoveItem(BYTE bCell, BYTE bDestCell, BYTE count);
  493. Değiştirin
  494. Kod:
  495. bool MoveItem(INT bCell, INT bDestCell, BYTE count);
  496. Aratın
  497. Kod:
  498. LPITEM GetItem(BYTE bCell);
  499. Değiştirin
  500. Kod:
  501. LPITEM GetItem(INT bCell);
  502. game/src/shop.cpp Açın ve Aratın
  503. Kod:
  504. m_pkPC->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 255);
  505. Değiştirin
  506. Kod:
  507. m_pkPC->SyncQuickslot(QUICKSLOT_TYPE_ITEM, item->GetCell(), 1000);
  508. game/src/shop_manager.cpp Açın ve Aratın
  509. Kod:
  510. void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
  511. Değiştirin
  512. Kod:
  513. void CShopManager::Sell(LPCHARACTER ch, UINT bCell, BYTE bCount)
  514. game/src/shop_manager.h Açın ve Aratın
  515. Kod:
  516. void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount=0);
  517. Değiştirin
  518. Kod:
  519. void Sell(LPCHARACTER ch, UINT bCell, BYTE bCount = 0);
  520. Game SRC'de İşimiz Bitti
  521. Client Source:
  522. Client/UserInterface/AbstractPlayer.h Açalım ve Aratalım
  523. Kod:
  524. virtual void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition) = 0;
  525. Değiştirin
  526. Kod:
  527. virtual void AddQuickSlot(int QuickslotIndex, char IconType, INT IconPosition) = 0;
  528. Client/UserInterface/GameType.h Açalım ve Aratalım
  529. Kod:
  530. typedef struct SQuickSlot {
  531. BYTE Type;
  532. BYTE Position;
  533. } TQuickSlot;
  534. Değiştirin
  535. Kod:
  536. typedef struct SQuickSlot {
  537. BYTE Type;
  538. UINT Position;
  539. } TQuickSlot;
  540. Client/UserInterface/Packet.h Açalım ve Aratalım
  541. Kod:
  542. typedef struct command_quickslot_add{
  543. BYTE header;
  544. BYTE pos;
  545. TQuickSlot slot;
  546. }TPacketCGQuickSlotAdd;
  547. Değiştirin
  548. Kod:
  549. typedef struct command_quickslot_add{
  550. BYTE header;
  551. UINT pos;
  552. TQuickSlot slot;
  553. }TPacketCGQuickSlotAdd;
  554. 1.Aratın
  555. Kod:
  556. typedef struct command_quickslot_del{
  557. BYTE header;
  558. BYTE pos;
  559. }TPacketCGQuickSlotDel;
  560. 1.Değiştirin
  561. Kod:
  562. typedef struct command_quickslot_del{
  563. BYTE header;
  564. UINT pos;
  565. }TPacketCGQuickSlotDel;
  566. 2.Aratın
  567. Kod:
  568. typedef struct command_quickslot_swap{
  569. BYTE header;
  570. BYTE pos;
  571. BYTE change_pos;
  572. }TPacketCGQuickSlotSwap;
  573. 2.Değiştirin
  574. Kod:
  575. typedef struct command_quickslot_swap{
  576. BYTE header;
  577. UINT pos;
  578. UINT change_pos;
  579. }TPacketCGQuickSlotSwap;
  580. 3.Aratın
  581. Kod:
  582. typedef struct SPacketCGRefine{
  583. BYTE header;
  584. BYTE pos;
  585. BYTE type;
  586. } TPacketCGRefine;
  587. 3.Değiştirin
  588. Kod:
  589. typedef struct SPacketCGRefine{
  590. BYTE header;
  591. UINT pos;
  592. BYTE type;
  593. } TPacketCGRefine;
  594. 4.Aratın 2 defa var ise 2 sinide değiştirin
  595. Kod:
  596. typedef struct packet_item_del{
  597. BYTE header;
  598. BYTE pos;
  599. } TPacketGCItemDel;
  600. 4.Değiştirin kaç tane varsa
  601. Kod:
  602. typedef struct packet_item_del{
  603. BYTE header;
  604. UINT pos;
  605. } TPacketGCItemDel;
  606. 5.Aratın
  607. Kod:
  608. typedef struct packet_quickslot_add{
  609. BYTE header;
  610. BYTE pos;
  611. TQuickSlot slot;
  612. } TPacketGCQuickSlotAdd;
  613. 5.Değiştirin
  614. Kod:
  615. typedef struct packet_quickslot_add{
  616. BYTE header;
  617. UINT pos;
  618. TQuickSlot slot;
  619. } TPacketGCQuickSlotAdd;
  620. 6.Aratın
  621. Kod:
  622. typedef struct packet_quickslot_del{
  623. BYTE header;
  624. BYTE pos;
  625. } TPacketGCQuickSlotDel;
  626. 6.Değiştirin
  627. Kod:
  628. typedef struct packet_quickslot_del{
  629. BYTE header;
  630. UINT pos;
  631. } TPacketGCQuickSlotDel;
  632. 7.Aratın
  633. Kod:
  634. typedef struct packet_quickslot_swap{
  635. BYTE header;
  636. BYTE pos;
  637. BYTE change_pos;
  638. } TPacketGCQuickSlotSwap;
  639. 7.Değiştirin
  640. Kod:
  641. typedef struct packet_quickslot_swap{
  642. BYTE header;
  643. UINT pos;
  644. UINT change_pos;
  645. } TPacketGCQuickSlotSwap;
  646. 8.Aratın
  647. Kod:
  648. typedef struct SPacketGCRefineInformation{
  649. BYTE header;
  650. BYTE pos;
  651. TRefineTable refine_table;
  652. } TPacketGCRefineInformation;
  653. 8.Değiştirin
  654. Kod:
  655. typedef struct SPacketGCRefineInformation{
  656. BYTE header;
  657. UINT pos;
  658. TRefineTable refine_table;
  659. } TPacketGCRefineInformation;
  660. 9.Aratın
  661. Kod:
  662. typedef struct SPacketGCRefineInformationNew{
  663. BYTE header;
  664. BYTE type;
  665. BYTE pos;
  666. TRefineTable refine_table;
  667. } TPacketGCRefineInformationNew;
  668. 9.Değiştirin
  669. Kod:
  670. typedef struct SPacketGCRefineInformationNew{
  671. BYTE header;
  672. BYTE type;
  673. UINT pos;
  674. TRefineTable refine_table;
  675. } TPacketGCRefineInformationNew;
  676. Client/UserInterface/PythonNetworkStream.h Açın ve Aratın
  677. Kod:
  678. bool SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos);
  679. Değiştirin
  680. Kod:
  681. bool SendQuickSlotAddPacket(UINT wpos, BYTE type, UINT pos);
  682. 1.Aratın
  683. Kod:
  684. bool SendQuickSlotDelPacket(BYTE wpos);
  685. 1.Değiştirin
  686. Kod:
  687. bool SendQuickSlotDelPacket(UINT wpos);
  688. 2.Aratın
  689. Kod:
  690. bool SendQuickSlotMovePacket(BYTE wpos, BYTE change_pos);
  691. 2.Değiştirin
  692. Kod:
  693. bool SendQuickSlotMovePacket(UINT wpos, UINT change_pos);
  694. 3.Aratın
  695. Kod:
  696. bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount);
  697. 3.Değiştirin
  698. Kod:
  699. bool SendShopSellPacketNew(UINT bySlot, BYTE byCount);
  700. 4.Aratın
  701. Kod:
  702. bool SendRefinePacket(BYTE byPos, BYTE byType);
  703. 4.Değiştirin
  704. Kod:
  705. bool SendRefinePacket(UINT byPos, BYTE byType);
  706. Client/UserInterface/PythonNetworkStreamPhaseGame.cpp Açın ve Aratın
  707. Kod:
  708. bool CPythonNetworkStream::SendRefinePacket(BYTE byPos, BYTE byType)
  709. Değiştirin
  710. Kod:
  711. bool CPythonNetworkStream::SendRefinePacket(UINT byPos, BYTE byType)
  712. Client/UserInterface/PythonNetworkStreamPhaseGameItem.cpp Açın ve Aratın
  713. Kod:
  714. bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount)
  715. Değiştirin
  716. Kod:
  717. bool CPythonNetworkStream::SendShopSellPacketNew(UINT bySlot, BYTE byCount)
  718. Üstteki Değiştirdiğimiz Kodun Hemen Altındaki Kod Bloğunu Tamamen Alttaki kod ile Değiştirin
  719. Kod:
  720. { if (!__CanActMainInstance())
  721. return true;
  722. if (__IsEquipItemInSlot(pos))
  723. {
  724. if (CPythonExchange::Instance().isTrading())
  725. {
  726. if (pos.IsEquipCell() || change_pos.IsEquipCell())
  727. {
  728. PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_AppendNotifyMessage", Py_BuildValue("(s)", "CANNOT_EQUIP_EXCHANGE"));
  729. return true;
  730. }
  731. }
  732. if (CPythonShop::Instance().IsOpen())
  733. {
  734. if (pos.IsEquipCell() || change_pos.IsEquipCell())
  735. {
  736. PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_AppendNotifyMessage", Py_BuildValue("(s)", "CANNOT_EQUIP_SHOP"));
  737. return true;
  738. }
  739. }
  740. if (__IsPlayerAttacking())
  741. return true;
  742. }
  743. __PlayInventoryItemDropSound(pos);
  744. TPacketCGItemMove itemMovePacket;
  745. itemMovePacket.header = HEADER_CG_ITEM_MOVE;
  746. itemMovePacket.pos = pos;
  747. itemMovePacket.change_pos = change_pos;
  748. itemMovePacket.num = num;
  749. if (!Send(sizeof(TPacketCGItemMove), &itemMovePacket))
  750. {
  751. Tracen("SendItemMovePacket Error");
  752. return false;
  753. }
  754. return SendSequence();
  755. }
  756. Örnk Resim:
  757. Aratın
  758. Kod:
  759. bool CPythonNetworkStream::SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos)
  760. Değiştirin
  761. Kod:
  762. bool CPythonNetworkStream::SendQuickSlotAddPacket(UINT wpos, BYTE type, UINT pos)
  763. Aratın
  764. Kod:
  765. bool CPythonNetworkStream::SendQuickSlotDelPacket(BYTE pos)
  766. Değiştirin
  767. Kod:
  768. bool CPythonNetworkStream::SendQuickSlotDelPacket(UINT pos)
  769. Aratın
  770. Kod:
  771. bool CPythonNetworkStream::SendQuickSlotMovePacket(BYTE pos, BYTE change_pos)
  772. Değiştirin
  773. Kod:
  774. bool CPythonNetworkStream::SendQuickSlotMovePacket(UINT pos, UINT change_pos)
  775. Client/UserInterface/PythonPlayer.cpp Açılır ve Aratılır
  776. Kod:
  777. for (BYTE i = 0; i < QUICKSLOT_MAX_NUM; ++i)
  778. Değiştirin
  779. Kod:
  780. for (UINT i = 0; i < QUICKSLOT_MAX_NUM; ++i)
  781. 1.Aratın
  782. Kod:
  783. rkNetStream.SendQuickSlotMovePacket((BYTE) dwGlobalSrcSlotIndex, (BYTE)dwGlobalDstSlotIndex);
  784. 1.Değiştirin
  785. Kod:
  786. rkNetStream.SendQuickSlotMovePacket((UINT) dwGlobalSrcSlotIndex, (UINT)dwGlobalDstSlotIndex);
  787. 2.Aratın
  788. Kod:
  789. rkNetStream.SendQuickSlotAddPacket((BYTE)dwGlobalSlotIndex, (BYTE)dwWndType, (BYTE)dwWndItemPos);
  790. 2.Değiştirin
  791. Kod:
  792. rkNetStream.SendQuickSlotAddPacket((UINT)dwGlobalSlotIndex, (BYTE)dwWndType, (UINT)dwWndItemPos);
  793. 3.Aratın
  794. Kod:
  795. rkNetStream.SendQuickSlotDelPacket((BYTE)dwGlobalSlotIndex);
  796. 3.Değiştirin
  797. Kod:
  798. rkNetStream.SendQuickSlotDelPacket((UINT)dwGlobalSlotIndex);
  799. 4.Aratın
  800. Kod:
  801. void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, char IconPosition)
  802. 4.Değiştirin
  803. Kod:
  804. void CPythonPlayer::AddQuickSlot(int QuickSlotIndex, char IconType, INT IconPosition)
  805. Client/UserInterface/PythonPlayer.h Açılır ve Aratılır
  806. Kod:
  807. void AddQuickSlot(int QuickslotIndex, char IconType, char IconPosition);
  808. Değiştirin
  809. Kod:
  810. void AddQuickSlot(int QuickslotIndex, char IconType, INT IconPosition);
  811. İşlem Bitmiştir.
  812. Sorun yaşayanlar konu altında belirsinler.
  813. Ayrıca Kodlama Test Edilmiştir Sorunsuzdur. Yazım hatası ve Kod hatası var ise Lütfen konu altında bildirin Düzelteyim.