Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import clr
- clr.AddReference('System.Drawing')
- clr.AddReference('System.Windows.Forms')
- import urllib2, urllib
- import sys
- #http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=super%20ismo
- import copy
- import socket
- import time
- import math
- import httplib
- import random
- import re
- import cookielib
- #import grabber
- from threading import Thread as pyThread
- from System import Convert
- from System.IO import StreamReader
- #from System.Threading import Thread, ThreadStart, ParameterizedThreadStart
- from System.Drawing import *
- from System.Windows.Forms import Form,TextBox,Button,Application,DockStyle,ListView,ListViewItem,TabControl,Label,Panel,MessageBox,MessageBoxButtons,MessageBoxIcon,Control, ListBox, NumericUpDown, GroupBox, ComboBox, AnchorStyles, NumericUpDown, OpenFileDialog, SaveFileDialog, DataGridViewAutoSizeColumnsMode, DataGridColumnStyle, ColumnHeaderAutoResizeStyle
- sys.path.append("Lib")
- import os
- Control.CheckForIllegalCrossThreadCalls = False
- class ClassTypes:
- def auto(self):
- return 1
- def HPLess(self, HP, mHP):
- if HP >= mHP:
- return 1
- else:
- return 0
- def MPLess(self, MP, mMP):
- if MP >= mMP:
- return 1
- else:
- return 0
- class QuestDialog(Form):
- def __init__(self, bot, questID, rewards, extra):
- self.bot = bot
- self.Height = 300
- self.Width = 150
- self.MaximizeBox = False
- self.MinimizeBox = False
- self.e = len(extra)
- self.selecItem = ""
- self.questID = questID
- self.extraDict = {}
- self.turninButton = Button()
- self.turninButton.Location = Point(10, self.Height - self.turninButton.Height - 30)
- self.turninButton.Width = self.Width -20
- self.turninButton.Click += self.turnin
- self.Controls.Add(self.turninButton)
- self.turninButton.Text = "Turn in"
- self.questBox = ListBox()
- self.questBox.Location = Point(10,30)
- self.questBox.Width = self.Width -20
- self.questBox.Height = 150
- self.questBox.SelectedIndexChanged += self.selectionchange
- self.label1 = Label()
- self.label1.Location = Point(10,10)
- if len(extra) != 0:
- self.label1.Text = "Select 1 item from the list"
- for val in extra:
- self.extraDict[extra[val]["sName"]] = extra[val]["ItemID"]
- self.questBox.Items.Add(extra[val]["sName"])
- else:self.label1.Text = "There is not selectable items";self.questBox.Enabled = False
- self.label1.AutoSize = True
- self.label2 = Label()
- self.label2.Location = Point(10,180)
- self.label2.Text = "Rewards:"
- self.label2.AutoSize = True
- self.labelg = Label()
- self.labelg.Location = Point(10,200)
- self.labelg.Text = "Gold : " + str(rewards[1])
- self.labelg.AutoSize = True
- self.labelexp = Label()
- self.labelexp.Location = Point(10,220)
- self.labelexp.Text = "Exp : " + str(rewards[0])
- self.labelexp.AutoSize = True
- self.Controls.Add(self.label1)
- self.Controls.Add(self.label2)
- self.Controls.Add(self.labelexp)
- self.Controls.Add(self.labelg)
- self.Controls.Add(self.questBox)
- self.FormBorderStyle = self.FormBorderStyle.FixedSingle
- self.Text = "Quest dialog"
- pass
- def selectionchange(self, e, args):
- try:
- self.selecItem = self.questBox.SelectedItem.ToString()
- except:pass
- pass
- def turnin(self, e, args):
- if self.e == 0:
- self.bot.sock.send("%xt%zm%tryQuestComplete%" + self.bot.areaID + "%" + str(self.questID) + "%-1%false%wvz%" + chr(0))
- self.bot.questlist.remove(str(self.questID))
- for itemi in self.bot.questItems:
- for itemia in self.bot.questsData[str(self.questID)]["turnin"]:
- if str(itemia["ItemID"]) == str(itemi):
- self.bot.questItems[itemi]["iQty"] = int(self.bot.questItems[itemi]["iQty"])
- self.bot.questItems[itemi]["iQty"] -= int(itemia["iQty"])
- self.bot.form.currentItemi("","")
- self.Close()
- else:
- if self.selecItem !="":
- self.bot.sock.send("%xt%zm%tryQuestComplete%" + self.bot.areaID + "%" + str(self.questID) + "%" + self.selecItem + "%false%wvz%" + chr(0))
- self.bot.questlist.remove(str(self.questID))
- for itemi in self.bot.questItems:
- self.bot.questItems[itemi]["iQty"] -= self.bot.questsData[itemi]["iQty"]
- self.bot.form.currentItemi("","")
- self.Close()
- else:MessageBox.Show("Select an item first!")
- class MyForm(Form):
- def __init__(self):
- self.curQuest = ""
- self.botList = []
- self.armor = ""
- self.classarmor = ""
- self.weapon = ""
- self.cape = ""
- self.helm = ""
- self.itemID2 = ""
- self.itemID = ""
- self.BackColor = self.BackColor.DarkGray
- self.inventoryItems = []
- self.waitingitemlistItems = []
- self.DoubleBuffered = True
- self.Text = "MINADS's Python BOT || Version 1.5 FULL VERSION|| .NET Windows"
- self.connected = False
- self.MaximizeBox = False
- self.Size = Size(610,425)
- self.MinimumSize = Size(610,425)
- self.tablist = TabControl()
- self.tablist.Dock = DockStyle.Fill
- self.tablist.TabPages.Add("Login")
- self.Closed += self.Claose
- self.txtbox1 = TextBox()
- self.txtbox1.Multiline = True
- self.txtbox1.Location = Point(0,0)
- self.txtbox1.Dock = DockStyle.Fill
- self.txtbox1.Visible = False
- self.panel = Panel()
- self.panel.BackColor = Color.LightGray
- self.panel.Dock = DockStyle.Bottom
- self.panel.Height = 15
- self.tablist.TabPages[0].Controls.Add(self.panel)
- self.lbl1 = Label()
- self.lbl1.AutoSize = False
- self.lbl1.Dock = DockStyle.Fill
- self.lbl1.TextAlign = self.lbl1.TextAlign.BottomCenter
- self.lbl1.Text = "Python Bot by minad"
- self.lbl1.BackColor = Color.Transparent
- self.panel.Controls.Add(self.lbl1)
- self.lblu4 = Label()
- self.lblu4.AutoSize = True
- self.lblu4.Location = Point(10,40)
- self.lblu4.Text = "Leader :"
- self.tablist.TabPages[0].Controls.Add(self.lblu4)
- self.txtboxu4 = TextBox()
- self.txtboxu4.Visible = True
- self.txtboxu4.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
- self.txtboxu4.Width = 120
- self.txtboxu4.Location = Point(self.lblu4.Location.X + self.lblu4.Width + 10,self.lblu4.Location.Y)
- self.tablist.TabPages[0].Controls.Add(self.txtboxu4)
- self.lblu = Label()
- self.lblu.AutoSize = True
- self.lblu.Location = Point(10,70)
- self.lblu.Text = "Name :"
- self.tablist.TabPages[0].Controls.Add(self.lblu)
- self.txtboxu = TextBox()
- self.txtboxu.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
- self.txtboxu.Width = 120
- self.txtboxu.Location = Point(self.lblu.Location.X + self.lblu.Width + 10,self.lblu.Location.Y)
- self.txtboxu.Visible = True
- self.tablist.TabPages[0].Controls.Add(self.txtboxu)
- self.lblu2 = Label()
- self.lblu2.AutoSize = True
- self.lblu2.Location = Point(10,100)
- self.lblu2.Text = "Pass :"
- self.tablist.TabPages[0].Controls.Add(self.lblu2)
- self.txtboxu2 = TextBox()
- self.txtboxu2.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
- self.txtboxu2.Width = 120
- self.txtboxu2.Location = Point(self.lblu2.Location.X + self.lblu.Width + 10,self.lblu2.Location.Y)
- self.txtboxu2.Visible = True
- self.txtboxu2.PasswordChar = Convert.ToChar('*')
- self.tablist.TabPages[0].Controls.Add(self.txtboxu2)
- self.logbtn = Button()
- self.logbtn.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
- self.logbtn.Text = "Login"
- self.logbtn.Height = 40
- self.logbtn.Width = self.lblu.Width + self.txtboxu2.Width + 10
- self.logbtn.Click += self.login
- self.logbtn.Location = Point(10,130)
- self.tablist.TabPages[0].Controls.Add(self.logbtn)
- self.BOT = aqwbot()
- print "GUI : created " + str(self.BOT)
- self.BOT.setform(self)
- self.serverlist = ListView()
- self.monsterlist = ListView()
- self.userlist = ListBox()
- self.Controls.Add(self.txtbox1)
- self.Controls.Add(self.tablist)
- def selc(self,e,k):
- try:
- if self.connected == False:
- self.txtip.Text = self.serverlist.SelectedItems[0].SubItems[1].Text
- self.btnip.Enabled = True
- except:pass
- def checkQuestData(self, data):
- #self.questBox.Items.Clear()
- for i in data:
- item = ListViewItem()
- item.Text = str(data[i]["QuestID"])
- self.questBox.Items.Add(item)
- pass
- def cmdbtn_click(self,e,kw):
- try:
- self.BOT.checkforcommand(self.cmdtxt.Text)
- self.sendrecv("[CMD]: %s: "%self.cmdtxt.Text)
- except:pass
- pass
- def sendrecv(self,data):
- try:
- if 1==1:
- self.cmdvtxt.Text = (self.cmdvtxt.Text + "\r\n" + data)
- self.cmdvtxt.SelectionStart = self.cmdvtxt.Text.Length
- self.cmdvtxt.ScrollToCaret()
- except:pass
- def loadpluginbtns(self,e,args):
- try:
- self.loadplugin(self.loadplugintxt.Text)
- except:pass
- def Updateuserlist(self, e ,args):
- ulist = []
- for i in self.userlist.Items:
- ulist.append(i)
- for i in ulist:
- if i not in self.BOT.usersdata:
- self.userlist.Items.Remove(i)
- for i in self.BOT.usersdata:
- if i not in self.userlist.Items:
- self.userlist.Items.Add(str(i))
- def addLeader2(self, e, args):
- self.BOT.leaderGroup.append(self.userlist.SelectedItem.ToString())
- self.updateLeader()
- def loadwaitingitemlistbtnClick(self, e ,args):
- self.loadwaitingitemlist()
- def waitingitemClick(self, e, args):
- try:
- self.itemID2 = self.waitingitemlist.SelectedItems[0].Text
- except:pass
- def loadwaitingitemlist(self):
- #self.waitingitemlist.DataSource = None
- self.waitingitemlist.Items.Clear()
- superlist = ["4861", "4771", "4762", "4770"]
- self.waitingitemlist.Items.Clear()
- if self.BOT.waitingitemlist != []:
- for i in self.BOT.waitingitemlist:
- #item.SubItems.Add(str(i[5])) desc
- item = ListViewItem()
- if str(i[0]) in superlist:
- item.BackColor = Color.GreenYellow
- item.Text = str(i[0])
- item.SubItems.Add(str(i[1]))
- item.SubItems.Add(str(i[2]))
- item.SubItems.Add(str(i[3]))
- item.SubItems.Add(str(i[4]))
- item.SubItems.Add(str(i[6]))
- item.SubItems.Add(str(i[7]))
- item.SubItems.Add(str(i[8]))
- self.waitingitemlist.Items.Add(item)
- for bot in self.botList:
- for i in bot.waitingitemlist:
- #item.SubItems.Add(str(i[5])) desc
- item = ListViewItem()
- item.Text = str(i[0])
- item.SubItems.Add(str(i[1]))
- item.SubItems.Add(str(i[2]))
- item.SubItems.Add(str(i[3]))
- item.SubItems.Add(str(i[4]))
- item.SubItems.Add(str(i[6]))
- item.SubItems.Add(str(i[7]))
- item.SubItems.Add(str(i[8]))
- self.waitingitemlist.Items.Add(item)
- self.waitingitemlistItems = self.BOT.waitingitemlist
- for bot in self.botList:
- for itemi in bot.waitingitemlist:
- self.waitingitemlistItems.append(itemi)
- def loadinventory(self):
- #self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
- self.inventorylist.Items.Clear()
- kakka = 0
- if self.BOT.inventory != []:
- for i in self.BOT.inventory:
- #item.SubItems.Add(str(i[5])) desc
- item = ListViewItem()
- if str(i[0]) == str(self.BOT.armor):
- item.BackColor = Color.Yellow
- self.armor = self.BOT.armor
- elif str(i[0]) == str(self.BOT.classarmor):
- item.BackColor = Color.Yellow
- self.classarmor = self.BOT.classarmor
- elif str(i[0]) == str(self.BOT.cape):
- item.BackColor = Color.Yellow
- self.cape = self.BOT.cape
- elif str(i[0]) == str(self.BOT.helm):
- item.BackColor = Color.Yellow
- self.helm = self.BOT.helm
- elif str(i[0]) == str(self.BOT.weapon):
- item.BackColor = Color.Yellow
- self.weapon = self.BOT.weapon
- else:
- item.BackColor = Color.White
- item.Text = i[0]
- item.SubItems.Add(i[1])
- item.SubItems.Add(str(i[2]))
- item.SubItems.Add(str(i[3]))
- item.SubItems.Add(str(i[4]))
- kakka += int(i[4])*4
- item.SubItems.Add(str(i[6]))
- item.SubItems.Add(str(i[7]))
- item.SubItems.Add(str(i[8]))
- self.inventorylist.Items.Add(item)
- self.inventoryItems = self.BOT.inventory
- self.inventoryItems = self.BOT.inventory
- MessageBox.Show(str(kakka))
- def inventoryClick(self, e, args):
- try:
- self.itemID = self.inventorylist.SelectedItems[0].Text
- self.removeitemnumeric.Maximum = int(self.inventorylist.SelectedItems[0].SubItems[2].Text)
- if str(self.itemID) == str(self.BOT.helm):
- self.equipbtn.Text = "Unequip"
- self.equipbtn.Enabled = True
- elif str(self.itemID) == str(self.BOT.cape):
- self.equipbtn.Text = "Unequip"
- self.equipbtn.Enabled = True
- elif str(self.itemID) == str(self.BOT.armor):
- self.equipbtn.Text = "Unequip"
- self.equipbtn.Enabled = True
- elif str(self.itemID) == str(self.BOT.classarmor):
- self.equipbtn.Enabled = False
- elif str(self.itemID) == str(self.BOT.weapon):
- self.equipbtn.Enabled = False
- else:
- self.equipbtn.Text = "Equip"
- self.equipbtn.Enabled = True
- except:pass
- def loadinventorybtn_click(self, e, args):
- self.loadinventory()
- def equipItem(self, e, args):
- if self.equipbtn.Text == "Equip":
- self.BOT.equipitem(self.itemID)
- if self.equipbtn.Text == "Unequip":
- self.BOT.unequipitem(self.itemID)
- def sellItem(self, e, args):
- for i in self.BOT.inventory:
- if i[0] == self.itemID:
- itemName = i[1]
- answer = str(MessageBox.Show("Are you sure you want to sell %s(%s) "%(itemName, self.itemID), "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
- if answer == "Yes":
- self.BOT.sellitem(self.itemID)
- for bot in self.botList:
- bot.sellitem(self.itemID)
- self.loadinventory()
- def removeItem(self, e, args):
- try:
- for i in self.BOT.inventory:
- if i[0] == self.itemID:
- itemName = i[1]
- answer = str(MessageBox.Show("Are you sure you want to remove %s(%s) "%(itemName, self.itemID), "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
- if answer == "Yes":
- self.BOT.removeitem(self.itemID, self.removeitemnumeric.Text)
- self.loadinventory()
- except:pass
- def refreshinvandwaiting(self, e, args):
- if self.inventoryItems != self.BOT.inventory:
- self.loadinventory()
- if self.waitingitemlistItems != self.BOT.waitingitemlist:
- self.loadwaitingitemlist()
- if str(self.cape) != str(self.BOT.cape):
- self.loadinventory()
- if str(self.helm) != str(self.BOT.helm):
- self.loadinventory()
- if str(self.armor) != str(self.BOT.armor):
- self.loadinventory()
- if str(self.classarmor) != str(self.BOT.classarmor):
- self.loadinventory()
- if str(self.weapon) != str(self.BOT.weapon):
- self.loadinventory()
- def loadbotconfig(self):
- self.botconfiglist.Items.Clear()
- for i in self.BOT.config.items():
- item = ListViewItem()
- item.Text = str(i[0])
- item.SubItems.Add(str(i[1]))#type(e).__name__
- item.SubItems.Add(type(i[1]).__name__)
- self.botconfiglist.Items.Add(item)
- def loadbotconfigBtn(self, e, args):
- self.loadbotconfig()
- def moveconfigedit(self, e, args):
- self.botconfigNametxt.Text = self.botconfiglist.SelectedItems[0].Text
- self.botconfigTypetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[2].Text
- if self.botconfiglist.SelectedItems[0].SubItems[2].Text == "bool":
- self.botconfigValuetxt.Enabled = True
- self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDownList
- self.botconfigValuetxt.Items.Clear()
- self.botconfigValuetxt.Items.Add("True")
- self.botconfigValuetxt.Items.Add("False")
- self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
- elif self.botconfiglist.SelectedItems[0].SubItems[2].Text == "str":
- self.botconfigValuetxt.Enabled = True
- self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDown
- self.botconfigValuetxt.Items.Clear()
- self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
- else:
- self.botconfigValuetxt.Enabled = True
- self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDown
- self.botconfigValuetxt.Items.Clear()
- self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
- def changeconfigvalue(self, e, args):
- try:
- if self.botconfigTypetxt.Text == "bool":
- self.BOT.config[self.botconfigNametxt.Text] = eval(self.botconfigValuetxt.Text)
- elif self.botconfigTypetxt.Text == "str":
- self.BOT.config[self.botconfigNametxt.Text] = str(self.botconfigValuetxt.Text)
- else:
- self.BOT.config[self.botconfigNametxt.Text] = eval(self.botconfigValuetxt.Text)
- except:pass
- self.loadbotconfig()
- def getitem(self, e, args):
- self.BOT.getItemifpossible(self.itemID2)
- for bot in self.botList:
- bot.getItemifpossible(self.itemID2)
- def roomviewuptader(self):
- while True:
- try:
- self.roomview.updateRoom(self.BOT.usersdata)
- except:pass
- pass
- def ipbtn_click(self,e,kw):
- self.tabroomlist = TabControl()
- self.tabroomlist.Dock = DockStyle.Fill
- self.tabroomlist.TabPages.Add("Monsters")
- self.tabroomlist.TabPages.Add("Users")
- self.tablist.TabPages.Add("Room")
- self.updateuserlistbtn = Button()
- self.updateuserlistbtn.Dock = DockStyle.Bottom
- self.updateuserlistbtn.Text = "Update list"
- self.updateuserlistbtn.Click += self.Updateuserlist
- self.addtoleaderuserlistbtn = Button()
- self.addtoleaderuserlistbtn.Dock = DockStyle.Bottom
- self.addtoleaderuserlistbtn.Text = "Add to leaders"
- self.addtoleaderuserlistbtn.Click += self.addLeader2
- self.userlist.Dock = DockStyle.Fill
- self.monsterlist.Columns.Add("ID")
- self.monsterlist.Columns.Add("Monster")
- self.monsterlist.Columns.Add("Health")
- self.monsterlist.Columns.Add("Room")
- self.monsterlist.Columns.Add("DataID")
- self.monsterlist.GridLines = True
- self.monsterlist.FullRowSelect = True
- self.monsterlist.BorderStyle = self.serverlist.BorderStyle.Fixed3D
- self.monsterlist.View = self.monsterlist.View.Details
- self.monsterlist.Dock = DockStyle.Fill
- self.monsterlist.Columns[3].Width = 120
- self.monsterlist.Columns[4].Width = 120
- self.monsterpanel = Panel()
- self.monsterpanel.Dock = DockStyle.Right
- self.monsterpanel.Width = 80
- self.botskillbutton0 = Button()
- self.botskillbutton0.Size = Size(40,40)
- self.botskillbutton0.Location = Point(self.monsterpanel.Width/2 - self.botskillbutton0.Width/2,0)
- self.botskillbutton0.Text = "0"
- self.botskillbutton1 = Button()
- self.botskillbutton1.Size = self.botskillbutton0.Size
- self.botskillbutton1.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton0.Location.Y + self.botskillbutton0.Height + 5)
- self.botskillbutton1.Text = "1"
- self.botskillbutton2 = Button()
- self.botskillbutton2.Size = self.botskillbutton0.Size
- self.botskillbutton2.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton1.Location.Y + self.botskillbutton0.Height + 5)
- self.botskillbutton2.Text = "2"
- self.botskillbutton3 = Button()
- self.botskillbutton3.Size = self.botskillbutton0.Size
- self.botskillbutton3.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton2.Location.Y + self.botskillbutton0.Height + 5)
- self.botskillbutton3.Text = "3"
- self.botskillbutton4 = Button()
- self.botskillbutton4.Size = self.botskillbutton0.Size
- self.botskillbutton4.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton3.Location.Y + self.botskillbutton0.Height + 5)
- self.botskillbutton4.Text = "4"
- self.monsterpanel.Controls.Add(self.botskillbutton0)
- self.monsterpanel.Controls.Add(self.botskillbutton1)
- self.monsterpanel.Controls.Add(self.botskillbutton2)
- self.monsterpanel.Controls.Add(self.botskillbutton3)
- self.monsterpanel.Controls.Add(self.botskillbutton4)
- #pyThread(target=self.getMonsters, args=[]).start()
- self.tablist.TabPages[2].Controls.Add(self.tabroomlist)
- self.tabroomlist.TabPages[0].Controls.Add(self.monsterlist)
- #self.tabroomlist.TabPages[0].Controls.Add(self.monsterpanel)
- self.tabroomlist.TabPages[1].Controls.Add(self.userlist)
- self.tabroomlist.TabPages[1].Controls.Add(self.updateuserlistbtn)
- self.tabroomlist.TabPages[1].Controls.Add(self.addtoleaderuserlistbtn)
- self.BOT.IPs = self.txtip.Text
- self.connected = True
- self.btnip.Enabled = False
- self.txtip.Enabled = False
- self.serverlist.Enabled = False
- self.tablist.TabPages.Add("commandline")
- self.cmdtxt = TextBox()
- self.cmdtxt.BorderStyle = self.cmdtxt.BorderStyle.None
- self.cmdtxt.ForeColor = Color.Green
- self.cmdtxt.BackColor = Color.DarkGray
- self.cmdtxt.Dock = DockStyle.Fill
- self.cmdtxt.AutoSize = False
- self.cmdtxt.Font = Font(self.cmdtxt.Font.FontFamily.GenericSansSerif, 15);
- self.cmdbtn = Button()
- self.cmdbtn.FlatStyle = self.cmdbtn.FlatStyle.Popup
- self.cmdbtn.BackColor = Color.Green
- self.cmdbtn.Dock = DockStyle.Right
- self.cmdbtn.Text = "Send"
- self.cmdbtn.Click += self.cmdbtn_click
- self.cmdvtxt = TextBox()
- self.cmdvtxt.BorderStyle = self.cmdvtxt.BorderStyle.None
- self.cmdvtxt.Multiline = True
- self.cmdvtxt.ForeColor = Color.Green
- self.cmdvtxt.BackColor = Color.Black
- self.cmdvtxt.Dock = DockStyle.Fill
- self.cmdvtxt.ReadOnly = True
- self.cmdvtxt.ScrollBars = self.cmdvtxt.ScrollBars.Both
- self.tablist.TabPages.Add("Leaders")
- self.leaderList = ListBox()
- self.leaderList.Dock = DockStyle.Fill
- for user in self.BOT.leaderGroup:
- self.leaderList.Items.Add(str(user))
- self.tablist.TabPages.Add("BOT options")
- self.tabbotoptions = TabControl()
- self.tabbotoptions.Dock = DockStyle.Fill
- self.tabbotoptions.TabPages.Add("Config")
- self.tabbotoptions.TabPages.Add("Inventory")
- self.tabbotoptions.TabPages.Add("Drop list")
- self.tabbotoptions.TabPages.Add("Quest list")
- self.tabbotoptions.SelectedIndexChanged += self.resize
- self.loadQuestGUI()
- self.resize("","")
- self.Load += self.resize
- self.Resize += self.resize
- self.configpanel = Panel()
- self.configpanel.Width = 300
- self.configpanel.Dock = DockStyle.Right
- self.botconfiglist = ListView()
- self.botconfiglist.Columns.Add("Name")
- self.botconfiglist.Columns.Add("Value")
- self.botconfiglist.Columns.Add("Type")
- self.botconfiglist.MultiSelect = False
- self.botconfiglist.GridLines = True
- self.botconfiglist.FullRowSelect = True
- self.botconfiglist.BorderStyle = self.botconfiglist.BorderStyle.Fixed3D
- self.botconfiglist.View = self.botconfiglist.View.Details
- self.botconfiglist.Dock = DockStyle.Fill
- self.botconfiglist.Click += self.moveconfigedit
- self.loadbotconfig()
- self.botconfiglistbtn = Button()
- self.botconfiglistbtn.Width = 300
- self.botconfiglistbtn.Text = "Update"
- self.botconfiglistbtn.Click += self.loadbotconfigBtn
- self.botconfiglistbtn.Dock = DockStyle.Bottom
- #isinstance(value,dict)
- self.botgroupconfig = GroupBox()
- self.botgroupconfig.Text = "Edit BOT's config"
- self.botgroupconfig.Dock = DockStyle.Fill
- #self.botgroupconfig.Height = 80
- self.botconfigNametxt = TextBox()
- self.botconfigNametxt.Width = 260
- self.botconfigNametxt.Enabled = False
- self.botconfigNametxt.Location = Point(10,20)
- self.botconfigTypetxt = TextBox()
- self.botconfigTypetxt.Location = Point(10, self.botconfigNametxt.Location.Y + self.botconfigNametxt.Height + 5)
- self.botconfigTypetxt.Width = 260
- self.botconfigTypetxt.Enabled = False
- self.botconfigValuetxt = ComboBox()
- self.botconfigValuetxt.Width = 260
- self.botconfigValuetxt.Location = Point(10, self.botconfigTypetxt.Location.Y + self.botconfigTypetxt.Height + 5)
- self.botconfigValuetxt.Enabled = False
- self.botconfigEditbtn = Button()
- self.botconfigEditbtn.Click += self.changeconfigvalue
- self.botconfigEditbtn.Text = "Change"
- self.botconfigValuetxt.Width = self.botconfigNametxt.Width - self.botconfigEditbtn.Width - 3
- self.botconfigEditbtn.Location = Point(self.botconfigValuetxt.Location.X + self.botconfigValuetxt.Width + 3, self.botconfigValuetxt.Location.Y)
- self.botconfigValuetxt.Enabled = False
- self.tablist.TabPages[5].Controls.Add(self.tabbotoptions)
- self.tabbotoptions.TabPages[0].Controls.Add(self.botgroupconfig)
- self.botgroupconfig.Controls.Add(self.botconfigNametxt)
- self.botgroupconfig.Controls.Add(self.botconfigValuetxt)
- self.botgroupconfig.Controls.Add(self.botconfigEditbtn)
- self.botgroupconfig.Controls.Add(self.botconfigTypetxt)
- self.tabbotoptions.TabPages[0].Controls.Add(self.configpanel)
- self.configpanel.Controls.Add(self.botconfiglist)
- self.configpanel.Controls.Add(self.botconfiglistbtn)
- #self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
- self.inventorylist = ListView()
- self.inventorylist.Columns.Add("Item ID")
- self.inventorylist.Columns.Add("Item name")
- self.inventorylist.Columns.Add("Ammount")
- self.inventorylist.Columns.Add("Max ammount")
- self.inventorylist.Columns.Add("Price(gold)")
- self.inventorylist.Columns.Add("Level")
- self.inventorylist.Columns.Add("bHouse")
- self.inventorylist.Columns.Add("Type")
- self.inventorylist.MultiSelect = False
- self.inventorylist.GridLines = True
- self.inventorylist.FullRowSelect = True
- self.inventorylist.BorderStyle = self.inventorylist.BorderStyle.Fixed3D
- self.inventorylist.View = self.inventorylist.View.Details
- self.inventorylist.Dock = DockStyle.Fill
- self.inventorylist.Click += self.inventoryClick
- self.loadinventorybtn = Button()
- self.loadinventorybtn.Text = "Load"
- self.loadinventorybtn.Click += self.loadinventorybtn_click
- self.loadinventorybtn.Dock = DockStyle.Bottom
- self.inventorypanel1 = Panel()
- self.inventorypanel1.Dock = DockStyle.Bottom
- self.equipbtn = Button()
- self.equipbtn.Text = "Equip"
- self.equipbtn.Click += self.equipItem
- self.equipbtn.Location = Point(10, 10)
- self.inventorysellbtn = Button()
- self.inventorysellbtn.Text = "Sell"
- self.inventorysellbtn.Click += self.sellItem
- self.inventorysellbtn.Location = Point(self.equipbtn.Location.X + self.equipbtn.Width + 5, 10)
- self.inventoryremovebtn = Button()
- self.inventoryremovebtn.Text = "Remove"
- self.inventoryremovebtn.Click += self.removeItem
- self.inventoryremovebtn.Location = Point(self.inventorysellbtn.Location.X + self.inventorysellbtn.Width + 5, 10)
- self.removeitemnumeric = NumericUpDown()
- self.removeitemnumeric.Text = "1"
- self.removeitemnumeric.DecimalPlaces = 0
- self.removeitemnumeric.Increment = 1
- self.removeitemnumeric.Minimum = 1
- self.removeitemnumeric.Location = Point(self.inventoryremovebtn.Location.X + self.inventoryremovebtn.Width + 5, 10)
- self.inventorypanel1.Controls.Add(self.inventorysellbtn)
- self.inventorypanel1.Controls.Add(self.inventoryremovebtn)
- self.inventorypanel1.Controls.Add(self.removeitemnumeric)
- self.inventorypanel1.Controls.Add(self.equipbtn)
- self.inventorypanel1.Height = 40
- self.tabbotoptions.TabPages[1].Controls.Add(self.inventorypanel1)
- self.tabbotoptions.TabPages[1].Controls.Add(self.loadinventorybtn)
- self.tabbotoptions.TabPages[1].Controls.Add(self.inventorylist)
- self.inventorypanel1.BringToFront()
- self.inventorylist.BringToFront()
- self.waitingitemlist = ListView()
- self.waitingitemlist.Columns.Add("Item ID")
- self.waitingitemlist.Columns.Add("Item name")
- self.waitingitemlist.Columns.Add("Ammount")
- self.waitingitemlist.Columns.Add("Max ammount")
- self.waitingitemlist.Columns.Add("Price(gold)")
- self.waitingitemlist.Columns.Add("Level")
- self.waitingitemlist.Columns.Add("bHouse")
- self.waitingitemlist.Columns.Add("Type")
- self.waitingitemlist.MultiSelect = False
- self.waitingitemlist.GridLines = True
- self.waitingitemlist.FullRowSelect = True
- self.waitingitemlist.BorderStyle = self.waitingitemlist.BorderStyle.Fixed3D
- self.waitingitemlist.View = self.waitingitemlist.View.Details
- self.waitingitemlist.Dock = DockStyle.Fill
- self.waitingitemlist.Click += self.waitingitemClick
- self.waitingitemlistupdatebtn = Button()
- self.waitingitemlistupdatebtn.Text = "Refresh/Load"
- self.waitingitemlistupdatebtn.Dock = DockStyle.Bottom
- self.waitingitemlistupdatebtn.Click += self.loadwaitingitemlistbtnClick
- self.waitingitemlistpanel = Panel()
- self.waitingitemlistpanel.Height = 40
- self.waitingitemlistpanel.Dock = DockStyle.Bottom
- self.waitingitemlistgetbtn = Button()
- self.waitingitemlistgetbtn.Location = Point(10,10)
- self.waitingitemlistgetbtn.Text = "Get item"
- self.waitingitemlistgetbtn.Click += self.getitem
- self.waitingitemlistpanel.Controls.Add(self.waitingitemlistgetbtn)
- self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlistpanel)
- self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlistupdatebtn)
- self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlist)
- self.waitingitemlist.BringToFront()
- self.loadpluginbtn = Button()
- self.loadpluginbtn.Click += self.loadpluginbtns
- self.loadpluginbtn.Text = "Load"
- self.loadpluginbtn.Location = Point(5,5)
- self.tablist.TabPages.Add("Plugin loader")
- self.loadpluginbtn = Button()
- self.loadpluginbtn.Click += self.loadpluginbtns
- self.loadpluginbtn.Text = "Load"
- self.loadpluginbtn.Location = Point(5,5)
- self.loadplugintxt = TextBox()
- self.loadplugintxt.Width = 300
- self.loadplugintxt.Location = Point(self.loadpluginbtn.Location.X + self.loadpluginbtn.Width + 2, 5)
- self.tablist.TabPages[6].Controls.Add(self.loadpluginbtn)
- self.tablist.TabPages[6].Controls.Add(self.loadplugintxt)
- self.btnAddLeader = Button()
- self.btnAddLeader.Text = "Add"
- self.btnAddLeader.Width = 70
- self.btnAddLeader.Click += self.addLeader
- self.btnAddLeader.Location = Point(5,5)
- self.txtLeader = TextBox()
- self.txtLeader.Width = 200
- self.txtLeader.Location = Point(self.btnAddLeader.Width + self.btnAddLeader.Location.X + 5 ,5)
- self.btnRemoveLeader = Button()
- self.btnRemoveLeader.Text = "Remove"
- self.btnRemoveLeader.Width = 70
- self.btnRemoveLeader.Location = Point(self.txtLeader.Width + self.txtLeader.Location.X + 5 ,5)
- self.btnRemoveLeader.Click += self.removeLeader
- self.lblLeader = Label()
- self.lblLeader.Text = "People who is in \r\n the list can control bot."
- self.lblLeader.AutoSize = True
- self.lblLeader.Location = Point(self.btnRemoveLeader.Width + self.btnRemoveLeader.Location.X + 5 ,5)
- self.panel4 = Panel()
- self.panel4.Dock = DockStyle.Bottom
- self.panel4.Height = 30
- self.panel4.Controls.Add(self.btnRemoveLeader)
- self.panel4.Controls.Add(self.btnAddLeader)
- self.panel4.Controls.Add(self.txtLeader)
- self.panel4.Controls.Add(self.lblLeader)
- self.tablist.TabPages[4].Controls.Add(self.leaderList)
- self.tablist.TabPages[4].Controls.Add(self.panel4)
- self.panel3 = Panel()
- self.panel3.Dock = DockStyle.Bottom
- self.panel3.Height = 25
- self.panel3.BackColor = Color.Black
- self.tablist.TabPages[3].Controls.Add(self.cmdvtxt)
- self.tablist.TabPages[3].Controls.Add(self.panel3)
- self.cmdvtxt.BringToFront()
- self.panel3.Controls.Add(self.cmdtxt)
- self.panel3.Controls.Add(self.cmdbtn)
- self.startBotThread()
- #pyThread(target=self.allowCommanding, args=[]).start()
- #self.invandwaitingTimer = formTimer()
- #self.invandwaitingTimer.Tick += self.refreshinvandwaiting
- #self.invandwaitingTimer.Interval = 1000
- #self.invandwaitingTimer.Start()
- pass
- def loadQuestGUI(self):
- self.questLabel = Label()
- self.questLabel.AutoSize = True
- self.questLabel.Text = "Items needed : "
- self.questLabel.Location = Point(182,10)
- self.questBox = ListView()
- self.questBox.Columns.Add("Quests")
- self.questBox.Columns[0].Width = 150
- self.questBox.Location = Point(10, 10)
- self.questBox.Width = 150
- self.questBox.Height = self.tabbotoptions.TabPages[3].Height- 30
- self.questBox.GridLines = True
- self.questBox.FullRowSelect = True
- self.questBox.BorderStyle = self.questBox.BorderStyle.Fixed3D
- self.questBox.View = self.questBox.View.Details
- self.questBox.GridLines = True
- self.questBoxFullRowSelect = True
- self.questBox.BorderStyle = self.questBox.BorderStyle.Fixed3D
- self.questBox.View = self.questBox.View.Details
- self.questBox.Scrollable = False
- self.questBox.SelectedIndexChanged += self.currentItemi
- self.questTxt = TextBox()
- self.questTxt.Width = self.tabbotoptions.TabPages[3].Width - 192
- self.questTxt.Location = Point(10, 10 + self.questBox.Height)
- self.questTxt.Width = 150
- self.questButton = Button()
- self.questButton.Width = self.tabbotoptions.TabPages[3].Width - 192
- self.questButton.Location = Point(10, 30 + self.questBox.Height)
- self.questButton.Text = "Load Quest"
- self.questButton.Width = 150
- self.questButton.Click += self.loadQuest
- self.quetView = ListView()
- self.quetView.Columns.Add("Item")
- self.quetView.Columns.Add("Current ammount")
- self.quetView.Columns.Add("Needed ammount")
- self.quetView.GridLines = True
- self.quetView.FullRowSelect = True
- self.quetView.BorderStyle = self.serverlist.BorderStyle.Fixed3D
- self.quetView.View = self.quetView.View.Details
- #self.quetView.Dock = DockStyle.Fill
- self.quetView.Columns[1].Width = 120
- self.quetView.Columns[2].Width = 120
- self.turnInButton = Button()
- self.turnInButton.Width = self.tabbotoptions.TabPages[3].Width - 192
- self.turnInButton.Location = Point(182,20 + self.quetView.Height)
- self.turnInButton.Text = "Turn in"
- self.turnInButton.Click += self.turninOraccept
- self.quetView.Location = Point(182,30)
- self.panel6 = Panel()
- self.panel6.Width = 3
- self.panel6.Height = self.tabbotoptions.TabPages[3].Height + 40
- self.panel6.BackColor = Color.Black
- self.panel6.Location = Point(170,0)
- self.tabbotoptions.TabPages[3].Controls.Add(self.questLabel)
- self.tabbotoptions.TabPages[3].Controls.Add(self.questBox)
- self.tabbotoptions.TabPages[3].Controls.Add(self.turnInButton)
- self.tabbotoptions.TabPages[3].Controls.Add(self.quetView)
- self.tabbotoptions.TabPages[3].Controls.Add(self.panel6)
- self.tabbotoptions.TabPages[3].Controls.Add(self.questButton)
- self.tabbotoptions.TabPages[3].Controls.Add(self.questTxt)
- pass
- def getAmmountForQuest(self, itemID):
- if itemID in self.BOT.questItems:
- return str(self.BOT.questItems[itemID]["iQty"])
- else:
- for itemi in self.BOT.inventory:
- if str(itemi[0]) == itemID:
- return str(itemi[2])
- return "0"
- pass
- def currentItemi(self, e, args):
- try:
- self.quetView.Items.Clear()
- self.curQuest = self.questBox.SelectedItems[0].Text
- for itemi in self.BOT.questsData[self.curQuest]["turnin"]:
- itema = ListViewItem()
- itema.Text = str(itemi["ItemID"])
- itema.SubItems.Add(self.getAmmountForQuest(itemi["ItemID"]))
- itema.SubItems.Add(str(itemi["iQty"]))
- #itemlist[itemi["ItemID"]] = itemi["iQty"]
- self.quetView.Items.Add(itema)
- pass
- if self.curQuest not in self.BOT.questlist:
- self.turnInButton.Text = "Accept"
- else:
- self.turnInButton.Text = "Try turn in"
- except:pass
- def turninOraccept(self, e, args):
- if self.curQuest not in self.BOT.questlist:
- for bot in self.botList:
- bot.acceptQuest(self.curQuest)
- self.BOT.acceptQuest(self.curQuest)
- else:
- for bot in self.botList:
- bot.completeQuest(self.curQuest)
- self.BOT.completeQuest(self.curQuest)
- pass
- pass
- def loadQuest(self, e, args):
- self.BOT.sock.send("%xt%zm%getQuests%" + self.BOT.areaID + "%" + self.questTxt.Text + "%" + chr(0))
- pass
- def resize(self, e, args):
- self.questBox.Height = self.tabbotoptions.TabPages[3].Height- 70
- self.quetView.Height = self.tabbotoptions.TabPages[3].Height- 70
- self.quetView.Width = self.tabbotoptions.TabPages[3].Width - 192
- self.turnInButton.Width = self.tabbotoptions.TabPages[3].Width - 192
- self.panel6.Height = self.tabbotoptions.TabPages[3].Height + 20
- self.turnInButton.Location = Point(182,40 + self.quetView.Height)
- self.questButton.Location = Point(10,40 + self.questBox.Height)
- self.questTxt.Location = Point(10,15 + self.questBox.Height)
- def addLeader(self, e, args):
- self.BOT.leaderGroup.append(self.txtLeader.Text)
- self.updateLeader()
- def importplugin(self, plugin):
- try:
- return __import__(plugin)
- except:pass
- def loadplugin(self, plugin):
- try:
- plugin = self.importplugin(plugin)
- plugin.start(self)
- plugin.form = self
- except:pass
- def removeLeader(self, e, args):
- #self.leaderList.Items.Remove(self.leaderList.SelectedItem)
- for i in self.BOT.leaderGroup:
- if i == self.leaderList.SelectedItem.ToString():
- self.BOT.leaderGroup.remove(i)
- self.updateLeader()
- def allowCommanding(self):
- while True:
- if self.BOT.donelogin != True:
- self.cmdbtn.Enabled = False
- self.cmdtxt.Enabled = False
- if self.BOT.donelogin == True:
- self.cmdbtn.Enabled = True
- self.cmdtxt.Enabled = True
- break
- def updateLeader(self):
- self.leaderList.Items.Clear()
- for i in self.BOT.leaderGroup:
- self.leaderList.Items.Add(str(i))
- def getMonsters(self):
- monsters = []
- #while True:
- try:
- monsters = self.BOT.MonsterList
- if len(monsters) != len(self.monsterlist.Items):
- self.monsterlist.Items.Clear()
- for i in monsters:
- item = ListViewItem()
- item.Text = i[0]
- item.SubItems.Add(i[2])
- item.SubItems.Add(i[7])
- item.SubItems.Add(i[1])
- item.SubItems.Add(i[3])
- self.monsterlist.Items.Add(item)
- if len(monsters) == len(self.monsterlist.Items):
- for i in range(0, len(self.monsterlist.Items)):
- self.monsterlist.Items[i].SubItems[0].Text = monsters[i][0]
- self.monsterlist.Items[i].SubItems[1].Text = monsters[i][2]
- self.monsterlist.Items[i].SubItems[2].Text = monsters[i][7]
- self.monsterlist.Items[i].SubItems[3].Text = monsters[i][1]
- self.monsterlist.Items[i].SubItems[4].Text = monsters[i][3]
- except:pass
- def startBotThread(self):
- self.BOT.connecti()
- #self.t = Thread(ThreadStart(self.BOT.keepalive))
- #self.t.IsBackground = True
- #self.t.Start()
- self.botThread = pyThread(target=self.BOT.keepalive)
- self.botThread.start()
- def Claose(self,args,kw):
- Application.Exit()
- Application.ExitThread()
- #self.BOT.mainThread.Join()
- #self.t.Join()
- #del self.t
- #del self.BOT
- pass
- def login(self,e ,kw):
- self.logbtn.Enabled = False
- self.BOT.load(self.txtboxu4.Text,self.txtboxu.Text,self.txtboxu2.Text)
- self.BOT.login()
- self.txtboxu4.Text = self.BOT.page;
- #<servers sName="Twilly" sIP="74.53.22.41" iCount="2io172" iMax="3000" bOnline="1" iChat="0" bUpg="0" sLang="xx"/>
- logindata = self.txtbox1.Text
- serverdata = logindata.split("<servers ")
- self.serverlist.GridLines = True
- self.serverlist.FullRowSelect = True
- self.serverlist.BorderStyle = self.serverlist.BorderStyle.Fixed3D
- self.serverlist.View = self.serverlist.View.Details
- self.serverlist.Dock = DockStyle.Fill
- self.serverlist.MultiSelect = False
- userdata = serverdata[0]
- usplit = serverdata[0].split('"')
- del serverdata[0]
- #self.serverlist.Items[0].SubItems.Add("1")
- self.serverlist.Columns.Add("Servers")
- self.serverlist.Columns.Add("IP")
- self.serverlist.Columns.Add("Users")
- self.serverlist.Columns.Add("Chat")
- self.serverlist.Columns.Add("Language")
- self.serverlist.Columns.Add("Is online")
- self.serverlist.Columns.Add("Is member")
- self.serverlist.AutoSize = True
- self.serverlist.Columns[1].Width = 100
- self.selist = []
- for i in serverdata:
- d = i.split('"')
- item = ListViewItem()
- item.Text = d[1]
- self.selist.append(str(d[1] + " = " + d[3]))
- item.SubItems.Add(d[3])
- item.SubItems.Add(d[5])
- d[11] = d[11].replace("0","Safe")
- d[11]= d[11].replace("2","All")
- item.SubItems.Add(d[11])
- item.SubItems.Add(d[15])
- d[9] = d[9].replace("0","No")
- d[9]= d[9].replace("1","Yes")
- item.SubItems.Add(d[9])
- d[13] = d[13].replace("0","No")
- d[13]= d[13].replace("1","Yes")
- item.SubItems.Add(d[13])
- self.serverlist.Items.Add(item)
- self.tablist.TabPages.Add("Servers")
- self.txtip = TextBox()
- self.txtip.Dock = DockStyle.Fill
- self.btnip = Button()
- self.btnip.Dock = DockStyle.Left
- self.btnip.Text = "Connect"
- self.btnip.Click += self.ipbtn_click
- self.btnip.TextAlign = self.btnip.TextAlign.BottomLeft
- self.btnip.Width = 65
- self.Controls.Add(self.tablist)
- self.panel2 = Panel()
- self.panel2.Dock = DockStyle.Bottom
- self.panel2.Height = 25
- self.panel2.Controls.Add(self.btnip)
- self.panel2.Controls.Add(self.txtip)
- self.tablist.TabPages[1].Controls.Add(self.serverlist)
- self.tablist.TabPages[1].Controls.Add(self.panel2)
- self.txtip.BringToFront()
- self.serverlist.Click+= self.selc
- self.tablist.SelectedTab = self.tablist.TabPages[1]
- self.btnip.Enabled = False
- class aqwbot():
- requestroom = ""
- def setform(self,f):
- self.form = f
- def load(self,boss,bname,bpass):
- self.shops = {}
- self.hList = []
- self.botJson = {}
- self.banList = []
- self.leader = boss
- self.botName = bname
- self.botPass = bpass
- self.IPs = ""
- self.mydata={}
- self.mydata["unm"] = self.botName
- self.mydata["pwd"] = self.botPass
- self.leaderGroup = []
- self.leaderGroup.append(self.leader.lower())
- self.classes = {"18":{0:[1.5, time.time()], 1:[3, time.time()], 2:[4, time.time()], 3:[60, time.time()], 4:[30, time.time()]},
- "252":{0:[1.5, time.time()], 1:[3, time.time()], 2:[4, time.time()], 3:[60, time.time()], 4:[30, time.time()]},
- "971":{0:[1.5, time.time()], 1:[10, time.time()], 2:[10, time.time()], 3:[60, time.time()], 4:[40, time.time()]},
- "16":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
- "407":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
- "15654":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
- "29":{0:[1.5, time.time()], 1:[2, time.time()], 2:[12, time.time()], 3:[6, time.time()], 4:[30, time.time()]},
- "17":{0:[2, time.time()], 1:[6, time.time()], 2:[6, time.time()], 3:[3, time.time()], 4:[60, time.time()]},
- "15653":{0:[2, time.time()], 1:[6, time.time()], 2:[6, time.time()], 3:[3, time.time()], 4:[60, time.time()]},
- "6532":{0:[2, time.time()], 1:[16, time.time()], 2:[5, time.time()], 3:[3, time.time()], 4:[6, time.time()]},
- "15651":{0:[2, time.time()], 1:[6, time.time()], 2:[2, time.time()], 3:[12, time.time()], 4:[20, time.time()]}
- }
- self.classdata = {0:[2, time.time()], 1:[0, time.time()], 2:[0, time.time()], 3:[0, time.time()]}
- #time.time()- self.classdata[skill][1] >= self.classdata[skill][0]
- self.classdata = {}
- self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.bagslots = ""
- self.followbot = False
- self.copyuserbot = False
- self.autogo = False
- self.pet = True
- self.targetc = "0"
- self.targetf = "0"
- self.targetp = ""
- self.targetm = ""#monster target
- self.requestroom = ""
- self.USERS = []
- self.areaID = ""
- self.questlist = []
- self.MP = "100"
- self.HP = "1000"
- self.wantedItemlist = []
- self.waitingitemlist = []
- self.donelogin = False
- self.config = {"leader":self.leader.lower(),"followbot":False,"petbot":False, "copybot":False, "follow":self.targetf, "copy":self.targetc, "pet":self.targetp, "autogo": False}
- self.houseinv =[]
- self.inventory = []
- self.weapon = ""
- self.helm = ""
- self.cape = ""
- self.armor = ""
- self.classarmor = ""
- self.shopitems = []
- self.waitingduels = []
- self.pvp = False
- self.usersdata = {}
- self.strFrame = ""
- self.dueler = ""
- self.mtargets = []
- self.dead = False
- self.deadFrame = ""
- self.deadPad = ""
- self.questItems = {}
- self.questsData = {}
- self.bankItems = {}
- def login(self):
- #self.myplayer = "Art%0D%0Aix"
- self.mydata = {}
- self.myplayer = self.botName
- self.mydata["user"] = self.botName
- self.mydata["pass"] = self.botPass
- params = urllib.urlencode({"unm":self.botName, "user":self.botName, "pwd":self.botPass, "pass":self.botPass})
- headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"}#synesthesialabs.net/cf-userlogin.asp
- conn = httplib.HTTPConnection("augoeides.world:80")#http://game.aqworlds.com/game/cf-userlogin.asp#http://www.fantasyoflore.com/cf-userlogin.asp#http://sw.stercore.com/cf-userlogin.asp
- #http://www.redaq.net/cf-userlogin.php?#www.fantasyoflore.com:80
- #http://www.secretlegends.co/cf-userlogin.asp
- conn.request("POST", "/cf-userlogin.asp", params, headers)
- response = conn.getresponse()
- print response.status, response.reason
- self.page = response.read()
- #self.page = '<login bSuccess="1" userid="75216" iAccess="1" iUpg="1" iAge="24" sToken="shit123" iUpgDays="500" strEmail="shit@gmailc.c" bCCOnly="0" dUpgExp="2050-05-23T21:02:33" strCountryCode="EN" unm="minadbot"><servers sName="Alpha" sIP="167.114.170.162" iCount="17" iMax="50" bOnline="1" iChat="2" bUpg="0" sLang="xx" iPort="5588"/><servers sName="Offline" sIP="0.0.0.0.0" iCount="0" iMax="500" bOnline="0" iChat="2" bUpg="0" sLang="xx" iPort="5588"/></login>'
- print self.page
- self.form.txtbox1.Text = self.page
- self.MonsterList = []
- self.esa = self.page.split('"')
- self.pword = self.page.split('sToken="')[1].split('"')[0];
- print "[BOT] : connected."
- #form.Text = str(self.esa)
- try:
- self.form.txtbox1.Text = self.page
- except:pass
- conn.close()
- del self.mydata
- def connecti(self):
- self.lLoc = ""
- self.USER = ""
- self.mtarget = ""
- self.sock.connect(("185.112.248.73", 8462))
- def docrash(self):
- try:
- for i in range(100000):
- e = pyThread(target = self.crasha, args=[]).start()
- except Exception as ex:print(ex)
- pass
- def crasha(self):
- while True:
- self.move(str(random.randint(300,800)), str(random.randint(300,600)))
- def checkuser(self, user):
- if user !="":
- if user in self.leaderGroup:
- try:
- self.checkforcommand(self.MSG, user)
- except Exception as ex:self.sendwhisper(user, str(ex))
- def checkClass(self, theclass):
- try:
- if str(theclass) in self.classes:
- self.classdata = self.classes[str(theclass)]
- else:
- self.classdata = {0:[2, time.time()], 1:[0, time.time()], 2:[0, time.time()], 3:[0, time.time()]}
- except:pass
- def buyItem(self, itemID, shopItemID, shopID):
- self.sock.send("%xt%zm%buyItem%" + self.areaID + "%" + str(itemID) + "%" + str(shopID) + "%" + str(shopItemID) + "%" + chr(0))
- def loadShop(self, shopID):
- self.sock.send("%xt%zm%loadShop%"+ self.areaID + "%" + str(shopID) + "%" + chr(0))
- def sellitem(self, itemID):
- itemID = str(itemID)
- items = []
- for i in self.inventory:
- items.append(i[0])
- if str(i[0]) == str(itemID):
- item = i
- ammount = i[2]
- break
- if str(itemID) in items:
- if int(ammount) == 1:
- self.sock.send("%xt%zm%sellItem%" + self.areaID + "%" + str(itemID) + "%" + str(ammount) + "%" + self.botID + "%" + chr(0))
- self.sendbotinformation("Selled item %s"%itemID)
- elif int(ammount) > 1:
- if int(item[2]) < int(ammount):
- self.sendbotinformation("Cant sell item because there is only " + str(item[2]) + " items and you trying to remove %s items"%ammount)
- ammount = "0"
- else:
- self.sock.send("%xt%zm%sellItem%" + self.areaID + "%" + str(itemID) + "%" + str(ammount) + "%" + self.botID + "%" + chr(0))
- self.sendbotinformation("Selled %s item! There is is still %s/%s items"%(ammount, str(int(ammount)-1),item[3]))
- if int(ammount) != 0:
- for ko in range(0, len(self.inventory)):
- if str(self.inventory[ko][0]) == str(itemID):
- am = int(int(self.inventory[ko][2]) - 1)
- if am < 1:
- del self.inventory[ko]
- break
- else:
- self.inventory[ko][2] = str(am)
- break
- else:self.sendbotinformation("Item %s is not in inventory, so it can't be selled!"%itemID)
- def removeitem(self, itemID, ammount="1"):
- ammount = str(ammount)
- itemID = str(itemID)
- items = []
- for i in self.inventory:
- items.append(i[0])
- if str(i[0]) == str(itemID):
- item = i
- break
- if str(itemID) in items:
- if int(ammount) == 0:
- self.sendbotinformation("You cant remove 0 items!")
- elif int(ammount) == 1:
- self.sock.send("%xt%zm%removeItem%" + self.areaID + "%" + str(itemID) + "%" + self.botID + "%" + chr(0))
- self.sendbotinformation("Removed 1 item!")
- elif int(ammount) > 1:
- if int(item[2]) < int(ammount):
- self.sendbotinformation("Cant remove item because there is only " + str(item[2]) + " items and you trying to remove %s items"%ammount)
- ammount = "0"
- else:
- self.sock.send("%xt%zm%removeItem%" + self.areaID + "% "+ str(itemID) + "%" + self.botID + "%" + str(ammount) + "%" + chr(0))
- self.sendbotinformation("Removed %s item!"%ammount)
- if int(ammount) != 0:
- for ko in range(0, len(self.inventory)):
- if str(self.inventory[ko][0]) == str(itemID):
- if int(int(self.inventory[ko][2]) - int(ammount)) < 1:
- del self.inventory[ko]
- break
- if int(self.inventory[ko][2]) > 1:
- am = int(ammount)
- ity = int(self.inventory[ko][2])
- if ity - am < 1:
- del self.inventory[ko]
- else:
- self.inventory[ko][2] = str(ity - am)
- break
- else:self.sendbotinformation("%s is not in invetory!"%itemID)
- def sendmsg(self, ms, chat=""):
- try:
- if chat !="":
- self.sock.send("%xt%zm%message%" + str(chat) + "%" + str(ms) + "%zone%" + chr(0))
- else:
- self.sock.send("%xt%zm%message%" + self.areaID + "%" + str(ms) + "%zone%" + chr(0))
- except Exception as error:
- form.sendrecv(str(error))
- def sendme(self, ms, chat=""):
- try:
- if chat !="":
- self.sock.send("%xt%zm%em%"+ str(chat)+"%" + str(ms)+"%event%" + chr(0))
- else:
- self.sock.send("%xt%zm%em%"+ str(self.areaID)+"%" + str(ms)+"%event%" + chr(0))
- except:
- print "ERROR"
- def doemote(self,emote):
- try:
- self.sock.send("%xt%zm%emotea%1%"+str(emote)+"%%" + chr(0))
- except:
- print "ERROR"
- def move(self,x,y):
- try:
- self.sock.send("%xt%zm%mv%" + self.areaID + "%" + str(x) + "%" + str(y) + "%12%" + chr(0))
- except:
- print "ERROR"
- def getQuests(self, data):
- self.gettingquest = True
- self.data.replace(",", "%")
- self.sock.send("%xt%zm%getQuests%" +self.areaID+ "%" + data + "%" + chr(0))
- pass
- def completeQuest(self, quest):
- #questData["oRewards"]["itemsC"]
- if str(quest) in self.questsData:
- itemlist = {}
- questItems = {}
- #form.sendrecv(self.questsData[quest])
- for itemi in self.questsData[quest]["turnin"]:
- itemlist[itemi["ItemID"]] = int(itemi["iQty"])
- for itemi in self.questItems:
- if itemi in itemlist:
- questItems[itemi] = int(self.questItems[itemi]["iQty"])
- for itemi in self.inventory:
- if itemi[0] in itemlist:
- questItems[itemi[0]] = int(itemi[2])
- allDone = 0
- if len(questItems) == len(itemlist):
- for itemi in questItems:
- if questItems[itemi] >= itemlist[itemi]:
- allDone +=1
- if allDone == len(itemlist):
- #MessageBox.Show("YES")
- if "itemsC" in self.questsData[str(quest)]["oRewards"]:
- a = QuestDialog(self, str(quest), [str(self.questsData[str(quest)]["iExp"]), str(self.questsData[str(quest)]["iGold"])], self.questsData[str(quest)]["oRewards"]["itemsC"])
- else:
- a = QuestDialog(self, str(quest), [str(self.questsData[str(quest)]["iExp"]), str(self.questsData[str(quest)]["iGold"])], {})
- a.Show()
- #MessageBox.Show(str(allDone))
- #MessageBox.Show(str(questItems))
- #MessageBox.Show(str(itemlist))
- pass
- def sendwhisper(self,user,ms):
- try:
- self.sock.send("%xt%zm%whisper%1%"+str(ms)+"%"+user+"%"+ chr(0))
- except:
- print "ERROR"
- def goto(self,user):
- try:
- user = user.rstrip(' \t\r\n\0')
- self.sock.send("%xt%zm%cmd%1%goto%"+str(user)+"%" + chr(0))
- self.pvp = False
- except Exception as error:
- sendwhisper(self.config["leader"], error)
- def joinroom(self,room):
- try:
- self.sock.send("%xt%zm%cmd%1%tfer%" + self.botName + "%" + str(room) +"%" + chr(0))
- self.pvp = False
- except:pass
- def sendbotinformation(self, data):
- form.sendrecv("[INFO] : " + data)
- def inviteparty(self, user):
- try:
- self.sock.send("%xt%zm%gp%1%pi%"+str(user)+"%" + chr(0))
- except:pass
- def joinhouse(self, house):
- try:
- self.sock.send("%xt%zm%house%1%"+str(house)+"%" + chr(0))
- except:pass
- def killtargettilldeath(self, target):
- self.mtarget = target
- self.kttd(target)
- pass
- def getMonsterID(self, sname):
- ids = ""
- for i in self.MonsterList:
- if self.MonsterList[i]["strMonName"].lower() == sname.lower():
- if self.MonsterList[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- if int(self.MonsterList[i]["intHP"]) != 0:
- ids = i
- break
- return ids
- def gotoMonster(self, sname):
- ids = ""
- for i in self.MonsterList:
- if self.MonsterList[i]["strMonName"].lower() == sname.lower():
- if self.MonsterList[i]["strFrame"] != self.usersdata[self.botName.lower()]["strFrame"]:
- if int(self.MonsterList[i]["intHP"]) != 0:
- self.movetocell(self.MonsterList[i]["strFrame"], "Enter")
- def setTargetMon(self, name):
- target = self.getMonsterID(name)
- if name != "":
- self.targetm = target
- def attackTarget(self, skill):
- if self.targetm in self.MonsterList:
- if int(self.MonsterList[self.targetm]["intHP"]) <= 0:
- self.targetm = ""
- return
- if self.MonsterList[self.targetm]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- self.attackbyid(self.targetm, skill)
- else:
- self.movetocell(self.MonsterList[self.targetm]["strFrame"], "Enter")
- pass
- else:self.targetm = ""
- def getRandomFMonsterID(self):
- idlist = []
- for i in self.MonsterList:
- if self.MonsterList[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- if int(self.MonsterList[i]["intHP"]) != 0:
- idlist.append(i)
- if idlist != []:
- return idlist[random.randint(0, len(idlist)-1)]
- else:return ""
- def getRandomFUser(self):
- idlist = []
- for i in self.usersdata:
- if self.usersdata[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- if int(self.usersdata[i]["intHP"]) != 0:
- idlist.append(i)
- if idlist != []:
- return idlist[random.randint(0, len(idlist)-1)]
- else:return ""
- def getRandomFUserID(self):
- idlist = []
- for i in self.usersdata:
- if self.usersdata[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- if int(self.usersdata[i]["intHP"]) != 0:
- idlist.append(self.usersdata[i]["entID"])
- if idlist != []:
- return idlist[random.randint(0, len(idlist)-1)]
- else:return ""
- def getUserID(self, sname):
- idlist = []
- if sname in self.usersdata:
- return(self.usersdata[sname]["entID"])
- else:return ""
- def killtargettilldeathbyname(self, target):
- self.mtarget = self.getMonsterID(target)
- self.kttd(self.mtarget)
- pass
- def getNulgathGems(self):
- #{"15385":5, "6135":1}
- completeQuest = True
- while completeQuest:
- if "2566" not in self.questlist:
- self.acceptQuest("2566")
- time.sleep(10)
- if "15385" not in self.questItems:
- self.questItems = {"15385": {"iQty":0}, "6135": {"iQty":0}}
- else:
- while self.questItems["15385"]["iQty"] < 5 and self.questItems["6135"]["iQty"] < 1 or "15385" not in self.questItems:
- if "15385" not in self.questItems or self.questItems["15385"]["iQty"] < 5:
- self.joinroom("gilead")
- time.sleep(4)
- self.movetocell("r8", "Enter")
- time.sleep(1)
- self.move("427", "232")
- while int(self.questItems["15385"]["iQty"]) < 5:
- if self.usersdata[self.botName]["strFrame"] != self.MonsterList["11"]["strFrame"]:
- self.movetocell("r8", "Enter")
- time.sleep(1)
- self.move("427", "232")
- self.killTarget("11")
- if "6135" not in self.questItems or self.questItems["6135"]["iQty"] < 1:
- self.joinroom("elemental")
- time.sleep(4)
- self.movetocell("r5", "Enter")
- time.sleep(1)
- self.move("489", "278")
- while int(self.questItems["6135"]["iQty"]) < 1:
- if self.usersdata[self.botName]["strFrame"] != self.MonsterList["7"]["strFrame"]:
- self.movetocell("r5", "Enter")
- time.sleep(1)
- self.move("489", "278")
- self.killTarget("7")
- completeQuest = False
- self.completeQuest("2566")
- def kttd(self, target):
- self.mtarget = target
- if self.mtarget in self.MonsterList:
- if self.MonsterList[self.mtarget]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- while True:
- try:
- if self.MonsterList[self.mtarget]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
- if self.HP == int(0):
- self.mtarget = ""
- break
- if int(self.MonsterList[self.mtarget]["intHP"]) <=0:
- self.mtarget = ""
- break
- if target != self.mtarget:break
- self.attackbyid(self.mtarget,0)
- time.sleep(0.2)
- else:
- self.mtarget = ""
- break
- except:
- self.mtarget = ""
- self.mtarget = ""
- def battle(self, skill):
- if int(skill) in self.classdata:
- if self.classdata[skill]["tgt"] == "h":
- pass
- elif self.classdata[skill]["tgt"] == "s":
- pass
- pass
- def skillCompiler(self, skill, target):
- pass
- def killTarget(self, target):
- if target in self.MonsterList:
- while True:
- if self.usersdata[self.botName]["strFrame"] == self.MonsterList[target]["strFrame"]:
- self.attackbyid(target, 0)
- if int(self.usersdata[self.botName]["intMP"]) >= 35:
- self.attackbyid(target, 4)
- if int(self.usersdata[self.botName]["intHP"]) <= 1000:
- self.attackbyid(target, 3)
- if int(self.usersdata[self.botName]["intMP"]) >= 50:
- self.attackbyid(target, 2)
- if self.MonsterList[target]["intHP"] == 0 or self.usersdata[self.botName]["intHP"] == 0:break
- time.sleep(0.2)
- else:
- break
- def attack(self, monster, skill):
- try:
- monster = self.getMonsterID(monster)
- if monster !="":
- if int(skill) in self.classdata:
- if self.classdata[int(skill)]["tgt"] == "h":
- ref = self.classdata[int(skill)]["ref"]
- if int(self.usersdata[self.botName]["intHP"]) !=0:
- if self.MonsterList[monster]["strFrame"] == self.usersdata[self.botName]["strFrame"]:
- if int(self.MonsterList[monster]["intHP"]) != 0:
- if self.usersdata[self.botName]["intMP"] >= int(self.classdata[int(skill)]["mp"]):
- if time.time() - float(self.classdata[int(skill)]["curCD"]) >= float(self.classdata[int(skill)]["cd"])/1000:
- self.sock.send("%xt%zm%gar%1%0%" + str(ref) + ">m:"+monster+"%wvz%"+chr(0))
- self.classdata[int(skill)]["curCD"] = time.time()
- if int(skill) != 0:
- for csk in self.classdata:
- if csk!=0 and csk!=int(skill):
- self.classdata[csk]["curCD"] = self.classdata[csk]["curCD"] + 0.2
- else:pass
- else:pass
- except Exception as ex:print ex
- def attackbyid(self, monster, skill):
- try:
- monster = str(monster)
- if monster !="":
- if int(skill) in self.classdata:
- if self.classdata[int(skill)]["tgt"] == "h":
- ref = self.classdata[int(skill)]["ref"]
- if int(self.usersdata[self.botName]["intHP"]) !=0:
- if self.MonsterList[monster]["strFrame"] == self.usersdata[self.botName]["strFrame"]:
- if int(self.MonsterList[monster]["intHP"]) != 0:
- if self.usersdata[self.botName]["intMP"] >= int(self.classdata[int(skill)]["mp"]):
- if time.time() - float(self.classdata[int(skill)]["curCD"]) >= float(self.classdata[int(skill)]["cd"])/1000:
- self.sock.send("%xt%zm%gar%1%0%" + str(ref) + ">m:"+monster+"%wvz%"+chr(0))
- self.classdata[int(skill)]["curCD"] = time.time()
- if int(skill) != 0:
- for csk in self.classdata:
- if csk!=0 and csk!=int(skill):
- self.classdata[csk]["curCD"] = self.classdata[csk]["curCD"] + 0.2
- else:pass
- else:pass
- except Exception as ex:print ex
- def attackplayerbyid(self, ID, skill):
- try:
- ID = str(ID)
- ID = ID.rstrip(' \t\r\n\0')
- skill = str(skill)
- if self.pvp == True:
- if int(self.HP) !=0:
- for i in self.usersdata:
- if str(self.usersdata[i]["entID"]) == ID:
- if self.usersdata[i]["strFrame"] == self.usersdata[i]["strFrame"]:
- if int(self.usersdata[i]["intHP"]) != 0:
- if skill != "0":
- if int(skill)<=4:
- if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
- self.sock.send("%xt%zm%gar%1%0%a" + str(skill) + ">p:"+str(self.usersdata[i]["entID"])+"%wvz%"+chr(0))
- self.classdata[int(skill)][1] = time.time()
- else:
- if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
- self.sock.send("%xt%zm%gar%1%0%aa>p:"+str(self.usersdata[i]["entID"])+"%wvz%" + chr(0))#202731
- self.classdata[int(skill)][1] = time.time()
- break
- except Exception as ex:form.sendrecv(ex)
- def attackplayerbyname(self, name, skill):
- try:
- name = str(name).lower()
- name = name.rstrip(' \t\r\n\0')
- skill = str(skill)
- if self.pvp == True:
- if int(self.HP) !=0:
- if name in self.usersdata:
- if self.usersdata[name]["strFrame"] == self.usersdata[name]["strFrame"]:
- if int(self.usersdata[name]["intHP"]) != 0:
- if skill != "0":
- if int(skill)<=4:
- if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
- self.sock.send("%xt%zm%gar%1%0%a" + str(skill) + ">p:"+str(self.usersdata[name]["entID"])+"%wvz%"+chr(0))
- self.classdata[int(skill)][1] = time.time()
- else:
- if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
- self.sock.send("%xt%zm%gar%1%0%aa>p:"+str(self.usersdata[name]["entID"])+"%wvz%" + chr(0))
- self.classdata[int(skill)][1] = time.time()
- except Exception as ex:form.sendrecv(ex)
- def useSkill(self, skill):
- sList = ["s", "f"]
- skill = int(skill)
- if int(self.usersdata[self.botName.lower()]["intHP"]) !=0:
- if skill in self.classdata:
- if self.classdata[int(skill)]["tgt"] in sList:
- if self.usersdata[self.botName]["intMP"] >= int(self.classdata[int(skill)]["mp"]):
- if time.time() - float(self.classdata[int(skill)]["curCD"]) >= float(self.classdata[int(skill)]["cd"])/1000:
- print "y"
- self.sock.send("%xt%zm%gar%1%2%a" + str(skill) + ">p:" + str(self.usersdata[self.botName.lower()]["entID"]) + "%wvz%" + chr(0))
- self.classdata[int(skill)]["curCD"] = time.time()
- for csk in self.classdata:
- if csk!=0 and csk!=int(skill):
- self.classdata[csk]["curCD"] = self.classdata[csk]["curCD"] + 0.3
- pass
- def acceptQuest(self, quest):
- if quest in self.questlist:
- self.sendbotinformation("Quest is aldery in quest list!")
- else:
- self.questlist.append(str(quest))
- self.sock.send("%xt%zm%acceptQuest%" + self.areaID + "%" + str(quest) + "%" + chr(0))
- self.form.currentItemi("","")
- def doexec(self,co):
- co = co.replace("|","?")
- exec(co)
- def sendPacket(self,packet):
- packet = packet.replace("#037:","%")
- self.sock.send(packet + chr(0))
- def joinGameAccounts(self):
- for bot in self.botList:
- getBot(bot.pword, bot.botName, self.IPs, self.form)
- def loadBotSave(self):
- try:
- self.botList = []
- di = OpenFileDialog()
- di.Title = "Select a listfile"
- di.Filter = "Text files (.txt)|*.txt|All Files (*.*)|*.*"
- di.ShowDialog()
- listfile = StreamReader(di.FileName)
- textfile = listfile.ReadToEnd()
- listfile.Close()
- self.jsonBot = eval(textfile)
- for botti in self.jsonBot:
- bot = aqwbot()
- bot.form = self.form
- bot.load(self.leader, botti, "trollbot123")
- bot.pword = self.jsonBot[botti]
- self.botList.append(bot)
- self.joinGameAccounts()
- except Exception as ex:MessageBox.Show(str(ex))
- def loginAccounts(self):
- self.botList = []
- for useri in self.accountList:
- bot = aqwbot()
- bot.form = self.form
- bot.load(self.leader, useri, "trollbot123")
- bot.login()
- self.botList.append(bot)
- self.botJson[str(useri)] = bot.pword
- self.form.cmdvtxt.Text = str(self.botJson)
- def loadFileList(self):
- try:
- di = OpenFileDialog()
- di.Title = "Select a listfile"
- di.Filter = "Text files (.txt)|*.txt|All Files (*.*)|*.*"
- di.ShowDialog()
- listfile = StreamReader(di.FileName)
- try:
- textfile = listfile.ReadToEnd()
- listfile.Close()
- self.accountList = textfile.split("\r\n")
- except:pass
- MessageBox.Show(str(len(textfile)))
- except:pass
- def compilePlf(self):
- try:
- script = []
- di = OpenFileDialog()
- di.Title = "Select a listfile"
- di.Filter = "Text files (.plf)|*.plf|All Files (*.*)|*.*"
- di.ShowDialog()
- listfile = StreamReader(di.FileName)
- try:
- textfile = listfile.ReadToEnd()
- listfile.Close()
- script = eval(str(textfile))
- except:pass
- pyThread(target=self.plfCompiler, args=[script]).start()
- except:pass
- def plfCompiler(self, script):
- for com in script:
- if com[0] == "Command":
- self.checkforcommand(str(com[1]))
- time.sleep(float(com[2]))
- if com[0] == "Packet":
- self.sock.send(str(com[1]))
- time.sleep(float(com[2]))
- def movetocell(self, frame, enter):
- self.sock.send("%xt%zm%moveToCell%"+self.areaID+"%"+ frame +"%"+ enter +"%" + chr(0))
- self.usersdata[self.botName.lower()]["strFrame"] = frame
- self.usersdata[self.botName.lower()]["strPad"] = enter
- pass
- def equipitem(self, itemID):
- try:
- itemID = str(itemID)
- equipItems = ["Sword", "Dagger", "Staff", "Wand", "Polearm", "Class", "Armor", "Helm", "Cape", "Necklace"]
- inv = []
- for i in self.inventory:
- inv.append(str(i[0]))
- if itemID in inv:
- for i in self.inventory:
- if str(i[0]) == str(itemID):
- if str(i[8]) in equipItems:
- self.sock.send("%xt%zm%equipItem%" + self.areaID + "%" + itemID + "%" + chr(0))
- break
- else:
- self.sendbotinformation("Cant equip that type of item!")
- else:self.sendbotinformation("Cant equip item because its not in inventory!")
- pass
- except:pass
- def unequipitem(self, itemID):
- try:
- itemID = str(itemID)
- equipItems = ["Armor", "Helm", "Cape", "Necklace", "Pet"]
- inv = []
- for i in self.inventory:
- inv.append(str(i[0]))
- if itemID in inv:
- for i in self.inventory:
- if str(i[0]) == str(itemID):
- if str(i[8]) in equipItems:
- self.sock.send("%xt%zm%unequipItem%" + self.areaID + "%" + itemID + "%" + chr(0))
- break
- else:
- self.sendbotinformation("Cant unequip that type of item!")
- else:self.sendbotinformation("Cant unequip item because its not in inventory!")
- pass
- except:pass
- def getItemifpossible(self, itemID):
- itemID = str(itemID)
- aitems = []
- for ai in self.inventory:
- aitems.append(ai[0])
- if len(self.inventory) >= int(self.bagslots):
- print("Cant get item because inventory is full")
- else:
- for i in self.waitingitemlist:
- if i[0] == itemID:
- if itemID in aitems:
- for ko in range(0, len(self.inventory)):
- if self.inventory[ko][0] == itemID:
- if self.inventory[ko][3] != "1":
- if itemID != "-1111":
- self.inventory[ko][2] = str(int(self.inventory[ko][2]) + int(i[2]))
- self.sendbotinformation("added item %s to inventory"%itemID)
- self.sock.send("%xt%zm%getDrop%" + self.areaID + "%" + str(itemID) + "%" + chr(0))
- itemID = "-1111"
- break
- else:pass#sendbotinformation("Items full!")
- else:
- if itemID != "-1111":
- self.sock.send("%xt%zm%getDrop%" + self.areaID + "%" + str(itemID) + "%" + chr(0))
- self.inventory.append(i)
- self.sendbotinformation("added item %s to inventory"%itemID)
- itemID = "-1111"
- break
- def updatebothp(self, info):
- true = True
- false = False
- if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"ct","p"') !=-1 and str(info.find(self.botName.lower())).lower() !=-1:
- try:
- self.roomkakka = eval(info)
- for User in self.roomkakka["b"]["o"]["p"]:
- if User == self.botName.lower():
- for value in self.roomkakka["b"]["o"]["p"][User]:
- if value == "intHP":
- self.HP = self.roomkakka["b"]["o"]["p"][User][value]
- self.usersdata[self.botName.lower()]["intHP"] = self.roomkakka["b"]["o"]["p"][User][value]
- if value == "intMP":
- self.MP = self.roomkakka["b"]["o"]["p"][User][value]
- self.usersdata[self.botName.lower()]["intMP"] = self.roomkakka["b"]["o"]["p"][User][value]
- break
- except:self.sendbotinformation(info)
- def loaderrorMonsterList(self, room):
- monsters = {}
- try:
- self.MonsterList = monsters[room]
- except:
- self.sendbotinformation("Failed to load monsters")
- def getMonsters(self, data):
- e = data
- monsterlist = {}
- monsters = e["b"]["o"]["mondef"]
- monmap = e["b"]["o"]["monmap"]
- monbranch = e["b"]["o"]["monBranch"]
- #form.sendrecv(str(len(monsters)))
- for i in monbranch:
- monsterlist[str(i["MonMapID"])] = {"wDPS":i["wDPS"], "MonID": i["MonID"], "intHP":i["intHP"], "intHPMax":i["intHPMax"], "intMP":i["intMP"], "intMPMax":i["intMPMax"]}
- for i in monsterlist:
- for x in monmap:
- #print x["MonMapID"]
- if str(x["MonMapID"]) == str(i):
- monsterlist[i]["strFrame"] = x["strFrame"]
- monmap.remove(x)
- break
- for a in monsters:
- if str(a["MonID"]) == monsterlist[i]["MonID"]:
- monsterlist[i]["strMonName"] = a["strMonName"]
- monsterlist[i]["intLevel"] = a["intLevel"]
- monsterlist[i]["sRace"] = a["sRace"]
- monsterlist[i]["strBehave"] = a["strBehave"]
- monsterlist[i]["strElement"] = a["strElement"]
- break
- self.sendbotinformation("Loaded %s monsters" % len(monsterlist))
- self.roomfailINT = 0
- self.MonsterList = monsterlist
- def respawarmupdate(self, data):
- monsterID = data.split('%')[4]
- if monsterID in self.MonsterList:
- self.MonsterList[monsterID]["intHP"] = self.MonsterList[monsterID]["intHPMax"]
- self.sendbotinformation(self.MonsterList[monsterID]["strMonName"] + "[" + str(monsterID) + "]: respawarmed whit hp " + str(self.MonsterList[monsterID]["intHPMax"]))
- def updatemonsterlist(self, data2):
- true = True
- false = False
- for i in data2["b"]["o"]["m"]:
- if str(i) in self.MonsterList:
- if "intHP" in data2["b"]["o"]["m"][i]:
- self.MonsterList[i]["intHP"] = data2["b"]["o"]["m"][i]["intHP"]
- self.sendbotinformation(self.MonsterList[i]["strMonName"] + "[" + str(i) + "] : HP changed to " + str(data2["b"]["o"]["m"][i]["intHP"]))
- def getPlayersInroom(self):
- try:
- self.sock.send("%xt%zm%cmd%" + self.areaID + "%who%" + chr(0))
- except Exception as error:return str(error)
- def addwaitingitem(self, itema=[]):
- if itema != []:
- items = []
- for i in self.waitingitemlist:
- items.append(str(i[0]))
- if itema[0] in items:
- for it in range(0, len(self.waitingitemlist)):
- if str(self.waitingitemlist[it][0]) == str(itema[0]):
- self.waitingitemlist[it][2] = str(int(self.waitingitemlist[it][2]) + int(itema[2]))
- self.sendbotinformation("changed item %s ammount to %s"%(itema[0], self.waitingitemlist[it][2]))
- break
- else:
- self.waitingitemlist.append(itema)
- self.sendbotinformation("Added item %s to waitingitems list"%itema[0])
- def checkforcommand(self,value, user=""):
- try:
- if value.startswith("!say "):
- self.sendmsg(value[5:len(value)], self.areaID)
- if value.startswith("!allbot "):
- for bot in self.form.botList:
- bot.checkforcommand(value.split("!allbot ")[1])
- pass
- if value.startswith("!eval "):
- self.sendmsg(eval(value[6:len(value)]), self.areaID)
- if value.startswith("!emote "):
- self.doemote(value[7:len(value)].lower())
- if value.startswith("!house "):
- self.joinhouse(value[7:len(value)].lower())
- if value.startswith("!move "):
- self.move(value[6:len(value)].split(",")[0], value[6:len(value)].split(",")[1])
- if value.startswith("!join "):
- self.requestroom = value[6:len(value)].lower()
- self.joinroom(self.requestroom)
- if value.startswith("!banall"):
- for user in self.usersdata:
- if user not in self.banList:
- user = str(user).replace(" ", "%")
- self.sock.send("%xt%zm%cmd%1%modban%" + user + "%%" + chr(0))
- #self.banList.append(user)
- pass
- if value.startswith("!killtarget "):
- if user == "":
- self.killTarget(value.split(" ")[1])
- else:
- pyThread(target=self.killTarget, args=[value.split(" ")[1]]).start()
- pass
- if value.startswith("!getitem "):
- self.getItemifpossible(value[len("!getitem "):len(value)])
- if value.startswith("!w "):
- self.sendwhisper(value[3:len(value)].split(":")[0].lower(), value[4:len(value)].split(":")[1])
- if value.startswith("!ew "):
- self.sendwhisper(value[4:len(value)].split(":")[0].lower(), str(eval(value[4:len(value)].split(":")[1])))
- if value.startswith("!movetocell "):
- self.movetocell(value[12:len(value)].split(",")[0], str(value[12:len(value)].split(",")[1]))
- if value.startswith("!me "):
- self.sendme(value[4:len(value)], self.areaID)
- if value.startswith("!mew "):
- self.sendme(str(eval(value[5:len(value)])), self.areaID)
- if value.startswith("!summon"):
- if user.lower() not in self.usersdata:
- self.goto(user.lower())
- else:
- if self.usersdata[self.botName.lower()]["strFrame"] != self.usersdata[user.lower()]["strFrame"]:
- self.movetocell(self.usersdata[user.lower()]["strFrame"], self.usersdata[user.lower()]["strPad"])
- self.usersdata[self.botName.lower()]["strFrame"] = self.usersdata[user.lower()]["strFrame"]
- if value.startswith("!acceptquest "):
- self.acceptQuest(value.split("!acceptquest ")[1])
- if value.startswith("!rest"):
- self.sock.send("%xt%zm%emotea%1%rest%" + chr(0))
- self.sock.send("%xt%zm%restRequest%1%%" + chr(0))
- if value.startswith("!exec "):
- exec(value[6:len(value)])
- if value.startswith("!attack "):
- self.attack(value[8:len(value)].split(",")[0], value[8:len(value)].split(",")[1])
- if value.startswith("!attackbyid "):
- self.attackbyid(value[12:len(value)].split(",")[0], value[8:len(value)].split(",")[1])
- if value.startswith("!useskill "):
- self.useSkill(value[10:len(value)])
- if value.startswith("!add "):
- self.leaderGroup.append(value[5:len(value)].lower())
- form.updateLeader()
- if value.startswith("!follow "):
- self.config["follow"] = (value[8:len(value)])
- self.config["follow"] = self.config["follow"].lower()
- self.config["followbot"] = True
- if str(value[8:len(value)]).lower() in self.usersdata:
- if str(self.usersdata[str(value[8:len(value)]).lower()]["ty"]) != "0":
- self.move(self.usersdata[str(value[8:len(value)]).lower()]["tx"], self.usersdata[str(value[8:len(value)]).lower()]["ty"])
- else:self.movetocell(self.usersdata[str(value[8:len(value)]).lower()]["strFrame"], self.usersdata[str(value[8:len(value)]).lower()]["strPad"])
- if value.startswith("!sendpacket "):
- self.sendPacket(value[12:len(value)])
- if value.startswith("!reverse "):
- self.sendmsg(value[9:len(value)][::-1],self.areaID)
- if value.startswith("!copy "):
- self.config["copy"] = (value[6:len(value)].lower())
- self.config["copybot"] = True
- if value.startswith("!pet "):
- self.config["pet"] = (value[5:len(value)])
- self.config["petbot"] = True
- if value.startswith("!getusers"):
- self.getPlayersInroom()
- if value.startswith("!id"):
- self.sendmsg("Your ID is : " + str(self.usersdata[user]["entID"]))
- if value.startswith("!players"):
- players = ""
- for a in self.usersdata:
- players = players + str(a) + ", "
- players = players[0:len(players)-2]
- self.sendmsg("Here is " + str(len(self.usersdata))+ " players. Players : " + players, self.areaID)
- if value.startswith("!autogo "):
- self.config["autogo"] = (eval(value[8:len(value)]))
- self.pet = True
- if value.startswith("!accept"):
- self.sock.send("%xt%zm%gp%1%pa%35%"+ chr(0))
- if value.startswith("!leave"):
- self.sock.send("%xt%zm%gp%1%pl%"+ chr(0))
- if value.startswith("!invite "):
- self.inviteparty(value[8:len(value)])
- if value.startswith("!import "):
- form.loadplugin(value[8:len(value)])
- if value.startswith("!plugin "):
- form.loadplugin(value[8:len(value)])
- if value.startswith("!data "):
- try:
- path='http://client.freecause.com/AdventureQuest/Toolbar/components/ac.php?username=' + value[6:len(value)]
- path2='http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=' + value[6:len(value)]
- path3='http://client.freecause.com/AdventureQuest/Toolbar/components/level.php?username=' + value[6:len(value)]
- req=urllib2.Request(path)
- req.add_header("Content-type", "application/x-www-form-urlencoded")
- req2=urllib2.Request(path2)
- req2.add_header("Content-type", "application/x-www-form-urlencoded")
- req3=urllib2.Request(path3)
- req3.add_header("Content-type", "application/x-www-form-urlencoded")
- dtp = urllib2.urlopen(req).read().split("label='")[1].split("'")[0] + " "
- dtp += urllib2.urlopen(req2).read().split("label='")[1].split("'")[0] + " "
- dtp += urllib2.urlopen(req3).read().split("label='")[1].split("'")[0]
- self.sendmsg(dtp)
- except Exception as ex:self.form.sendrecv(str(ex))
- pass
- if value.startswith("!wdata "):
- try:
- path='http://client.freecause.com/AdventureQuest/Toolbar/components/ac.php?username=' + value[7:len(value)]
- path2='http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=' + value[7:len(value)]
- path3='http://client.freecause.com/AdventureQuest/Toolbar/components/level.php?username=' + value[7:len(value)]
- req=urllib2.Request(path)
- req.add_header("Content-type", "application/x-www-form-urlencoded")
- req2=urllib2.Request(path2)
- req2.add_header("Content-type", "application/x-www-form-urlencoded")
- req3=urllib2.Request(path3)
- req3.add_header("Content-type", "application/x-www-form-urlencoded")
- dtp = urllib2.urlopen(req).read().split("label='")[1].split("'")[0] + " "
- dtp += urllib2.urlopen(req2).read().split("label='")[1].split("'")[0] + " "
- dtp += urllib2.urlopen(req3).read().split("label='")[1].split("'")[0]
- self.sendwhisper(self.USER, dtp)
- except Exception as ex:self.form.sendrecv(str(ex))
- pass
- if value.startswith("!goto "):
- if str(value[6:len(value)]).lower() not in self.usersdata:
- self.goto(str(value[6:len(value)]).lower())
- else:
- if self.usersdata[self.botName.lower()]["strFrame"] != self.usersdata[str(value[6:len(value)]).lower()]["strFrame"]:
- self.movetocell(self.usersdata[str(value[6:len(value)]).lower()]["strFrame"], self.usersdata[str(value[6:len(value)]).lower()]["strPad"])
- self.usersdata[self.botName.lower()]["strFrame"] = self.usersdata[str(value[6:len(value)]).lower()]["strFrame"]
- except Exception as ex:self.sendwhisper(user, str(ex))
- def tryloadMonster(self):
- try:
- if self.roomfailINT == 0:
- self.sendbotinformation("Failed to load monsters. Loading monsters from memory")
- self.loaderrorMonsterList(self.requestroom)
- self.roomfailINT = 0
- finally:
- if self.roomfailINT == 0:
- self.sendbotinformation("Loaded %s monsters."%len(self.MonsterList))
- def uptadeUsersData(self, hpData):
- try:
- if "uoName" in hpData["b"]["o"]["o"]:
- if hpData["b"]["o"]["o"]["uoName"] not in self.usersdata:
- self.usersdata[hpData["b"]["o"]["o"]["uoName"]] = hpData["b"]["o"]["o"]
- self.form.sendrecv("[INFO] : " + str(hpData["b"]["o"]["o"]["uoName"]) + " joined into room.")
- #self.form.uptadeUsers()
- if hpData["b"]["o"]["unm"].lower() in self.usersdata:
- for value in hpData["b"]["o"]["o"]:
- self.usersdata[hpData["b"]["o"]["unm"].lower()][value] = hpData["b"]["o"]["o"][value]
- if "intMP" in hpData["b"]["o"]["o"]:
- self.usersdata[hpData["b"]["o"]["unm"].lower()]["intMP"] = hpData["b"]["o"]["o"]["intMP"]
- if hpData["b"]["o"]["unm"].lower() == self.botName.lower():
- self.form.sendrecv("[INFO] Bot's MP is now : " + str(hpData["b"]["o"]["o"]["intMP"]))
- self.MP = str(hpData["b"]["o"]["o"]["intMP"])
- if "intHP" in hpData["b"]["o"]["o"]:
- self.usersdata[hpData["b"]["o"]["unm"].lower()]["intHP"] = hpData["b"]["o"]["o"]["intHP"]
- if hpData["b"]["o"]["unm"].lower() == self.botName.lower():
- self.HP = str(hpData["b"]["o"]["o"]["intHP"])
- self.form.sendrecv("[INFO] Bot's HP is now : " + str(hpData["b"]["o"]["o"]["intHP"]))
- except:pass
- def uptadeBattleData(self, hpData):
- if "m" in hpData["b"]["o"]:
- self.updatemonsterlist(hpData)
- if "p" in hpData["b"]["o"]:
- for user in hpData["b"]["o"]["p"]:
- for val in hpData["b"]["o"]["p"][user]:
- self.usersdata[user.lower()][val] = hpData["b"]["o"]["p"][user][val]
- if val == "intHP":
- if str(user).lower() == self.botName.lower():
- self.HP = hpData["b"]["o"]["p"][user][val]
- if hpData["b"]["o"]["p"][user][val] == 0:
- if self.dead == False:
- self.form.sendrecv("Respawn by battle")
- self.respawn()
- """
- if "sara" in hpData["b"]["o"]:
- if "p" in hpData["b"]["o"]:
- for i in hpData["b"]["o"]["p"]:
- if i.lower() in self.usersdata:
- if "intHP" in hpData["b"]["o"]["p"][i]:
- self.usersdata[i.lower()]["intHP"] = hpData["b"]["o"]["p"][i]["intHP"]
- if i.lower() == self.botName.lower():
- self.HP = hpData["b"]["o"]["p"][self.botName]["intHP"]
- if hpData["b"]["o"]["p"][self.botName]["intHP"] <=0:
- self.respawn()
- if "sarsa" in hpData["b"]["o"]:
- if "p" in hpData["b"]["o"]:
- for i in hpData["b"]["o"]["p"]:
- if str(i).lower() in self.usersdata:
- if "intMP" in hpData["b"]["o"]["p"][i]:
- self.usersdata[i]["intMP"] = hpData["b"]["o"]["p"][i]["intMP"]
- if str(i).lower() == self.botName.lower():
- self.MP = str(hpData["b"]["o"]["p"][i]["intMP"])
- if "intHP" in hpData["b"]["o"]["p"][i]:
- self.usersdata[i]["intHP"] = hpData["b"]["o"]["p"][i]["intHP"]
- if str(i).lower() == self.botName.lower():
- self.HP = str(hpData["b"]["o"]["p"][i]["intHP"])
- if hpData["b"]["o"]["p"][i]["intHP"] <= 0:
- self.respawn()
- """
- def getWheelData(self, itemdict):
- try:
- allitems = []
- for itemi in self.inventory:
- allitems.append(itemi[0])
- for item in itemdict["b"]["o"]["dropItems"]:
- if item in allitems:
- self.sendbotinformation("get drop inventory")
- itemID = item
- itemAmmount = itemdict["b"]["o"]["dropItems"][item]["iQty"]
- for i in self.inventory:
- if i[0] == itemID:
- itemName = i[1]
- itemMaxAmmount = i[3]
- itemCost = i[4]
- itemDesc = i[5]
- iLvl = i[6]
- bHouse = i[7]
- itemType = i[8]
- self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
- self.sendbotinformation("getdrop succes. inventory load")
- else:
- self.sendbotinformation("get drop not inventory")
- itemID = item
- itemName = itemdict["b"]["o"]["dropItems"][item]["sName"]
- itemAmmount = itemdict["b"]["o"]["dropItems"][item]["iQty"]
- itemMaxAmmount = itemdict["b"]["o"]["dropItems"][item]["iStk"]
- itemDesc = itemdict["b"]["o"]["dropItems"][item]["sDesc"]
- itemType = itemdict["b"]["o"]["dropItems"][item]["sType"]
- itemCost = itemdict["b"]["o"]["dropItems"][item]["iCost"]
- bHouse = itemdict["b"]["o"]["dropItems"][item]["bHouse"]
- iLvl = itemdict["b"]["o"]["dropItems"][item]["iLvl"]
- self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
- #self.addwaitingitem([str(itemID), str(itemName), str(itemAmmount), str(itemMaxAmmount)]) --vanha
- self.sendbotinformation("getdrop succes. drop data load")
- except:pass
- def getDropData(self, itemdict):
- self.itemdict = itemdict
- try:
- try:
- #self.itemdict = eval(info)
- pass
- except:self.sendbotinformation("Cannont make dict eval")
- for item in self.itemdict["b"]["o"]["items"]:
- self.sendbotinformation(item)
- self.allitems = []
- for itemi in self.inventory:
- self.allitems.append(itemi[0])
- self.sendbotinformation("Loaded all items")
- if item in self.allitems:
- self.sendbotinformation("get drop inventory")
- itemID = item
- itemAmmount = self.itemdict["b"]["o"]["items"][item]["iQty"]
- for i in self.inventory:
- if i[0] == itemID:
- itemName = i[1]
- itemMaxAmmount = i[3]
- itemCost = i[4]
- itemDesc = i[5]
- iLvl = i[6]
- bHouse = i[7]
- itemType = i[8]
- self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
- self.sendbotinformation("getdrop succes. inventory load")
- else:
- self.sendbotinformation("get drop not inventory")
- itemID = item
- itemName = self.itemdict["b"]["o"]["items"][item]["sName"]
- itemAmmount = self.itemdict["b"]["o"]["items"][item]["iQty"]
- itemMaxAmmount = self.itemdict["b"]["o"]["items"][item]["iStk"]
- itemDesc = self.itemdict["b"]["o"]["items"][item]["sDesc"]
- itemType = self.itemdict["b"]["o"]["items"][item]["sType"]
- itemCost = self.itemdict["b"]["o"]["items"][item]["iCost"]
- bHouse = self.itemdict["b"]["o"]["items"][item]["bHouse"]
- iLvl = self.itemdict["b"]["o"]["items"][item]["iLvl"]
- self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
- #self.addwaitingitem([str(itemID), str(itemName), str(itemAmmount), str(itemMaxAmmount)]) --vanha
- self.sendbotinformation("getdrop succes. drop data load")
- except:pass
- def doRespawn(self):
- self.dead = True
- self.deadFrame = self.usersdata[self.botName]["strFrame"]
- self.deadPad = self.usersdata[self.botName]["strPad"]
- time.sleep(12)
- if self.dead == True:
- self.form.sendrecv("sended respawn packet")
- self.sock.send("%xt%zm%resPlayerTimed%"+self.areaID+"%"+str(self.usersdata[self.botName.lower()]["entID"])+"%"+ chr(0))
- def respawn(self):
- if self.dead == False:
- self.mtarget = ""
- self.form.sendrecv("respawn started")
- pyThread(target=self.doRespawn, args=[]).start()
- pass
- def checkInfo(self, info):
- true = True
- false = False
- try:
- #%xt%uotls%-1%xxzmage%sp:8,tx:230,ty:455,strFrame:Enter%
- #if info.find("%xt%uotls%-1%"+self.config["follow"]+"%") !=-1:
- if info.find('"intState":0,"intHP":0},"unm":"%s"}'%self.botName)!=-1 or info.find('"'+self.botName+'":{"intState":0,"intHP":0}')!=-1 or int(self.HP) == 0:
- self.mtarget = ""
- time.sleep(11)
- try:
- self.sock.send("%xt%zm%resPlayerTimed%"+self.areaID+"%"+self.entID+"%"+ chr(0))
- if self.pvp == True:
- self.pvp = False
- self.joinroom("battleon")
- self.HP = self.usersdata[self.botName.lower()]["intHPMax"]
- self.usersdata[self.botName.lower()]["intHP"] = self.usersdata[self.botName.lower()]["intHPMax"]
- self.usersdata[self.botName.lower()]["intMP"] = self.usersdata[self.botName.lower()]["intMPMax"]
- except:pass
- #if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"dropItem","items":{"') !=-1:
- if self.config["petbot"] == True:
- try:
- if info.find('{"t":"xt","b":{"r":-1,"o":') !=-1 and info.find('"%s":{'%self.config["pet"]):
- sta = info.split('{"t":"xt","b":{"r":-1,"o":')[1]
- self.sta2 = sta.split('"')
- if self.sta2[1]=="cmd" and self.sta2[3]=="ct":
- if self.sta2[29] == self.config["pet"]:
- if self.mtarget == "":
- pyThread(target=self.killtargettilldeath, args=[self.sta2[25]]).start()
- #%xt%zm%gar%1%1%a1>p:17795,a1>p:16960%wvz%
- except Exception as error:print(str(error))
- if info.find("<msg t='sys'><body action='joinOK'") !=-1:
- try:
- self.areaID = info.split("'")[5]
- users2 = info.split("<u ")
- self.userids = []
- #self.sendbotinformation(info)
- for i in users2:
- if i.find('CDATA[%s]'%self.botName.lower()) !=-1:
- self.botID = i.split("i='")[1].split("'")[0]
- if i.find('CDATA[') !=-1:
- self.userids.append([i.split("i='")[1].split("'")[0], i.split("CDATA[")[1].split("]")[0]])
- except:form.sendrecv("Getting user error")
- if info.find('"moveToArea","areaName":"') !=-1:
- self.areaName = info.split('"areaName":"')[1].split('"')[0]
- self.strFrame = info.split('strFrame":"')[1].split('"')[0]
- self.strPad = info.split('strPad":')[1].split('"')[0]
- pass
- if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"requestFriend","unm":') != -1:
- data = eval(info)
- owner = data["b"]["o"]["unm"]
- self.sock.send("%xt%zm%declineFriend%1%" + owner + "%"+ chr(0))
- pass
- if info.find('{"t":"xt","b":{"r":-1,"o":{"shopinfo":') !=-1:
- shopData = eval(info)
- self.shopName = shopData["b"]["o"]["shopinfo"]["sName"]
- self.shopID = shopData["b"]["o"]["shopinfo"]["ShopID"]
- self.shopitems = []
- for i in shopData["b"]["o"]["shopinfo"]["items"]:
- ShopItemID = i["ShopItemID"]
- ItemID = i["ItemID"]
- sName = i["sName"]
- sDesc = i["sDesc"]
- iCost = i["iCost"]#sDesc
- iLvl = i["iLvl"]
- iReqRep = i["iReqRep"]
- iReqCP = i["iReqCP"]
- itemAmmount = i["iQty"]
- itemMaxAmmount = i["iStk"]
- bHouse = i["bHouse"]
- sType = i["sType"]
- self.shopitems.append([str(ItemID), sName, str(itemAmmount), str(itemMaxAmmount), str(iCost), sDesc, str(iLvl), str(bHouse), sType, str(ShopItemID)])
- self.shops[str(self.shopID)] = [self.shopName, shopData["b"]["o"]["shopinfo"]["items"]]
- #{"t":"xt","b":{"r":-1,"o":{"cmd":"dropItem","items":{"4708":{"sIcon":"iibag","ItemID":4708,"iLvl":1,"sLink":"","sElmt":"None","bTemp":0,"bStaff":0,"iRng":10,"bCoins":0,"iDPS":100,"sES":"None","bPTR":0,"iQSIndex":-1,"sType":"Quest Item","sDesc":"Boxes are always useful for something.","iStk":50,"iCost":100,"bUpg":0,"bHouse":0,"iRty":10,"sName":"Cubes","iQty":1,"iQSValue":0,"sReqQuests":""}}}}}
- #self.shops[str(self.shopID)] = [self.shopName, shopData["b"]["o"]["shopinfo"]["items"]]
- if info.find('%xt%server%-1%')!=-1:
- servStr = ""
- servStr = info.split("%xt%server%-1%")[1]
- servStr = servStr.split("%")[0]#The battle has been decided
- if servStr.startswith("You joined") !=-1:
- #self.getPlayersInroom()
- pass
- form.sendrecv("[SERVER] : " + str(servStr))
- if self.pvp == True:
- if servStr.find("The battle has been decided") !=-1:
- self.joinroom("battleon")
- if self.config["autogo"] == True:
- self.goto(self.config["leader"])
- except:pass
- def checkPacket(self, data):
- data3 = data.split(chr(0))
- for info in data3:
- if info != "":
- if info.find("%xt%whisper%-1%") !=-1:
- try:
- self.msg = info.split("whisper%-1%")
- self.msg2 = self.msg[1]
- self.msg3 = self.msg2.split("%")
- self.MSG = self.msg3[0]
- self.MSG = self.MSG.rstrip(' \t\r\n\0')
- self.USER = self.msg3[1].rstrip(' \t\r\n\0')
- self.checkuser(self.USER)
- form.sendrecv("[WHISPER] %s : "%self.USER + self.MSG)
- info = ""
- except:pass
- elif info.find("party~") !=-1 and info.find("%xt%zm%message%"):
- self.msg = info.split("party~")
- self.msg2 = self.msg[1]
- self.msg3 = self.msg2.split("%")
- self.MSG = self.msg3[0]
- self.USER = self.msg3[1]
- self.checkuser(self.USER)
- form.sendrecv("[PARTY] %s : "%self.USER + self.MSG)
- info = ""
- elif info.find("zone~") !=-1 and info.find("%xt%chatm%") !=-1:
- try:
- self.msg = info.split("zone~")
- self.msg2 = self.msg[1]
- self.msg3 = self.msg2.split("%")
- self.MSG = self.msg3[0]
- self.USER = self.msg3[1].rstrip(' \t\r\n\0')
- if self.USER == self.botName:
- form.sendrecv("[ZONE] %s : "%self.USER + self.MSG)
- self.USER = ""
- self.MSG = ""
- self.entID = self.msg3[2]
- self.areaID = self.msg3[3]
- self.entID = self.entID.rstrip(' \t\r\n\0')
- self.areaID = self.areaID.rstrip(' \t\r\n\0')
- if self.USER != "":
- form.sendrecv("[ZONE] %s : "%self.USER + self.MSG)
- self.checkuser(self.USER)
- info = ""
- except:pass
- elif info.find("%xt%em%-1%") !=-1:
- try:
- self.USER = info.split("%")[4]
- self.MSG = info.split("%")[5]
- self.checkuser(self.USER)
- form.sendrecv("[ME] %s : "%self.USER + self.MSG)
- except:pass
- else:
- self.checkInfo(info)
- def handleXtPacket(self, data):
- try:
- handler = data.split('%')[1]
- action = data.split('%')[2]
- if (handler == "xt"):
- if (action == "emotea"):
- emotea = data.split('%')[4]
- userID = data.split('%')[5]
- #if (userID != self.usersdata[self.botName.lower()]):
- #self.doemote(emotea)
- elif (action == "warning"):
- data.split('%')[3];
- warning = data.split('%')[4]
- form.sendrecv("[WARNING] : " + warning)
- elif (action == "loginResponse"):
- tmessage = data.split('%')[7]
- form.sendrecv("[LOGIN][RESPONSE] : " + tmessage)
- form.sendrecv(data)
- elif (action == "fkoff"):
- msg = data.split('%')[4]
- form.sendrecv("[WHEEL] : " + msg)
- MessageBox.Show(str(msg))
- elif (action == "server"):
- self.areaID = data.split('%')[3]
- warning = data.split('%')[4]
- form.sendrecv("[SERVER] : " + warning)
- elif (action == "respawnMon"):
- self.respawarmupdate(data)
- elif (action == "resTimed"):
- if self.dead == False:
- if hpData["b"]["o"]["o"]["intHP"] <=0:
- self.form.sendrecv("Respawn by usersdata")
- self.respawn()
- else:
- if self.pvp == True:
- self.joinroom("battleon")
- self.dead = False
- else:
- self.movetocell(self.deadFrame, self.deadPad)
- self.dead = False
- elif (action == "whisper"):
- areaID = data.split('%')[3];
- area = data.split('%')[4].split('~')[0];
- self.MSG = data.split('%')[4];
- self.USER = data.split('%')[5];
- if self.USER.lower() != self.botName.lower():
- form.sendrecv("[WHISPER][FROM " + self.USER + "] : " + self.MSG);
- else:
- form.sendrecv("[WHISPER][TO " + data.split('%')[6] + "] : " + self.MSG);
- self.checkuser(self.USER.lower())
- elif (action == "chatm"):
- self.areaID = data.split('%')[3]
- area = data.split('%')[4].split('~')[0]
- self.MSG = data.split('%')[4].split('~')[1]
- self.USER = data.split('%')[5]
- form.sendrecv("[ZONE][" + self.USER + "] : " + self.MSG)
- self.checkuser(self.USER.lower())
- if self.config["copybot"] == True:
- if self.USER !="" or self.USER.lower() != self.botName.lower():
- if self.USER==self.config["copy"]:
- self.sendmsg(self.MSG, self.areaID)
- elif (action == "message"):
- self.areaID = data.split('%')[3]
- area = data.split('%')[4].split('~')[0]
- self.MSG = data.split('%')[4].split('~')[1]
- self.USER = data.split('%')[5]
- form.sendrecv("[PARTY][" + self.USER + "] : " + self.MSG)
- self.checkuser(self.USER.lower())
- #if self.config["copy"]:
- # pass
- elif (action == "em"):
- try:
- self.areaID = data.split('%')[3]
- area = data.split('%')[4].split('~')[0]
- self.MSG = data.split('%')[4].split('~')[1]
- self.USER = data.split('%')[5]
- form.sendrecv("[ME][" + USER + "] : " + MSG)
- self.checkuser(self.USER.lower())
- #if self.config["copy"]:
- # pas
- except:pass
- elif (action == "uotls"):
- USER = data.split('%')[4];
- if (USER.lower() in self.usersdata):
- tx = ""
- ty = ""
- strFrame = ""
- strpad = ""
- userLocations = data.split('%')[5].split(',')
- for value in userLocations:
- if (value.find("tx:")!=-1):
- self.usersdata[USER.lower()]["tx"] = int(value.split(':')[1])
- tx = value.split(':')[1]
- if (value.find("ty:")!=-1):
- self.usersdata[USER.lower()]["ty"] = int(value.split(':')[1])
- ty = value.split(':')[1]
- if (value.find("strFrame:")!=-1):
- self.usersdata[USER.lower()]["strFrame"] = value.split(':')[1]
- strFrame = value.split(':')[1]
- if (value.find("strPad:") !=-1):
- self.usersdata[USER.lower()]["strPad"] = value.split(':')[1]
- strpad = value.split(':')[1]
- if (strFrame == self.usersdata[self.botName.lower()]["strFrame"]):
- if (tx != "0"):
- if self.config["followbot"] == True:
- if self.config["follow"].lower() == USER.lower():
- self.move(tx, ty)
- else:
- if (USER.lower() == self.config["leader"].lower()):
- self.goto(self.leader)
- self.lLoc = "%xt%zm%moveToCell%"+self.areaID+"%"+ strFrame +"%"+ strpad +"%"
- elif (action == "exitArea"):
- USER = str(data.split('%')[5])
- if (USER.lower() in self.usersdata):
- del self.usersdata[USER.lower()]
- self.sendbotinformation(USER + " leaved room.")
- #if (USER.lower() == self.leader.lower()):
- #self.goto(self.leader)
- else:
- pass
- except:pass
- def handleJsonPacket(self, data):
- true = True
- false = False
- null = None
- try:
- action = data["b"]["o"]["cmd"]
- t = data["t"]
- except:
- print "ERRORRRR :" + str(data)
- self.form.cmdvtxt.Text = "ERRORRRR :" + str(data)
- if(t == "xt"):
- if (action == "pi"):
- self.pid = data["b"]["o"]["pid"]
- if (str(data["b"]["o"]["owner"]).lower() in self.leaderGroup):
- pid = data["b"]["o"]["pid"]
- self.sock.send("%xt%zm%gp%1%pa%" + str(pid) + "%" + chr(0))
- elif(action == "uotls"):
- self.uptadeUsersData(data)
- elif (action == "ct"):
- self.uptadeBattleData(data)
- elif (action == "loadHairShop"):
- self.hList.append(data)
- elif (action == "di"):
- owner = data["b"]["o"]["owner"]
- self.dueler = owner.lower()
- if owner.lower() in self.leaderGroup:
- self.sock.send("%xt%zm%da%1%" + owner + "%"+ chr(0))
- time.sleep(3)
- self.movetocell("Enter0", "Spawn")
- self.sock.send("%xt%zm%mtcid%" + self.areaID + "%2%" + chr(0))
- self.pvp = True
- else:
- self.sock.send("%xt%zm%dd%1%" + owner + "%" + chr(0))
- elif (action == "addGoldExp"):
- if "intExp" in data["b"]["o"]:
- self.EXP = int(data["b"]["o"]["intExp"]) + int(self.EXP)
- if "intGold" in data["b"]["o"]:
- self.gold = int(data["b"]["o"]["intGold"]) + int(self.gold)
- elif (action == "moveToArea"):
- form.sendrecv(str(data));
- if "mondef" in data["b"]["o"]:
- form.sendrecv("1");
- self.poopmonster = data
- self.getMonsters(data)
- else:self.MonsterList = {}
- if "uoBranch" in data["b"]["o"]:
- self.usersdata = {}
- for i in range(len(data["b"]["o"]["uoBranch"])):
- self.usersdata[data["b"]["o"]["uoBranch"][i]["uoName"]] = data["b"]["o"]["uoBranch"][i]
- elif (action == "equipItem"):
- if str(data["b"]["o"]["uid"]) == str(self.botID):
- if data["b"]["o"]["strES"] == "Weapon":
- self.weapon = data["b"]["o"]["ItemID"]
- if data["b"]["o"]["strES"] == "he":
- self.helm = data["b"]["o"]["ItemID"]
- if data["b"]["o"]["strES"] == "ba":
- self.cape = data["b"]["o"]["ItemID"]
- if data["b"]["o"]["strES"] == "co":
- self.armor = data["b"]["o"]["ItemID"]
- if data["b"]["o"]["strES"] == "ar":
- self.classarmor = data["b"]["o"]["ItemID"]
- self.checkClass(self.classarmor)
- elif (action == "ps"):
- user = data["b"]["o"]["unm"]
- if str(user).lower() in self.leaderGroup:
- self.sock.send("%xt%zm%gp%1%psa%" + chr(0))
- self.goto(self.config["leader"])#dropItem
- elif (action == "dropItem"):
- self.getDropData(data)
- elif (action == "Wheel"):
- pass
- #MessageBox.Show("Wheel!" + str(self))
- elif (action == "who"):
- self.USERS = []
- self.userids = []
- for i in data["b"]["o"]["users"]:
- self.userids.append([i, data["b"]["o"]["users"][i]["sName"].lower()])
- for i in data["b"]["o"]["users"]:
- self.USERS.append(data["b"]["o"]["users"][i]["sName"].lower())
- elif (action == "unequipItem"):
- if str(data["b"]["o"]["uid"]) == str(self.botID):
- if data["b"]["o"]["strES"] == "Weapon":
- self.weapon = ""
- if data["b"]["o"]["strES"] == "he":
- self.helm = ""
- if data["b"]["o"]["strES"] == "ba":
- self.cape = ""
- if data["b"]["o"]["strES"] == "co":
- self.armor = ""
- if data["b"]["o"]["strES"] == "ar":
- self.classarmor = ""
- elif (action == "initUserDatas"):
- self.form.cmdvtxt.Text = ""
- self.form.sendrecv("DATA :" + str(data))
- try:
- self.gold = data["b"]["o"]["a"][0]["data"]["intDBGold"]
- self.coins = data["b"]["o"]["a"][0]["data"]["intCoins"]
- self.houseSlots = data["b"]["o"]["a"][0]["data"]["iHouseSlots"]
- self.bankSlots = data["b"]["o"]["a"][0]["data"]["iBankSlots"]
- self.EXP = data["b"]["o"]["a"][0]["data"]["intExp"]
- self.EXPtonextlvl = data["b"]["o"]["a"][0]["data"]["intExpToLevel"]
- self.hairID = data["b"]["o"]["a"][0]["data"]["HairID"]
- self.bagslots = data["b"]["o"]["a"][0]["data"]["iBagSlots"]
- self.botLvl = data["b"]["o"]["a"][0]["data"]["intLevel"]
- except:pass
- self.sock.send("%xt%zm%retrieveInventory%" + self.areaID + "%" + self.botID + "%" + chr(0))
- elif (action == "loadInventoryBig"):
- try:
- form.cmdvtxt.Text =""
- form.cmdvtxt.Text += "\r\nLoaded inventory for bot, wich means its ready to go."
- for i in data["b"]["o"]["items"]:
- ItemID = str(i["ItemID"])
- sName = i["sName"]
- sDesc = i["sDesc"]
- iCost = str(i["iCost"]/4)#sDesc
- iLvl = str(i["iLvl"])
- itemAmmount = str(i["iQty"])
- itemMaxAmmount = str(i["iStk"])
- bHouse = str(i["bHouse"])
- sType = i["sType"]
- if sType == "Class":
- itemAmmount = 1
- self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
- if len(data["b"]["o"]["hitems"]) > 0:
- for i in data["b"]["o"]["hitems"]:
- ItemID = i["ItemID"]
- sName = i["sName"]
- sDesc = i["sDesc"]
- iCost = str(i["iCost"]/4)#sDesc
- iLvl = i["iLvl"]
- itemAmmount = i["iQty"]
- itemMaxAmmount = i["iStk"]
- bHouse = i["bHouse"]
- sType = i["sType"]
- self.houseinv.append([str(ItemID), sName, str(itemAmmount), str(itemMaxAmmount), str(iCost), str(sDesc), str(iLvl), str(bHouse), str(sType)])
- except:pass
- elif (action == "sAct"):
- #self.form.sendrecv(action)
- #self.form.sendrecv(str(data))
- for i in range(0, len(data["b"]["o"]["actions"]["active"])):
- self.classdata[i] = data["b"]["o"]["actions"]["active"][i]
- self.classdata[i]["curCD"] = time.time()
- elif (action == "getDrop"):
- form.sendrecv(str(data))
- try:
- itemID = str(data["b"]["o"]["ItemID"])
- if str(data["b"]["o"]["bSuccess"]) != "0":
- for i in self.waitingitemlist[:]:
- if str(i[0]) == str(itemID):
- self.waitingitemlist.remove(i)
- self.form.loadwaitingitemlist()
- pass
- pass
- except:pass
- elif (action == "addItems"):
- tempList = []
- #MessageBox.Show("h")
- for itema in self.questItems:
- tempList.append(itema)
- for itemi in data["b"]["o"]["items"]:
- if itemi not in self.questItems:
- self.questItems[itemi] = data["b"]["o"]["items"][itemi]
- else:
- self.questItems[itemi]["iQty"] += int(data["b"]["o"]["items"][itemi]["iQty"])
- self.form.currentItemi("","")
- elif (action == "getQuests"):
- for quest in data["b"]["o"]["quests"]:
- self.questsData[quest] = data["b"]["o"]["quests"][quest]
- self.form.checkQuestData(self.questsData)
- elif (action == "loadBank"):
- for itemi in data["b"]["o"]["items"]:
- self.bankItems[itemi["ItemID"]] = itemi
- else:
- self.form.sendrecv(str(data))
- pass
- def checkPacketType(self, data):
- true = True
- false = False
- dataSplit = data.split(chr(0))
- for info in dataSplit:
- if info.startswith("{"):
- true = True
- false = False
- null = None
- self.handleJsonPacket(eval(info))
- elif info.startswith("%"):
- self.handleXtPacket(info)
- else:
- print(data)
- pass
- def handlelogin(self, data):
- true = True
- false = False
- data3 = data.split(chr(0))
- for i in data3:
- if i != "":
- info = i
- self.checkPacketType(info)
- if info.find("<allow-access-from domain='*'") !=-1:
- #self.sock.send("<msg t='sys'><body action='verChk' r='0'><ver v='157' /></body></msg>" + chr(0))
- self.form.sendrecv(data);
- if info.find("<msg t='sys'><body action='apiOK' r='0'>") !=-1:
- self.sock.send("<msg t='sys'><body action='login' r='0'><login z='zone_master'><nick><![CDATA[N7B5W8W1Y5B1R5VWVZ~" + self.botName + "]]></nick><pword><![CDATA[" + self.pword + "]]></pword></login></body></msg>"+ chr(0))
- if info.find('gMenu=gameMenu') != -1:
- self.form.sendrecv(info)
- self.sock.send("%xt%zm%firstJoin%1%" + chr(0))
- self.sock.send("%xt%zm%cmd%1%ignoreList%$clearAll%" + chr(0))
- if info.find("joinOK") !=-1:
- try:
- self.areaID = info.split("'")[5]
- users2 = info.split("<u ")
- self.userids = []
- for i in users2:
- if i.find('CDATA[%s]'%self.botName.lower()) !=-1:
- self.botID = i.split("i='")[1].split("'")[0]
- self.userids.append(i.split("i='")[1].split("'")[0])
- if i.find('CDATA[') !=-1:
- self.userids.append([i.split("i='")[1].split("'")[0], i.split("CDATA[")[1].split("]")[0]])
- self.sock.send("%xt%zm%retrieveUserDatas%" + self.areaID + "%" + self.botID + "%" + chr(0))
- except:form.sendrecv("Getting user error")
- if info.find("%xt%server%-1%You joined") !=-1:
- self.sock.send("%xt%zm%moveToCell%" + self.areaID + "%Enter%Spawn%" + chr(0))
- pass
- if info.find("Character load complete") !=-1:
- #del(self.pword)
- del(self.botPass)
- self.lLoc = ""
- self.USER = ""
- self.mtarget = ""
- self.donelogin = True
- break
- def startgamelogin(self):
- firsttime = True
- if firsttime == True:
- self.sock.send("<msg t='sys'><body action='verChk' r='0'><ver v='157' /></body></msg>" + chr(0))
- firsttime = False
- while self.donelogin == False:
- self.data = self.sock.recv(1024).decode("cp1252")
- if self.data.endswith(chr(0)) == True:
- self.handlelogin(self.data)
- else:
- while self.data.endswith(chr(0)) == False:
- self.data = self.data + self.sock.recv(1024).decode("cp1252")
- if self.data.endswith(chr(0)) == True:
- self.handlelogin(self.data)
- break
- if self.donelogin !=False:break
- def startgame(self):
- while True:
- self.data = self.sock.recv(1024).decode("cp1252")
- if self.data.endswith("\x00") == True:
- self.checkPacketType(self.data)
- else:
- while self.data.endswith("\x00") == False:
- self.data = self.data + self.sock.recv(1024).decode("cp1252")
- if self.data.endswith("\x00") == True:
- self.checkPacketType(self.data)
- break
- def keepalive(self):
- self.inventory = []
- self.data = ""
- self.roomfailINT = 0
- self.donelogin = False
- self.botID = "0"
- self.startgamelogin()
- self.startgame()#/house kill confirmed
- class getBot:
- def __init__(self, pword, name, IPs, form):
- try:
- self.BOT = aqwbot()
- self.BOT.load("", name, "")
- self.BOT.myplayer = name
- self.BOT.botName = name
- self.BOT.pword = pword
- self.BOT.setform(form)
- self.BOT.IPs = IPs
- self.BOT.connecti()
- self.BOT.form.botList.append(self.BOT)
- pyThread(target=self.BOT.keepalive, args=[]).start()
- print "yes"#!exec getBot(self.pword, self.botName, self.IPs, self.form)
- except Exception as ex:
- print ex
- Application.EnableVisualStyles()
- Application.SetCompatibleTextRenderingDefault(False)
- form = MyForm()
- print "Gui loaded"
- Application.Run(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement