xAwaken

why i can’t find the plugin anywhere?
and this guy used it but he didn’t upload it

there name is PureSro
Please answer

I dont know who wrote this and I have never used it but I do somehow have it.

xAwakens.py (6.3 KB)

thx bro very Much

hello bro u have the old version pluggin awakens?

Any one have plugins awakens pm me ples
But not this i have it and i got crach

its works with me … i just changed the exchange_start function number inside it.
it was 246 i changed it to 214 (( why ? ))

because i used xPacketTool to get the data my data was

[11:27:39] Client: (Opcode) 0x7118 (Data) D6 01 00 00 31 0F 00 00 3A

i converted D6 in hex to Decimial which is 214

and seems worked fine with me … i am not sure tho if it will work fine with everyone

It’s basicly auto magic pop use plugin, better version of it could be more usefull. @JellyBitz

Fixed it so it should never break again. The NPC ID changed and whoever wrote this plugin just hard coded the ID, it now uses the API to grab the ID.
xAwakens.py (6.3 KB)

Would it be possible to change this to general MagicPop? I tried changing some things but it did not really work, my game crashes (vsro 1.188).

I already made changes to GetNPCID to get the ID of the magic pop machine:

def GetNPCID():
npcs = get_npcs()
for key, npc in npcs.items():
	if npc['name'].startswith('Magic POP'):
		return key

And if i change the packet part

    packet += struct.pack('B',49)
    packet += struct.pack('B',15)

to something else

    packet += struct.pack('B',99)
    packet += struct.pack('B',2)

My client crashes (bot log states exchanges, though).
I chose 99,02 because thats what the sniffer output for playing magic pop was on my server (inject,0x7118,False,99,02,99,0E,00,00,0D). Example is EU ring B rare.

Would it be possible at all?

Thanks for your time! :slight_smile:

1 Like

If its the same packet structure it should work but im not sure if it is or not as the NPC is something custom PureSRO added.

Looks to me like the packet structure is different in your server. This is the raw bytes from Pure as an example. 0x7118,F9,01,00,00,34,0F,00,00,0E

Are you sure this is correct? looks werid… Pick a different option other then the ring and give me it.

1 Like

Moon cleric rod.
inject,0x7118,False,99,02,00,00,69,08,00,00,0E
Moon CH Shield
inject,0x7118,False,99,02,00,00,D1,00,00,00,0E

I tried doing it this way:

    def exchange_start(slot):
    packet = struct.pack('B',99) 
    packet += struct.pack('B',2)   
    packet += struct.pack('B',0)
    packet += struct.pack('B',0)
    packet += struct.pack('B',99)
    packet += struct.pack('B',E)
    packet += struct.pack('B',0)
    packet += struct.pack('B',0)
    packet += struct.pack('B',slot)
    log('Plugin: Using awaken slot: "'+str(slot)+'"')
    #Timer.Stop()
    a=inject_joymax( 0x7118,packet,False)

But to no avail… nothing happens at all.

Thanks again for your time :smiley:

You have to convert the byte to a decimal number if you are going to do it like that.

Here i made it easier so you only have to replace the two numbers with directly what you get from xpackettool

def exchange_start(slot):
        packet = struct.pack('<I',GetNPCID())       
        packet += b'\x69\x08' #replace this to change item
        packet += struct.pack('B',0)
        packet += struct.pack('B',0)
        packet += struct.pack('B',slot)
        log('Plugin: Using awaken slot: "'+str(slot)+'"')
        #Timer.Stop()
        a=inject_joymax( 0x7118,packet,False)

I think that should work, I dont know who made this plugin originally but this function is set up weird.

Your code brought me a bit farther, however it still does not work.
It seems to trade them in, but It does not.
It sends me clientless, and the POP cards are still in my inventory as if nothin had happened.
I tried your code:
packet += b'\x69\x08' #replace this to change item
and I also tried this:
packet += b'\x99\x0E' #replace this to change item

Both lead to the following:

[22:08:24] Plugin: starting exchange awakens
[22:08:24] Plugin: Using awaken slot: "13"
[22:08:25] Plugin: Using awaken slot: "14"
[22:08:25] Switching to clientless mode
[22:08:25] Plugin: Using awaken slot: "15"
[22:08:26] Plugin: Using awaken slot: "16"
[22:08:26] Plugin: Using awaken slot: "17"

Is the NPCID function correct, though?

def GetNPCID():
	npcs = get_npcs()
	for key, npc in npcs.items():
		if npc['name'].startswith('Magic POP'):
			return key

Maybe it doesn’t work somehow…? IDK :frowning:

As long as the NPC starts with that it should be fine. It could also be something else in the plugin, like i said this was built specifically for Pure. Perhaps something with the exchange item name.

I see… well, I’m not that versed in programming, I can only guess bits and pieces.

The only thing I was able to change is the magic pop card that I want to be used, which worked, it reads the slots for it fine.
I don’t know where the script sets the “wanted” magic pop item, but I think that was the 99,0E (eu moon ring) packet thing anyways.

The NPC ID thing is the only thing I can think that doesn’t really work.

I will attach the edited plugin. Would be great if someone can check it over again. (change .txt to .py)
xAwakens.txt (6.2 KB)

You can check the packet that is build by adding this to the function i sent above. Itll put it into xpackettool format, see if its correct or not.

log(str(' '.join('{:02X}'.format(x) for x in packet)))

It did indeed give me another log.

[23:22:05] Plugin: starting exchange awakens
[23:22:06] Plugin: Using awaken slot: "13"
[23:22:06] 3C 01 00 00 99 0E 00 00 0D
[23:22:06] Plugin: Using awaken slot: "14"
[23:22:06] 3C 01 00 00 99 0E 00 00 0E
[23:22:07] Switching to clientless mode
[23:22:07] Plugin: Using awaken slot: "15"
[23:22:07] 3C 01 00 00 99 0E 00 00 0F
[23:22:07] Plugin: Using awaken slot: "16"
[23:22:07] 3C 01 00 00 99 0E 00 00 10
[23:22:08] Plugin: Using awaken slot: "17"
[23:22:08] 3C 01 00 00 99 0E 00 00 11

00,00,99,0E,00,00,0D for example is correct, the NPC ID seems to change every login, i guess thats why that function is there to get the ID.
IDK why I am getting a clientless. Using a script works fine, but is a bit of a hassle… the plugin was kinda exactly what I was looking for :frowning:

hello there , did u mange to make it work dude ? i really need that script ty