- 6 Eki 2009
- 199
- 0
Silkroad pvp Server de phbot kullanıyorum. Sorun şu ki botla Kervan çekmeye çalışıyorum bot kervanı ilk aldığında sana 4 işlem ile soru soruyor 2+3=? Veya7-2=? Gibi ama botta bu soru ya cevap verecek ayar vs yok ya elle girmen gerek yada bota Bi şekilde yaptırmam lazım güncelleme ile phyton ile phbot a eklenti ekleyebiliyorsun. Forum da şu kod verilmişti. Bu nasıl phbot a entegre edebilirim
from phBot import *
import phBotChat
import re
import struct
from time import sleep
def handle_chat(data):
if data[0] == 7:
msg_len = struct.unpack_from('H', data, 1)[0]
msg = struct.unpack_from(str(msg_len) + 's', data, 1 + 2)[0].decode('latin1')
m = re.findall(r'(\d+)', msg)
if m and len(m) >= 2:
if msg.find('+') != -1:
result = int(m[0]) + int(m[1])
else:
result = int(m[0]) * int(m[1])
sleep(1.0)
log('Sending result %s' % str(result))
if msg.find('/answer') != -1:
phBotChat.All('/answer ' + str(result))
else:
phBotChat.All(str(result))
elif data[0] == 2:
name_len = struct.unpack_from('H', data, 1)[0]
name = struct.unpack_from(str(name_len) + 's', data, 1 + 2)[0].decode('latin1')
if name == 'RemoLogger' or name == 'Bot':
msg_len = struct.unpack_from('H', data, 1 + 2 + name_len)[0]
msg = struct.unpack_from(str(msg_len) + 's', data, 1 + 2 + name_len + 2)[0].decode('latin1')
m = re.findall(r'(\d+)', msg)
if m and len(m) >= 2:
if msg.find('+') != -1:
result = int(m[0]) + int(m[1])
else:
result = int(m[0]) * int(m[1])
sleep(1.0)
log('Sending result %s' % str(result))
phBotChat.Private(name, str(result))
def handle_joymax(opcode, data):
if opcode == 0x3026 and get_locale() == 22:
handle_chat(data)
return True
log('[%s] Loaded' % __name__)
Kod u açıklayabilirmisiniz tam olarak birde Kodda düzeltilmesi gereken yerler varmı¿
2.sorum bunu c# yapabilirmiyiz oyunda ki o dört işlem verisini nasıl çekebilirim.
from phBot import *
import phBotChat
import re
import struct
from time import sleep
def handle_chat(data):
if data[0] == 7:
msg_len = struct.unpack_from('H', data, 1)[0]
msg = struct.unpack_from(str(msg_len) + 's', data, 1 + 2)[0].decode('latin1')
m = re.findall(r'(\d+)', msg)
if m and len(m) >= 2:
if msg.find('+') != -1:
result = int(m[0]) + int(m[1])
else:
result = int(m[0]) * int(m[1])
sleep(1.0)
log('Sending result %s' % str(result))
if msg.find('/answer') != -1:
phBotChat.All('/answer ' + str(result))
else:
phBotChat.All(str(result))
elif data[0] == 2:
name_len = struct.unpack_from('H', data, 1)[0]
name = struct.unpack_from(str(name_len) + 's', data, 1 + 2)[0].decode('latin1')
if name == 'RemoLogger' or name == 'Bot':
msg_len = struct.unpack_from('H', data, 1 + 2 + name_len)[0]
msg = struct.unpack_from(str(msg_len) + 's', data, 1 + 2 + name_len + 2)[0].decode('latin1')
m = re.findall(r'(\d+)', msg)
if m and len(m) >= 2:
if msg.find('+') != -1:
result = int(m[0]) + int(m[1])
else:
result = int(m[0]) * int(m[1])
sleep(1.0)
log('Sending result %s' % str(result))
phBotChat.Private(name, str(result))
def handle_joymax(opcode, data):
if opcode == 0x3026 and get_locale() == 22:
handle_chat(data)
return True
log('[%s] Loaded' % __name__)
Kod u açıklayabilirmisiniz tam olarak birde Kodda düzeltilmesi gereken yerler varmı¿
2.sorum bunu c# yapabilirmiyiz oyunda ki o dört işlem verisini nasıl çekebilirim.