Merhaba;
Python hakkında desteğinize ihtiyacım olacaktı. Aşağıda bir örnek kod paylaşacağım bu kodlama bir karakterin Datasındaki EXP bölümünü PM yoluyla bir oyuncuya gönderiyor kodan anlaşıldığı gibi. Lakin ihtiyacımız olan aslında karakter datadaki exp değil bir Party Maching bölümü dediğim party listesi var ve o listede party numaraları yazmaktadır. Sistem kodlamada belirtilen “JobSecure” kişiye bu sefer herhangi bir kullanıcının party numarası atmamızı istiyor kişinin ismini party listesinde seçip karşısında belirtilen party numarasını mesaj yoluyla “JobSecure” adlı kulanıcıya iletmemizi istiyor.
Bunu çözmek mümkün müdür acaba yardımınızı rica ederim. Aşağıda party listesi ile alakalı 2 adet kod vereceğim işe yarar gibi görünüyor.
"
CLIENT_PARTY_MATCH_REQUEST = 0x706C
SERVER_PARTY_MATCH_RESPONSE = 0xB06C
"
"
from phBot import *
import phBotChat
import struct
import json
import os
from random import randint
from time import sleep
def handle_joymax(opcode, data):
if opcode == 0x3026: # Chat Message
# Packet index
index = 0
# Message type: All or Party or Private
if data[index] == 0x01 or data[index] == 0x02 or data[index] == 0x04:
# Parse nick of character
Character = "[JobSecure]"
if data[index] != 0x01:
index += 1
CharacterLength = struct.unpack_from('<H', data, index)[0]
index += 2
Character = struct.unpack_from('<' + str(CharacterLength) + 's', data, index)[0].decode('cp1252')
index += CharacterLength
if Character == "[JobSecure]":
# Load and search command message
MessageLength = struct.unpack_from('<H', data, index)[0]
index += 2
Message = struct.unpack_from('<' + str(MessageLength * (2 if get_encoding() == 'utf-16le' else 1)) + 's', data, index)[0].decode(get_encoding())
if "?" in Message: # soru geliyor
cevap = ""
for c in reversed(Message):
if c != "(get_character_data()[“job_current_exp”])":
cevap += c
else:
break
cevap = cevap[::-1].replace("get_character_data()[“job_current_exp”])")
#log(cevap)
qeqo = "ds:" + cevap
#log(str(phBotChat.All(qeqo)))
sleep(randint(10,100))
Packet = bytearray()
Packet.append(0x01)
Packet.append(0x00)
Packet = Packet + struct.pack('<H', len(qeqo))
Packet = Packet + qeqo.encode('ascii')
inject_joymax(0x7025, Packet, False)
return True
log('[%s] Loaded' % __name__)