Advertisement
Guest User

bot

a guest
Feb 27th, 2016
592
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 135.62 KB | None | 0 0
  1. import clr
  2. clr.AddReference('System.Drawing')
  3. clr.AddReference('System.Windows.Forms')
  4. import urllib2, urllib
  5. import sys
  6. #http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=super%20ismo
  7. import copy
  8. import socket
  9. import time
  10. import math
  11. import httplib
  12. import random
  13. import re
  14. #import grabber
  15. from threading import Thread as pyThread
  16. from System import Convert
  17. from System.IO import StreamReader
  18. #from System.Threading import Thread, ThreadStart, ParameterizedThreadStart
  19. from System.Drawing import *
  20. from System.Windows.Forms import Form,TextBox,Button, AnchorStyles , Application,DockStyle,ListView,ListViewItem,TabControl,Label,Panel,MessageBox,MessageBoxButtons,MessageBoxIcon,Control, ListBox, NumericUpDown, GroupBox, ComboBox, NumericUpDown, OpenFileDialog, SaveFileDialog, DataGridViewAutoSizeColumnsMode, DataGridColumnStyle, ColumnHeaderAutoResizeStyle
  21.  
  22. sys.path.append("Lib")
  23. import os
  24. Control.CheckForIllegalCrossThreadCalls = False
  25.  
  26. class ClassTypes:
  27. def auto(self):
  28. return 1
  29.  
  30. def HPLess(self, HP, mHP):
  31. if HP >= mHP:
  32. return 1
  33. else:
  34. return 0
  35.  
  36. def MPLess(self, MP, mMP):
  37. if MP >= mMP:
  38. return 1
  39. else:
  40. return 0
  41.  
  42.  
  43.  
  44.  
  45. class QuestDialog(Form):
  46. def __init__(self, bot, questID, rewards, extra):
  47. self.bot = bot
  48. self.Height = 300
  49. self.Width = 150
  50. self.MaximizeBox = False
  51. self.MinimizeBox = False
  52.  
  53. self.e = len(extra)
  54. self.selecItem = ""
  55.  
  56. self.questID = questID
  57.  
  58. self.extraDict = {}
  59. self.turninButton = Button()
  60. self.turninButton.Location = Point(10, self.Height - self.turninButton.Height - 30)
  61. self.turninButton.Width = self.Width -20
  62. self.turninButton.Click += self.turnin
  63. self.Controls.Add(self.turninButton)
  64. self.turninButton.Text = "Turn in"
  65.  
  66. self.questBox = ListBox()
  67. self.questBox.Location = Point(10,30)
  68. self.questBox.Width = self.Width -20
  69. self.questBox.Height = 150
  70. self.questBox.SelectedIndexChanged += self.selectionchange
  71.  
  72. self.label1 = Label()
  73. self.label1.Location = Point(10,10)
  74.  
  75. if len(extra) != 0:
  76. self.label1.Text = "Select 1 item from the list"
  77. for val in extra:
  78. self.extraDict[extra[val]["sName"]] = extra[val]["ItemID"]
  79. self.questBox.Items.Add(extra[val]["sName"])
  80. else:self.label1.Text = "There is not selectable items";self.questBox.Enabled = False
  81.  
  82. self.label1.AutoSize = True
  83.  
  84. self.label2 = Label()
  85. self.label2.Location = Point(10,180)
  86. self.label2.Text = "Rewards:"
  87. self.label2.AutoSize = True
  88.  
  89. self.labelg = Label()
  90. self.labelg.Location = Point(10,200)
  91. self.labelg.Text = "Gold : " + str(rewards[1])
  92. self.labelg.AutoSize = True
  93.  
  94. self.labelexp = Label()
  95. self.labelexp.Location = Point(10,220)
  96. self.labelexp.Text = "Exp : " + str(rewards[0])
  97. self.labelexp.AutoSize = True
  98.  
  99. self.Controls.Add(self.label1)
  100. self.Controls.Add(self.label2)
  101. self.Controls.Add(self.labelexp)
  102. self.Controls.Add(self.labelg)
  103. self.Controls.Add(self.questBox)
  104.  
  105. self.FormBorderStyle = self.FormBorderStyle.FixedSingle
  106. self.Text = "Quest dialog"
  107.  
  108.  
  109. pass
  110.  
  111. def selectionchange(self, e, args):
  112. try:
  113. self.selecItem = self.questBox.SelectedItem.ToString()
  114. except:pass
  115.  
  116. pass
  117.  
  118. def turnin(self, e, args):
  119. if self.e == 0:
  120. self.bot.sock.send("%xt%zm%tryQuestComplete%" + self.bot.areaID + "%" + str(self.questID) + "%-1%false%wvz%" + chr(0))
  121. self.bot.questlist.remove(str(self.questID))
  122. for itemi in self.bot.questItems:
  123. for itemia in self.bot.questsData[str(self.questID)]["turnin"]:
  124. if str(itemia["ItemID"]) == str(itemi):
  125. self.bot.questItems[itemi]["iQty"] = int(self.bot.questItems[itemi]["iQty"])
  126. self.bot.questItems[itemi]["iQty"] -= int(itemia["iQty"])
  127.  
  128. self.bot.form.currentItemi("","")
  129.  
  130. self.Close()
  131. else:
  132. if self.selecItem !="":
  133. self.bot.sock.send("%xt%zm%tryQuestComplete%" + self.bot.areaID + "%" + str(self.questID) + "%" + self.selecItem + "%false%wvz%" + chr(0))
  134. self.bot.questlist.remove(str(self.questID))
  135. for itemi in self.bot.questItems:
  136. self.bot.questItems[itemi]["iQty"] -= self.bot.questsData[itemi]["iQty"]
  137. self.bot.form.currentItemi("","")
  138. self.Close()
  139.  
  140. else:MessageBox.Show("Select an first item!")
  141.  
  142.  
  143. class MyForm(Form):
  144. def __init__(self):
  145. self.curQuest = ""
  146. self.botList = []
  147. self.botList.append("christmasbot 2")
  148. self.botList.append("ditto1")
  149. self.armor = ""
  150. self.classarmor = ""
  151. self.weapon = ""
  152. self.cape = ""
  153. self.helm = ""
  154. self.itemID2 = ""
  155. self.itemID = ""
  156.  
  157. self.inventoryItems = []
  158. self.waitingitemlistItems = []
  159. self.DoubleBuffered = True
  160. self.Text = "AQWBOT | Minad's Python BOT || Version 1.5 FULL VERSION|| .NET Windows"
  161. self.connected = False
  162. self.MaximizeBox = False
  163. self.Size = Size(610,425)
  164. self.MinimumSize = Size(610,425)
  165. self.tablist = TabControl()
  166. self.tablist.Dock = DockStyle.Fill
  167. self.tablist.TabPages.Add("Login")
  168. self.Closed += self.Claose
  169.  
  170.  
  171. self.txtbox1 = TextBox()
  172. self.txtbox1.Multiline = True
  173. self.txtbox1.Location = Point(0,0)
  174. self.txtbox1.Dock = DockStyle.Fill
  175. self.txtbox1.Visible = False
  176.  
  177. self.panel = Panel()
  178. self.panel.BackColor = Color.LightGray
  179. self.panel.Dock = DockStyle.Bottom
  180. self.panel.Height = 15
  181. self.tablist.TabPages[0].Controls.Add(self.panel)
  182.  
  183. self.lbl1 = Label()
  184. self.lbl1.AutoSize = False
  185. self.lbl1.Dock = DockStyle.Fill
  186. self.lbl1.TextAlign = self.lbl1.TextAlign.BottomCenter
  187. self.lbl1.Text = "Python Bot by minad"
  188. self.lbl1.BackColor = Color.Transparent
  189. self.panel.Controls.Add(self.lbl1)
  190.  
  191. self.lblu4 = Label()
  192. self.lblu4.AutoSize = True
  193. self.lblu4.Location = Point(10,40)
  194. self.lblu4.Text = "Leader :"
  195.  
  196. self.tablist.TabPages[0].Controls.Add(self.lblu4)
  197.  
  198. self.txtboxu4 = TextBox()
  199. self.txtboxu4.Visible = True
  200. self.txtboxu4.Width = 400
  201. self.txtboxu4.Location = Point(self.lblu4.Location.X + self.lblu4.Width + 10,self.lblu4.Location.Y)
  202. self.tablist.TabPages[0].Controls.Add(self.txtboxu4)
  203.  
  204. self.lblu = Label()
  205. self.lblu.AutoSize = True
  206. self.lblu.Location = Point(10,70)
  207. self.lblu.Text = "Name :"
  208. self.tablist.TabPages[0].Controls.Add(self.lblu)
  209.  
  210. self.txtboxu = TextBox()
  211. self.txtboxu.Width = 400
  212. self.txtboxu.Location = Point(self.lblu.Location.X + self.lblu.Width + 10,self.lblu.Location.Y)
  213. self.txtboxu.Visible = True
  214. self.tablist.TabPages[0].Controls.Add(self.txtboxu)
  215.  
  216. self.lblu2 = Label()
  217. self.lblu2.AutoSize = True
  218. self.lblu2.Location = Point(10,100)
  219. self.lblu2.Text = "Pass :"
  220. self.tablist.TabPages[0].Controls.Add(self.lblu2)
  221.  
  222. self.txtboxu2 = TextBox()
  223. self.txtboxu2.Width = 400
  224. self.txtboxu2.Location = Point(self.lblu2.Location.X + self.lblu.Width + 10,self.lblu2.Location.Y)
  225. self.txtboxu2.Visible = True
  226. self.txtboxu2.PasswordChar = Convert.ToChar('*')
  227. self.tablist.TabPages[0].Controls.Add(self.txtboxu2)
  228.  
  229.  
  230. self.logbtn = Button()
  231. self.logbtn.Text = "Login"
  232. self.logbtn.Height = self.txtboxu2.Height * 3
  233. self.logbtn.Width = 400 + self.lblu.Width + 3
  234. self.logbtn.Click += self.login
  235. self.logbtn.Location = Point(10,130)
  236. self.tablist.TabPages[0].Controls.Add(self.logbtn)
  237.  
  238. self.BOT = aqwbot()
  239. print "GUI : created " + str(self.BOT)
  240. self.BOT.setform(self)
  241.  
  242.  
  243. self.serverlist = ListView()
  244. self.monsterlist = ListView()
  245. self.userlist = ListBox()
  246.  
  247. self.Controls.Add(self.txtbox1)
  248. self.Controls.Add(self.tablist)
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255. def selc(self,e,k):
  256. try:
  257. if self.connected == False:
  258. self.txtip.Text = self.serverlist.SelectedItems[0].SubItems[1].Text
  259. self.btnip.Enabled = True
  260. except:pass
  261.  
  262. def checkQuestData(self, data):
  263. #self.questBox.Items.Clear()
  264. for i in data:
  265. item = ListViewItem()
  266. item.Text = str(data[i]["QuestID"])
  267. self.questBox.Items.Add(item)
  268. pass
  269.  
  270. def cmdbtn_click(self,e,kw):
  271. try:
  272. self.BOT.checkforcommand(self.cmdtxt.Text)
  273. self.sendrecv("[CMD]: %s: "%self.cmdtxt.Text)
  274. except:pass
  275. pass
  276.  
  277. def sendrecv(self,data):
  278. try:
  279. if 1==1:
  280. self.cmdvtxt.Text = (self.cmdvtxt.Text + "\r\n" + data)
  281. self.cmdvtxt.SelectionStart = self.cmdvtxt.Text.Length
  282. self.cmdvtxt.ScrollToCaret()
  283. except:pass
  284.  
  285. def loadpluginbtns(self,e,args):
  286. try:
  287. self.loadplugin(self.loadplugintxt.Text)
  288. except:pass
  289.  
  290. def Updateuserlist(self, e ,args):
  291. ulist = []
  292. for i in self.userlist.Items:
  293. ulist.append(i)
  294.  
  295. for i in ulist:
  296. if i not in self.BOT.usersdata:
  297. self.userlist.Items.Remove(i)
  298.  
  299. for i in self.BOT.usersdata:
  300. if i not in self.userlist.Items:
  301. self.userlist.Items.Add(str(i))
  302.  
  303. def addLeader2(self, e, args):
  304. self.BOT.leaderGroup.append(self.userlist.SelectedItem.ToString())
  305. self.updateLeader()
  306.  
  307. def loadwaitingitemlistbtnClick(self, e ,args):
  308. self.loadwaitingitemlist()
  309.  
  310. def waitingitemClick(self, e, args):
  311. try:
  312. self.itemID2 = self.waitingitemlist.SelectedItems[0].Text
  313. except:pass
  314.  
  315. def loadwaitingitemlist(self):
  316. #self.waitingitemlist.DataSource = None
  317. self.waitingitemlist.Items.Clear()
  318. superlist = ["4861", "4771", "4762", "4770"]
  319. self.waitingitemlist.Items.Clear()
  320. if self.BOT.waitingitemlist != []:
  321. for i in self.BOT.waitingitemlist:
  322. #item.SubItems.Add(str(i[5])) desc
  323. item = ListViewItem()
  324. if str(i[0]) in superlist:
  325. item.BackColor = Color.GreenYellow
  326. item.Text = str(i[0])
  327. item.SubItems.Add(str(i[1]))
  328. item.SubItems.Add(str(i[2]))
  329. item.SubItems.Add(str(i[3]))
  330. item.SubItems.Add(str(i[4]))
  331. item.SubItems.Add(str(i[6]))
  332. item.SubItems.Add(str(i[7]))
  333. item.SubItems.Add(str(i[8]))
  334. self.waitingitemlist.Items.Add(item)
  335.  
  336. for bot in self.botList:
  337. for i in bot.waitingitemlist:
  338. #item.SubItems.Add(str(i[5])) desc
  339. item = ListViewItem()
  340. item.Text = str(i[0])
  341. item.SubItems.Add(str(i[1]))
  342. item.SubItems.Add(str(i[2]))
  343. item.SubItems.Add(str(i[3]))
  344. item.SubItems.Add(str(i[4]))
  345. item.SubItems.Add(str(i[6]))
  346. item.SubItems.Add(str(i[7]))
  347. item.SubItems.Add(str(i[8]))
  348. self.waitingitemlist.Items.Add(item)
  349.  
  350. self.waitingitemlistItems = self.BOT.waitingitemlist
  351.  
  352. for bot in self.botList:
  353. for itemi in bot.waitingitemlist:
  354. self.waitingitemlistItems.append(itemi)
  355.  
  356.  
  357.  
  358. def loadinventory(self):
  359. #self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
  360. self.inventorylist.Items.Clear()
  361. kakka = 0
  362. if self.BOT.inventory != []:
  363. for i in self.BOT.inventory:
  364. #item.SubItems.Add(str(i[5])) desc
  365. item = ListViewItem()
  366.  
  367. if str(i[0]) == str(self.BOT.armor):
  368. item.BackColor = Color.Yellow
  369. self.armor = self.BOT.armor
  370. elif str(i[0]) == str(self.BOT.classarmor):
  371. item.BackColor = Color.Yellow
  372. self.classarmor = self.BOT.classarmor
  373. elif str(i[0]) == str(self.BOT.cape):
  374. item.BackColor = Color.Yellow
  375. self.cape = self.BOT.cape
  376. elif str(i[0]) == str(self.BOT.helm):
  377. item.BackColor = Color.Yellow
  378. self.helm = self.BOT.helm
  379. elif str(i[0]) == str(self.BOT.weapon):
  380. item.BackColor = Color.Yellow
  381. self.weapon = self.BOT.weapon
  382. else:
  383. item.BackColor = Color.White
  384.  
  385. item.Text = str(i[0])
  386. item.SubItems.Add(str(i[1]))
  387. item.SubItems.Add(str(i[2]))
  388. item.SubItems.Add(str(i[3]))
  389. item.SubItems.Add(str(i[4]))
  390. kakka += int(i[4])*4
  391. item.SubItems.Add(str(i[6]))
  392. item.SubItems.Add(str(i[7]))
  393. item.SubItems.Add(str(i[8]))
  394. self.inventorylist.Items.Add(item)
  395. self.inventoryItems = self.BOT.inventory
  396. self.inventoryItems = self.BOT.inventory
  397. MessageBox.Show(str(kakka))
  398.  
  399. def inventoryClick(self, e, args):
  400. try:
  401. self.itemID = self.inventorylist.SelectedItems[0].Text
  402. self.removeitemnumeric.Maximum = int(self.inventorylist.SelectedItems[0].SubItems[2].Text)
  403.  
  404. if str(self.itemID) == str(self.BOT.helm):
  405. self.equipbtn.Text = "Unequip"
  406. self.equipbtn.Enabled = True
  407. elif str(self.itemID) == str(self.BOT.cape):
  408. self.equipbtn.Text = "Unequip"
  409. self.equipbtn.Enabled = True
  410. elif str(self.itemID) == str(self.BOT.armor):
  411. self.equipbtn.Text = "Unequip"
  412. self.equipbtn.Enabled = True
  413. elif str(self.itemID) == str(self.BOT.classarmor):
  414. self.equipbtn.Enabled = False
  415. elif str(self.itemID) == str(self.BOT.weapon):
  416. self.equipbtn.Enabled = False
  417. else:
  418. self.equipbtn.Text = "Equip"
  419. self.equipbtn.Enabled = True
  420. except:pass
  421.  
  422.  
  423.  
  424. def loadinventorybtn_click(self, e, args):
  425. self.loadinventory()
  426.  
  427. def equipItem(self, e, args):
  428. if self.equipbtn.Text == "Equip":
  429. self.BOT.equipitem(self.itemID)
  430.  
  431. if self.equipbtn.Text == "Unequip":
  432. self.BOT.unequipitem(self.itemID)
  433.  
  434.  
  435.  
  436.  
  437. def sellItem(self, e, args):
  438. for i in self.BOT.inventory:
  439. if i[0] == self.itemID:
  440. itemName = i[1]
  441.  
  442. answer = str(MessageBox.Show("Are you sure you want to sell %s(%s) "%(itemName, self.itemID), "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
  443. if answer == "Yes":
  444. self.BOT.sellitem(self.itemID)
  445. for bot in self.botList:
  446. bot.sellitem(self.itemID)
  447. self.loadinventory()
  448.  
  449. def removeItem(self, e, args):
  450. try:
  451. for i in self.BOT.inventory:
  452. if i[0] == self.itemID:
  453. itemName = i[1]
  454. answer = str(MessageBox.Show("Are you sure you want to remove %s(%s) "%(itemName, self.itemID), "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
  455. if answer == "Yes":
  456. self.BOT.removeitem(self.itemID, self.removeitemnumeric.Text)
  457. self.loadinventory()
  458. except:pass
  459.  
  460. def refreshinvandwaiting(self, e, args):
  461. if self.inventoryItems != self.BOT.inventory:
  462. self.loadinventory()
  463. if self.waitingitemlistItems != self.BOT.waitingitemlist:
  464. self.loadwaitingitemlist()
  465. if str(self.cape) != str(self.BOT.cape):
  466. self.loadinventory()
  467. if str(self.helm) != str(self.BOT.helm):
  468. self.loadinventory()
  469. if str(self.armor) != str(self.BOT.armor):
  470. self.loadinventory()
  471. if str(self.classarmor) != str(self.BOT.classarmor):
  472. self.loadinventory()
  473. if str(self.weapon) != str(self.BOT.weapon):
  474. self.loadinventory()
  475.  
  476. def loadbotconfig(self):
  477. self.botconfiglist.Items.Clear()
  478. for i in self.BOT.config.items():
  479. item = ListViewItem()
  480. item.Text = str(i[0])
  481. item.SubItems.Add(str(i[1]))#type(e).__name__
  482. item.SubItems.Add(type(i[1]).__name__)
  483. self.botconfiglist.Items.Add(item)
  484.  
  485. def loadbotconfigBtn(self, e, args):
  486. self.loadbotconfig()
  487.  
  488. def moveconfigedit(self, e, args):
  489. self.botconfigNametxt.Text = self.botconfiglist.SelectedItems[0].Text
  490. self.botconfigTypetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[2].Text
  491. if self.botconfiglist.SelectedItems[0].SubItems[2].Text == "bool":
  492. self.botconfigValuetxt.Enabled = True
  493. self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDownList
  494. self.botconfigValuetxt.Items.Clear()
  495. self.botconfigValuetxt.Items.Add("True")
  496. self.botconfigValuetxt.Items.Add("False")
  497. self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
  498. elif self.botconfiglist.SelectedItems[0].SubItems[2].Text == "str":
  499. self.botconfigValuetxt.Enabled = True
  500. self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDown
  501. self.botconfigValuetxt.Items.Clear()
  502. self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
  503. else:
  504. self.botconfigValuetxt.Enabled = True
  505. self.botconfigValuetxt.DropDownStyle = self.botconfigValuetxt.DropDownStyle.DropDown
  506. self.botconfigValuetxt.Items.Clear()
  507. self.botconfigValuetxt.Text = self.botconfiglist.SelectedItems[0].SubItems[1].Text
  508.  
  509. def changeconfigvalue(self, e, args):
  510. try:
  511. if self.botconfigTypetxt.Text == "bool":
  512. self.BOT.config[self.botconfigNametxt.Text] = eval(self.botconfigValuetxt.Text)
  513. elif self.botconfigTypetxt.Text == "str":
  514. self.BOT.config[self.botconfigNametxt.Text] = str(self.botconfigValuetxt.Text)
  515. else:
  516. self.BOT.config[self.botconfigNametxt.Text] = eval(self.botconfigValuetxt.Text)
  517. except:pass
  518.  
  519.  
  520. self.loadbotconfig()
  521.  
  522. def getitem(self, e, args):
  523. self.BOT.getItemifpossible(self.itemID2)
  524. for bot in self.botList:
  525. bot.getItemifpossible(self.itemID2)
  526.  
  527. def roomviewuptader(self):
  528. while True:
  529. try:
  530. self.roomview.updateRoom(self.BOT.usersdata)
  531. except:pass
  532. pass
  533.  
  534. def ipbtn_click(self,e,kw):
  535. self.tabroomlist = TabControl()
  536. self.tabroomlist.Dock = DockStyle.Fill
  537. self.tabroomlist.TabPages.Add("Monsters")
  538. self.tabroomlist.TabPages.Add("Users")
  539.  
  540. self.tablist.TabPages.Add("Room")
  541.  
  542. self.updateuserlistbtn = Button()
  543. self.updateuserlistbtn.Dock = DockStyle.Bottom
  544. self.updateuserlistbtn.Text = "Update list"
  545. self.updateuserlistbtn.Click += self.Updateuserlist
  546.  
  547. self.addtoleaderuserlistbtn = Button()
  548. self.addtoleaderuserlistbtn.Dock = DockStyle.Bottom
  549. self.addtoleaderuserlistbtn.Text = "Add to leaders"
  550. self.addtoleaderuserlistbtn.Click += self.addLeader2
  551.  
  552. self.userlist.Dock = DockStyle.Fill
  553.  
  554. self.monsterlist.Columns.Add("ID")
  555. self.monsterlist.Columns.Add("Monster")
  556. self.monsterlist.Columns.Add("Health")
  557. self.monsterlist.Columns.Add("Room")
  558. self.monsterlist.Columns.Add("DataID")
  559.  
  560. self.monsterlist.GridLines = True
  561. self.monsterlist.FullRowSelect = True
  562. self.monsterlist.BorderStyle = self.serverlist.BorderStyle.Fixed3D
  563. self.monsterlist.View = self.monsterlist.View.Details
  564. self.monsterlist.Dock = DockStyle.Fill
  565. self.monsterlist.Columns[3].Width = 120
  566. self.monsterlist.Columns[4].Width = 120
  567.  
  568. self.monsterpanel = Panel()
  569. self.monsterpanel.Dock = DockStyle.Right
  570. self.monsterpanel.Width = 80
  571.  
  572. self.botskillbutton0 = Button()
  573. self.botskillbutton0.Size = Size(40,40)
  574. self.botskillbutton0.Location = Point(self.monsterpanel.Width/2 - self.botskillbutton0.Width/2,0)
  575. self.botskillbutton0.Text = "0"
  576.  
  577. self.botskillbutton1 = Button()
  578. self.botskillbutton1.Size = self.botskillbutton0.Size
  579. self.botskillbutton1.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton0.Location.Y + self.botskillbutton0.Height + 5)
  580. self.botskillbutton1.Text = "1"
  581.  
  582. self.botskillbutton2 = Button()
  583. self.botskillbutton2.Size = self.botskillbutton0.Size
  584. self.botskillbutton2.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton1.Location.Y + self.botskillbutton0.Height + 5)
  585. self.botskillbutton2.Text = "2"
  586.  
  587. self.botskillbutton3 = Button()
  588. self.botskillbutton3.Size = self.botskillbutton0.Size
  589. self.botskillbutton3.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton2.Location.Y + self.botskillbutton0.Height + 5)
  590. self.botskillbutton3.Text = "3"
  591.  
  592. self.botskillbutton4 = Button()
  593. self.botskillbutton4.Size = self.botskillbutton0.Size
  594. self.botskillbutton4.Location = Point(self.botskillbutton0.Location.X, self.botskillbutton3.Location.Y + self.botskillbutton0.Height + 5)
  595. self.botskillbutton4.Text = "4"
  596.  
  597. self.monsterpanel.Controls.Add(self.botskillbutton0)
  598. self.monsterpanel.Controls.Add(self.botskillbutton1)
  599. self.monsterpanel.Controls.Add(self.botskillbutton2)
  600. self.monsterpanel.Controls.Add(self.botskillbutton3)
  601. self.monsterpanel.Controls.Add(self.botskillbutton4)
  602.  
  603. pyThread(target=self.getMonsters, args=[]).start()
  604.  
  605.  
  606. self.tablist.TabPages[2].Controls.Add(self.tabroomlist)
  607. self.tabroomlist.TabPages[0].Controls.Add(self.monsterlist)
  608. #self.tabroomlist.TabPages[0].Controls.Add(self.monsterpanel)
  609. self.tabroomlist.TabPages[1].Controls.Add(self.userlist)
  610. self.tabroomlist.TabPages[1].Controls.Add(self.updateuserlistbtn)
  611. self.tabroomlist.TabPages[1].Controls.Add(self.addtoleaderuserlistbtn)
  612.  
  613. self.BOT.IPs = self.txtip.Text
  614. self.connected = True
  615. self.btnip.Enabled = False
  616. self.txtip.Enabled = False
  617. self.serverlist.Enabled = False
  618.  
  619. self.tablist.TabPages.Add("commandline")
  620. self.cmdtxt = TextBox()
  621. self.cmdtxt.BorderStyle = self.cmdtxt.BorderStyle.None
  622. self.cmdtxt.ForeColor = Color.Blue
  623. self.cmdtxt.BackColor = Color.DarkGray
  624. self.cmdtxt.Dock = DockStyle.Fill
  625. self.cmdtxt.AutoSize = False
  626. self.cmdtxt.Font = Font(self.cmdtxt.Font.FontFamily.GenericSansSerif, 15);
  627. self.cmdbtn = Button()
  628. self.cmdbtn.FlatStyle = self.cmdbtn.FlatStyle.Popup
  629. self.cmdbtn.BackColor = Color.Blue
  630. self.cmdbtn.Dock = DockStyle.Right
  631. self.cmdbtn.Text = "Send"
  632. self.cmdbtn.Click += self.cmdbtn_click
  633. self.cmdvtxt = TextBox()
  634. self.cmdvtxt.BorderStyle = self.cmdvtxt.BorderStyle.None
  635. self.cmdvtxt.Multiline = True
  636. self.cmdvtxt.ForeColor = Color.Orange
  637. self.cmdvtxt.BackColor = Color.Black
  638. self.cmdvtxt.Dock = DockStyle.Fill
  639. self.cmdvtxt.ReadOnly = True
  640. self.cmdvtxt.ScrollBars = self.cmdvtxt.ScrollBars.Both
  641.  
  642.  
  643. self.tablist.TabPages.Add("Leaders")
  644. self.leaderList = ListBox()
  645. self.leaderList.Dock = DockStyle.Fill
  646. for user in self.BOT.leaderGroup:
  647. self.leaderList.Items.Add(str(user))
  648.  
  649. self.tablist.TabPages.Add("BOT options")
  650. self.tabbotoptions = TabControl()
  651. self.tabbotoptions.Dock = DockStyle.Fill
  652. self.tabbotoptions.TabPages.Add("Config")
  653. self.tabbotoptions.TabPages.Add("Inventory")
  654. self.tabbotoptions.TabPages.Add("Drop list")
  655. self.tabbotoptions.TabPages.Add("Quest list")
  656.  
  657. self.tabbotoptions.SelectedIndexChanged += self.resize
  658.  
  659.  
  660. self.loadQuestGUI()
  661. self.resize("","")
  662. self.Load += self.resize
  663. self.Resize += self.resize
  664. self.configpanel = Panel()
  665. self.configpanel.Width = 300
  666. self.configpanel.Dock = DockStyle.Right
  667.  
  668. self.botconfiglist = ListView()
  669. self.botconfiglist.Columns.Add("Name")
  670. self.botconfiglist.Columns.Add("Value")
  671. self.botconfiglist.Columns.Add("Type")
  672. self.botconfiglist.MultiSelect = False
  673. self.botconfiglist.GridLines = True
  674. self.botconfiglist.FullRowSelect = True
  675. self.botconfiglist.BorderStyle = self.botconfiglist.BorderStyle.Fixed3D
  676. self.botconfiglist.View = self.botconfiglist.View.Details
  677. self.botconfiglist.Dock = DockStyle.Fill
  678. self.botconfiglist.Click += self.moveconfigedit
  679. self.loadbotconfig()
  680.  
  681. self.botconfiglistbtn = Button()
  682. self.botconfiglistbtn.Width = 300
  683. self.botconfiglistbtn.Text = "Update"
  684. self.botconfiglistbtn.Click += self.loadbotconfigBtn
  685. self.botconfiglistbtn.Dock = DockStyle.Bottom
  686. #isinstance(value,dict)
  687.  
  688. self.botgroupconfig = GroupBox()
  689. self.botgroupconfig.Text = "Edit BOT's config"
  690. self.botgroupconfig.Dock = DockStyle.Fill
  691. #self.botgroupconfig.Height = 80
  692.  
  693. self.botconfigNametxt = TextBox()
  694. self.botconfigNametxt.Width = 260
  695. self.botconfigNametxt.Enabled = False
  696. self.botconfigNametxt.Location = Point(10,20)
  697.  
  698. self.botconfigTypetxt = TextBox()
  699. self.botconfigTypetxt.Location = Point(10, self.botconfigNametxt.Location.Y + self.botconfigNametxt.Height + 5)
  700. self.botconfigTypetxt.Width = 260
  701. self.botconfigTypetxt.Enabled = False
  702.  
  703. self.botconfigValuetxt = ComboBox()
  704. self.botconfigValuetxt.Width = 260
  705. self.botconfigValuetxt.Location = Point(10, self.botconfigTypetxt.Location.Y + self.botconfigTypetxt.Height + 5)
  706. self.botconfigValuetxt.Enabled = False
  707.  
  708. self.botconfigEditbtn = Button()
  709. self.botconfigEditbtn.Click += self.changeconfigvalue
  710. self.botconfigEditbtn.Text = "Change"
  711. self.botconfigValuetxt.Width = self.botconfigNametxt.Width - self.botconfigEditbtn.Width - 3
  712. self.botconfigEditbtn.Location = Point(self.botconfigValuetxt.Location.X + self.botconfigValuetxt.Width + 3, self.botconfigValuetxt.Location.Y)
  713. self.botconfigValuetxt.Enabled = False
  714.  
  715.  
  716. self.tablist.TabPages[5].Controls.Add(self.tabbotoptions)
  717. self.tabbotoptions.TabPages[0].Controls.Add(self.botgroupconfig)
  718. self.botgroupconfig.Controls.Add(self.botconfigNametxt)
  719. self.botgroupconfig.Controls.Add(self.botconfigValuetxt)
  720. self.botgroupconfig.Controls.Add(self.botconfigEditbtn)
  721. self.botgroupconfig.Controls.Add(self.botconfigTypetxt)
  722. self.tabbotoptions.TabPages[0].Controls.Add(self.configpanel)
  723. self.configpanel.Controls.Add(self.botconfiglist)
  724. self.configpanel.Controls.Add(self.botconfiglistbtn)
  725.  
  726. #self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
  727.  
  728. self.inventorylist = ListView()
  729. self.inventorylist.Columns.Add("Item ID")
  730. self.inventorylist.Columns.Add("Item name")
  731. self.inventorylist.Columns.Add("Ammount")
  732. self.inventorylist.Columns.Add("Max ammount")
  733. self.inventorylist.Columns.Add("Price(gold)")
  734. self.inventorylist.Columns.Add("Level")
  735. self.inventorylist.Columns.Add("bHouse")
  736. self.inventorylist.Columns.Add("Type")
  737. self.inventorylist.MultiSelect = False
  738. self.inventorylist.GridLines = True
  739. self.inventorylist.FullRowSelect = True
  740. self.inventorylist.BorderStyle = self.inventorylist.BorderStyle.Fixed3D
  741. self.inventorylist.View = self.inventorylist.View.Details
  742. self.inventorylist.Dock = DockStyle.Fill
  743. self.inventorylist.Click += self.inventoryClick
  744.  
  745. self.loadinventorybtn = Button()
  746. self.loadinventorybtn.Text = "Load"
  747. self.loadinventorybtn.Click += self.loadinventorybtn_click
  748. self.loadinventorybtn.Dock = DockStyle.Bottom
  749.  
  750. self.inventorypanel1 = Panel()
  751. self.inventorypanel1.Dock = DockStyle.Bottom
  752.  
  753.  
  754. self.equipbtn = Button()
  755. self.equipbtn.Text = "Equip"
  756. self.equipbtn.Click += self.equipItem
  757. self.equipbtn.Location = Point(10, 10)
  758.  
  759. self.inventorysellbtn = Button()
  760. self.inventorysellbtn.Text = "Sell"
  761. self.inventorysellbtn.Click += self.sellItem
  762. self.inventorysellbtn.Location = Point(self.equipbtn.Location.X + self.equipbtn.Width + 5, 10)
  763.  
  764. self.inventoryremovebtn = Button()
  765. self.inventoryremovebtn.Text = "Remove"
  766. self.inventoryremovebtn.Click += self.removeItem
  767. self.inventoryremovebtn.Location = Point(self.inventorysellbtn.Location.X + self.inventorysellbtn.Width + 5, 10)
  768.  
  769. self.removeitemnumeric = NumericUpDown()
  770. self.removeitemnumeric.Text = "1"
  771. self.removeitemnumeric.DecimalPlaces = 0
  772. self.removeitemnumeric.Increment = 1
  773. self.removeitemnumeric.Minimum = 1
  774. self.removeitemnumeric.Location = Point(self.inventoryremovebtn.Location.X + self.inventoryremovebtn.Width + 5, 10)
  775.  
  776. self.inventorypanel1.Controls.Add(self.inventorysellbtn)
  777. self.inventorypanel1.Controls.Add(self.inventoryremovebtn)
  778. self.inventorypanel1.Controls.Add(self.removeitemnumeric)
  779. self.inventorypanel1.Controls.Add(self.equipbtn)
  780. self.inventorypanel1.Height = 40
  781.  
  782. self.tabbotoptions.TabPages[1].Controls.Add(self.inventorypanel1)
  783. self.tabbotoptions.TabPages[1].Controls.Add(self.loadinventorybtn)
  784. self.tabbotoptions.TabPages[1].Controls.Add(self.inventorylist)
  785. self.inventorypanel1.BringToFront()
  786. self.inventorylist.BringToFront()
  787.  
  788. self.waitingitemlist = ListView()
  789. self.waitingitemlist.Columns.Add("Item ID")
  790. self.waitingitemlist.Columns.Add("Item name")
  791. self.waitingitemlist.Columns.Add("Ammount")
  792. self.waitingitemlist.Columns.Add("Max ammount")
  793. self.waitingitemlist.Columns.Add("Price(gold)")
  794. self.waitingitemlist.Columns.Add("Level")
  795. self.waitingitemlist.Columns.Add("bHouse")
  796. self.waitingitemlist.Columns.Add("Type")
  797. self.waitingitemlist.MultiSelect = False
  798. self.waitingitemlist.GridLines = True
  799. self.waitingitemlist.FullRowSelect = True
  800. self.waitingitemlist.BorderStyle = self.waitingitemlist.BorderStyle.Fixed3D
  801. self.waitingitemlist.View = self.waitingitemlist.View.Details
  802. self.waitingitemlist.Dock = DockStyle.Fill
  803. self.waitingitemlist.Click += self.waitingitemClick
  804.  
  805. self.waitingitemlistupdatebtn = Button()
  806. self.waitingitemlistupdatebtn.Text = "Refresh/Load"
  807. self.waitingitemlistupdatebtn.Dock = DockStyle.Bottom
  808. self.waitingitemlistupdatebtn.Click += self.loadwaitingitemlistbtnClick
  809.  
  810. self.waitingitemlistpanel = Panel()
  811. self.waitingitemlistpanel.Height = 40
  812. self.waitingitemlistpanel.Dock = DockStyle.Bottom
  813.  
  814. self.waitingitemlistgetbtn = Button()
  815. self.waitingitemlistgetbtn.Location = Point(10,10)
  816. self.waitingitemlistgetbtn.Text = "Get item"
  817. self.waitingitemlistgetbtn.Click += self.getitem
  818.  
  819. self.waitingitemlistpanel.Controls.Add(self.waitingitemlistgetbtn)
  820. self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlistpanel)
  821. self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlistupdatebtn)
  822. self.tabbotoptions.TabPages[2].Controls.Add(self.waitingitemlist)
  823. self.waitingitemlist.BringToFront()
  824.  
  825.  
  826. self.loadpluginbtn = Button()
  827. self.loadpluginbtn.Click += self.loadpluginbtns
  828. self.loadpluginbtn.Text = "Load"
  829. self.loadpluginbtn.Location = Point(5,5)
  830.  
  831. self.tablist.TabPages.Add("Plugin loader")
  832. self.loadpluginbtn = Button()
  833. self.loadpluginbtn.Click += self.loadpluginbtns
  834. self.loadpluginbtn.Text = "Load"
  835. self.loadpluginbtn.Location = Point(5,5)
  836.  
  837. self.loadplugintxt = TextBox()
  838. self.loadplugintxt.Width = 300
  839. self.loadplugintxt.Location = Point(self.loadpluginbtn.Location.X + self.loadpluginbtn.Width + 2, 5)
  840. self.tablist.TabPages[6].Controls.Add(self.loadpluginbtn)
  841. self.tablist.TabPages[6].Controls.Add(self.loadplugintxt)
  842.  
  843.  
  844.  
  845. self.btnAddLeader = Button()
  846. self.btnAddLeader.Text = "Add"
  847. self.btnAddLeader.Width = 70
  848. self.btnAddLeader.Click += self.addLeader
  849. self.btnAddLeader.Location = Point(5,5)
  850.  
  851. self.txtLeader = TextBox()
  852. self.txtLeader.Width = 200
  853. self.txtLeader.Location = Point(self.btnAddLeader.Width + self.btnAddLeader.Location.X + 5 ,5)
  854.  
  855. self.btnRemoveLeader = Button()
  856. self.btnRemoveLeader.Text = "Remove"
  857. self.btnRemoveLeader.Width = 70
  858. self.btnRemoveLeader.Location = Point(self.txtLeader.Width + self.txtLeader.Location.X + 5 ,5)
  859. self.btnRemoveLeader.Click += self.removeLeader
  860.  
  861. self.lblLeader = Label()
  862. self.lblLeader.Text = "People who is in \r\n the list can control bot."
  863. self.lblLeader.AutoSize = True
  864. self.lblLeader.Location = Point(self.btnRemoveLeader.Width + self.btnRemoveLeader.Location.X + 5 ,5)
  865.  
  866. self.panel4 = Panel()
  867. self.panel4.Dock = DockStyle.Bottom
  868. self.panel4.Height = 30
  869. self.panel4.Controls.Add(self.btnRemoveLeader)
  870. self.panel4.Controls.Add(self.btnAddLeader)
  871. self.panel4.Controls.Add(self.txtLeader)
  872. self.panel4.Controls.Add(self.lblLeader)
  873. self.tablist.TabPages[4].Controls.Add(self.leaderList)
  874. self.tablist.TabPages[4].Controls.Add(self.panel4)
  875.  
  876.  
  877. self.panel3 = Panel()
  878. self.panel3.Dock = DockStyle.Bottom
  879. self.panel3.Height = 25
  880. self.panel3.BackColor = Color.Black
  881.  
  882. self.tablist.TabPages[3].Controls.Add(self.cmdvtxt)
  883. self.tablist.TabPages[3].Controls.Add(self.panel3)
  884. self.cmdvtxt.BringToFront()
  885. self.panel3.Controls.Add(self.cmdtxt)
  886. self.panel3.Controls.Add(self.cmdbtn)
  887. self.startBotThread()
  888. #pyThread(target=self.allowCommanding, args=[]).start()
  889. #self.invandwaitingTimer = formTimer()
  890. #self.invandwaitingTimer.Tick += self.refreshinvandwaiting
  891. #self.invandwaitingTimer.Interval = 1000
  892. #self.invandwaitingTimer.Start()
  893.  
  894.  
  895.  
  896. pass
  897.  
  898. def clearBtn_click(self,e,args):
  899. try:
  900. self.CMDMon.Text = "";
  901. except:pass
  902.  
  903. def loadQuestGUI(self):
  904. self.questLabel = Label()
  905. self.questLabel.AutoSize = True
  906. self.questLabel.Text = "Items needed : "
  907. self.questLabel.Location = Point(182,10)
  908. self.questBox = ListView()
  909. self.questBox.Columns.Add("Quests")
  910. self.questBox.Columns[0].Width = 150
  911.  
  912. self.questBox.Location = Point(10, 10)
  913. self.questBox.Width = 150
  914. self.questBox.Height = self.tabbotoptions.TabPages[3].Height- 30
  915. self.questBox.GridLines = True
  916. self.questBox.FullRowSelect = True
  917. self.questBox.BorderStyle = self.questBox.BorderStyle.Fixed3D
  918. self.questBox.View = self.questBox.View.Details
  919. self.questBox.GridLines = True
  920. self.questBoxFullRowSelect = True
  921. self.questBox.BorderStyle = self.questBox.BorderStyle.Fixed3D
  922. self.questBox.View = self.questBox.View.Details
  923. self.questBox.Scrollable = False
  924. self.questBox.SelectedIndexChanged += self.currentItemi
  925.  
  926. self.questTxt = TextBox()
  927. self.questTxt.Width = self.tabbotoptions.TabPages[3].Width - 192
  928. self.questTxt.Location = Point(10, 10 + self.questBox.Height)
  929. self.questTxt.Width = 150
  930.  
  931. self.questButton = Button()
  932. self.questButton.Width = self.tabbotoptions.TabPages[3].Width - 192
  933. self.questButton.Location = Point(10, 30 + self.questBox.Height)
  934. self.questButton.Text = "Load Quest"
  935. self.questButton.Width = 150
  936.  
  937. self.questButton.Click += self.loadQuest
  938.  
  939. self.quetView = ListView()
  940. self.quetView.Columns.Add("Item")
  941. self.quetView.Columns.Add("Current ammount")
  942. self.quetView.Columns.Add("Needed ammount")
  943.  
  944.  
  945. self.quetView.GridLines = True
  946. self.quetView.FullRowSelect = True
  947. self.quetView.BorderStyle = self.serverlist.BorderStyle.Fixed3D
  948. self.quetView.View = self.quetView.View.Details
  949. #self.quetView.Dock = DockStyle.Fill
  950. self.quetView.Columns[1].Width = 120
  951. self.quetView.Columns[2].Width = 120
  952.  
  953. self.turnInButton = Button()
  954. self.turnInButton.Width = self.tabbotoptions.TabPages[3].Width - 192
  955. self.turnInButton.Location = Point(182,20 + self.quetView.Height)
  956. self.turnInButton.Text = "Turn in"
  957. self.turnInButton.Click += self.turninOraccept
  958.  
  959. self.quetView.Location = Point(182,30)
  960.  
  961. self.panel6 = Panel()
  962. self.panel6.Width = 3
  963. self.panel6.Height = self.tabbotoptions.TabPages[3].Height + 40
  964. self.panel6.BackColor = Color.Black
  965.  
  966. self.panel6.Location = Point(170,0)
  967.  
  968. self.tabbotoptions.TabPages[3].Controls.Add(self.questLabel)
  969. self.tabbotoptions.TabPages[3].Controls.Add(self.questBox)
  970. self.tabbotoptions.TabPages[3].Controls.Add(self.turnInButton)
  971. self.tabbotoptions.TabPages[3].Controls.Add(self.quetView)
  972. self.tabbotoptions.TabPages[3].Controls.Add(self.panel6)
  973. self.tabbotoptions.TabPages[3].Controls.Add(self.questButton)
  974. self.tabbotoptions.TabPages[3].Controls.Add(self.questTxt)
  975. pass
  976.  
  977. def getAmmountForQuest(self, itemID):
  978. if itemID in self.BOT.questItems:
  979. return str(self.BOT.questItems[itemID]["iQty"])
  980.  
  981.  
  982.  
  983. else:
  984. for itemi in self.BOT.inventory:
  985. if str(itemi[0]) == itemID:
  986. return str(itemi[2])
  987.  
  988. return "0"
  989. pass
  990.  
  991. def currentItemi(self, e, args):
  992. try:
  993. self.quetView.Items.Clear()
  994. self.curQuest = self.questBox.SelectedItems[0].Text
  995. for itemi in self.BOT.questsData[self.curQuest]["turnin"]:
  996. itema = ListViewItem()
  997. itema.Text = str(itemi["ItemID"])
  998. itema.SubItems.Add(self.getAmmountForQuest(itemi["ItemID"]))
  999. itema.SubItems.Add(str(itemi["iQty"]))
  1000. #itemlist[itemi["ItemID"]] = itemi["iQty"]
  1001.  
  1002. self.quetView.Items.Add(itema)
  1003.  
  1004. pass
  1005. if self.curQuest not in self.BOT.questlist:
  1006. self.turnInButton.Text = "Accept"
  1007. else:
  1008. self.turnInButton.Text = "Try turn in"
  1009. except:pass
  1010.  
  1011.  
  1012. def turninOraccept(self, e, args):
  1013. if self.curQuest not in self.BOT.questlist:
  1014. for bot in self.botList:
  1015. bot.acceptQuest(self.curQuest)
  1016. self.BOT.acceptQuest(self.curQuest)
  1017. else:
  1018. for bot in self.botList:
  1019. bot.completeQuest(self.curQuest)
  1020. self.BOT.completeQuest(self.curQuest)
  1021. pass
  1022.  
  1023. pass
  1024.  
  1025.  
  1026. def loadQuest(self, e, args):
  1027. self.BOT.sock.send("%xt%zm%getQuests%" + self.BOT.areaID + "%" + self.questTxt.Text + "%" + chr(0))
  1028. pass
  1029.  
  1030. def resize(self, e, args):
  1031. self.questBox.Height = self.tabbotoptions.TabPages[3].Height- 70
  1032. self.quetView.Height = self.tabbotoptions.TabPages[3].Height- 70
  1033. self.quetView.Width = self.tabbotoptions.TabPages[3].Width - 192
  1034. self.turnInButton.Width = self.tabbotoptions.TabPages[3].Width - 192
  1035. self.panel6.Height = self.tabbotoptions.TabPages[3].Height + 20
  1036. self.turnInButton.Location = Point(182,40 + self.quetView.Height)
  1037. self.questButton.Location = Point(10,40 + self.questBox.Height)
  1038. self.questTxt.Location = Point(10,15 + self.questBox.Height)
  1039.  
  1040. def addLeader(self, e, args):
  1041. self.BOT.leaderGroup.append(self.txtLeader.Text)
  1042. self.updateLeader()
  1043.  
  1044. def importplugin(self, plugin):
  1045. try:
  1046. return __import__(plugin)
  1047. except:pass
  1048.  
  1049. def loadplugin(self, plugin):
  1050. try:
  1051. plugin = self.importplugin(plugin)
  1052. plugin.start(self)
  1053. plugin.form = self
  1054. except:pass
  1055.  
  1056. def removeLeader(self, e, args):
  1057. #self.leaderList.Items.Remove(self.leaderList.SelectedItem)
  1058.  
  1059. for i in self.BOT.leaderGroup:
  1060. if i == self.leaderList.SelectedItem.ToString():
  1061. self.BOT.leaderGroup.remove(i)
  1062. self.updateLeader()
  1063.  
  1064.  
  1065. def allowCommanding(self):
  1066. while True:
  1067. if self.BOT.donelogin != True:
  1068. self.cmdbtn.Enabled = False
  1069. self.cmdtxt.Enabled = False
  1070.  
  1071. if self.BOT.donelogin == True:
  1072. self.cmdbtn.Enabled = True
  1073. self.cmdtxt.Enabled = True
  1074. break
  1075.  
  1076.  
  1077. def updateLeader(self):
  1078.  
  1079. self.leaderList.Items.Clear()
  1080. for i in self.BOT.leaderGroup:
  1081. self.leaderList.Items.Add(str(i))
  1082.  
  1083. def getMonsters(self):
  1084. monsters = []
  1085. #while True:
  1086. try:
  1087. monsters = self.BOT.MonsterList
  1088. if len(monsters) != len(self.monsterlist.Items):
  1089. self.monsterlist.Items.Clear()
  1090. for i in monsters:
  1091. item = ListViewItem()
  1092. item.Text = i[0]
  1093. item.SubItems.Add(i[2])
  1094. item.SubItems.Add(i[7])
  1095. item.SubItems.Add(i[1])
  1096. item.SubItems.Add(i[3])
  1097. self.monsterlist.Items.Add(item)
  1098.  
  1099. if len(monsters) == len(self.monsterlist.Items):
  1100. for i in range(0, len(self.monsterlist.Items)):
  1101. self.monsterlist.Items[i].SubItems[0].Text = monsters[i][0]
  1102. self.monsterlist.Items[i].SubItems[1].Text = monsters[i][2]
  1103. self.monsterlist.Items[i].SubItems[2].Text = monsters[i][7]
  1104. self.monsterlist.Items[i].SubItems[3].Text = monsters[i][1]
  1105. self.monsterlist.Items[i].SubItems[4].Text = monsters[i][3]
  1106. except:pass
  1107.  
  1108. def startBotThread(self):
  1109.  
  1110. self.BOT.connecti()
  1111.  
  1112. #self.t = Thread(ThreadStart(self.BOT.keepalive))
  1113. #self.t.IsBackground = True
  1114. #self.t.Start()
  1115. self.botThread = pyThread(target=self.BOT.keepalive)
  1116. self.botThread.start()
  1117.  
  1118.  
  1119. def Claose(self,args,kw):
  1120. Application.Exit()
  1121. Application.ExitThread()
  1122. #self.BOT.mainThread.Join()
  1123. #self.t.Join()
  1124. #del self.t
  1125. #del self.BOT
  1126. pass
  1127.  
  1128.  
  1129. def login(self,e ,kw):
  1130. self.logbtn.Enabled = False
  1131.  
  1132. self.BOT.load(self.txtboxu4.Text,self.txtboxu.Text,self.txtboxu2.Text)
  1133. self.BOT.login()
  1134.  
  1135. #<servers sName="Augoeides" sIP="151.10.152.131" iCount="2io172" iMax="3000" bOnline="1" iChat="0" bUpg="0" sLang="xx"/>
  1136. logindata = self.txtbox1.Text
  1137. serverdata = logindata.split("<servers ")
  1138. self.serverlist.GridLines = True
  1139. self.serverlist.FullRowSelect = True
  1140. self.serverlist.BorderStyle = self.serverlist.BorderStyle.Fixed3D
  1141. self.serverlist.View = self.serverlist.View.Details
  1142. self.serverlist.Dock = DockStyle.Fill
  1143. self.serverlist.MultiSelect = False
  1144.  
  1145. userdata = serverdata[0]
  1146. usplit = serverdata[0].split('"')
  1147.  
  1148. del serverdata[0]
  1149.  
  1150. #self.serverlist.Items[0].SubItems.Add("1")
  1151. self.serverlist.Columns.Add("Servers")
  1152. self.serverlist.Columns.Add("IP")
  1153. self.serverlist.Columns.Add("Users")
  1154. self.serverlist.Columns.Add("Chat")
  1155. self.serverlist.Columns.Add("Language")
  1156. self.serverlist.Columns.Add("Is online")
  1157. self.serverlist.Columns.Add("Is member")
  1158. self.serverlist.AutoSize = True
  1159. self.serverlist.Columns[1].Width = 100
  1160. self.selist = []
  1161. for i in serverdata:
  1162. d = i.split('"')
  1163. item = ListViewItem()
  1164. item.Text = d[1]
  1165. self.selist.append(str(d[1] + " = " + d[3]))
  1166. item.SubItems.Add(d[3])
  1167. item.SubItems.Add(d[5])
  1168. d[11] = d[11].replace("0","Safe")
  1169. d[11]= d[11].replace("2","All")
  1170. item.SubItems.Add(d[11])
  1171. item.SubItems.Add(d[15])
  1172. d[9] = d[9].replace("0","No")
  1173. d[9]= d[9].replace("1","Yes")
  1174. item.SubItems.Add(d[9])
  1175. d[13] = d[13].replace("0","No")
  1176. d[13]= d[13].replace("1","Yes")
  1177. item.SubItems.Add(d[13])
  1178. self.serverlist.Items.Add(item)
  1179.  
  1180. self.tablist.TabPages.Add("Servers")
  1181. self.txtip = TextBox()
  1182. self.txtip.Dock = DockStyle.Fill
  1183. self.btnip = Button()
  1184. self.btnip.Dock = DockStyle.Left
  1185. self.btnip.Text = "Connect"
  1186. self.btnip.Click += self.ipbtn_click
  1187. self.btnip.TextAlign = self.btnip.TextAlign.BottomLeft
  1188. self.btnip.Width = 65
  1189. self.Controls.Add(self.tablist)
  1190. self.panel2 = Panel()
  1191. self.panel2.Dock = DockStyle.Bottom
  1192. self.panel2.Height = 25
  1193. self.panel2.Controls.Add(self.btnip)
  1194. self.panel2.Controls.Add(self.txtip)
  1195. self.tablist.TabPages[1].Controls.Add(self.serverlist)
  1196. self.tablist.TabPages[1].Controls.Add(self.panel2)
  1197. self.txtip.BringToFront()
  1198. self.serverlist.Click+= self.selc
  1199. self.tablist.SelectedTab = self.tablist.TabPages[1]
  1200. self.btnip.Enabled = False
  1201.  
  1202.  
  1203.  
  1204. class aqwbot():
  1205.  
  1206. requestroom = ""
  1207.  
  1208.  
  1209.  
  1210. def setform(self,f):
  1211. self.form = f
  1212.  
  1213. def load(self,boss,bname,bpass):
  1214. self.shops = {}
  1215.  
  1216. self.botJson = {}
  1217.  
  1218. self.leader = boss
  1219. self.botName = str(bname)
  1220. self.botPass = bpass
  1221. self.IPs = ""
  1222. self.mydata={}
  1223. self.mydata["unm"] = self.botName
  1224. self.mydata["pwd"] = self.botPass
  1225. self.leaderGroup = []
  1226. self.leaderGroup.append(self.leader.lower())
  1227. self.classes = {"18":{0:[1.5, time.time()], 1:[3, time.time()], 2:[4, time.time()], 3:[60, time.time()], 4:[30, time.time()]},
  1228. "252":{0:[1.5, time.time()], 1:[3, time.time()], 2:[4, time.time()], 3:[60, time.time()], 4:[30, time.time()]},
  1229. "971":{0:[1.5, time.time()], 1:[10, time.time()], 2:[10, time.time()], 3:[60, time.time()], 4:[40, time.time()]},
  1230. "16":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
  1231. "407":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
  1232. "15654":{0:[2, time.time()], 1:[2, time.time()], 2:[10, time.time()], 3:[15, time.time()], 4:[30, time.time()]},
  1233. "29":{0:[1.5, time.time()], 1:[2, time.time()], 2:[12, time.time()], 3:[6, time.time()], 4:[30, time.time()]},
  1234. "17":{0:[2, time.time()], 1:[6, time.time()], 2:[6, time.time()], 3:[3, time.time()], 4:[60, time.time()]},
  1235. "15653":{0:[2, time.time()], 1:[6, time.time()], 2:[6, time.time()], 3:[3, time.time()], 4:[60, time.time()]},
  1236. "6532":{0:[2, time.time()], 1:[16, time.time()], 2:[5, time.time()], 3:[3, time.time()], 4:[6, time.time()]},
  1237. "15651":{0:[2, time.time()], 1:[6, time.time()], 2:[2, time.time()], 3:[12, time.time()], 4:[20, time.time()]}
  1238. }
  1239.  
  1240. self.classdata = {0:[2, time.time()], 1:[0, time.time()], 2:[0, time.time()], 3:[0, time.time()]}
  1241. #time.time()- self.classdata[skill][1] >= self.classdata[skill][0]
  1242. self.classData = {}
  1243.  
  1244. self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  1245. self.bagslots = ""
  1246. self.followbot = False
  1247. self.copyuserbot = False
  1248. self.autogo = False
  1249. self.pet = True
  1250. self.targetc = "0"
  1251. self.targetf = "0"
  1252. self.targetp = ""
  1253. self.targetm = ""#monster target
  1254. self.requestroom = ""
  1255. self.USERS = []
  1256. self.areaID = ""
  1257. self.questlist = []
  1258. self.MP = "100"
  1259. self.HP = "1000"
  1260. self.wantedItemlist = []
  1261. self.waitingitemlist = []
  1262. self.donelogin = False
  1263. self.config = {"leader":self.leader.lower(),"followbot":False,"petbot":False, "copybot":False, "follow":self.targetf, "copy":self.targetc, "pet":self.targetp, "autogo": False}
  1264. self.houseinv =[]
  1265. self.inventory = []
  1266. self.weapon = ""
  1267. self.helm = ""
  1268. self.cape = ""
  1269. self.armor = ""
  1270. self.classarmor = ""
  1271. self.shopitems = []
  1272. self.waitingduels = []
  1273. self.pvp = False
  1274. self.usersdata = {}
  1275. self.strFrame = ""
  1276. self.dueler = ""
  1277. self.mtargets = []
  1278. self.dead = False
  1279. self.deadFrame = ""
  1280. self.deadPad = ""
  1281. self.questItems = {}
  1282. self.questsData = {}
  1283.  
  1284. self.bankItems = {}
  1285.  
  1286.  
  1287.  
  1288. def login(self):
  1289. self.myplayer = self.mydata["unm"]
  1290. self.mydata=urllib.urlencode(self.mydata)
  1291. self.path='http://game.aqworlds.com/game/cf-userlogin.asp' #the url you want to POST to
  1292. self.req=urllib2.Request(self.path, self.mydata)
  1293. self.req.add_header("Content-type", "application/x-www-form-urlencoded")
  1294. self.page=urllib2.urlopen(self.req).read()
  1295. #page
  1296. self.esa = self.page.split('"')
  1297. self.pword = self.esa[11]
  1298. try:
  1299. self.form.txtbox1.Text = self.page
  1300. except:pass
  1301.  
  1302.  
  1303.  
  1304. def connecti(self):
  1305. self.lLoc = ""
  1306. self.USER = ""
  1307. self.mtarget = ""
  1308. self.sock.connect((self.IPs,5588))
  1309.  
  1310. def docrash(self):
  1311. try:
  1312. for i in range(100000):
  1313. e = pyThread(target = self.crasha, args=[]).start()
  1314. except Exception as ex:print(ex)
  1315. pass
  1316.  
  1317. def crasha(self):
  1318. while True:
  1319. self.move(str(random.randint(300,800)), str(random.randint(300,600)))
  1320.  
  1321. def checkuser(self, user):
  1322. if user !="":
  1323. if user in self.leaderGroup:
  1324. try:
  1325.  
  1326. self.checkforcommand(self.MSG, user)
  1327. except Exception as ex:self.sendwhisper(user, str(ex))
  1328.  
  1329.  
  1330. def checkClass(self, theclass):
  1331. try:
  1332. if str(theclass) in self.classes:
  1333. self.classdata = self.classes[str(theclass)]
  1334. else:
  1335. self.classdata = {0:[2, time.time()], 1:[0, time.time()], 2:[0, time.time()], 3:[0, time.time()]}
  1336. except:pass
  1337.  
  1338. def buyItem(self, itemID, shopItemID, shopID):
  1339. self.sock.send("%xt%zm%buyItem%" + self.areaID + "%" + str(itemID) + "%" + str(shopID) + "%" + str(shopItemID) + "%" + chr(0))
  1340.  
  1341. def loadShop(self, shopID):
  1342. self.sock.send("%xt%zm%loadShop%"+ self.areaID + "%" + str(shopID) + "%" + chr(0))
  1343.  
  1344.  
  1345.  
  1346.  
  1347. def sellitem(self, itemID):
  1348. itemID = str(itemID)
  1349. items = []
  1350. for i in self.inventory:
  1351. items.append(i[0])
  1352. if str(i[0]) == str(itemID):
  1353. item = i
  1354. ammount = i[2]
  1355. break
  1356.  
  1357. if str(itemID) in items:
  1358. if int(ammount) == 1:
  1359. self.sock.send("%xt%zm%sellItem%" + self.areaID + "%" + str(itemID) + "%" + str(ammount) + "%" + self.botID + "%" + chr(0))
  1360. self.sendbotinformation("Selled item %s"%itemID)
  1361.  
  1362. elif int(ammount) > 1:
  1363. if int(item[2]) < int(ammount):
  1364. self.sendbotinformation("Cant sell item because there is only " + str(item[2]) + " items and you trying to remove %s items"%ammount)
  1365. ammount = "0"
  1366. else:
  1367. self.sock.send("%xt%zm%sellItem%" + self.areaID + "%" + str(itemID) + "%" + str(ammount) + "%" + self.botID + "%" + chr(0))
  1368. self.sendbotinformation("Selled %s item! There is is still %s/%s items"%(ammount, str(int(ammount)-1),item[3]))
  1369.  
  1370. if int(ammount) != 0:
  1371. for ko in range(0, len(self.inventory)):
  1372.  
  1373. if str(self.inventory[ko][0]) == str(itemID):
  1374. am = int(int(self.inventory[ko][2]) - 1)
  1375. if am < 1:
  1376. del self.inventory[ko]
  1377. break
  1378. else:
  1379. self.inventory[ko][2] = str(am)
  1380. break
  1381.  
  1382. else:self.sendbotinformation("Item %s is not in inventory, so it can't be selled!"%itemID)
  1383.  
  1384. def removeitem(self, itemID, ammount="1"):
  1385. ammount = str(ammount)
  1386. itemID = str(itemID)
  1387. items = []
  1388. for i in self.inventory:
  1389. items.append(i[0])
  1390. if str(i[0]) == str(itemID):
  1391. item = i
  1392. break
  1393.  
  1394. if str(itemID) in items:
  1395. if int(ammount) == 0:
  1396. self.sendbotinformation("You cant remove 0 items!")
  1397. elif int(ammount) == 1:
  1398. self.sock.send("%xt%zm%removeItem%" + self.areaID + "%" + str(itemID) + "%" + self.botID + "%" + chr(0))
  1399. self.sendbotinformation("Removed 1 item!")
  1400. elif int(ammount) > 1:
  1401. if int(item[2]) < int(ammount):
  1402. self.sendbotinformation("Cant remove item because there is only " + str(item[2]) + " items and you trying to remove %s items"%ammount)
  1403. ammount = "0"
  1404. else:
  1405. self.sock.send("%xt%zm%removeItem%" + self.areaID + "% "+ str(itemID) + "%" + self.botID + "%" + str(ammount) + "%" + chr(0))
  1406. self.sendbotinformation("Removed %s item!"%ammount)
  1407.  
  1408. if int(ammount) != 0:
  1409. for ko in range(0, len(self.inventory)):
  1410.  
  1411. if str(self.inventory[ko][0]) == str(itemID):
  1412. if int(int(self.inventory[ko][2]) - int(ammount)) < 1:
  1413. del self.inventory[ko]
  1414. break
  1415.  
  1416. if int(self.inventory[ko][2]) > 1:
  1417. am = int(ammount)
  1418. ity = int(self.inventory[ko][2])
  1419. if ity - am < 1:
  1420. del self.inventory[ko]
  1421. else:
  1422. self.inventory[ko][2] = str(ity - am)
  1423. break
  1424.  
  1425. else:self.sendbotinformation("%s is not in invetory!"%itemID)
  1426.  
  1427. def reportPlayer(self,typeOfReport="reportlang",sname="",reason="So many curse words! Please stop this feg ;v"):
  1428. try:
  1429. if sname !="":
  1430. self.sock.send("%xt%zm%cmd%" + self.areaID + str(typeOfReport) + "%" + str(sname) + str(reason) + chr(0))
  1431. except Exception: form.sendrecv("[Error] : Failed to report %s"%sname)
  1432.  
  1433. #%xt%zm%ia%1%str%mcGoldenBootPlaque%aaaa%minad%
  1434.  
  1435. #%xt%zm%ia%1%rval%btnTarget%
  1436.  
  1437. #%xt%zm%genderSwap%322166%
  1438.  
  1439. def kickPlayerToBattleOn(self,user=""):
  1440. try:
  1441. if user != "":
  1442. self.sock.send("%xt%zm%ia%1%str%mcGoldenBootPlaque%" + str(user) + "%" + self.botName + "%" + chr(0))
  1443. except Exception as er: print(er)
  1444.  
  1445. def sendmsg(self, ms, chat=""):
  1446. try:
  1447.  
  1448. if chat !="":
  1449. self.sock.send("%xt%zm%message%" + str(chat) + "%" + str(ms) + "%zone%" + chr(0))
  1450. else:
  1451. self.sock.send("%xt%zm%message%" + self.areaID + "%" + str(ms) + "%zone%" + chr(0))
  1452. except Exception as error:
  1453. form.sendrecv(str(error))
  1454.  
  1455. def sendme(self, ms, chat=""):
  1456. try:
  1457. if chat !="":
  1458. self.sock.send("%xt%zm%em%"+ str(chat)+"%" + str(ms)+"%event%" + chr(0))
  1459. else:
  1460. self.sock.send("%xt%zm%em%"+ str(self.areaID)+"%" + str(ms)+"%event%" + chr(0))
  1461. except:
  1462. print "ERROR"
  1463.  
  1464. def doemote(self,emote):
  1465. try:
  1466. self.sock.send("%xt%zm%emotea%1%"+str(emote)+"%" + chr(0))
  1467. except:
  1468. print "ERROR"
  1469.  
  1470.  
  1471. def move(self,x,y):
  1472. try:
  1473. self.sock.send("%xt%zm%mv%" + self.areaID + "%" + str(x) + "%" + str(y) + "%12%" + chr(0))
  1474. except:
  1475. print "ERROR"
  1476.  
  1477. def addFriend(self,user):
  1478. try: #%xt%zm%requestFriend%1%cubot1%
  1479. self.sock.send("%xt%zm%requestFriend%1%" + str(user) + "%" + chr(0))
  1480. except Exception as error:
  1481. form.sendrecv("Error: Failed to add " + str(user) + " to friendlist")
  1482.  
  1483.  
  1484. def getQuests(self, data):
  1485. self.gettingquest = True
  1486. self.data.replace(",", "%")
  1487. self.sock.send("%xt%zm%getQuests%" +self.areaID+ "%" + data + "%" + chr(0))
  1488. pass
  1489.  
  1490. def completeQuest(self, quest):
  1491. #questData["oRewards"]["itemsC"]
  1492. if str(quest) in self.questsData:
  1493. itemlist = {}
  1494. questItems = {}
  1495.  
  1496. #form.sendrecv(self.questsData[quest])
  1497. for itemi in self.questsData[quest]["turnin"]:
  1498. itemlist[itemi["ItemID"]] = int(itemi["iQty"])
  1499.  
  1500.  
  1501. for itemi in self.questItems:
  1502. if itemi in itemlist:
  1503. questItems[itemi] = int(self.questItems[itemi]["iQty"])
  1504.  
  1505.  
  1506.  
  1507. for itemi in self.inventory:
  1508. if itemi[0] in itemlist:
  1509. questItems[itemi[0]] = int(itemi[2])
  1510.  
  1511.  
  1512.  
  1513. allDone = 0
  1514. if len(questItems) == len(itemlist):
  1515. for itemi in questItems:
  1516. if questItems[itemi] >= itemlist[itemi]:
  1517. allDone +=1
  1518.  
  1519. if allDone == len(itemlist):
  1520. #MessageBox.Show("YES")
  1521. if "itemsC" in self.questsData[str(quest)]["oRewards"]:
  1522. a = QuestDialog(self, str(quest), [str(self.questsData[str(quest)]["iExp"]), str(self.questsData[str(quest)]["iGold"])], self.questsData[str(quest)]["oRewards"]["itemsC"])
  1523. else:
  1524. a = QuestDialog(self, str(quest), [str(self.questsData[str(quest)]["iExp"]), str(self.questsData[str(quest)]["iGold"])], {})
  1525.  
  1526. a.Show()
  1527.  
  1528. #MessageBox.Show(str(allDone))
  1529. #MessageBox.Show(str(questItems))
  1530. #MessageBox.Show(str(itemlist))
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537. pass
  1538.  
  1539. def sendwhisper(self,user,ms):
  1540. try:
  1541. self.sock.send("%xt%zm%whisper%1%"+str(ms)+"%"+str(user)+"%"+ chr(0))
  1542. except:
  1543. print "ERROR"
  1544.  
  1545. def goto(self,user):
  1546. try:
  1547. self.sock.send("%xt%zm%cmd%1%goto%"+str(user)+"%" + chr(0))
  1548. self.pvp = False
  1549. except Exception as error:
  1550. sendwhisper(self.config["leader"], error)
  1551.  
  1552. def joinroom(self,room):
  1553. try:
  1554. self.sock.send("%xt%zm%cmd%1%tfer%" + self.botName + "%" + str(room) +"%" + chr(0))
  1555. self.pvp = False
  1556. except:pass
  1557.  
  1558. def sendbotinformation(self, data):
  1559. form.sendrecv("[INFO] : " + data)
  1560.  
  1561. def inviteparty(self, user):
  1562. try:
  1563. self.sock.send("%xt%zm%gp%1%pi%"+str(user)+"%" + chr(0))
  1564. except:pass
  1565.  
  1566. def joinhouse(self, house):
  1567. try:
  1568. self.sock.send("%xt%zm%house%1%"+str(house)+"%" + chr(0))
  1569. except:pass
  1570.  
  1571.  
  1572. def killtargettilldeath(self, target):
  1573. self.mtarget = target
  1574. self.kttd(target)
  1575. pass
  1576.  
  1577. def getMonsterID(self, sname):
  1578. ids = ""
  1579. for i in self.MonsterList:
  1580. if self.MonsterList[i]["strMonName"].lower() == sname.lower():
  1581. if self.MonsterList[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1582. if int(self.MonsterList[i]["intHP"]) != 0:
  1583. ids = i
  1584. break
  1585. return
  1586.  
  1587. def gotoMonster(self, sname):
  1588. ids = ""
  1589. for i in self.MonsterList:
  1590. if self.MonsterList[i]["strMonName"].lower() == sname.lower():
  1591. if self.MonsterList[i]["strFrame"] != self.usersdata[self.botName.lower()]["strFrame"]:
  1592. if int(self.MonsterList[i]["intHP"]) != 0:
  1593. self.movetocell(self.MonsterList[i]["strFrame"], "Enter")
  1594.  
  1595.  
  1596. def setTargetMon(self, name):
  1597. target = self.getMonsterID(name)
  1598. if name != "":
  1599. self.targetm = target
  1600.  
  1601. def attackTarget(self, skill):
  1602. if self.targetm in self.MonsterList:
  1603. if int(self.MonsterList[self.targetm]["intHP"]) <= 0:
  1604. self.targetm = ""
  1605. return
  1606.  
  1607. if self.MonsterList[self.targetm]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1608. self.attackbyid(self.targetm, skill)
  1609. else:
  1610. self.movetocell(self.MonsterList[self.targetm]["strFrame"], "Enter")
  1611. pass
  1612. else:self.targetm = ""
  1613.  
  1614.  
  1615.  
  1616.  
  1617. def getRandomFMonsterID(self):
  1618. idlist = []
  1619. for i in self.MonsterList:
  1620. if self.MonsterList[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1621. if int(self.MonsterList[i]["intHP"]) != 0:
  1622. idlist.append(i)
  1623. if idlist != []:
  1624. return idlist[random.randint(0, len(idlist)-1)]
  1625. else:return ""
  1626.  
  1627. def getRandomFUser(self):
  1628. idlist = []
  1629. for i in self.usersdata:
  1630. if self.usersdata[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1631. if int(self.usersdata[i]["intHP"]) != 0:
  1632. idlist.append(i)
  1633. if idlist != []:
  1634. return idlist[random.randint(0, len(idlist)-1)]
  1635. else:return ""
  1636.  
  1637. def getRandomFUserID(self):
  1638. idlist = []
  1639. for i in self.usersdata:
  1640. if self.usersdata[i]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1641. if int(self.usersdata[i]["intHP"]) != 0:
  1642. idlist.append(self.usersdata[i]["entID"])
  1643. if idlist != []:
  1644. return idlist[random.randint(0, len(idlist)-1)]
  1645. else:return ""
  1646.  
  1647. def getUserID(self, sname):
  1648. idlist = []
  1649. if sname in self.usersdata:
  1650. return(self.usersdata[sname]["entID"])
  1651. else:return ""
  1652.  
  1653. def killtargettilldeathbyname(self, target):
  1654. self.mtarget = self.getMonsterID(target)
  1655. self.kttd(self.mtarget)
  1656. pass
  1657.  
  1658.  
  1659. def getNulgathGems(self):
  1660. {"15385":5, "6135":1}
  1661. completeQuest = True
  1662. while completeQuest:
  1663. if "2566" not in self.questlist:
  1664. self.acceptQuest("2566")
  1665. time.sleep(10)
  1666. if "15385" not in self.questItems:
  1667. self.questItems = {"15385": {"iQty":0}, "6135": {"iQty":0}}
  1668. else:
  1669. while self.questItems["15385"]["iQty"] < 5 and self.questItems["6135"]["iQty"] < 1 or "15385" not in self.questItems:
  1670. if "15385" not in self.questItems or self.questItems["15385"]["iQty"] < 5:
  1671. self.joinroom("gilead")
  1672. time.sleep(4)
  1673. self.movetocell("r8", "Enter")
  1674. time.sleep(1)
  1675. self.move("427", "232")
  1676. while int(self.questItems["15385"]["iQty"]) < 5:
  1677. if self.usersdata[self.botName]["strFrame"] != self.MonsterList["11"]["strFrame"]:
  1678. self.movetocell("r8", "Enter")
  1679. time.sleep(1)
  1680. self.move("427", "232")
  1681. self.killTarget("11")
  1682.  
  1683. if "6135" not in self.questItems or self.questItems["6135"]["iQty"] < 1:
  1684. self.joinroom("elemental")
  1685. time.sleep(4)
  1686. self.movetocell("r5", "Enter")
  1687. time.sleep(1)
  1688. self.move("489", "278")
  1689. while int(self.questItems["6135"]["iQty"]) < 1:
  1690. if self.usersdata[self.botName]["strFrame"] != self.MonsterList["7"]["strFrame"]:
  1691. self.movetocell("r5", "Enter")
  1692. time.sleep(1)
  1693. self.move("489", "278")
  1694. self.killTarget("7")
  1695.  
  1696.  
  1697.  
  1698. completeQuest = False
  1699.  
  1700.  
  1701. self.completeQuest("2566")
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707. def kttd(self, target):
  1708. self.mtarget = target
  1709. if self.mtarget in self.MonsterList:
  1710. if self.MonsterList[self.mtarget]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1711. while True:
  1712. try:
  1713. if self.MonsterList[self.mtarget]["strFrame"] == self.usersdata[self.botName.lower()]["strFrame"]:
  1714. if self.HP == int(0):
  1715. self.mtarget = ""
  1716. break
  1717. if int(self.MonsterList[self.mtarget]["intHP"]) <=0:
  1718. self.mtarget = ""
  1719. break
  1720. if target != self.mtarget:break
  1721. self.attackbyid(self.mtarget,0)
  1722. time.sleep(0.2)
  1723.  
  1724. else:
  1725. self.mtarget = ""
  1726. break
  1727. except:
  1728. self.mtarget = ""
  1729. break
  1730. self.mtarget = ""
  1731.  
  1732. def battle(self, skill):
  1733. if int(skill) in self.classData:
  1734. if classData[skill]["tgt"] == "h":
  1735. pass
  1736. elif classData[skill]["tgt"] == "s":
  1737. pass
  1738. pass
  1739.  
  1740. def skillCompiler(self, skill, target):
  1741. pass
  1742.  
  1743. def killTarget(self, target):
  1744. if target in self.MonsterList:
  1745. while True:
  1746. if self.usersdata[self.botName]["strFrame"] == self.MonsterList[target]["strFrame"]:
  1747. self.attackbyid(target, 0)
  1748. if int(self.usersdata[self.botName]["intMP"]) >= 35:
  1749. self.attackbyid(target, 4)
  1750. if int(self.usersdata[self.botName]["intHP"]) <= 1000:
  1751. self.useSkill(3)
  1752. if int(self.usersdata[self.botName]["intMP"]) >= 50:
  1753. self.attackbyid(target, 2)
  1754.  
  1755. if self.MonsterList[target]["intHP"] == 0 or self.usersdata[self.botName]["intHP"] == 0:break
  1756. else:
  1757.  
  1758. break
  1759.  
  1760.  
  1761.  
  1762. def attack(self, monster, skill):
  1763. try:
  1764. monster = self.getMonsterID(monster)
  1765. if monster !="":
  1766. if int(skill) in self.classData:
  1767. if self.classData[int(skill)]["tgt"] == "h":
  1768.  
  1769. ref = self.classData[int(skill)]["ref"]
  1770. if int(self.usersdata[self.botName]["intHP"]) !=0:
  1771. if self.MonsterList[monster]["strFrame"] == self.usersdata[self.botName]["strFrame"]:
  1772. if int(self.MonsterList[monster]["intHP"]) != 0:
  1773. if self.usersdata[self.botName]["intMP"] >= int(self.classData[int(skill)]["mp"]):
  1774. if time.time() - float(self.classData[int(skill)]["curCD"]) >= float(self.classData[int(skill)]["cd"])/1000:
  1775. self.sock.send("%xt%zm%gar%1%0%" + str(ref) + ">m:"+monster+"%wvz%"+chr(0))
  1776. self.classData[int(skill)]["curCD"] = time.time()
  1777. if int(skill) != 0:
  1778. for csk in self.classData:
  1779. if csk!=0 and csk!=int(skill):
  1780. self.classData[csk]["curCD"] = self.classData[csk]["curCD"] + 0.2
  1781.  
  1782. else:pass
  1783. else:print classData[int(skill)]["tgt"]
  1784.  
  1785.  
  1786. except Exception as ex:print ex
  1787.  
  1788. def attackbyid(self, monster, skill):
  1789. try:
  1790. monster = str(monster)
  1791. if monster !="":
  1792. if int(skill) in self.classData:
  1793. if self.classData[int(skill)]["tgt"] == "h":
  1794.  
  1795. ref = self.classData[int(skill)]["ref"]
  1796. if int(self.usersdata[self.botName]["intHP"]) !=0:
  1797. if self.MonsterList[monster]["strFrame"] == self.usersdata[self.botName]["strFrame"]:
  1798. if int(self.MonsterList[monster]["intHP"]) != 0:
  1799. if self.usersdata[self.botName]["intMP"] >= int(self.classData[int(skill)]["mp"]):
  1800. if time.time() - float(self.classData[int(skill)]["curCD"]) >= float(self.classData[int(skill)]["cd"])/1000:
  1801. self.sock.send("%xt%zm%gar%1%0%" + str(ref) + ">m:"+monster+"%wvz%"+chr(0))
  1802. self.classData[int(skill)]["curCD"] = time.time()
  1803. if int(skill) != 0:
  1804. for csk in self.classData:
  1805. if csk!=0 and csk!=int(skill):
  1806. self.classData[csk]["curCD"] = self.classData[csk]["curCD"] + 0.2
  1807. else:pass
  1808. else:print classData[int(skill)]["tgt"]
  1809.  
  1810. except Exception as ex:print ex
  1811.  
  1812.  
  1813. def attackplayerbyid(self, ID, skill):
  1814. try:
  1815. ID = str(ID)
  1816. ID = ID.rstrip(' \t\r\n\0')
  1817. skill = str(skill)
  1818. if self.pvp == True:
  1819. if int(self.HP) !=0:
  1820. for i in self.usersdata:
  1821. if str(self.usersdata[i]["entID"]) == ID:
  1822. if self.usersdata[i]["strFrame"] == self.usersdata[i]["strFrame"]:
  1823. if int(self.usersdata[i]["intHP"]) != 0:
  1824. if skill != "0":
  1825. if int(skill)<=4:
  1826. if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
  1827. self.sock.send("%xt%zm%gar%1%0%a" + str(skill) + ">p:"+str(self.usersdata[i]["entID"])+"%wvz%"+chr(0))
  1828. self.classdata[int(skill)][1] = time.time()
  1829. else:
  1830. if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
  1831. self.sock.send("%xt%zm%gar%1%0%aa>p:"+str(self.usersdata[i]["entID"])+"%wvz%" + chr(0))#202731
  1832. self.classdata[int(skill)][1] = time.time()
  1833. break
  1834. except Exception as ex:form.sendrecv(ex)
  1835.  
  1836.  
  1837. def attackplayerbyname(self, name, skill):
  1838. try:
  1839. name = str(name).lower()
  1840. name = name.rstrip(' \t\r\n\0')
  1841. skill = str(skill)
  1842. if self.pvp == True:
  1843. if int(self.HP) !=0:
  1844. if name in self.usersdata:
  1845. if self.usersdata[name]["strFrame"] == self.usersdata[name]["strFrame"]:
  1846. if int(self.usersdata[name]["intHP"]) != 0:
  1847. if skill != "0":
  1848. if int(skill)<=4:
  1849. if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
  1850. self.sock.send("%xt%zm%gar%1%0%a" + str(skill) + ">p:"+str(self.usersdata[name]["entID"])+"%wvz%"+chr(0))
  1851. self.classdata[int(skill)][1] = time.time()
  1852. else:
  1853. if time.time() - self.classdata[int(skill)][1] >= self.classdata[int(skill)][0]:
  1854. self.sock.send("%xt%zm%gar%1%0%aa>p:"+str(self.usersdata[name]["entID"])+"%wvz%" + chr(0))
  1855. self.classdata[int(skill)][1] = time.time()
  1856.  
  1857. except Exception as ex:form.sendrecv(ex)
  1858. def useSkill(self, skill):
  1859. sList = ["s", "f"]
  1860. skill = int(skill)
  1861.  
  1862. if int(self.usersdata[self.botName.lower()]["intHP"]) !=0:
  1863. if skill in self.classData:
  1864. if self.classData[int(skill)]["tgt"] in sList:
  1865. if self.usersdata[self.botName]["intMP"] >= int(self.classData[int(skill)]["mp"]):
  1866. if time.time() - float(self.classData[int(skill)]["curCD"]) >= float(self.classData[int(skill)]["cd"])/1000:
  1867. print "y"
  1868. self.sock.send("%xt%zm%gar%1%2%a" + str(skill) + ">p:" + str(self.usersdata[self.botName.lower()]["entID"]) + "%wvz%" + chr(0))
  1869. self.classData[int(skill)]["curCD"] = time.time()
  1870. for csk in self.classData:
  1871. if csk!=0 and csk!=int(skill):
  1872. self.classData[csk]["curCD"] = self.classData[csk]["curCD"] + 0.3
  1873.  
  1874. pass
  1875. def acceptQuest(self, quest):
  1876. if quest in self.questlist:
  1877. self.sendbotinformation("Quest is aldery in quest list!")
  1878. else:
  1879. self.questlist.append(str(quest))
  1880. self.sock.send("%xt%zm%acceptQuest%" + self.areaID + "%" + str(quest) + "%" + chr(0))
  1881. self.form.currentItemi("","")
  1882.  
  1883.  
  1884.  
  1885.  
  1886. def doexec(self,co):
  1887. co = co.replace("|","?")
  1888. exec(co)
  1889.  
  1890. def sendPacket(self,packet):
  1891. packet = packet.replace("#037:","%")
  1892. self.sock.send(packet + chr(0))
  1893.  
  1894. def joinGameAccounts(self):
  1895. for bot in self.botList:
  1896. getBot(bot.pword, bot.botName, self.IPs, self.form)
  1897.  
  1898. def loadBotSave(self):
  1899. try:
  1900. self.botList = []
  1901. di = OpenFileDialog()
  1902. di.Title = "Select a listfile"
  1903. di.Filter = "Text files (.txt)|*.txt|All Files (*.*)|*.*"
  1904. di.ShowDialog()
  1905.  
  1906.  
  1907. listfile = StreamReader(di.FileName)
  1908.  
  1909. textfile = listfile.ReadToEnd()
  1910. listfile.Close()
  1911. self.jsonBot = eval(textfile)
  1912. for botti in self.jsonBot:
  1913. bot = aqwbot()
  1914. bot.form = self.form
  1915. bot.load(self.leader, botti, "imnonoob")
  1916. bot.pword = self.jsonBot[botti]
  1917. self.botList.append(bot)
  1918.  
  1919. self.joinGameAccounts()
  1920.  
  1921.  
  1922. except Exception as ex:MessageBox.Show(str(ex))
  1923.  
  1924.  
  1925. def loginAccounts(self):
  1926. self.botList = []
  1927. for useri in self.accountList:
  1928. bot = aqwbot()
  1929. bot.form = self.form
  1930. bot.load(self.leader, useri, "imnonoob")
  1931. bot.login()
  1932. self.botList.append(bot)
  1933. self.botJson[str(useri)] = bot.pword
  1934.  
  1935. self.form.cmdvtxt.Text = str(self.botJson)
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941. def loadFileList(self):
  1942. try:
  1943. di = OpenFileDialog()
  1944. di.Title = "Select a listfile"
  1945. di.Filter = "Text files (.txt)|*.txt|All Files (*.*)|*.*"
  1946. di.ShowDialog()
  1947.  
  1948.  
  1949. listfile = StreamReader(di.FileName)
  1950. try:
  1951. textfile = listfile.ReadToEnd()
  1952. listfile.Close()
  1953. self.accountList = textfile.split("\r\n")
  1954. except:pass
  1955. MessageBox.Show(str(len(textfile)))
  1956. except:pass
  1957.  
  1958. def compilePlf(self):
  1959. try:
  1960. script = []
  1961. di = OpenFileDialog()
  1962. di.Title = "Select a listfile"
  1963. di.Filter = "Text files (.plf)|*.plf|All Files (*.*)|*.*"
  1964. di.ShowDialog()
  1965.  
  1966.  
  1967. listfile = StreamReader(di.FileName)
  1968. try:
  1969. textfile = listfile.ReadToEnd()
  1970. listfile.Close()
  1971. script = eval(str(textfile))
  1972.  
  1973. except:pass
  1974.  
  1975. pyThread(target=self.plfCompiler, args=[script]).start()
  1976.  
  1977. except:pass
  1978.  
  1979. def plfCompiler(self, script):
  1980. for com in script:
  1981. if com[0] == "Command":
  1982. self.checkforcommand(str(com[1]))
  1983. time.sleep(float(com[2]))
  1984. if com[0] == "Packet":
  1985. self.sock.send(str(com[1]))
  1986. time.sleep(float(com[2]))
  1987.  
  1988. def movetocell(self, frame, enter):
  1989. self.sock.send("%xt%zm%moveToCell%"+self.areaID+"%"+ frame +"%"+ enter +"%" + chr(0))
  1990. self.usersdata[self.botName.lower()]["strFrame"] = frame
  1991. self.usersdata[self.botName.lower()]["strPad"] = enter
  1992. pass
  1993.  
  1994. def equipitem(self, itemID):
  1995. try:
  1996. itemID = str(itemID)
  1997. equipItems = ["Sword", "Dagger", "Staff", "Wand", "Polearm", "Class", "Armor", "Helm", "Cape", "Necklace"]
  1998. inv = []
  1999. for i in self.inventory:
  2000. inv.append(str(i[0]))
  2001. if itemID in inv:
  2002. for i in self.inventory:
  2003. if str(i[0]) == str(itemID):
  2004. if str(i[8]) in equipItems:
  2005. self.sock.send("%xt%zm%equipItem%" + self.areaID + "%" + itemID + "%" + chr(0))
  2006. break
  2007. else:
  2008. self.sendbotinformation("Cant equip that type of item!")
  2009. else:self.sendbotinformation("Cant equip item because its not in inventory!")
  2010. pass
  2011. except:pass
  2012.  
  2013. def unequipitem(self, itemID):
  2014. try:
  2015. itemID = str(itemID)
  2016. equipItems = ["Armor", "Helm", "Cape", "Necklace", "Pet"]
  2017. inv = []
  2018. for i in self.inventory:
  2019. inv.append(str(i[0]))
  2020. if itemID in inv:
  2021. for i in self.inventory:
  2022. if str(i[0]) == str(itemID):
  2023. if str(i[8]) in equipItems:
  2024. self.sock.send("%xt%zm%unequipItem%" + self.areaID + "%" + itemID + "%" + chr(0))
  2025. break
  2026. else:
  2027. self.sendbotinformation("Cant unequip that type of item!")
  2028. else:self.sendbotinformation("Cant unequip item because its not in inventory!")
  2029. pass
  2030. except:pass
  2031.  
  2032. def getItemifpossible(self, itemID):
  2033. itemID = str(itemID)
  2034. aitems = []
  2035. for ai in self.inventory:
  2036. aitems.append(ai[0])
  2037. if len(self.inventory) >= int(self.bagslots):
  2038. print("Cant get item because inventory is full")
  2039. else:
  2040. for i in self.waitingitemlist:
  2041. if i[0] == itemID:
  2042. if itemID in aitems:
  2043. for ko in range(0, len(self.inventory)):
  2044. if self.inventory[ko][0] == itemID:
  2045. if self.inventory[ko][3] != "1":
  2046. if itemID != "-1111":
  2047. self.inventory[ko][2] = str(int(self.inventory[ko][2]) + int(i[2]))
  2048. self.sendbotinformation("added item %s to inventory"%itemID)
  2049. self.sock.send("%xt%zm%getDrop%" + self.areaID + "%" + str(itemID) + "%" + chr(0))
  2050.  
  2051. itemID = "-1111"
  2052. break
  2053. else:pass#sendbotinformation("Items full!")
  2054. else:
  2055. if itemID != "-1111":
  2056. self.sock.send("%xt%zm%getDrop%" + self.areaID + "%" + str(itemID) + "%" + chr(0))
  2057. self.inventory.append(i)
  2058. self.sendbotinformation("added item %s to inventory"%itemID)
  2059.  
  2060. itemID = "-1111"
  2061. break
  2062.  
  2063.  
  2064.  
  2065. def updatebothp(self, info):
  2066. true = True
  2067. false = False
  2068. if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"ct","p"') !=-1 and str(info.find(self.botName.lower())).lower() !=-1:
  2069. try:
  2070. self.roomkakka = eval(info)
  2071. for User in self.roomkakka["b"]["o"]["p"]:
  2072. if User == self.botName.lower():
  2073. for value in self.roomkakka["b"]["o"]["p"][User]:
  2074. if value == "intHP":
  2075. self.HP = self.roomkakka["b"]["o"]["p"][User][value]
  2076. self.usersdata[self.botName.lower()]["intHP"] = self.roomkakka["b"]["o"]["p"][User][value]
  2077.  
  2078. if value == "intMP":
  2079. self.MP = self.roomkakka["b"]["o"]["p"][User][value]
  2080. self.usersdata[self.botName.lower()]["intMP"] = self.roomkakka["b"]["o"]["p"][User][value]
  2081. break
  2082. except:self.sendbotinformation(info)
  2083.  
  2084.  
  2085.  
  2086. def loaderrorMonsterList(self, room):
  2087. monsters = {}
  2088. try:
  2089. self.MonsterList = monsters[room]
  2090. except:
  2091. self.sendbotinformation("Failed to load monsters")
  2092.  
  2093. def getMonsters(self, data):
  2094.  
  2095. e = data
  2096.  
  2097. monsterlist = {}
  2098. monsters = e["b"]["o"]["mondef"]
  2099. monmap = e["b"]["o"]["monmap"]
  2100. monbranch = e["b"]["o"]["monBranch"]
  2101. #form.sendrecv(str(len(monsters)))
  2102.  
  2103. for i in monbranch:
  2104. monsterlist[str(i["MonMapID"])] = {"wDPS":i["wDPS"], "MonID": i["MonID"], "intHP":i["intHP"], "intHPMax":i["intHPMax"], "intMP":i["intMP"], "intMPMax":i["intMPMax"]}
  2105.  
  2106. for i in monsterlist:
  2107. for x in monmap:
  2108. #print x["MonMapID"]
  2109. if str(x["MonMapID"]) == str(i):
  2110. monsterlist[i]["strFrame"] = x["strFrame"]
  2111. monmap.remove(x)
  2112. break
  2113.  
  2114. for a in monsters:
  2115. if str(a["MonID"]) == monsterlist[i]["MonID"]:
  2116. monsterlist[i]["strMonName"] = a["strMonName"]
  2117. monsterlist[i]["intLevel"] = a["intLevel"]
  2118. monsterlist[i]["sRace"] = a["sRace"]
  2119. monsterlist[i]["strBehave"] = a["strBehave"]
  2120. monsterlist[i]["strElement"] = a["strElement"]
  2121. break
  2122.  
  2123. self.sendbotinformation("Loaded %s monsters" % len(monsterlist))
  2124. self.roomfailINT = 0
  2125. self.MonsterList = monsterlist
  2126.  
  2127.  
  2128. def respawarmupdate(self, data):
  2129. monsterID = data.split('%')[4]
  2130. if monsterID in self.MonsterList:
  2131. self.MonsterList[monsterID]["intHP"] = self.MonsterList[monsterID]["intHPMax"]
  2132. self.sendbotinformation(self.MonsterList[monsterID]["strMonName"] + "[" + str(monsterID) + "]: respawarmed whit hp " + str(self.MonsterList[monsterID]["intHPMax"]))
  2133.  
  2134.  
  2135. def updatemonsterlist(self, data2):
  2136.  
  2137. true = True
  2138. false = False
  2139.  
  2140. for i in data2["b"]["o"]["m"]:
  2141. if str(i) in self.MonsterList:
  2142. if "intHP" in data2["b"]["o"]["m"][i]:
  2143. self.MonsterList[i]["intHP"] = data2["b"]["o"]["m"][i]["intHP"]
  2144. self.sendbotinformation(self.MonsterList[i]["strMonName"] + "[" + str(i) + "] : HP changed to " + str(data2["b"]["o"]["m"][i]["intHP"]))
  2145.  
  2146.  
  2147.  
  2148. def getPlayersInroom(self):
  2149. try:
  2150. self.sock.send("%xt%zm%cmd%" + self.areaID + "%who%" + chr(0))
  2151.  
  2152. except Exception as error:return str(error)
  2153.  
  2154. def addwaitingitem(self, itema=[]):
  2155. if itema != []:
  2156. items = []
  2157. for i in self.waitingitemlist:
  2158. items.append(str(i[0]))
  2159.  
  2160. if itema[0] in items:
  2161. for it in range(0, len(self.waitingitemlist)):
  2162. if str(self.waitingitemlist[it][0]) == str(itema[0]):
  2163. self.waitingitemlist[it][2] = str(int(self.waitingitemlist[it][2]) + int(itema[2]))
  2164. self.sendbotinformation("changed item %s ammount to %s"%(itema[0], self.waitingitemlist[it][2]))
  2165. break
  2166. else:
  2167. self.waitingitemlist.append(itema)
  2168. self.sendbotinformation("Added item %s to waitingitems list"%itema[0])
  2169.  
  2170. def checkforcommand(self,value, user=""):
  2171. try:
  2172.  
  2173. if value.startswith("!say "):
  2174. self.sendmsg(value[5:len(value)], self.areaID)
  2175.  
  2176. if value.startswith("!allbot "):
  2177. for bot in self.form.botList:
  2178. bot.checkforcommand(value.split("!allbot ")[1])
  2179. pass
  2180. if value.startswith("!eval "):
  2181. self.sendmsg(eval(value[6:len(value)]), self.areaID)
  2182.  
  2183. if value.startswith("!kick "):
  2184. self.kickPlayerToBattleOn(value[6:len(value)])
  2185.  
  2186. if value.startswith("!report "):
  2187. self.reportPlayer(value[8:len(value)])
  2188.  
  2189. if value.startswith("!emote "):
  2190. self.doemote(value[7:len(value)].lower())
  2191.  
  2192. if value.startswith("!house "):
  2193. self.joinhouse(value[7:len(value)].lower())
  2194.  
  2195. if value.startswith("!move "):
  2196. self.move(value[6:len(value)].split(",")[0], value[6:len(value)].split(",")[1])
  2197.  
  2198. if value.startswith("!join "):
  2199. self.requestroom = value[6:len(value)].lower()
  2200. self.joinroom(self.requestroom)
  2201.  
  2202. if value.startswith("!killtarget "):
  2203. if user == "":
  2204. self.killTarget(value.split(" ")[1])
  2205. else:
  2206. pyThread(target=self.killTarget, args=[value.split(" ")[1]]).start()
  2207. pass
  2208.  
  2209. if value.startswith("!getitem "):
  2210. self.getItemifpossible(value[len("!getitem "):len(value)])
  2211.  
  2212. if value.startswith("!w "):
  2213. self.sendwhisper(value[3:len(value)].split(":")[0].lower(), value[4:len(value)].split(":")[1])
  2214.  
  2215. if value.startswith("!ew "):
  2216. self.sendwhisper(value[4:len(value)].split(":")[0].lower(), str(eval(value[4:len(value)].split(":")[1])))
  2217.  
  2218. if value.startswith("!movetocell "):
  2219. self.movetocell(value[12:len(value)].split(",")[0], str(value[12:len(value)].split(",")[1]))
  2220.  
  2221. if value.startswith("!me "):
  2222. self.sendme(value[4:len(value)], self.areaID)
  2223.  
  2224. if value.startswith("!mew "):
  2225. self.sendme(str(eval(value[5:len(value)])), self.areaID)
  2226.  
  2227. if value.startswith("!summon"):
  2228. if user.lower() not in self.usersdata:
  2229. self.goto(user.lower())
  2230. else:
  2231. if self.usersdata[self.botName.lower()]["strFrame"] != self.usersdata[user.lower()]["strFrame"]:
  2232. self.movetocell(self.usersdata[user.lower()]["strFrame"], self.usersdata[user.lower()]["strPad"])
  2233. self.usersdata[self.botName.lower()]["strFrame"] = self.usersdata[user.lower()]["strFrame"]
  2234.  
  2235.  
  2236. if value.startswith("!acceptquest "):
  2237. self.acceptQuest(value.split("!acceptquest ")[1])
  2238.  
  2239. if value.startswith("!rest"):
  2240. self.sock.send("%xt%zm%emotea%1%rest%" + chr(0))
  2241. self.sock.send("%xt%zm%restRequest%1%%" + chr(0))
  2242.  
  2243. if value.startswith("!exec "):
  2244. exec(value[6:len(value)])
  2245.  
  2246. if value.startswith("!attack "):
  2247. self.attack(value[8:len(value)].split(",")[0], value[8:len(value)].split(",")[1])
  2248.  
  2249. if value.startswith("!attackbyid "):
  2250. self.attackbyid(value[12:len(value)].split(",")[0], value[8:len(value)].split(",")[1])
  2251.  
  2252. if value.startswith("!useskill "):
  2253. self.useSkill(value[10:len(value)])
  2254.  
  2255. if value.startswith("!add "):
  2256. self.leaderGroup.append(value[5:len(value)].lower())
  2257. form.updateLeader()
  2258.  
  2259. if value.startswith("!follow "):
  2260. self.config["follow"] = (value[8:len(value)])
  2261. self.config["follow"] = self.config["follow"].lower()
  2262. self.config["followbot"] = True
  2263. if str(value[8:len(value)]).lower() in self.usersdata:
  2264. if str(self.usersdata[str(value[8:len(value)]).lower()]["ty"]) != "0":
  2265. self.move(self.usersdata[str(value[8:len(value)]).lower()]["tx"], self.usersdata[str(value[8:len(value)]).lower()]["ty"])
  2266. else:self.movetocell(self.usersdata[str(value[8:len(value)]).lower()]["strFrame"], self.usersdata[str(value[8:len(value)]).lower()]["strPad"])
  2267.  
  2268. if value.startswith("!sendpacket "):
  2269. self.sendPacket(value[12:len(value)])
  2270.  
  2271. if value.startswith("!reverse "):
  2272. self.sendmsg(value[9:len(value)][::-1],self.areaID)
  2273.  
  2274. if value.startswith("!copy "):
  2275. self.config["copy"] = (value[6:len(value)].lower())
  2276. self.config["copybot"] = True
  2277.  
  2278. if value.startswith("!pet "):
  2279. self.config["pet"] = (value[5:len(value)])
  2280. self.config["petbot"] = True
  2281.  
  2282. if value.startswith("!getusers"):
  2283. self.getPlayersInroom()
  2284.  
  2285. if value.startswith("!id"):
  2286. self.sendmsg("Your ID is : " + str(self.usersdata[user]["entID"]))
  2287.  
  2288. if value.startswith("!players"):
  2289. players = ""
  2290. for a in self.usersdata:
  2291. players = players + str(a) + ", "
  2292. players = players[0:len(players)-2]
  2293. self.sendmsg("Here is " + str(len(self.usersdata))+ " players. Players : " + players, self.areaID)
  2294.  
  2295. if value.startswith("!autogo "):
  2296. self.config["autogo"] = (eval(value[8:len(value)]))
  2297. self.pet = True
  2298.  
  2299. if value.startswith("!accept"):
  2300. self.sock.send("%xt%zm%gp%1%pa%35%"+ chr(0))
  2301.  
  2302. if value.startswith("!leave"):
  2303. self.sock.send("%xt%zm%gp%1%pl%"+ chr(0))
  2304.  
  2305. if value.startswith("!invite "):
  2306. self.inviteparty(value[8:len(value)])
  2307.  
  2308. if value.startswith("!import "):
  2309. form.loadplugin(value[8:len(value)])
  2310.  
  2311. if value.startswith("!plugin "):
  2312. form.loadplugin(value[8:len(value)])
  2313.  
  2314. if value.startswith("!data "):
  2315. try:
  2316. path='http://client.freecause.com/AdventureQuest/Toolbar/components/ac.php?username=' + value[6:len(value)]
  2317. path2='http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=' + value[6:len(value)]
  2318. path3='http://client.freecause.com/AdventureQuest/Toolbar/components/level.php?username=' + value[6:len(value)]
  2319. req=urllib2.Request(path)
  2320. req.add_header("Content-type", "application/x-www-form-urlencoded")
  2321. req2=urllib2.Request(path2)
  2322. req2.add_header("Content-type", "application/x-www-form-urlencoded")
  2323. req3=urllib2.Request(path3)
  2324. req3.add_header("Content-type", "application/x-www-form-urlencoded")
  2325. dtp = urllib2.urlopen(req).read().split("label='")[1].split("'")[0] + " "
  2326. dtp += urllib2.urlopen(req2).read().split("label='")[1].split("'")[0] + " "
  2327. dtp += urllib2.urlopen(req3).read().split("label='")[1].split("'")[0]
  2328. self.sendmsg(dtp)
  2329. except Exception as ex:self.form.sendrecv(str(ex))
  2330. pass
  2331.  
  2332. if value.startswith("!wdata "):
  2333. try:
  2334. path='http://client.freecause.com/AdventureQuest/Toolbar/components/ac.php?username=' + value[7:len(value)]
  2335. path2='http://client.freecause.com/AdventureQuest/Toolbar/components/gold.php?username=' + value[7:len(value)]
  2336. path3='http://client.freecause.com/AdventureQuest/Toolbar/components/level.php?username=' + value[7:len(value)]
  2337. req=urllib2.Request(path)
  2338. req.add_header("Content-type", "application/x-www-form-urlencoded")
  2339. req2=urllib2.Request(path2)
  2340. req2.add_header("Content-type", "application/x-www-form-urlencoded")
  2341. req3=urllib2.Request(path3)
  2342. req3.add_header("Content-type", "application/x-www-form-urlencoded")
  2343. dtp = urllib2.urlopen(req).read().split("label='")[1].split("'")[0] + " "
  2344. dtp += urllib2.urlopen(req2).read().split("label='")[1].split("'")[0] + " "
  2345. dtp += urllib2.urlopen(req3).read().split("label='")[1].split("'")[0]
  2346.  
  2347. self.sendwhisper(self.USER, dtp)
  2348. except Exception as ex:self.form.sendrecv(str(ex))
  2349. pass
  2350. if value.startswith("!goto "):
  2351. if str(value[6:len(value)]).lower() not in self.usersdata:
  2352. self.goto(str(value[6:len(value)]).lower())
  2353. else:
  2354. if self.usersdata[self.botName.lower()]["strFrame"] != self.usersdata[str(value[6:len(value)]).lower()]["strFrame"]:
  2355. self.movetocell(self.usersdata[str(value[6:len(value)]).lower()]["strFrame"], self.usersdata[str(value[6:len(value)]).lower()]["strPad"])
  2356. self.usersdata[self.botName.lower()]["strFrame"] = self.usersdata[str(value[6:len(value)]).lower()]["strFrame"]
  2357.  
  2358.  
  2359. except Exception as ex:self.sendwhisper(user, str(ex))
  2360.  
  2361. def tryloadMonster(self):
  2362. try:
  2363. if self.roomfailINT == 0:
  2364. self.sendbotinformation("Failed to load monsters. Loading monsters from memory")
  2365. self.loaderrorMonsterList(self.requestroom)
  2366. self.roomfailINT = 0
  2367. finally:
  2368. if self.roomfailINT == 0:
  2369. self.sendbotinformation("Loaded %s monsters."%len(self.MonsterList))
  2370.  
  2371. def uptadeUsersData(self, hpData):
  2372. try:
  2373. if "uoName" in hpData["b"]["o"]["o"]:
  2374. if hpData["b"]["o"]["o"]["uoName"] not in self.usersdata:
  2375. self.usersdata[hpData["b"]["o"]["o"]["uoName"]] = hpData["b"]["o"]["o"]
  2376. self.form.sendrecv("[INFO] : " + str(hpData["b"]["o"]["o"]["uoName"]) + " joined into room.")
  2377. #self.form.uptadeUsers()
  2378.  
  2379. if hpData["b"]["o"]["unm"].lower() in self.usersdata:
  2380. for value in hpData["b"]["o"]["o"]:
  2381. self.usersdata[hpData["b"]["o"]["unm"].lower()][value] = hpData["b"]["o"]["o"][value]
  2382.  
  2383.  
  2384. if "intMP" in hpData["b"]["o"]["o"]:
  2385. self.usersdata[hpData["b"]["o"]["unm"].lower()]["intMP"] = hpData["b"]["o"]["o"]["intMP"]
  2386. if hpData["b"]["o"]["unm"].lower() == self.botName.lower():
  2387. self.form.sendrecv("[INFO] Bot's MP is now : " + str(hpData["b"]["o"]["o"]["intMP"]))
  2388. self.MP = str(hpData["b"]["o"]["o"]["intMP"])
  2389. if "intHP" in hpData["b"]["o"]["o"]:
  2390. self.usersdata[hpData["b"]["o"]["unm"].lower()]["intHP"] = hpData["b"]["o"]["o"]["intHP"]
  2391. if hpData["b"]["o"]["unm"].lower() == self.botName.lower():
  2392. self.HP = str(hpData["b"]["o"]["o"]["intHP"])
  2393. self.form.sendrecv("[INFO] Bot's HP is now : " + str(hpData["b"]["o"]["o"]["intHP"]))
  2394. except:pass
  2395.  
  2396.  
  2397.  
  2398.  
  2399. def uptadeBattleData(self, hpData):
  2400.  
  2401. if "m" in hpData["b"]["o"]:
  2402. self.updatemonsterlist(hpData)
  2403.  
  2404. if "p" in hpData["b"]["o"]:
  2405. for user in hpData["b"]["o"]["p"]:
  2406. for val in hpData["b"]["o"]["p"][user]:
  2407. self.usersdata[user.lower()][val] = hpData["b"]["o"]["p"][user][val]
  2408. if val == "intHP":
  2409. if str(user).lower() == self.botName.lower():
  2410. self.HP = hpData["b"]["o"]["p"][user][val]
  2411. if hpData["b"]["o"]["p"][user][val] == 0:
  2412. if self.dead == False:
  2413. self.form.sendrecv("Respawn by battle")
  2414. self.respawn()
  2415. """
  2416.  
  2417.  
  2418. if "sara" in hpData["b"]["o"]:
  2419. if "p" in hpData["b"]["o"]:
  2420. for i in hpData["b"]["o"]["p"]:
  2421. if i.lower() in self.usersdata:
  2422. if "intHP" in hpData["b"]["o"]["p"][i]:
  2423. self.usersdata[i.lower()]["intHP"] = hpData["b"]["o"]["p"][i]["intHP"]
  2424. if i.lower() == self.botName.lower():
  2425. self.HP = hpData["b"]["o"]["p"][self.botName]["intHP"]
  2426. if hpData["b"]["o"]["p"][self.botName]["intHP"] <=0:
  2427. self.respawn()
  2428.  
  2429.  
  2430. if "sarsa" in hpData["b"]["o"]:
  2431. if "p" in hpData["b"]["o"]:
  2432. for i in hpData["b"]["o"]["p"]:
  2433. if str(i).lower() in self.usersdata:
  2434. if "intMP" in hpData["b"]["o"]["p"][i]:
  2435. self.usersdata[i]["intMP"] = hpData["b"]["o"]["p"][i]["intMP"]
  2436. if str(i).lower() == self.botName.lower():
  2437. self.MP = str(hpData["b"]["o"]["p"][i]["intMP"])
  2438.  
  2439. if "intHP" in hpData["b"]["o"]["p"][i]:
  2440. self.usersdata[i]["intHP"] = hpData["b"]["o"]["p"][i]["intHP"]
  2441. if str(i).lower() == self.botName.lower():
  2442. self.HP = str(hpData["b"]["o"]["p"][i]["intHP"])
  2443. if hpData["b"]["o"]["p"][i]["intHP"] <= 0:
  2444. self.respawn()
  2445. """
  2446.  
  2447. def getWheelData(self, itemdict):
  2448. try:
  2449.  
  2450. allitems = []
  2451. for itemi in self.inventory:
  2452. allitems.append(itemi[0])
  2453. for item in itemdict["b"]["o"]["dropItems"]:
  2454. if item in allitems:
  2455. self.sendbotinformation("get drop inventory")
  2456. itemID = item
  2457. itemAmmount = itemdict["b"]["o"]["dropItems"][item]["iQty"]
  2458. for i in self.inventory:
  2459. if i[0] == itemID:
  2460. itemName = i[1]
  2461. itemMaxAmmount = i[3]
  2462. itemCost = i[4]
  2463. itemDesc = i[5]
  2464. iLvl = i[6]
  2465. bHouse = i[7]
  2466. itemType = i[8]
  2467. self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
  2468.  
  2469. self.sendbotinformation("getdrop succes. inventory load")
  2470. else:
  2471. self.sendbotinformation("get drop not inventory")
  2472. itemID = item
  2473. itemName = itemdict["b"]["o"]["dropItems"][item]["sName"]
  2474. itemAmmount = itemdict["b"]["o"]["dropItems"][item]["iQty"]
  2475. itemMaxAmmount = itemdict["b"]["o"]["dropItems"][item]["iStk"]
  2476.  
  2477. itemDesc = itemdict["b"]["o"]["dropItems"][item]["sDesc"]
  2478. itemType = itemdict["b"]["o"]["dropItems"][item]["sType"]
  2479. itemCost = itemdict["b"]["o"]["dropItems"][item]["iCost"]
  2480. bHouse = itemdict["b"]["o"]["dropItems"][item]["bHouse"]
  2481. iLvl = itemdict["b"]["o"]["dropItems"][item]["iLvl"]
  2482. self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
  2483.  
  2484. #self.addwaitingitem([str(itemID), str(itemName), str(itemAmmount), str(itemMaxAmmount)]) --vanha
  2485. self.sendbotinformation("getdrop succes. drop data load")
  2486.  
  2487. except:pass
  2488.  
  2489.  
  2490.  
  2491. def getDropData(self, itemdict):
  2492. self.itemdict = itemdict
  2493. try:
  2494. try:
  2495. #self.itemdict = eval(info)
  2496. pass
  2497. except:self.sendbotinformation("Cannont make dict eval")
  2498. for item in self.itemdict["b"]["o"]["items"]:
  2499. self.sendbotinformation(item)
  2500. self.allitems = []
  2501. for itemi in self.inventory:
  2502. self.allitems.append(itemi[0])
  2503. self.sendbotinformation("Loaded all items")
  2504.  
  2505. if item in self.allitems:
  2506. self.sendbotinformation("get drop inventory")
  2507. itemID = item
  2508. itemAmmount = self.itemdict["b"]["o"]["items"][item]["iQty"]
  2509. for i in self.inventory:
  2510. if i[0] == itemID:
  2511. itemName = i[1]
  2512. itemMaxAmmount = i[3]
  2513. itemCost = i[4]
  2514. itemDesc = i[5]
  2515. iLvl = i[6]
  2516. bHouse = i[7]
  2517. itemType = i[8]
  2518. self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
  2519.  
  2520. self.sendbotinformation("getdrop succes. inventory load")
  2521. else:
  2522. self.sendbotinformation("get drop not inventory")
  2523. itemID = item
  2524. itemName = self.itemdict["b"]["o"]["items"][item]["sName"]
  2525. itemAmmount = self.itemdict["b"]["o"]["items"][item]["iQty"]
  2526. itemMaxAmmount = self.itemdict["b"]["o"]["items"][item]["iStk"]
  2527.  
  2528. itemDesc = self.itemdict["b"]["o"]["items"][item]["sDesc"]
  2529. itemType = self.itemdict["b"]["o"]["items"][item]["sType"]
  2530. itemCost = self.itemdict["b"]["o"]["items"][item]["iCost"]
  2531. bHouse = self.itemdict["b"]["o"]["items"][item]["bHouse"]
  2532. iLvl = self.itemdict["b"]["o"]["items"][item]["iLvl"]
  2533. self.addwaitingitem([str(itemID), itemName, str(itemAmmount), str(itemMaxAmmount), str(itemCost), itemDesc, str(iLvl), str(bHouse), itemType])
  2534.  
  2535. #self.addwaitingitem([str(itemID), str(itemName), str(itemAmmount), str(itemMaxAmmount)]) --vanha
  2536. self.sendbotinformation("getdrop succes. drop data load")
  2537.  
  2538. except:pass
  2539.  
  2540.  
  2541. def doRespawn(self):
  2542. self.dead = True
  2543. self.deadFrame = self.usersdata[self.botName]["strFrame"]
  2544. self.deadPad = self.usersdata[self.botName]["strPad"]
  2545.  
  2546. time.sleep(12)
  2547. if self.dead == True:
  2548. self.form.sendrecv("sended respawn packet")
  2549. self.sock.send("%xt%zm%resPlayerTimed%"+self.areaID+"%"+str(self.usersdata[self.botName.lower()]["entID"])+"%"+ chr(0))
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555. def respawn(self):
  2556. if self.dead == False:
  2557. self.mtarget = ""
  2558. self.form.sendrecv("respawn started")
  2559. pyThread(target=self.doRespawn, args=[]).start()
  2560. pass
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566. def checkInfo(self, info):
  2567. true = True
  2568. false = False
  2569. try:
  2570.  
  2571.  
  2572.  
  2573. #%xt%uotls%-1%xxzmage%sp:8,tx:230,ty:455,strFrame:Enter%
  2574. #if info.find("%xt%uotls%-1%"+self.config["follow"]+"%") !=-1:
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581. 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:
  2582. self.mtarget = ""
  2583. time.sleep(11)
  2584. try:
  2585.  
  2586. self.sock.send("%xt%zm%resPlayerTimed%"+self.areaID+"%"+self.entID+"%"+ chr(0))
  2587.  
  2588. if self.pvp == True:
  2589. self.pvp = False
  2590. self.joinroom("battleon")
  2591.  
  2592. self.HP = self.usersdata[self.botName.lower()]["intHPMax"]
  2593. self.usersdata[self.botName.lower()]["intHP"] = self.usersdata[self.botName.lower()]["intHPMax"]
  2594. self.usersdata[self.botName.lower()]["intMP"] = self.usersdata[self.botName.lower()]["intMPMax"]
  2595.  
  2596. except:pass
  2597.  
  2598.  
  2599.  
  2600. #if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"dropItem","items":{"') !=-1:
  2601.  
  2602.  
  2603.  
  2604. if self.config["petbot"] == True:
  2605. try:
  2606. if info.find('{"t":"xt","b":{"r":-1,"o":') !=-1 and info.find('"%s":{'%self.config["pet"]):
  2607. sta = info.split('{"t":"xt","b":{"r":-1,"o":')[1]
  2608. self.sta2 = sta.split('"')
  2609. if self.sta2[1]=="cmd" and self.sta2[3]=="ct":
  2610. if self.sta2[29] == self.config["pet"]:
  2611. if self.mtarget == "":
  2612. pyThread(target=self.killtargettilldeath, args=[self.sta2[25]]).start()
  2613.  
  2614. #%xt%zm%gar%1%1%a1>p:17795,a1>p:16960%wvz%
  2615.  
  2616.  
  2617. except Exception as error:print(str(error))
  2618.  
  2619.  
  2620. if info.find("<msg t='sys'><body action='joinOK'") !=-1:
  2621. try:
  2622. self.areaID = info.split("'")[5]
  2623. users2 = info.split("<u ")
  2624. self.userids = []
  2625. #self.sendbotinformation(info)
  2626. for i in users2:
  2627. if i.find('CDATA[%s]'%self.botName.lower()) !=-1:
  2628. self.botID = i.split("i='")[1].split("'")[0]
  2629.  
  2630. if i.find('CDATA[') !=-1:
  2631. self.userids.append([i.split("i='")[1].split("'")[0], i.split("CDATA[")[1].split("]")[0]])
  2632. except:form.sendrecv("Getting user error")
  2633.  
  2634.  
  2635. if info.find('"moveToArea","areaName":"') !=-1:
  2636. self.areaName = info.split('"areaName":"')[1].split('"')[0]
  2637. self.strFrame = info.split('strFrame":"')[1].split('"')[0]
  2638. self.strPad = info.split('strPad":')[1].split('"')[0]
  2639. pass
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646. if info.find('{"t":"xt","b":{"r":-1,"o":{"cmd":"requestFriend","unm":') != -1:
  2647. data = eval(info)
  2648. owner = data["b"]["o"]["unm"]
  2649. self.sock.send("%xt%zm%declineFriend%1%" + owner + "%"+ chr(0))
  2650. pass
  2651.  
  2652.  
  2653.  
  2654. if info.find('{"t":"xt","b":{"r":-1,"o":{"shopinfo":') !=-1:
  2655. shopData = eval(info)
  2656. self.shopName = shopData["b"]["o"]["shopinfo"]["sName"]
  2657. self.shopID = shopData["b"]["o"]["shopinfo"]["ShopID"]
  2658. self.shopitems = []
  2659. for i in shopData["b"]["o"]["shopinfo"]["items"]:
  2660. ShopItemID = i["ShopItemID"]
  2661. ItemID = i["ItemID"]
  2662.  
  2663. sName = i["sName"]
  2664. sDesc = i["sDesc"]
  2665.  
  2666. iCost = i["iCost"]#sDesc
  2667.  
  2668. iLvl = i["iLvl"]
  2669. iReqRep = i["iReqRep"]
  2670. iReqCP = i["iReqCP"]
  2671. itemAmmount = i["iQty"]
  2672. itemMaxAmmount = i["iStk"]
  2673.  
  2674. bHouse = i["bHouse"]
  2675. sType = i["sType"]
  2676.  
  2677. self.shopitems.append([str(ItemID), sName, str(itemAmmount), str(itemMaxAmmount), str(iCost), sDesc, str(iLvl), str(bHouse), sType, str(ShopItemID)])
  2678. self.shops[str(self.shopID)] = [self.shopName, shopData["b"]["o"]["shopinfo"]["items"]]
  2679.  
  2680. #{"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":""}}}}}
  2681. #self.shops[str(self.shopID)] = [self.shopName, shopData["b"]["o"]["shopinfo"]["items"]]
  2682.  
  2683.  
  2684.  
  2685.  
  2686. if info.find('%xt%server%-1%')!=-1:
  2687. servStr = ""
  2688. servStr = info.split("%xt%server%-1%")[1]
  2689. servStr = servStr.split("%")[0]#The battle has been decided
  2690. if servStr.startswith("You joined") !=-1:
  2691. #self.getPlayersInroom()
  2692. pass
  2693. form.sendrecv("[SERVER] : " + str(servStr))
  2694. if self.pvp == True:
  2695. if servStr.find("The battle has been decided") !=-1:
  2696. self.joinroom("battleon")
  2697.  
  2698. if self.config["autogo"] == True:
  2699. self.goto(self.config["leader"])
  2700.  
  2701. except:pass
  2702.  
  2703.  
  2704. def checkPacket(self, data):
  2705. data3 = data.split(chr(0))
  2706. print(data3)
  2707. for info in data3:
  2708. if info != "":
  2709.  
  2710. if info.find("%xt%whisper%-1%") !=-1:
  2711. try:
  2712. self.msg = info.split("whisper%-1%")
  2713. self.msg2 = self.msg[1]
  2714. self.msg3 = self.msg2.split("%")
  2715. self.MSG = self.msg3[0]
  2716. self.USER = self.msg3[1].rstrip(' \t\r\n\0')
  2717. self.checkuser(self.USER)
  2718. form.sendrecv("[WHISPER] %s : "%self.USER + self.MSG)
  2719.  
  2720. info = ""
  2721. except:pass
  2722.  
  2723. elif info.find("party~") !=-1 and info.find("%xt%zm%message%"):
  2724. self.msg = info.split("party~")
  2725. self.msg2 = self.msg[1]
  2726. self.msg3 = self.msg2.split("%")
  2727. self.MSG = self.msg3[0]
  2728. self.USER = self.msg3[1]
  2729. self.checkuser(self.USER)
  2730. form.sendrecv("[PARTY] %s : "%self.USER + self.MSG)
  2731.  
  2732. info = ""
  2733.  
  2734. elif info.find("zone~") !=-1 and info.find("%xt%chatm%") !=-1:
  2735. try:
  2736. self.msg = info.split("zone~")
  2737. self.msg2 = self.msg[1]
  2738. self.msg3 = self.msg2.split("%")
  2739. self.MSG = self.msg3[0]
  2740. self.USER = self.msg3[1].rstrip(' \t\r\n\0')
  2741. if self.USER == self.botName:
  2742. form.sendrecv("[ZONE] %s : "%self.USER + self.MSG)
  2743. self.USER = ""
  2744. self.MSG = ""
  2745. self.entID = self.msg3[2]
  2746. self.areaID = self.msg3[3]
  2747. self.entID = self.entID.rstrip(' \t\r\n\0')
  2748. self.areaID = self.areaID.rstrip(' \t\r\n\0')
  2749. if self.USER != "":
  2750. form.sendrecv("[ZONE] %s : "%self.USER + self.MSG)
  2751. self.checkuser(self.USER)
  2752. info = ""
  2753. except:pass
  2754. elif info.find("%xt%em%-1%") !=-1:
  2755. try:
  2756. self.USER = info.split("%")[4]
  2757. self.MSG = info.split("%")[5]
  2758. self.checkuser(self.USER)
  2759. form.sendrecv("[ME] %s : "%self.USER + self.MSG)
  2760. except:pass
  2761. else:
  2762. self.checkInfo(info)
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768. def handleXtPacket(self, data):
  2769. try:
  2770. handler = data.split('%')[1]
  2771. action = data.split('%')[2]
  2772. if (handler == "xt"):
  2773. if (action == "emotea"):
  2774. emotea = data.split('%')[4]
  2775. userID = data.split('%')[5]
  2776. #if (userID != self.usersdata[self.botName.lower()]):
  2777. #self.doemote(emotea)
  2778.  
  2779. elif (action == "warning"):
  2780.  
  2781. data.split('%')[3];
  2782. warning = data.split('%')[4]
  2783. form.sendrecv("[WARNING] : " + warning)
  2784.  
  2785.  
  2786.  
  2787. elif (action == "loginResponse"):
  2788. tmessage = data.split('%')[7]
  2789. form.sendrecv("[LOGIN][RESPONSE] : " + tmessage)
  2790. form.sendrecv(data)
  2791.  
  2792.  
  2793. elif (action == "sawk"):
  2794. msg = data.split('%')[4]
  2795. form.sendrecv("[WHEEL] : " + msg)
  2796. MessageBox.Show(str(msg))
  2797.  
  2798.  
  2799.  
  2800. elif (action == "server"):
  2801.  
  2802. self.areaID = data.split('%')[3]
  2803. warning = data.split('%')[4]
  2804. form.sendrecv("[SERVER] : " + warning)
  2805.  
  2806.  
  2807.  
  2808. elif (action == "respawnMon"):
  2809. self.respawarmupdate(data)
  2810.  
  2811. elif (action == "resTimed"):
  2812. if self.dead == False:
  2813. if hpData["b"]["o"]["o"]["intHP"] <=0:
  2814. self.form.sendrecv("Respawn by usersdata")
  2815. self.respawn()
  2816. else:
  2817. if self.pvp == True:
  2818. self.joinroom("battleon")
  2819. self.dead = False
  2820. else:
  2821. self.movetocell(self.deadFrame, self.deadPad)
  2822. self.dead = False
  2823.  
  2824.  
  2825. elif (action == "whisper"):
  2826. areaID = data.split('%')[3];
  2827. area = data.split('%')[4].split('~')[0];
  2828. self.MSG = data.split('%')[4];
  2829. self.USER = data.split('%')[5];
  2830. if self.USER.lower() != self.botName.lower():
  2831. form.sendrecv("[WHISPER][FROM " + self.USER + "] : " + self.MSG);
  2832. else:
  2833. form.sendrecv("[WHISPER][TO " + data.split('%')[6] + "] : " + self.MSG);
  2834.  
  2835. self.checkuser(self.USER.lower())
  2836.  
  2837.  
  2838. elif (action == "chatm"):
  2839.  
  2840. self.areaID = data.split('%')[3]
  2841. area = data.split('%')[4].split('~')[0]
  2842. self.MSG = data.split('%')[4].split('~')[1]
  2843. self.USER = data.split('%')[5]
  2844. form.sendrecv("[ZONE][" + self.USER + "] : " + self.MSG)
  2845. self.checkuser(self.USER.lower())
  2846. if self.config["copybot"] == True:
  2847. if self.USER !="" or self.USER.lower() != self.botName.lower():
  2848. if self.USER==self.config["copy"]:
  2849. self.sendmsg(self.MSG, self.areaID)
  2850.  
  2851. elif (action == "message"):
  2852.  
  2853. self.areaID = data.split('%')[3]
  2854. area = data.split('%')[4].split('~')[0]
  2855. self.MSG = data.split('%')[4].split('~')[1]
  2856. self.USER = data.split('%')[5]
  2857. form.sendrecv("[PARTY][" + self.USER + "] : " + self.MSG)
  2858. self.checkuser(self.USER.lower())
  2859. #if self.config["copy"]:
  2860. # pass
  2861.  
  2862. elif (action == "em"):
  2863. try:
  2864. self.areaID = data.split('%')[3]
  2865. area = data.split('%')[4].split('~')[0]
  2866. self.MSG = data.split('%')[4].split('~')[1]
  2867. self.USER = data.split('%')[5]
  2868. form.sendrecv("[ME][" + USER + "] : " + MSG)
  2869. self.checkuser(self.USER.lower())
  2870. #if self.config["copy"]:
  2871. # pas
  2872. except:pass
  2873.  
  2874. elif (action == "uotls"):
  2875. USER = data.split('%')[4];
  2876. if (USER.lower() in self.usersdata):
  2877. tx = ""
  2878. ty = ""
  2879. strFrame = ""
  2880. strpad = ""
  2881. userLocations = data.split('%')[5].split(',')
  2882. for value in userLocations:
  2883.  
  2884. if (value.find("tx:")!=-1):
  2885. self.usersdata[USER.lower()]["tx"] = int(value.split(':')[1])
  2886. tx = value.split(':')[1]
  2887.  
  2888. if (value.find("ty:")!=-1):
  2889. self.usersdata[USER.lower()]["ty"] = int(value.split(':')[1])
  2890. ty = value.split(':')[1]
  2891.  
  2892. if (value.find("strFrame:")!=-1):
  2893. self.usersdata[USER.lower()]["strFrame"] = value.split(':')[1]
  2894. strFrame = value.split(':')[1]
  2895.  
  2896. if (value.find("strPad:") !=-1):
  2897.  
  2898. self.usersdata[USER.lower()]["strPad"] = value.split(':')[1]
  2899. strpad = value.split(':')[1]
  2900.  
  2901. if (strFrame == self.usersdata[self.botName.lower()]["strFrame"]):
  2902.  
  2903. if (tx != "0"):
  2904. if self.config["followbot"] == True:
  2905. if self.config["follow"].lower() == USER.lower():
  2906. self.move(tx, ty)
  2907.  
  2908.  
  2909. else:
  2910.  
  2911. if (USER.lower() == self.config["leader"].lower()):
  2912. self.goto(self.leader)
  2913. self.lLoc = "%xt%zm%moveToCell%"+self.areaID+"%"+ strFrame +"%"+ strpad +"%"
  2914.  
  2915.  
  2916. elif (action == "exitArea"):
  2917. USER = str(data.split('%')[5])
  2918. if (USER.lower() in self.usersdata):
  2919. del self.usersdata[USER.lower()]
  2920. self.sendbotinformation(USER + " leaved room.")
  2921. #if (USER.lower() == self.leader.lower()):
  2922. #self.goto(self.leader)
  2923.  
  2924. else:
  2925. pass
  2926. except:pass
  2927. def handleJsonPacket(self, data):
  2928. true = True
  2929. false = False
  2930. null = None
  2931. action = data["b"]["o"]["cmd"]
  2932. t = data["t"]
  2933. if(t == "xt"):
  2934. #%xt%moderator%-1%(Artix) AdventureQuest 3D Dev Team LIVE STREAM starting now http://www.aq3d.com %
  2935. if (action == "pi"):
  2936. self.pid = data["b"]["o"]["pid"]
  2937. if (str(data["b"]["o"]["owner"]).lower() in self.leaderGroup):
  2938. pid = data["b"]["o"]["pid"]
  2939.  
  2940. self.sock.send("%xt%zm%gp%1%pa%" + str(pid) + "%" + chr(0))
  2941. elif(action == "uotls"):
  2942. self.uptadeUsersData(data)
  2943.  
  2944. elif (action == "ct"):
  2945. self.uptadeBattleData(data)
  2946.  
  2947. elif (action == "di"):
  2948. owner = data["b"]["o"]["owner"]
  2949. self.dueler = owner.lower()
  2950. if owner.lower() in self.leaderGroup:
  2951. self.sock.send("%xt%zm%da%1%" + owner + "%"+ chr(0))
  2952. time.sleep(3)
  2953. self.movetocell("Enter0", "Spawn")
  2954. self.sock.send("%xt%zm%mtcid%" + self.areaID + "%2%" + chr(0))
  2955. self.pvp = True
  2956. else:
  2957. self.sock.send("%xt%zm%dd%1%" + owner + "%" + chr(0))
  2958.  
  2959. elif (action == "addGoldExp"):
  2960. if "intExp" in data["b"]["o"]:
  2961. self.EXP = int(data["b"]["o"]["intExp"]) + int(self.EXP)
  2962. if "intGold" in data["b"]["o"]:
  2963. self.gold = int(data["b"]["o"]["intGold"]) + int(self.gold)
  2964.  
  2965. elif (action == "moveToArea"):
  2966. form.sendrecv(str(data));
  2967. if "mondef" in data["b"]["o"]:
  2968. form.sendrecv("1");
  2969. self.poopmonster = data
  2970. self.getMonsters(data)
  2971. else:self.MonsterList = {}
  2972.  
  2973. if "uoBranch" in data["b"]["o"]:
  2974. self.usersdata = {}
  2975. for i in range(len(data["b"]["o"]["uoBranch"])):
  2976. self.usersdata[data["b"]["o"]["uoBranch"][i]["uoName"]] = data["b"]["o"]["uoBranch"][i]
  2977.  
  2978.  
  2979. elif (action == "equipItem"):
  2980. if str(data["b"]["o"]["uid"]) == str(self.botID):
  2981. if data["b"]["o"]["strES"] == "Weapon":
  2982. self.weapon = data["b"]["o"]["ItemID"]
  2983.  
  2984. if data["b"]["o"]["strES"] == "he":
  2985. self.helm = data["b"]["o"]["ItemID"]
  2986.  
  2987. if data["b"]["o"]["strES"] == "ba":
  2988. self.cape = data["b"]["o"]["ItemID"]
  2989.  
  2990. if data["b"]["o"]["strES"] == "co":
  2991. self.armor = data["b"]["o"]["ItemID"]
  2992.  
  2993. if data["b"]["o"]["strES"] == "ar":
  2994. self.classarmor = data["b"]["o"]["ItemID"]
  2995. self.checkClass(self.classarmor)
  2996.  
  2997. elif (action == "ps"):
  2998. user = data["b"]["o"]["unm"]
  2999. if str(user).lower() in self.leaderGroup:
  3000. self.sock.send("%xt%zm%gp%1%psa%" + chr(0))
  3001. self.goto(self.config["leader"])#dropItem
  3002.  
  3003. elif (action == "dropItem"):
  3004. self.getDropData(data)
  3005.  
  3006. elif (action == "Wheel"):
  3007. pass
  3008. #MessageBox.Show("Wheel!" + str(self))
  3009.  
  3010. elif (action == "who"):
  3011. self.USERS = []
  3012. self.userids = []
  3013. for i in data["b"]["o"]["users"]:
  3014. self.userids.append([i, data["b"]["o"]["users"][i]["sName"].lower()])
  3015. for i in data["b"]["o"]["users"]:
  3016. self.USERS.append(data["b"]["o"]["users"][i]["sName"].lower())
  3017.  
  3018. elif (action == "unequipItem"):
  3019. if str(data["b"]["o"]["uid"]) == str(self.botID):
  3020. if data["b"]["o"]["strES"] == "Weapon":
  3021. self.weapon = ""
  3022.  
  3023. if data["b"]["o"]["strES"] == "he":
  3024. self.helm = ""
  3025.  
  3026. if data["b"]["o"]["strES"] == "ba":
  3027. self.cape = ""
  3028.  
  3029. if data["b"]["o"]["strES"] == "co":
  3030. self.armor = ""
  3031.  
  3032. if data["b"]["o"]["strES"] == "ar":
  3033. self.classarmor = ""
  3034.  
  3035. elif (action == "initUserDatas"):
  3036.  
  3037. self.form.cmdvtxt.Text = ""
  3038. self.form.sendrecv("DATA :" + str(data))
  3039. try:
  3040. self.gold = data["b"]["o"]["a"][0]["data"]["intDBGold"]
  3041. self.coins = data["b"]["o"]["a"][0]["data"]["intCoins"]
  3042. self.houseSlots = data["b"]["o"]["a"][0]["data"]["iHouseSlots"]
  3043. self.bankSlots = data["b"]["o"]["a"][0]["data"]["iBankSlots"]
  3044. self.EXP = data["b"]["o"]["a"][0]["data"]["intExp"]
  3045. self.EXPtonextlvl = data["b"]["o"]["a"][0]["data"]["intExpToLevel"]
  3046. self.hairID = data["b"]["o"]["a"][0]["data"]["HairID"]
  3047. self.bagslots = data["b"]["o"]["a"][0]["data"]["iBagSlots"]
  3048. self.botLvl = data["b"]["o"]["a"][0]["data"]["intLevel"]
  3049. except:pass
  3050. self.sock.send("%xt%zm%retrieveInventory%" + self.areaID + "%" + self.botID + "%" + chr(0))
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056. elif (action == "loadInventoryBig"):
  3057. try:
  3058.  
  3059. for i in data["b"]["o"]["items"]:
  3060. ItemID = str(i["ItemID"])
  3061. sName = i["sName"]
  3062. sDesc = i["sDesc"]
  3063. iCost = str(i["iCost"]/4)#sDesc
  3064. iLvl = str(i["iLvl"])
  3065. itemAmmount = str(i["iQty"])
  3066. itemMaxAmmount = str(i["iStk"])
  3067. bHouse = str(i["bHouse"])
  3068. sType = i["sType"]
  3069. if sType == "Class":
  3070. itemAmmount = 1
  3071. self.inventory.append([ItemID, sName, itemAmmount, itemMaxAmmount, iCost, sDesc, iLvl, bHouse, sType])
  3072.  
  3073. if len(data["b"]["o"]["hitems"]) > 0:
  3074. for i in data["b"]["o"]["hitems"]:
  3075. ItemID = i["ItemID"]
  3076. sName = i["sName"]
  3077. sDesc = i["sDesc"]
  3078. iCost = str(i["iCost"]/4)#sDesc
  3079. iLvl = i["iLvl"]
  3080. itemAmmount = i["iQty"]
  3081. itemMaxAmmount = i["iStk"]
  3082. bHouse = i["bHouse"]
  3083. sType = i["sType"]
  3084. self.houseinv.append([str(ItemID), sName, str(itemAmmount), str(itemMaxAmmount), str(iCost), str(sDesc), str(iLvl), str(bHouse), str(sType)])
  3085.  
  3086. except:pass
  3087.  
  3088. elif (action == "sAct"):
  3089. #self.form.sendrecv(action)
  3090. #self.form.sendrecv(str(data))
  3091. for i in range(0, len(data["b"]["o"]["actions"]["active"])):
  3092. self.classData[i] = data["b"]["o"]["actions"]["active"][i]
  3093. self.classData[i]["curCD"] = time.time()
  3094.  
  3095. elif (action == "getDrop"):
  3096. form.sendrecv(str(data))
  3097. try:
  3098. itemID = str(data["b"]["o"]["ItemID"])
  3099. if str(data["b"]["o"]["bSuccess"]) != "0":
  3100. for i in self.waitingitemlist[:]:
  3101. if str(i[0]) == str(itemID):
  3102. self.waitingitemlist.remove(i)
  3103. self.form.loadwaitingitemlist()
  3104.  
  3105. pass
  3106.  
  3107.  
  3108. pass
  3109. except:pass
  3110.  
  3111. elif (action == "addItems"):
  3112. tempList = []
  3113. #MessageBox.Show("h")
  3114. for itema in self.questItems:
  3115. tempList.append(itema)
  3116.  
  3117. for itemi in data["b"]["o"]["items"]:
  3118. if itemi not in self.questItems:
  3119. self.questItems[itemi] = data["b"]["o"]["items"][itemi]
  3120. else:
  3121. self.questItems[itemi]["iQty"] += int(data["b"]["o"]["items"][itemi]["iQty"])
  3122. self.form.currentItemi("","")
  3123.  
  3124. elif (action == "getQuests"):
  3125.  
  3126. for quest in data["b"]["o"]["quests"]:
  3127. self.questsData[quest] = data["b"]["o"]["quests"][quest]
  3128.  
  3129. self.form.checkQuestData(self.questsData)
  3130.  
  3131. elif (action == "loadBank"):
  3132. for itemi in data["b"]["o"]["items"]:
  3133. self.bankItems[itemi["ItemID"]] = itemi
  3134.  
  3135.  
  3136.  
  3137. else:
  3138. self.form.sendrecv(str(data))
  3139. pass
  3140.  
  3141.  
  3142.  
  3143. def checkPacketType(self, data):
  3144. true = True
  3145. false = False
  3146. dataSplit = data.split(chr(0))
  3147. for info in dataSplit:
  3148. if info.startswith("{"):
  3149. true = True
  3150. false = False
  3151. null = None
  3152. self.handleJsonPacket(eval(info))
  3153. elif info.startswith("%"):
  3154. self.handleXtPacket(info)
  3155. else:
  3156. print(data)
  3157.  
  3158. pass
  3159. def handlelogin(self, data):
  3160. true = True
  3161. false = False
  3162. data3 = data.split(chr(0))
  3163. for i in data3:
  3164. if i != "":
  3165.  
  3166. info = i
  3167. self.checkPacketType(info)
  3168.  
  3169.  
  3170.  
  3171. if info.find("<allow-access-from domain='*'") !=-1:
  3172. self.sock.send("<msg t='sys'><body action='verChk' r='0'><ver v='157' /></body></msg>" + chr(0))
  3173. self.form.sendrecv(data);
  3174.  
  3175.  
  3176.  
  3177. if info.find("<msg t='sys'><body action='apiOK' r='0'>") !=-1:
  3178. self.sock.send("<msg t='sys'><body action='login' r='0'><login z='zone_master'><nick><![CDATA[N7B5W8W1Y5B1R5VWVZ~"+ self.myplayer +"]]></nick><pword><![CDATA[%s]]></pword></login></body></msg>" % self.pword + chr(0))
  3179.  
  3180. if info.find('gMenu=gameMenu') != -1:
  3181. self.form.sendrecv(info)
  3182. self.sock.send("%xt%zm%firstJoin%1%" + chr(0))
  3183. self.sock.send("%xt%zm%cmd%1%ignoreList%$clearAll%" + chr(0))
  3184.  
  3185. if info.find("joinOK") !=-1:
  3186. try:
  3187. self.areaID = info.split("'")[5]
  3188. users2 = info.split("<u ")
  3189. self.userids = []
  3190. for i in users2:
  3191. if i.find('CDATA[%s]'%self.botName.lower()) !=-1:
  3192. self.botID = i.split("i='")[1].split("'")[0]
  3193. self.userids.append(i.split("i='")[1].split("'")[0])
  3194. if i.find('CDATA[') !=-1:
  3195. self.userids.append([i.split("i='")[1].split("'")[0], i.split("CDATA[")[1].split("]")[0]])
  3196.  
  3197.  
  3198. self.sock.send("%xt%zm%retrieveUserDatas%" + self.areaID + "%" + self.botID + "%" + chr(0))
  3199.  
  3200. except:form.sendrecv("Getting user error")
  3201.  
  3202.  
  3203. if info.find("%xt%server%-1%You joined") !=-1:
  3204. self.sock.send("%xt%zm%moveToCell%" + self.areaID + "%Enter%Spawn%" + chr(0))
  3205. pass
  3206.  
  3207. if info.find("Character load complete") !=-1:
  3208. #del(self.pword)
  3209.  
  3210. self.lLoc = ""
  3211. self.USER = ""
  3212. self.mtarget = ""
  3213. self.donelogin = True
  3214. break
  3215.  
  3216. def startgamelogin(self):
  3217. firsttime = True
  3218. if firsttime == True:
  3219. self.sock.send("<policy-file-request/>" + chr(0))
  3220. firsttime = False
  3221.  
  3222. while self.donelogin == False:
  3223. self.data = self.sock.recv(1024).decode("UTF-8")
  3224.  
  3225. if self.data.endswith(chr(0)) == True:
  3226. self.handlelogin(self.data)
  3227. else:
  3228. while self.data.endswith(chr(0)) == False:
  3229. self.data = self.data + self.sock.recv(1024).decode("UTF-8")
  3230. if self.data.endswith(chr(0)) == True:
  3231. self.handlelogin(self.data)
  3232. break
  3233. if self.donelogin !=False:break
  3234.  
  3235. def startgame(self):
  3236. while True:
  3237. self.data = self.sock.recv(1024).decode("UTF-8")
  3238. print(self.data)
  3239. if self.data.endswith("\x00") == True:
  3240. self.checkPacketType(self.data)
  3241. else:
  3242. while self.data.endswith("\x00") == False:
  3243. self.data = self.data + self.sock.recv(1024).decode("UTF-8")
  3244. if self.data.endswith("\x00") == True:
  3245. self.checkPacketType(self.data)
  3246. break
  3247.  
  3248.  
  3249. def keepalive(self):
  3250. self.inventory = []
  3251. self.data = ""
  3252. self.roomfailINT = 0
  3253. self.donelogin = False
  3254. self.botID = "0"
  3255.  
  3256. self.startgamelogin()
  3257. self.startgame()#/house kill confirmed
  3258.  
  3259. class getBot:
  3260. def __init__(self, pword, name, IPs, form):
  3261. try:
  3262. self.BOT = aqwbot()
  3263. self.BOT.load("", name, "")
  3264. self.BOT.myplayer = name
  3265. self.BOT.botName = name
  3266. self.BOT.pword = pword
  3267. self.BOT.setform(form)
  3268. self.BOT.IPs = IPs
  3269. self.BOT.connecti()
  3270. self.BOT.form.botList.append(self.BOT)
  3271. pyThread(target=self.BOT.keepalive, args=[]).start()
  3272. print "yes"#!exec getBot(self.pword, self.botName, self.IPs, self.form)
  3273. except Exception as ex:
  3274. print ex
  3275.  
  3276.  
  3277.  
  3278. Application.EnableVisualStyles()
  3279. Application.SetCompatibleTextRenderingDefault(False)
  3280.  
  3281. form = MyForm()
  3282. print "Gui loaded"
  3283. Application.Run(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement