Hi guys.
Help me please.
How to write autosort command in a plugin?
Hi,
I wrote a plugin for myself where I am fusing tablets. After each fused tablet I am moving the newly created stone on a slot with the same stone:
Here is the code I am using for the injection to move a stone.
I only tested it on a private server, but for me it seems like the inventory move packet is built the following way:
xx = slot in the inventory of the source item
yy = target slot
bb and aa = the amount of items in the source slot as hex value, but somehow the amount is written in a reversed way. E.g. amount of 1 = 01 00 instead of 00 01, 255 would be FF 00 instead of 00 FF, and 5000 would be 88 13 instead of 13 88
Packet:
00 xx yy bb aa
You get the slot and the amount of items in the slot from get_inventory().
I hope this will help you to write your plugin.
Maybe you can share it once you´re finished.
def inject_stone_move():
Packet = bytearray()
append_string_packet_data(Packet, "00".split())
Packet.append(sourceStoneSlot)
Packet.append(targetStoneSlot)
append_string_packet_data(Packet, "01 00".split())
inject_joymax(0x7034,Packet,False)
if(debug):
log('Plugin '+pName+': Moving stone from inventory slot '+ str(sourceStoneSlot)+' to slot ' +str(targetStoneSlot)+'.')
def append_string_packet_data(packet, data):
i = 0
while(i < len(data)):
packet.append(int(data[i]))
i += 1
Thank. It’s good.
But I do not know how to make autosort in the plugin after creating the stones.
Can anyone tell me?
Packet Structure :
00
byte
= inventory type (pet, storage, character, even transport I think)
0Dbyte
= slot (from)
06byte
= slot (to)
00 00ushort
= quantity moved (If his max. stack is 1 then doesn’t matter as this case)
Python?
import struct
Packet = struct.pack('B', 0)
Packet += struct.pack('B', slotFrom)
Packet += struct.pack('B', slotTo)
Packet += struct.pack('H', quantityMoved)
I left a lot of examples at my sources about how to read/write packet data from python.
Using strings is so VB6.
Thanks alot!
I just started learning python like 2 weeks ago. Good to know that struct is the way to go
Can I ask you how you figured out the packet structure? Is there any API documentation about it?
did it work ?