# Skills yeoha_skill_1 = b'\x01\x04\x0F\x87\x00\x00\x01' yeoha_skill_2 = b'\x01\x04\x0E\x87\x00\x00\x01' yeoha_skill_3 = b'\x01\x04\x11\x87\x00\x00\x01' yeoha_skill_4 = b'\x01\x04\x10\x87\x00\x00\x01' shaman_skill_1 = b'\x01\x04\x12\x87\x00\x00\x01' shaman_skill_2 = b'\x01\x04\x13\x87\x00\x00\x01' shaman_skill_3 = b'\x01\x04\x1A\x87\x00\x00\x01' shaman_skill_4 = b'\x01\x04\x1B\x87\x00\x00\x01' # GUI gui = QtBind.init(__name__,'Auto BOI') Btn_BOI_solo = QtBind.createButton(gui,'startSoloBOI'," Start BOI Solo ", 150, 50) Btn_BOI_pt_master = QtBind.createButton(gui,'startPtBOI_Master'," Start BOI Party (Master) ",350, 50) Btn_BOI_pt_member = QtBind.createButton(gui,'startPtBOI_Member'," Start BOI Party (Member) ", 350,80) Btn_stop = QtBind.createButton(gui,'setStopFlag'," Stop ", 250, 120) CBox_hide_log = QtBind.createCheckBox(gui, 'hide_log','Hide Log', 10, 10) CBox_hide_attack_log = QtBind.createCheckBox(gui, 'hide_attack_log','Hide Attack Log', 10, 30) ''' Btn_debug = QtBind.createButton(gui,'f_debug'," Debug ", 650,10) ''' # Dataclass for different BOI versions @dataclass class boi_dataclass: # NPC information arena_manager_packet: bytes arena_manager_id: int
inGame = None followActivated = False followPlayer = '' followDistance = 0 # Graphic user interface gui = QtBind.init(__name__,pName) QtBind.createLabel(gui,'Control your party using in-game chat. Leader writes commands and your character will follow it.',11,11) QtBind.createLabel(gui,'< COMMAND (uppercased) #Variable (required) #Variable? (optional) >',11,30) QtBind.createLabel(gui,'- START : Start bot\n- STOP : Stop bot\n- TRACE #Player? : Start trace to leader or another player\n- NOTRACE : Stop trace\n- RETURN : Use some "Return Scroll" from your inventory\n- TP #A #B : Use teleport from location A to B\n- RECALL #Town : Set recall on city portal\n- ZERK : Use berserker mode if is available\n- GETOUT : Left party\n- MOVEON #Radius? : Set a random movement\n- MOUNT #PetType? : Mount horse by default\n- DISMOUNT #PetType? : Dismount horse by default\n- SETPOS #PosX? #PosY? #Region? #PosZ? : Set training position\n- SETRADIUS #Radius? : Set training radius\n- SETSCRIPT #Path? : Change script path for training area\n- SETAREA #Name : Changes training area by config name\n- PROFILE #Name? : Loads a profile by his name\n- DC : Disconnect from game',15,45) QtBind.createLabel(gui,'- INJECT #Opcode #Encrypted? #Data? : Inject packet\n- CHAT #Type #Message : Send any message type\n- FOLLOW #Player? #Distance? : Trace a party player using distance\n- NOFOLLOW : Stop following\n- JUMP : Generate knockback visual effect\n- SIT : Sit or Stand up, depends\n- CAPE #Type? : Use PVP Cape\n- EQUIP #ItemName : Equips an item from inventory\n- UNEQUIP #ItemName : Unequips item from character\n- REVERSE #Type #Name?\n- GETPOS : Gets current position\n- USE #ItemName : Use item from inventory',345,80) tbxLeaders = QtBind.createLineEdit(gui,"",525,11,110,20) lstLeaders = QtBind.createList(gui,525,32,110,38) btnAddLeader = QtBind.createButton(gui,'btnAddLeader_clicked'," Add ",635,10) btnRemLeader = QtBind.createButton(gui,'btnRemLeader_clicked'," Remove ",635,32) # ______________________________ Methods ______________________________ # # Return xControl folder path def getPath(): return get_config_dir()+pName+"\\" # Return character configs path (JSON) def getConfig(): return getPath()+inGame['server'] + "_" + inGame['name'] + ".json" # Check if character is ingame def isJoined(): global inGame
####################################################################### # if folder and files doesn't exists path = os.getcwd() if not os.path.exists(path+"/Plugins/"+server+"_"+qafolder+"/"): os.makedirs(path+"/Plugins/"+server+"_"+qafolder+"/") open("Plugins/"+server+"_"+qafolder+"/"+qafile, 'a+').close() # clear qacache file open("Plugins/"+server+"_"+qafolder+"/"+qacache, 'w').close() # GUI gui = QtBind.init(__name__, pName) QtBind.createLabel(gui, 'triviaBot is automatically answers trivia event questions and automatically adds new questions.', 10, 10) QtBind.createLabel(gui, 'Questions List', 11, 38) QtBind.createButton(gui, 'gui_qlist', ' Refresh List ', 448, 35) QtBind.createButton(gui, 'gui_answer', ' Selected Question\'s Answer ', 534, 35) QtBind.createLabel(gui, 'Added Questions:', 587, 255) qlist = QtBind.createList(gui, 10, 55, 680, 190) qnumber = QtBind.createLabel(gui, '0', 680, 255) qanswer = QtBind.createLabel(gui, 'Answer: ', 11, 255) # its need to avoid conflict def joined_game(): global qacache qacache = get_character_data()['name']+"_cache.txt" open("Plugins/"+server+"_"+qafolder+"/"+qacache, 'w').close() return False def gui_qlist(): a = 0
import os from threading import Timer import urllib.request pName = 'xKervanKey' pVersion = '0.1.0' # SET YOUR CUSTOM "xkervankey.txt" PATH HERE. # xkervankey_path = r"C:\Users\MyUser\Downloads\phBot\Plugins\xkervankey.txt" # EXAMPLE xkervankey_path = "" # Initializing GUI gui = QtBind.init(__name__, pName) lblKey = QtBind.createLabel(gui, "KervanKey:", 21, 11) tbxKey = QtBind.createLineEdit(gui, "", 130, 12, 150, 18) btnKey = QtBind.createButton(gui, "btnKey_clicked", "Save", 300, 11) # Return kervankey file path def getKervanKeyPath(): if xkervankey_path: return xkervankey_path return os.path.dirname(os.path.realpath(__file__)) + "\\xkervankey.txt" # Save the kervankey from phBot GUI to update all bots def btnKey_clicked(): key = QtBind.text(gui, tbxKey) if key: with open(getKervanKeyPath(), "w") as f: f.write(key.strip())
lblDescription = QtBind.createLabel( gui, "xTrivia can automatically save all the questions with the answers if you supply the correct pattern (regex).\nIt is working with Notice chat only and sending the question to General chat by default.", 6, 10) lblQuestionPattern = QtBind.createLabel(gui, "Question Pattern :", 6, 45) tbxQuestionPattern = QtBind.createLineEdit(gui, "", 98, 43, 350, 19) lblAnswerPattern = QtBind.createLabel(gui, "Answer Pattern :", 6, 65) tbxAnswerPattern = QtBind.createLineEdit(gui, "", 90, 63, 358, 19) lblReplyTo = QtBind.createLabel(gui, "Reply To :", 480, 55) tbxReplyTo = QtBind.createLineEdit(gui, "", 530, 53, 80, 19) btnSaveConfig = QtBind.createButton(gui, 'saveConfigs', " Save ", 645, 4) lblQuestion = QtBind.createLabel(gui, "Question :", 6, 105) tbxQuestion = QtBind.createLineEdit(gui, "", 59, 103, 180, 19) lblAnswer = QtBind.createLabel(gui, "Answer :", 59 + 180 + 6, 105) tbxAnswer = QtBind.createLineEdit(gui, "", 59 + 180 + 6 + 48, 103, 90, 19) btnAddTrivia = QtBind.createButton(gui, 'btnAddTrivia_clicked', " Add ", 59 + 180 + 6 + 48 + 90 + 6, 105 - 4) btnRemTrivia = QtBind.createButton(gui, 'btnRemTrivia_clicked', " Remove ", 720 - 75 - 6, 105 - 4) lstTriviaData = QtBind.createList(gui, 6, 125, 720 - 12, 18 * 8 - 3) # ______________________________ Methods ______________________________ #
from phBot import * import QtBind import urllib.request import re import os pName = 'xPluginUpdater' pVersion = '0.1.0' pUrl = 'https://raw.githubusercontent.com/JellyBitz/phBot-xPlugins/master/xPluginUpdater.py' # Initializing GUI gui = QtBind.init(__name__, pName) lblPlugins = QtBind.createLabel(gui, "Plugins found from your folder", 21, 11) lstPlugins = QtBind.createList(gui, 21, 30, 700, 200) btnCheck = QtBind.createButton(gui, 'btnCheck_clicked', " Check Updates ", 350, 8) btnUpdate = QtBind.createButton(gui, 'btnUpdate_clicked', " Update Plugin (Selected) ", 450, 8) # List and check all plugins from the same plugin folder def btnCheck_clicked(): # List all files around files = os.listdir() for filename in files: # Check only python files if (re.search("[.]py", filename)): with open(filename, "r") as f: pyCode = str(f.read()) # Read file and check his version if re.search("\npVersion = [0-9.'\"]*", pyCode):
bot_path = os.getcwd() character_data = None AVATAR_TEST_UID_MAX = 0xFFFFFFFE avatarTestingUID = 0 isSearching = False # Graphic user interface gui = QtBind.init(__name__, pName) # Search _y = 12 _x = 6 QtBind.createLabel(gui, "Item name :", _x, _y) tbxSearchItem = QtBind.createLineEdit(gui, "", _x + 63, _y - 3, 568, 20) btnSearchItem = QtBind.createButton(gui, 'btnSearchItem_clicked', " Search ", _x + 63 + 568 + 3, _y - 5) _y += 22 lvwItems = QtBind.createList(gui, _x, _y, 720 - 12, 106) lvwItemsData = [] _y += 106 btnAddItem = QtBind.createButton(gui, 'btnAddItem_clicked', " Add ", _x, _y + 3) # Builder _x += 90 _y += 10 QtBind.createLabel(gui, "* Hat", _x, _y) QtBind.createLabel(gui, "* Dress", _x + 152 + 3, _y) QtBind.createLabel(gui, "* Accesory", _x + 152 + 3 + 152 + 3, _y) QtBind.createLabel(gui, "* Flag", _x + 152 + 3 + 152 + 3 + 152 + 3, _y)
# Custom Nickname will be random if you leave it empty # Custom Race will be as default CH SEQUENCE_DEFAULT_NUMBER = 100 # Globals isCreatingCharacter = False CreatingNickname = "" # Initializing GUI gui = QtBind.init(__name__, pName) cbxEnabled = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Enabled', 6, 10) lblProfileName = QtBind.createLabel(gui, "Config profile name :", 345, 10) tbxProfileName = QtBind.createLineEdit(gui, "", 450, 7, 110, 19) btnSaveConfig = QtBind.createButton(gui, 'btnSaveConfig_clicked', " Save ", 580, 7) btnLoadConfig = QtBind.createButton(gui, 'btnLoadConfig_clicked', " Load ", 630, 7) lblNickname = QtBind.createLabel(gui, "Custom Nickname :", 6, 35) tbxNickname = QtBind.createLineEdit(gui, "", 100, 32, 102, 19) lblSequence = QtBind.createLabel(gui, "Number sequence :", 6, 55) tbxSequence = QtBind.createLineEdit(gui, "", 102, 52, 100, 19) lblRace = QtBind.createLabel(gui, "Custom Race :", 6, 75) cmbxRace = QtBind.createCombobox(gui, 79, 72, 123, 19) QtBind.append(gui, cmbxRace, "CH") QtBind.append(gui, cmbxRace, "EU") lblFullCharacters = QtBind.createLabel(
import os pVersion = '0.3.3' pName = 'xAutoDungeon' pUrl = 'https://raw.githubusercontent.com/JellyBitz/phBot-xPlugins/master/xAutoDungeon.py' # Initializing GUI gui = QtBind.init(__name__, pName) lblMobs = QtBind.createLabel( gui, '# Add monster names to avoid #\n# from Monster counter #', 511, 11) tbxMobs = QtBind.createLineEdit(gui, "", 511, 43, 100, 20) lstMobs = QtBind.createList(gui, 511, 64, 176, 198) btnAddMob = QtBind.createButton(gui, 'btnAddMob_clicked', " Add ", 612, 42) btnRemMob = QtBind.createButton(gui, 'btnRemMob_clicked', " Remove ", 560, 261) lblPreferences = QtBind.createLabel( gui, "Monster counter preferences (Orderer by priority) :", 21, 11) lstAvoid = [] lstOnly = [] lblUnique = QtBind.createLabel(gui, 'Unique', 21, 30) cbxAvoidUnique = QtBind.createCheckBox(gui, 'cbxAvoidUnique_clicked', 'Avoid', 80, 30) cbxOnlyUnique = QtBind.createCheckBox(gui, 'cbxOnlyUnique_clicked', 'Only', 150, 30)
SERVER_GAME_PETITION_REQUEST = 0x3080 SERVER_EXCHANGE_PLAYER_CONFIRMED = 0x3086 CLIENT_EXCHANGE_CONFIRM_REQUEST = 0x7082 SERVER_EXCHANGE_CONFIRM_RESPONSE = 0xB082 CLIENT_EXCHANGE_APPROVE_REQUEST = 0x7083 # Initializing GUI gui = QtBind.init(__name__, pName) _x = 6 _y = 9 QtBind.createLabel(gui, '* Exchangers list (Party required)', _x, _y) _y += 20 tbxExchangerName = QtBind.createLineEdit(gui, "", _x, _y, 100, 20) QtBind.createButton(gui, 'btnAddExchanger_clicked', " Add ", _x + 101, _y - 2) _y += 20 lvwExchangers = QtBind.createList(gui, _x, _y, 176, 60) _y += 60 QtBind.createButton(gui, 'btnRemExchanger_clicked', " Remove ", _x + 49, _y - 2) _y += 20 + 10 cbxReplyAccept = QtBind.createCheckBox(gui, 'checkbox_changed', 'Auto accept reply', _x, _y) _y += 20 cbxReplyApprove = QtBind.createCheckBox(gui, 'checkbox_changed', 'Auto approve reply', _x, _y) _x += 185 _y = 9
lSilverC = QtBind.createLabel(gui, 'Silver Coin', 565, 235) lCopperC = QtBind.createLabel(gui, 'Copper Coin', 565, 251) lIronC = QtBind.createLabel(gui, 'Iron Coin', 565, 268) qgold = QtBind.createLabel(gui, '0', 684, 220) qsilver = QtBind.createLabel(gui, '0', 684, 235) qcopper = QtBind.createLabel(gui, '0', 684, 251) qiron = QtBind.createLabel(gui, '0', 684, 268) lLIST = QtBind.createList(gui, 150, 40, 1, 207) lLIST2 = QtBind.createList(gui, 303, 40, 1, 220) lLIST3 = QtBind.createList(gui, 455, 40, 1, 240) lLIST4 = QtBind.createList(gui, 540, 135, 1, 155) lLIST5 = QtBind.createList(gui, 720, 135, 1, 155) lBUTTONBG = QtBind.createList(gui, 540, 15, 180, 88) lNEREYAZI = QtBind.createLabel(gui, 'Where do you want to look?', 565, 8) btnStorage = QtBind.createButton(gui, 'btnStorage_clicked', " Look at Storage ", 584, 52) btnGuildStorage = QtBind.createButton(gui, 'btnGuildStorage_clicked', " Look at Guild Storage ", 572, 75) btnInventory = QtBind.createButton(gui, 'btnInventory_clicked', " Look at Inventory ", 579, 29) leDegree = QtBind.createLineEdit(gui, "11", 470, 150, 19, 19) lDegree = QtBind.createLabel(gui, 'Degree', 494, 153) def btnStorage_clicked(): countIn = 'Storage' countItems(countIn) def btnGuildStorage_clicked(): countIn = 'GuildStorage'
from phBot import * import phBotChat from time import sleep import re from pathlib import Path import urllib.request import struct from threading import Timer import os import QtBind gui = QtBind.init(__name__, 'Super DC') button1 = QtBind.createButton(gui, 'dc_traders', 'DC ALL TRADERS', 100, 120) def dc_traders(): phBotChat.Private('chapito01', '.') phBotChat.Private('chapito02', '.') phBotChat.Private('chapito03', '.') phBotChat.Private('chapito04', '.') players = [ 'chapito01', 'chapito02', 'chapito03', 'chapito04', 'xTai', 'Xiomi', 'Tiranicuz', 'Sheon', 'Nelliel1123' ] hunters = [ 'chapito01', 'chapito02', 'chapito03', 'chapito04', 'Nelliel1123', 'BLACKandBLUE', '_Sophiia_', 'Mysophiia', 'chapito02' ]
gui_stop_processing_position_x = gui_window_padding_x + 0 gui_stop_processing_position_y = gui_window_padding_y + 0 gui_sort_items_position_x = gui_window_padding_x + 150 gui_sort_items_position_y = gui_window_padding_y + 0 gui_store_take_gold_position_x = gui_window_padding_x + 300 gui_store_take_gold_position_y = gui_window_padding_y + 0 gui_debug_position_x = gui_window_padding_x + 0 gui_debug_position_y = gui_window_padding_y + 80 # --- QtBind.createLabel(gui, 'stop current process:', gui_stop_processing_position_x, gui_stop_processing_position_y) QtBind.createButton(gui, 'stop_processing', 'stop', gui_stop_processing_position_x + 15, gui_stop_processing_position_y + 20) QtBind.createLabel(gui, 'sort items:', gui_sort_items_position_x, gui_sort_items_position_y) QtBind.createButton(gui, 'sort_items_inventory', 'inventory', gui_sort_items_position_x + 15, gui_sort_items_position_y + 20) QtBind.createButton(gui, 'sort_items_storage', 'storage', gui_sort_items_position_x + 15, gui_sort_items_position_y + 20 + 30) QtBind.createButton(gui, 'sort_items_guild_storage', 'guild-storage', gui_sort_items_position_x + 15, gui_sort_items_position_y + 20 + 60) QtBind.createLabel(gui, 'store/take gold:', gui_store_take_gold_position_x, gui_store_take_gold_position_y) QtBind.createLabel(gui, 'storage', gui_store_take_gold_position_x + 15, gui_store_take_gold_position_y + 20) store_take_gold_storage_amount_widget_widget = QtBind.createLineEdit(gui, store_take_gold_storage_amount_widget_widget_default, gui_store_take_gold_position_x + 15, gui_store_take_gold_position_y + 20 + 20, 100, 22)
CH_ARMOR = [SEARCH_OPCODE, "XX 00 07 00 00 00 ** 00 00"] # armor CH_PRO = [SEARCH_OPCODE, "XX 00 08 00 00 00 ** 00 00"] # pro CH_GARMENT = [SEARCH_OPCODE, "XX 00 09 00 00 00 ** 00 00"] # garment JOB_WEAPON = [SEARCH_OPCODE, "XX 00 3A 00 00 00 00 00 00"] # job weapon JOB_PRO = [SEARCH_OPCODE, "XX 00 3B 00 00 00 ** 00 00"] # job pro items JOB_ACC = [SEARCH_OPCODE, "XX 00 3C 00 00 00 ** 00 00"] # job item acc JOB_UPGRADE = [SEARCH_OPCODE, "XX 00 3D 00 00 00 ** 00 00"] # job plus + blue JOB_ITEMS = [SEARCH_OPCODE, "XX 00 3E 00 00 00 00 00 00"] # stone, ticket etc. gui = QtBind.init(__name__, pName) # UI ELEMENTS searchBtn = QtBind.createButton(gui, 'onSearch', 'Search', 526, 20) # search button WINDOW_HEIGHT = 230 WINDOW_WIDTH = 500 WINDOW_LEFT_START = 100 WINDOW_TOP_START = 50 DROPDOWN_WIDTH = 150 DROPDOWN_HEIGHT = 21 UI_ELEMENTS_GAP = 10 typeDropdown = QtBind.createCombobox(gui, WINDOW_LEFT_START, DROPDOWN_HEIGHT, DROPDOWN_WIDTH, DROPDOWN_HEIGHT) # type dropdown degreeDropdown = QtBind.createCombobox(gui, WINDOW_LEFT_START + DROPDOWN_WIDTH + UI_ELEMENTS_GAP, DROPDOWN_HEIGHT, DROPDOWN_WIDTH, DROPDOWN_HEIGHT) # degree dropdown ALL_DEGREES = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] JOB_DEGREES = ["1", "2", "3"] DEFAULT_DEGREES = ["1"]
import json import threading import urllib3 import shutil import os from random import randint import pyqrcode import sys http = urllib3.PoolManager() gui = QtBind.init(__name__, 'Silkroad Remote') String1 = QtBind.createLabel(gui, 'Veri', 20, 20) String2 = QtBind.createLabel(gui, 'text', 20, 260) String3 = QtBind.createLabel(gui, 'text', 20, 40) String4 = QtBind.createLabel(gui, 'text', 600, 260) send = QtBind.createButton(gui, 'createQR', 'Create QR Code', 20, 70) stop = QtBind.createButton(gui, 'stop', 'Stop', 120, 70) path = "http://www.mechayazilim.com/dataSave.php" notificationPath = "http://www.mechayazilim.com/notificationIn.php" bottingDataPath = "http://www.mechayazilim.com/dataReceive.php" deadCounter = 0 oldReceiveTrainingRadius = "0" oldReceiveTrainingAreaX = "0" oldReceiveTrainingAreaY = "0" oldReceiveStartBot = "0" oldReceiveStopBot = "0" oldMessageCount = 0 setState = False chatSetState = False connectedState = True deger = 1
# ______________________________ Initializing ______________________________ # # globals character_data = None # Initializing GUI gui = QtBind.init(__name__, pName) cbxEnabled = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Enabled', 6, 9) cbxDefensive = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Defensive Mode', 85, 9) QtBind.createLabel(gui, '* Leader list', 11, 35) tbxLeaders = QtBind.createLineEdit(gui, "", 6, 51, 100, 20) lvwLeaders = QtBind.createList(gui, 6, 72, 176, 60) btnAddLeader = QtBind.createButton(gui, 'btnAddLeader_clicked', " Add ", 107, 50) btnRemLeader = QtBind.createButton(gui, 'btnRemLeader_clicked', " Remove ", 55, 131) # ______________________________ Methods ______________________________ # # Return folder path def getPath(): return get_config_dir() + pName + "\\" # Return character configs path (JSON) def getConfig(): return getPath( ) + character_data['server'] + "_" + character_data['name'] + ".json"
locale = None # Create UI gui = QtBind.init(__name__,pName) cbxTranslateIncomingChat = QtBind.createCheckBox(gui,'','Incoming chat messages to',10,8) cmbxTranslateIncomingLang = QtBind.createCombobox(gui,165,8,130,19) cbxTranslateOutgoingChat = QtBind.createCheckBox(gui,'','Outgoing chat messages to',10,28) cmbxTranslateOutgoingLang = QtBind.createCombobox(gui,167,28,128,19) # Fill with supported langs for key in SUPPORTED_LANGUAGES: QtBind.append(gui,cmbxTranslateIncomingLang,key) QtBind.append(gui,cmbxTranslateOutgoingLang,key) lstTranslatedMessages = QtBind.createList(gui,10,54,710,226) btnSaveConfig = QtBind.createButton(gui,'save_configs',' Save Changes ',615,4) btnClearChat = QtBind.createButton(gui,'btnClearChat_clicked',' Clear chat ',635,30) # ______________________________ Methods ______________________________ # # Return folder path def get_path(): return get_config_dir()+pName+"\\" # Return character configs path (JSON) def get_config(): return get_path()+character_data['server'] + "_" + character_data['name'] + ".json" # Check if character is ingame def is_joined(): global character_data
'Inject Packets to Client/Server through bot, or just to parse what you need.', 21, 15) cbxSro = QtBind.createCheckBox(gui, 'cbxSro_clicked', 'Show Client packets [C->S]', 395, 13) cbxSro_checked = False cbxJmx = QtBind.createCheckBox(gui, 'cbxJmx_clicked', 'Show Server packets [S->C]', 560, 13) cbxJmx_checked = False lblUsing = QtBind.createLabel(gui, 'Opcode:\t Data:', 41, 47) txtOpcode = QtBind.createLineEdit(gui, "", 85, 45, 40, 20) txtData = QtBind.createLineEdit(gui, "", 163, 45, 450, 20) cbxEncrypted = QtBind.createCheckBox(gui, 'cbxEnc_clicked', 'Encrypted', 620, 47) btnInjectPacket = QtBind.createButton(gui, 'btnInjectPacket_clicked', " Inject Packet ", 348, 65) cbxDontShow = QtBind.createCheckBox(gui, 'cbxDontShow_clicked', "Don't show", 25, 90) cbxOnlyShow = QtBind.createCheckBox(gui, 'cbxOnlyShow_clicked', "Only Show", 120, 90) QtBind.setChecked(gui, cbxDontShow, True) # using two checkbox like radiobutton cbxDontShow_checked = True lblOpcodes = QtBind.createLabel(gui, "The following list of opcodes ( Filter )", 21, 110) tbxOpcodes = QtBind.createLineEdit(gui, "", 21, 129, 100, 20) lstOpcodes = QtBind.createList(gui, 21, 151, 176, 109) btnAddOpcode = QtBind.createButton(gui, 'btnAddOpcode_clicked', " Add ", 123, 129)
from phBot import * import QtBind pVersion = 'v0.1.0' pName = 'xNPC' pUrl = 'https://raw.githubusercontent.com/JellyBitz/phBot-xPlugins/master/xNPC.py' # Needed for phbot GUI gui = QtBind.init(__name__, pName) lblNpcs = QtBind.createLabel(gui, "List of NPC's near to you..", 21, 11) btnNpcs = QtBind.createButton(gui, 'btnNpcs_clicked', " Refresh list ", 645, 8) lstNpcs = QtBind.createList(gui, 21, 30, 700, 200) # Clear and load the list of NPCs def btnNpcs_clicked(): # Get all NPCs and teleporters npcs = get_npcs() # Clear list QtBind.clear(gui, lstNpcs) # Add header QtBind.append(gui, lstNpcs, '[Name] [ServerName] [ModelID] (UniqueID)') if npcs: # Header data separation QtBind.append(gui, lstNpcs, ' -') for UniqueID, NPC in npcs.items(): # Append every NPC description to the list QtBind.append( gui, lstNpcs, "[" + NPC['name'] + "] [" + NPC['servername'] + "] [" + str(NPC['model']) + "] (" + str(UniqueID) + ")")
from phBot import * import QtBind import binascii gui = QtBind.init(__name__, 'PacketLogger') padding_left = 260 padding_top = 125 QtBind.createLabel(gui, 'client to server', padding_left + 11, padding_top + 10) QtBind.createButton(gui, 'log_client_start', 'start', padding_left + 10, padding_top + 30) QtBind.createButton(gui, 'log_client_stop', 'stop', padding_left + 10, padding_top + 60) QtBind.createLabel(gui, 'server to client', padding_left + 111, padding_top + 10) QtBind.createButton(gui, 'log_server_start', 'start', padding_left + 110, padding_top + 30) QtBind.createButton(gui, 'log_server_stop', 'stop', padding_left + 110, padding_top + 60) log_client = False log_server = False def handle_silkroad(opcode, data): if log_client: if opcode == 0x2002:
timerCheck = None character_data = None # Initializing GUI gui = QtBind.init(__name__, pName) cbxEnabled = QtBind.createCheckBox(gui, 'checkbox_clicked', 'Enable ' + pName + ' plugin', 21, 13) lblFromTime = QtBind.createLabel(gui, "FROM", 21, 45) strFromTime = "00:00" tbxFromTime = QtBind.createLineEdit(gui, strFromTime, 55, 43, 37, 20) lblToTime = QtBind.createLabel(gui, "TO", 101, 45) strToTime = "23:59" tbxToTime = QtBind.createLineEdit(gui, strToTime, 121, 43, 37, 20) btnSaveTimes = QtBind.createButton(gui, 'btnSaveTimes_clicked', " Save ", 165, 43) # Return folder path def getPath(): return get_config_dir() + pName + "\\" # Return character configs path (JSON) def getConfig(): return getPath( ) + character_data["server"] + "_" + character_data["name"] + ".json" # Load default configs def loadDefaultConfig():
inGame = False # Globals followActivated = False followPlayer = '' followDistance = 0 followDelay = 1.0 # float, seconds # Initializing GUI gui = QtBind.init(__name__,pName) lblxControl01 = QtBind.createLabel(gui,'Manage your partys easily using the ingame chat.\nThe Leader(s) is the character that write chat commands.\nIf you character have Leader(s) into the leader list, this will follow his orders.\n\n* UPPERCASE is required to use the command, all his data is separated by spaces.\n* #Variable (required) #Variable? (optional)\n Supported commands :\n - START : Start bot\n - STOP : Stop bot\n - TRACE #Player? : Start trace to leader or another character\n - NOTRACE : Stop trace\n - SETAREA : Set training area using the actual location\n - SETAREA #Radius? : Set training radius.\n - SIT : Sit or Stand up, depends\n - CAPE #Type? : Use PVP Cape\n - ZERK : Use berserker mode if is available\n - RETURN : Use some "Return Scroll" from your inventory\n - TELEPORT #A #B : Use teleport from location A to B\n - INJECT #Opcode #Encrypted? #Data : Inject packet\n - CHAT #Type #Message : Send any message type',21,11) lblxControl02 = QtBind.createLabel(gui,' - MOVEON #Radius? : Set a random movement\n - FOLLOW #Player? #Distance? : Trace a party player using distance\n - NOFOLLOW : Stop following\n - PROFILE #Name? : Loads a profile by his name\n - JUMP : Generate knockback visual effect',345,101) tbxLeaders = QtBind.createLineEdit(gui,"",511,11,100,20) lstLeaders = QtBind.createList(gui,511,32,176,48) btnAddLeader = QtBind.createButton(gui,'btnAddLeader_clicked'," Add ",612,10) btnRemLeader = QtBind.createButton(gui,'btnRemLeader_clicked'," Remove ",560,79) # Return xControl folder path def getPath(): return get_config_dir()+pName+"\\" # Return character configs path (JSON) def getConfig(): return getPath()+get_character_data()['server'] + "_" + get_character_data()['name'] + ".json" # Load default configs def loadDefaultConfig(): # Clear data QtBind.clear(gui,lstLeaders)
# Globals isCreatingCharacter = False isDeletingCharacter = False CreatingNickname = "" isRestarted = False # Graphic user interface gui = QtBind.init(__name__, pName) cbxEnabled = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Enabled', 6, 9) # Profiles _x = 350 _y = 10 lblProfileName = QtBind.createLabel(gui, "Config profile name :", _x, _y) tbxProfileName = QtBind.createLineEdit(gui, "", _x + 102, _y - 3, 110, 19) btnSaveConfig = QtBind.createButton(gui, 'btnSaveConfig_clicked', " Save ", _x + 102 + 110 + 3, _y - 5) btnLoadConfig = QtBind.createButton(gui, 'btnLoadConfig_clicked', " Load ", _x + 102 + 110 + 3 + 75, _y - 5) # Basic config _x = 6 _y = 40 cbxSelectChar = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Select ( if level < 40 )', _x, _y - 1) cbxSelectCharOnAcademy = QtBind.createCheckBox( gui, 'cbxDoNothing', 'Select ( if level 40~50 and has academy )', _x + 200, _y - 1) _y += 20 cbxCreateChar = QtBind.createCheckBox(gui, 'cbxDoNothing', 'Create ( if none has been selected )', _x, _y - 1)
# ______________________________ Initializing ______________________________ # # Globals selectedUID = 0 isActived = False isAutoRefresh = False # Check if the version can show HP showHP = tuple(map(int, (get_version().split(".")))) >= (23,8,5) # Graphic user interface gui = QtBind.init(__name__,pName) lblMobs = QtBind.createLabel(gui,"* List of monsters near to you",6,10) lstMobs = QtBind.createList(gui,6,30,510,229) lstMobsData = [] btnRefreshMobs = QtBind.createButton(gui,'btnRefreshMobs_clicked'," Refresh ",6,259) cbxAutoRefreshMobs = QtBind.createCheckBox(gui,'cbxAutoRefreshMobs_checked','Automatically',6+75,258) btnAddMob = QtBind.createButton(gui,'btnAddMob_clicked'," Add ",6+510-75,259) lblAutoSelectMobs = QtBind.createLabel(gui,"* Auto select mobs from this list",720-200,10) lstAutoSelectMobs = QtBind.createList(gui,720-200,30,200,229) lstAutoSelectMobsData = [] btnScanMobs = QtBind.createButton(gui,'btnScanMobs_clicked',"",720-84,259) btnRemMob = QtBind.createButton(gui,'btnRemMob_clicked'," Remove ",720-200,259) # ______________________________ Methods ______________________________ # # Return character configs path (JSON) def getConfig(): return get_config_dir()+pName+ ".json"
# Globals character_data = None dimensionalItemUsed = None # Graphic user interface gui = QtBind.init(__name__, pName) lblMobs = QtBind.createLabel( gui, '# Add monster names to ignore #\n# from Monster Counter #', 31, 6) tbxMobs = QtBind.createLineEdit(gui, "", 31, 35, 100, 20) lstMobs = QtBind.createList(gui, 31, 56, 176, 203) lstMobsData = [] btnAddMob = QtBind.createButton(gui, 'btnAddMob_clicked', " Add ", 132, 34) btnRemMob = QtBind.createButton(gui, 'btnRemMob_clicked', " Remove ", 80, 258) lblMonsterCounter = QtBind.createLabel( gui, "# Monster Counter #", 520, 6) lstMonsterCounter = QtBind.createList(gui, 520, 23, 197, 237) QtBind.append(gui, lstMonsterCounter, 'Name (Type)') # Header lblPreferences = QtBind.createLabel( gui, "# Monster Counter preferences #", 240, 6) lstIgnore = [] lstOnlyCount = [] _y = 26 lblGeneral = QtBind.createLabel(gui, 'General (0)', 240, _y)
# Globals character_data = None party_data = None hasStall = False checking_disconnect = False checking_disconnect_counter = 0 discord_fetch_counter = 0 discord_chat_handlers = [] # Graphic user interface gui = QtBind.init(__name__,pName) lblChannels = QtBind.createLabel(gui,"Discord Channels ID",6,10) tbxChannels = QtBind.createLineEdit(gui,"",6,25,80,19) lstChannels = QtBind.createList(gui,6,46,156,212) btnAddChannel = QtBind.createButton(gui,'btnAddChannel_clicked'," Add ",86,25) btnRemChannel = QtBind.createButton(gui,'btnRemChannel_clicked'," Remove ",45,257) QtBind.createLineEdit(gui,"",169,10,1,257) # Separator line lblToken = QtBind.createLabel(gui,"Token :",175,10) tbxToken = QtBind.createLineEdit(gui,"",215,7,155,19) lblUrl = QtBind.createLabel(gui,"Website :",390,10) tbxWebsite = QtBind.createLineEdit(gui,'',440,7,155,19) btnSaveConfig = QtBind.createButton(gui,'saveConfigs'," Save Changes ",615,7) lblTriggers = QtBind.createLabel(gui,"Select the Discord channel to send the notification ( Filters are using regex )",175,35) ## Adding triggers options # Login
gui, 'Inject Packets to Client/Server through bot, or analyze the packets you need.', 6, 10) # Injection _x = 6 _y = 50 lblOpcode = QtBind.createLabel(gui, 'Opcode:', _x, _y) txtOpcode = QtBind.createLineEdit(gui, "", _x + 45, _y - 3, 32, 20) lblData = QtBind.createLabel(gui, 'Data:', _x + 45 + 32 + 6, _y) txtData = QtBind.createLineEdit(gui, "", _x + 45 + 32 + 6 + 32, _y - 3, 385, 20) cbxEncrypted = QtBind.createCheckBox(gui, 'cbxEnc_clicked', 'Encrypted', _x + 432, _y - 20) _y += 25 btnInjectClient = QtBind.createButton(gui, 'btnInjectClient_clicked', " Inject To Client ", _x + 308, _y) btnInjectServer = QtBind.createButton(gui, 'btnInjectServer_clicked', " Inject To Server ", _x + 404, _y) # Filter _x = 720 - 176 _y = 12 QtBind.createLineEdit(gui, "", _x - 26, _y, 1, 265) # Separator line cbxSro = QtBind.createCheckBox(gui, 'cbxShowClient_checked', 'Show Client packets [C->S]', _x + 10, _y) cbxShowClient = False _y += 20 cbxJmx = QtBind.createCheckBox(gui, 'cbxShowServer_checked', 'Show Server packets [S->C]', _x + 10, _y) cbxShowServer = False
import os from urllib import request, parse pName = 'SmartBot' pVersion = '1.0.0' pUrl = 'https://raw.githubusercontent.com/rawsly/phbot-plugins/main/SmartBot.py' path = get_config_dir() + pName + "\\" gui = QtBind.init(__name__, pName) apiUrl = "http://*****:*****@gmail.com", 30, 50, 200, 20) PasswordLabel = QtBind.createLabel(gui, 'Password', 30, 80) PasswordTextbox = QtBind.createLineEdit(gui, "123456", 30, 100, 200, 20) connectBtn = QtBind.createButton(gui, 'handleConnectionBtn', 'Connect', 30, 125) # search button connectionStatus = False def handleConnectionBtn(): if connectionStatus == True: disconnect() enableFields() else: userId = connect() if userId is not None: char = getCharData(userId) if char is not None: saveConfig(userId, char['charId']) disableFields()