Advertisement
Guest User

Untitled

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