Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1.  
  2.  
  3. void CClientManager::ProcessPackets(CPeer * peer)
  4. {
  5. BYTE header;
  6. DWORD dwHandle;
  7. DWORD dwLength;
  8. const char * data = NULL;
  9. int i = 0;
  10. int iCount = 0;
  11.  
  12. while (peer->PeekPacket(i, header, dwHandle, dwLength, &data))
  13. {
  14. [..]
  15. #ifdef OFFLINE_SHOP
  16. case HEADER_GD_SHOP_NAME:
  17. ShopName(peer, (TPacketShopName *)data);
  18. break;
  19. case HEADER_GD_SHOP_CLOSE:
  20. ShopClose(peer, (TPacketShopClose *)data);
  21. break;
  22. case HEADER_GD_SHOP_UPDATE_ITEM:
  23. ShopUpdateItem(peer, (TPacketShopUpdateItem *)data);
  24. break;
  25. #endif
  26. [..]
  27. default:
  28. sys_err("Unknown header (header: %d handle: %d length: %d)", header, dwHandle, dwLength);
  29. break;
  30. }
  31. }
  32.  
  33. peer->RecvEnd(i);
  34. }
  35.  
  36. [..]
  37.  
  38. #ifdef OFFLINE_SHOP
  39. void CClientManager::ShopName(CPeer * peer, TPacketShopName * p)
  40. {
  41. for (TPeerList::iterator i = m_peerList.begin(); i != m_peerList.end(); ++i)
  42. {
  43. CPeer * tmp = *i;
  44.  
  45. if (tmp == peer)
  46. continue;
  47. if (0 == tmp->GetChannel())
  48. continue;
  49. TPacketShopName packet;
  50. packet.shop_id = p->shop_id;
  51. strlcpy(packet.szSign, p->szSign, sizeof(packet.szSign) - 1);
  52. tmp->EncodeHeader(HEADER_DG_SHOP_NAME, 0, sizeof(packet));
  53. tmp->Encode(&packet, sizeof(packet));
  54. }
  55. }
  56.  
  57. void CClientManager::ShopClose(CPeer * peer, TPacketShopClose *p)
  58. {
  59. for (TPeerList::iterator i = m_peerList.begin(); i != m_peerList.end(); ++i)
  60. {
  61. CPeer * tmp = *i;
  62.  
  63. if (tmp == peer)
  64. continue;
  65.  
  66. if (0 == tmp->GetChannel())
  67. continue;
  68.  
  69. TPacketShopClose packet;
  70. packet.shop_id = p->shop_id;
  71. packet.pid = p->pid;
  72. tmp->EncodeHeader(HEADER_DG_SHOP_CLOSE, 0, sizeof(packet));
  73. tmp->Encode(&packet, sizeof(packet));
  74. }
  75. }
  76. void CClientManager::ShopUpdateItem(CPeer * peer, TPacketShopUpdateItem *p)
  77. {
  78. for (TPeerList::iterator i = m_peerList.begin(); i != m_peerList.end(); ++i)
  79. {
  80. CPeer * tmp = *i;
  81.  
  82. if (tmp == peer)
  83. continue;
  84.  
  85. if (0 == tmp->GetChannel())
  86. continue;
  87. TPacketShopUpdateItem packet;
  88. packet.shop_id = p->shop_id;
  89. packet.shop_locked = p->shop_locked;
  90. tmp->EncodeHeader(HEADER_DG_SHOP_UPDATE_ITEM, 0, sizeof(packet));
  91. tmp->Encode(&packet, sizeof(packet));
  92. }
  93. }
  94. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement