from phBot import *
import threading
import phBotChat
import struct
import time
import QtBind
import json
import os
pName = 'TR_AcademyHelper'
pVersion = '3.0'
gui = QtBind.init(__name__,pName)
lblCizgi1 = QtBind.createList(gui,10,10,200,250)
lblProfil = QtBind.createLabel(gui,'Yapılandırma Adı:', 19, 225)
tbxProfil = QtBind.createLineEdit(gui,"", 104, 223, 90, 19)
lblNot = QtBind.createLabel(gui,'Not: Yapılandırma Adını Boş Bırakarak
Kaydet Yapınız. Yeniden Yükleme
Sırasında Ayarlarınız Yüklenecektir.', 19, 175)
btnSaveConfig = QtBind.createButton(gui,'btnSaveConfig_clicked'," Kaydet ", 25, 140)
btnLoadConfig = QtBind.createButton(gui,'btnLoadConfig_clicked'," Geri Yükle ", 115, 140)
lblPTMaster = QtBind.createLabel(gui,'Parti Lideri:', 25, 20)
tbxPTMaster = QtBind.createLineEdit(gui,"", 96, 18, 95, 19)
lblAMaster = QtBind.createLabel(gui,'Akademi Lideri:', 22, 50)
tbxAMaster = QtBind.createLineEdit(gui,"", 96, 48, 95, 19)
lblSoru = QtBind.createLabel(gui,'Sorunuz:', 25, 80)
tbxSoru = QtBind.createLineEdit(gui,"", 96, 78, 95, 19)
lblCevap = QtBind.createLabel(gui,'Cevabınız:', 25, 110)
tbxCevap = QtBind.createLineEdit(gui,"", 96, 108, 95, 19)
lblCizgi2 = QtBind.createList(gui, 211, 10, 200, 250)
lblBuff = QtBind.createLabel(gui,'↓ Otomatik Akademi Bufflama ↓', 231, 20)
btnBuff = QtBind.createButton(gui,'buffNow', ' Şimdi Buffla ', 266, 50)
lblSüre = QtBind.createLabel(gui,' Dakika Sonra Başlat', 256, 90)
txtMinutes = QtBind.createLineEdit(gui,"63", 244, 89, 25, 20)
btnSüreB = QtBind.createButton(gui,'buffTimer', ' Süreyi Başlat ', 266, 125)
btnSüreS = QtBind.createButton(gui,'stopTimer', ' Süreyi Durdur ', 266, 165)
lblTimeLeft = QtBind.createLabel(gui,'Kalan Süre: 00:00', 266, 200)
def getPath():
return get_config_dir()+pName+"\\"
def getConfig(name):
if not name:
name = pName;
return getPath()+name+".json"
def loadDefaultConfig():
# DATAYI TEMİZLE
QtBind.setText(gui,tbxProfil,"")
QtBind.setText(gui,tbxPTMaster,"")
QtBind.setText(gui,tbxAMaster,"")
QtBind.setText(gui,tbxSoru,"")
QtBind.setText(gui,tbxCevap,"")
def loadConfigs(fileName=""):
loadDefaultConfig()
if os.path.exists(getConfig(fileName)):
data = {}
with open(getConfig(fileName),"r") as f:
data = json.load(f)
QtBind.setText(gui,tbxProfil,fileName)
if "PTMASTER" in data:
QtBind.setText(gui,tbxPTMaster,data["PTMASTER"])
if "AMASTER" in data:
QtBind.setText(gui,tbxAMaster,data["AMASTER"])
if "SORU" in data:
QtBind.setText(gui,tbxSoru,data["SORU"])
if "CEVAP" in data:
QtBind.setText(gui,tbxCevap,data["CEVAP"])
return True
return False
def saveConfigs(fileName=""):
data = {}
data["PTMASTER"] = QtBind.text(gui,tbxPTMaster)
data["AMASTER"] = QtBind.text(gui,tbxAMaster)
data["SORU"] = QtBind.text(gui,tbxSoru)
data["CEVAP"] = QtBind.text(gui,tbxCevap)
with open(getConfig(fileName),"w") as f:
f.write(json.dumps(data,indent=4,sort_keys=True))
def btnSaveConfig_clicked():
strConfigName = QtBind.text(gui,tbxProfil)
saveConfigs(strConfigName)
if strConfigName:
log('Eklenti: ['+strConfigName+'] Yapılandırma Adıyla Kaydedildi.')
else:
log("Eklenti: Kayıt Oluşturuldu.")
def btnLoadConfig_clicked():
strConfigName = QtBind.text(gui,tbxProfil)
if loadConfigs(strConfigName):
if strConfigName:
log("Eklenti: ["+strConfigName+"] Yapılandırması Yüklendi.")
else:
log("Eklenti: Yükleme Başarılı.")
elif strConfigName:
log("Eklenti: ["+strConfigName+"] Yapılandırma Bulunamadı.")
questionPartyTime = None
questionPartyCharName = ""
questionPartyRID = 0
questionPartyJID = 0
questionAcademyTime = None
questionAcademyCharName = ""
questionAcademyRID = 0
questionAcademyJID = 0
iCounter = 0
iCounter2 = 0
tmr = threading.Timer
tmr2 = threading.Timer
# ______________________________ METHODLAR ______________________________ #
# PAKET ENJEKSIYON
def Inject_PartyMatchJoinResponse(requestID,joinID,response):
p = struct.pack('I', requestID)
p += struct.pack('I', joinID)
p += struct.pack('B',1 if response else 0)
inject_joymax(0x308D,p,False)
# PAKET ENJEKSIYON
def Inject_AcademyMatchJoinResponse(requestID,joinID,response):
p = struct.pack('I', requestID)
p += struct.pack('I', joinID)
p += struct.pack('B',1 if response else 0)
inject_joymax(0x347F,p,False)
# ______________________________ ETKINLIKLER ______________________________ #
def handle_joymax(opcode,data):
# PT KATILIM GONDERDIGINDE
if opcode == 0x706D and QtBind.text(gui,tbxCevap):
try:
# ISTEKLER YERINE GETIRILDIGINDE DATAYI KAYDET
global questionPartyTime,questionPartyRID,questionPartyJID,questionPartyCharName
questionPartyTime = time.time()
index=0
questionPartyRID = struct.unpack_from('