shepher

Fix 36B SendEQUIP

Dec 11th, 2012
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. Struct 0x36B
  2.  
  3. struct p36b // Request Refresh Itens 754
  4. {
  5.     PacketHeader Header;
  6.    
  7.     struct
  8.     {
  9.         unsigned short ItemID : 12;
  10.         unsigned short Sanc : 4;
  11.     } ItemEff[16];
  12.  
  13.     char pAnctCode[16];
  14.  
  15. };
  16.  
  17. GetItemRef
  18. short GetItemRef(st_Item item)
  19. {
  20.     int value = 0;
  21.  
  22.     if(item.Index >= 2360 && item.Index <= 2389)
  23.     {
  24.         //Montarias.
  25.         if(item.EF2 != 0)
  26.             value = (item.EF2 / 10);
  27.  
  28.         if(value > 9)
  29.             value = 9;
  30.  
  31.         return value;
  32.     }
  33.  
  34.     if(item.Index >= 2330 && item.Index <= 2359)
  35.     {
  36.         //Crias.
  37.         return 0;
  38.     }
  39.  
  40.     if(item.EF1 == 43)
  41.         value = item.EFV1;      
  42.     else if(item.EF2 == 43)
  43.         value = item.EFV2;
  44.     else if(item.EF3 == 43)
  45.         value = item.EFV3;
  46.  
  47.     if(value >= 230)
  48.     {
  49.         value = 10 + ((value - 230) / 4);
  50.         if(value > 15)
  51.             value = 15;
  52.     }
  53.     else
  54.         value %= 10;
  55.  
  56.     return value;
  57. }
  58.  
  59.  
  60. GetAnctCode->
  61. Use a da sua source ou então alguma da CheatsBrasil
  62.  
  63.  
  64. Função principal:
  65. void Fix_SendEquip(int ClientID, int ToClientID)
  66. {
  67.     p36b p;
  68.     p.Header.ClientId = ClientID;
  69.     p.Header.Size = sizeof p36b;
  70.     p.Header.PacketId = 0x36B;
  71.     st_Mob* player = (st_Mob*)GetMobFromIndex(ClientID);
  72.  
  73.     p.Header.Size = sizeof p36b;
  74.     for(BYTE i=0;i<16;i++)
  75.     {
  76.         short effValue = 0;
  77.         st_Item &item = player->Equip[i];
  78.  
  79.         if(i == 14)
  80.             if(item.Index >= 2360 && item.Index <= 2389)
  81.                 if(item.EF1 == 0 || item.EF1 > 127)
  82.                    item.Index = 0;
  83.  
  84.         effValue = GetItemRef(item);
  85.         p.ItemEff[i].Sanc = effValue;
  86.         p.ItemEff[i].ItemID = item.Index;
  87.         p.pAnctCode[i] = GetAnctCode(&item);
  88.     }
  89.     GridMulticast_2(cX(ClientID), cY(ClientID), &p, ToClientID);
  90. }
  91.  
  92. Hook:
  93. JMP_NEAR(0x004410A0, &Fix_SendEquip);
  94.  
  95.  
  96. Função GridMulticast
  97. static void (*GridMulticast_2)(int, int, void*, int) = (void (__cdecl*)(int, int, void*, int)) 0x004409C0;
Advertisement
Add Comment
Please, Sign In to add comment