I am trying to add a met spammer to my proxy, but somehow it always dc's me from the server, and non of the packets that proxy has sent to server got recognized (mets/gears count no change)
This is what i did.
ProxyTimer:
on first itemUsage packet sent by client, i obtained a clientTimerBase, at the same time, i obtained a systemTimerBase. Whenever i need a current ClientTimer, I'll simply do a clientTimerBase+CurrentSystemTime-systemTimerBase.
Gear list: which ever gears in inventory that have static IDs that fall in range of gears, and have a location value of 0.
Met list: items with static id of met/met tear.
Algo start:
-If met count = zero, go to end.
-else Cycle through gearlist
-formulate TC upgrade packets on one met per gear basis
-send packet to server
end.
my codes for building a tc upgrade packet
What could be the problems causing this?
This is what i did.
ProxyTimer:
on first itemUsage packet sent by client, i obtained a clientTimerBase, at the same time, i obtained a systemTimerBase. Whenever i need a current ClientTimer, I'll simply do a clientTimerBase+CurrentSystemTime-systemTimerBase.
Gear list: which ever gears in inventory that have static IDs that fall in range of gears, and have a location value of 0.
Met list: items with static id of met/met tear.
Algo start:
-If met count = zero, go to end.
-else Cycle through gearlist
-formulate TC upgrade packets on one met per gear basis
-send packet to server
end.
my codes for building a tc upgrade packet
Code:
* Build a tc item upgrade packet
* @param itemid : Unique ID of packet
* @param metid : Unique ID of meteor
* @param timer : timer when upgrade is performed - timer step up (3000000) will be perform in this method.
* @return : an upgrade packet.
*/
public static byte[] ItemUpgradeInTC(int itemid, int metid, int timer){
COPacketWriter pw = new COPacketWriter();
pw.write(Utility.Int16ToBytes(0x50));
pw.write(Utility.Int16ToBytes(0x3F1));
pw.write(Utility.Int32ToBytes(itemid));
pw.write(Utility.Int32ToBytes(metid));
pw.write(Utility.Int32ToBytes(0x14)); //usage
pw.write(Utility.Int32ToBytes(timer+3000000));
pw.write(new byte[60]); //60 zeros
pw.write(clientStamp);
return pw.getBytes();
}