neteast 发表于 2022-7-31 20:21

mud游戏寻仙纪伪客户端,目前可以切换地图,打野了

逛论坛时,看到一个贴子https://www.52pojie.cn/forum.php?mod=viewthread&tid=1640497]https://www.52pojie.cn/forum.php?mod=viewthread&tid=1640497
下边有人回复了一个网址,试玩了一会,还有点意思。
不过有个BUG,死了以后不能治疗复生。

玩久了就无聊,网上找了源代码自己部署一下,就有了以下程序。

目前可以实现的功能比较简单。
1.登陆
2.切换地图
3.打怪

像什么:穿戴装备,升级装备,吃血包,任务功能,门派,坊市,排行,聊天,注册这些功能统统都没有……





食用方法


一。你得自己去那个网址注册一个账号。
二。打开本软件,输入账号密码。(不好意思,密码也没遮挡是明文的)
三。登录后,可以显示玩家的状态,级别等。右下角的方向键可以切换地图(相当于行走了)
四。场景有NPC,或者是野怪会显示于左侧列表。
五。想打野的时候,点野怪列表中的一个,再点《查看》,再点《公鸡》,就发动了一次攻击,连续点《攻击》直至你死或者他死后,会刷新数据。
六。没了,就是这么无聊。没事的时候继续写着玩
七。需要其它操作,还是得登陆网址操作。


打包好的程序下载地址如下:
下载:https://wwz.lanzoub.com/iCRTr08rfevg 密码:52pj


寻仙记的服务端代码如下:有想自己部署的可以试试,这个包解决了不能治疗的BUG
下载:https://wwz.lanzoub.com/i4Vc608rfirg 密码:52pj


代码如下


# -*- coding:utf-8 -*-
# @FileName:52pj_xunxianUI.py
# @#author    :neteast@52pojie
import base64
import time
from tkinter import *
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.font as tkFont
import tkinter.messagebox
from lxml import etree
import warnings
import re
import requests

LOG_LINE_NUM = 0
class App:
    def __init__(self, root):
      self.initUI()
      self.initData()
      self.test()

    def test(self):
      if self.status_test:



            pass


    def initData(self):
      self.status_test = True
      self.needDecode =True
      self.tag = 'odd'
      self.session = requests.Session()
      self.session.headers.update({
                                        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'})
      self.url_base = 'http://youxi.kebai.work/'
      self.url_game =self.url_base +'game.php'
      self.NowObject_op1 =None
      self.NowObject_op2 =None
      self.NowObject_op3 =None
      self.NowPosition = None
      self.url_navW = None
      self.url_navE = None
      self.url_navN = None
      self.url_navS = None

      pass


    def initUI(self):
      #setting title
      root.title("寻仙记 neteast@52pojie")
      #setting window size
      width=1273
      height=696
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      root.geometry(alignstr)
      root.resizable(width=False, height=False)

      self.GButton_9=tk.Button(root)
      self.GButton_9["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_9["font"] = ft
      self.GButton_9["fg"] = "#000000"
      self.GButton_9["justify"] = "center"
      self.GButton_9["text"] = "当前位置"
      self.GButton_9.place(x=1100,y=620,width=69,height=30)
      self.GButton_9["command"] = self.GButton_9_command

      self.GButton_720=tk.Button(root)
      self.GButton_720["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_720["font"] = ft
      self.GButton_720["fg"] = "#000000"
      self.GButton_720["justify"] = "center"
      self.GButton_720["text"] = "向北"
      self.GButton_720.place(x=1090,y=590,width=91,height=30)
      self.GButton_720["command"] = self.GButton_720_command

      self.GButton_126=tk.Button(root)
      self.GButton_126["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_126["font"] = ft
      self.GButton_126["fg"] = "#000000"
      self.GButton_126["justify"] = "center"
      self.GButton_126["text"] = "向西"
      self.GButton_126.place(x=1010,y=620,width=88,height=30)
      self.GButton_126["command"] = self.GButton_126_command

      self.GButton_750=tk.Button(root)
      self.GButton_750["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_750["font"] = ft
      self.GButton_750["fg"] = "#000000"
      self.GButton_750["justify"] = "center"
      self.GButton_750["text"] = "向东"
      self.GButton_750.place(x=1170,y=620,width=94,height=30)
      self.GButton_750["command"] = self.GButton_750_command

      self.GButton_181=tk.Button(root)
      self.GButton_181["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_181["font"] = ft
      self.GButton_181["fg"] = "#000000"
      self.GButton_181["justify"] = "center"
      self.GButton_181["text"] = "向南"
      self.GButton_181.place(x=1090,y=650,width=91,height=30)
      self.GButton_181["command"] = self.GButton_181_command

      self.GLabel_72=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_72["font"] = ft
      self.GLabel_72["fg"] = "#333333"
      self.GLabel_72["justify"] = "center"
      self.GLabel_72["text"] = "气血"
      self.GLabel_72.place(x=10,y=620,width=30,height=30)

      self.GLineEdit_556=tk.Entry(root)
      self.GLineEdit_556["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_556["font"] = ft
      self.GLineEdit_556["fg"] = "#333333"
      self.GLineEdit_556["justify"] = "center"
      self.GLineEdit_556["text"] = "45/199"
      self.GLineEdit_556.place(x=40,y=620,width=118,height=30)

      self.GLabel_795=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_795["font"] = ft
      self.GLabel_795["fg"] = "#333333"
      self.GLabel_795["justify"] = "center"
      self.GLabel_795["text"] = "攻击"
      self.GLabel_795.place(x=160,y=620,width=30,height=30)

      self.GLineEdit_634=tk.Entry(root)
      self.GLineEdit_634["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_634["font"] = ft
      self.GLineEdit_634["fg"] = "#333333"
      self.GLineEdit_634["justify"] = "center"
      self.GLineEdit_634["text"] = "38"
      self.GLineEdit_634.place(x=190,y=620,width=59,height=30)

      self.GLabel_228=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_228["font"] = ft
      self.GLabel_228["fg"] = "#333333"
      self.GLabel_228["justify"] = "center"
      self.GLabel_228["text"] = "防御"
      self.GLabel_228.place(x=250,y=620,width=35,height=30)

      self.GLineEdit_875=tk.Entry(root)
      self.GLineEdit_875["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_875["font"] = ft
      self.GLineEdit_875["fg"] = "#333333"
      self.GLineEdit_875["justify"] = "center"
      self.GLineEdit_875["text"] = "27"
      self.GLineEdit_875.place(x=290,y=620,width=70,height=25)

      self.GLabel_517=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_517["font"] = ft
      self.GLabel_517["fg"] = "#333333"
      self.GLabel_517["justify"] = "center"
      self.GLabel_517["text"] = "暴击"
      self.GLabel_517.place(x=360,y=620,width=36,height=30)

      self.GLineEdit_588=tk.Entry(root)
      self.GLineEdit_588["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_588["font"] = ft
      self.GLineEdit_588["fg"] = "#333333"
      self.GLineEdit_588["justify"] = "center"
      self.GLineEdit_588["text"] = "0%"
      self.GLineEdit_588.place(x=400,y=620,width=70,height=25)

      self.GLabel_19=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_19["font"] = ft
      self.GLabel_19["fg"] = "#333333"
      self.GLabel_19["justify"] = "center"
      self.GLabel_19["text"] = "吸血"
      self.GLabel_19.place(x=470,y=620,width=35,height=30)

      self.GLineEdit_323=tk.Entry(root)
      self.GLineEdit_323["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_323["font"] = ft
      self.GLineEdit_323["fg"] = "#333333"
      self.GLineEdit_323["justify"] = "center"
      self.GLineEdit_323["text"] = "2%"
      self.GLineEdit_323.place(x=510,y=620,width=70,height=25)

      self.GLineEdit_129=tk.Entry(root)
      self.GLineEdit_129["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_129["font"] = ft
      self.GLineEdit_129["fg"] = "#333333"
      self.GLineEdit_129["justify"] = "center"
      self.GLineEdit_129["text"] = "百炼青刚剑+7"
      self.GLineEdit_129.place(x=1050,y=120,width=167,height=30)

      self.GButton_673=tk.Button(root)
      self.GButton_673["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_673["font"] = ft
      self.GButton_673["fg"] = "#000000"
      self.GButton_673["justify"] = "center"
      self.GButton_673["text"] = "卸下"
      self.GButton_673["relief"] = "groove"
      self.GButton_673.place(x=1220,y=120,width=44,height=30)
      self.GButton_673["command"] = self.GButton_673_command

      self.GLabel_994=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_994["font"] = ft
      self.GLabel_994["fg"] = "#333333"
      self.GLabel_994["justify"] = "center"
      self.GLabel_994["text"] = "头饰"
      self.GLabel_994.place(x=1020,y=150,width=30,height=30)

      self.GLineEdit_810=tk.Entry(root)
      self.GLineEdit_810["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_810["font"] = ft
      self.GLineEdit_810["fg"] = "#333333"
      self.GLineEdit_810["justify"] = "center"
      self.GLineEdit_810["text"] = "无"
      self.GLineEdit_810.place(x=1050,y=150,width=167,height=30)

      self.GButton_928=tk.Button(root)
      self.GButton_928["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_928["font"] = ft
      self.GButton_928["fg"] = "#000000"
      self.GButton_928["justify"] = "center"
      self.GButton_928["text"] = "卸下"
      self.GButton_928["relief"] = "groove"
      self.GButton_928.place(x=1220,y=150,width=44,height=30)
      self.GButton_928["command"] = self.GButton_928_command

      self.GLabel_789=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_789["font"] = ft
      self.GLabel_789["fg"] = "#333333"
      self.GLabel_789["justify"] = "center"
      self.GLabel_789["text"] = "衣服"
      self.GLabel_789.place(x=1020,y=180,width=31,height=30)

      self.GLineEdit_708=tk.Entry(root)
      self.GLineEdit_708["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_708["font"] = ft
      self.GLineEdit_708["fg"] = "#333333"
      self.GLineEdit_708["justify"] = "center"
      self.GLineEdit_708["text"] = "衣服"
      self.GLineEdit_708.place(x=1050,y=180,width=167,height=30)

      self.GButton_299=tk.Button(root)
      self.GButton_299["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_299["font"] = ft
      self.GButton_299["fg"] = "#000000"
      self.GButton_299["justify"] = "center"
      self.GButton_299["text"] = "卸下"
      self.GButton_299["relief"] = "groove"
      self.GButton_299.place(x=1220,y=180,width=44,height=30)
      self.GButton_299["command"] = self.GButton_299_command

      self.GLabel_466=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_466["font"] = ft
      self.GLabel_466["fg"] = "#333333"
      self.GLabel_466["justify"] = "center"
      self.GLabel_466["text"] = "腰带"
      self.GLabel_466.place(x=1020,y=210,width=32,height=30)

      self.GLineEdit_554=tk.Entry(root)
      self.GLineEdit_554["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_554["font"] = ft
      self.GLineEdit_554["fg"] = "#333333"
      self.GLineEdit_554["justify"] = "center"
      self.GLineEdit_554["text"] = "腰带"
      self.GLineEdit_554.place(x=1050,y=210,width=168,height=30)

      self.GButton_682=tk.Button(root)
      self.GButton_682["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_682["font"] = ft
      self.GButton_682["fg"] = "#000000"
      self.GButton_682["justify"] = "center"
      self.GButton_682["text"] = "卸下"
      self.GButton_682["relief"] = "groove"
      self.GButton_682.place(x=1220,y=210,width=44,height=30)
      self.GButton_682["command"] = self.GButton_682_command

      self.GLineEdit_809=tk.Entry(root)
      self.GLineEdit_809["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_809["font"] = ft
      self.GLineEdit_809["fg"] = "#333333"
      self.GLineEdit_809["justify"] = "center"
      self.GLineEdit_809["text"] = "首饰"
      self.GLineEdit_809.place(x=1050,y=240,width=167,height=30)

      self.GButton_289=tk.Button(root)
      self.GButton_289["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_289["font"] = ft
      self.GButton_289["fg"] = "#000000"
      self.GButton_289["justify"] = "center"
      self.GButton_289["text"] = "卸下"
      self.GButton_289["relief"] = "groove"
      self.GButton_289.place(x=1220,y=240,width=44,height=30)
      self.GButton_289["command"] = self.GButton_289_command

      self.GLabel_474=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_474["font"] = ft
      self.GLabel_474["fg"] = "#333333"
      self.GLabel_474["justify"] = "center"
      self.GLabel_474["text"] = "首饰"
      self.GLabel_474.place(x=1020,y=240,width=30,height=31)

      self.GLabel_368=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_368["font"] = ft
      self.GLabel_368["fg"] = "#333333"
      self.GLabel_368["justify"] = "center"
      self.GLabel_368["text"] = "鞋子"
      self.GLabel_368.place(x=1020,y=270,width=30,height=33)

      self.GLineEdit_31=tk.Entry(root)
      self.GLineEdit_31["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_31["font"] = ft
      self.GLineEdit_31["fg"] = "#333333"
      self.GLineEdit_31["justify"] = "center"
      self.GLineEdit_31["text"] = "鞋子"
      self.GLineEdit_31.place(x=1050,y=270,width=167,height=30)

      self.GButton_503=tk.Button(root)
      self.GButton_503["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_503["font"] = ft
      self.GButton_503["fg"] = "#000000"
      self.GButton_503["justify"] = "center"
      self.GButton_503["text"] = "卸下"
      self.GButton_503["relief"] = "groove"
      self.GButton_503.place(x=1220,y=270,width=44,height=30)
      self.GButton_503["command"] = self.GButton_503_command

      self.GLabel_355=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_355["font"] = ft
      self.GLabel_355["fg"] = "#333333"
      self.GLabel_355["justify"] = "center"
      self.GLabel_355["text"] = "境界"
      self.GLabel_355.place(x=590,y=620,width=35,height=30)

      self.GLineEdit_546=tk.Entry(root)
      self.GLineEdit_546["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_546["font"] = ft
      self.GLineEdit_546["fg"] = "#333333"
      self.GLineEdit_546["justify"] = "center"
      self.GLineEdit_546["text"] = "3"
      self.GLineEdit_546.place(x=630,y=620,width=70,height=25)

      self.GLabel_786=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_786["font"] = ft
      self.GLabel_786["fg"] = "#333333"
      self.GLabel_786["justify"] = "center"
      self.GLabel_786["text"] = "等级"
      self.GLabel_786.place(x=710,y=620,width=32,height=30)

      self.GLineEdit_644=tk.Entry(root)
      self.GLineEdit_644["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_644["font"] = ft
      self.GLineEdit_644["fg"] = "#333333"
      self.GLineEdit_644["justify"] = "center"
      self.GLineEdit_644["text"] = "9"
      self.GLineEdit_644.place(x=750,y=620,width=70,height=25)

      self.GLabel_582=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_582["font"] = ft
      self.GLabel_582["fg"] = "#333333"
      self.GLabel_582["justify"] = "center"
      self.GLabel_582["text"] = "灵石"
      self.GLabel_582.place(x=10,y=650,width=31,height=30)

      self.GLineEdit_998=tk.Entry(root)
      self.GLineEdit_998["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_998["font"] = ft
      self.GLineEdit_998["fg"] = "#333333"
      self.GLineEdit_998["justify"] = "center"
      self.GLineEdit_998["text"] = "1999"
      self.GLineEdit_998.place(x=40,y=650,width=95,height=30)

      self.GLabel_925=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_925["font"] = ft
      self.GLabel_925["fg"] = "#333333"
      self.GLabel_925["justify"] = "center"
      self.GLabel_925["text"] = "极品"
      self.GLabel_925.place(x=130,y=650,width=54,height=30)

      self.GLineEdit_789=tk.Entry(root)
      self.GLineEdit_789["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_789["font"] = ft
      self.GLineEdit_789["fg"] = "#333333"
      self.GLineEdit_789["justify"] = "center"
      self.GLineEdit_789["text"] = "101"
      self.GLineEdit_789.place(x=180,y=650,width=82,height=30)

      self.GLabel_565=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_565["font"] = ft
      self.GLabel_565["fg"] = "#333333"
      self.GLabel_565["justify"] = "center"
      self.GLabel_565["text"] = "修为"
      self.GLabel_565.place(x=260,y=650,width=46,height=30)

      self.GLineEdit_268=tk.Entry(root)
      self.GLineEdit_268["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_268["font"] = ft
      self.GLineEdit_268["fg"] = "#333333"
      self.GLineEdit_268["justify"] = "center"
      self.GLineEdit_268["text"] = "1640/1626"
      self.GLineEdit_268.place(x=310,y=650,width=171,height=30)

      self.GLineEdit_969=tk.Entry(root)
      self.GLineEdit_969["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_969["font"] = ft
      self.GLineEdit_969["fg"] = "#333333"
      self.GLineEdit_969["justify"] = "center"
      self.GLineEdit_969["text"] = "当前npc"
      self.GLineEdit_969.place(x=10,y=30,width=143,height=106)
      yscroll = Scrollbar(self.GLineEdit_969, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('NPC' , '操作','url' )
      self.tvNpc=ttk.Treeview(self.GLineEdit_969,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvNpc.yview)
      self.tvNpc.pack()
      self.tvNpc.column(title,width=85,anchor=CENTER)
      self.tvNpc.heading(title,text=title)
      self.tvNpc.column(title,width=40,anchor='w')
      self.tvNpc.heading(title,text=title)
      self.tvNpc.heading(title,text=title)
      # self.tvNpc.bind('<<TreeviewSelect>>', self.tvNpcSelection)

      self.GLineEdit_612=tk.Entry(root)
      self.GLineEdit_612["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_612["font"] = ft
      self.GLineEdit_612["fg"] = "#333333"
      self.GLineEdit_612["justify"] = "center"
      self.GLineEdit_612["text"] = "当前野怪"
      self.GLineEdit_612.place(x=10,y=140,width=143,height=221)
      yscroll = Scrollbar(self.GLineEdit_612, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('怪物' , '操作','url' )
      self.tvMonster=ttk.Treeview(self.GLineEdit_612,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvMonster.yview)
      self.tvMonster.pack()
      self.tvMonster.column(title,width=85,anchor=CENTER)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.column(title,width=40,anchor='w')
      self.tvMonster.heading(title,text=title)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLineEdit_252=tk.Entry(root)
      self.GLineEdit_252["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_252["font"] = ft
      self.GLineEdit_252["fg"] = "#333333"
      self.GLineEdit_252["justify"] = "center"
      self.GLineEdit_252["text"] = "公屏聊天内容"
      self.GLineEdit_252.place(x=160,y=480,width=751,height=87)

      self.GLineEdit_10=tk.Entry(root)
      self.GLineEdit_10["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_10["font"] = ft
      self.GLineEdit_10["fg"] = "#333333"
      self.GLineEdit_10["justify"] = "center"
      self.GLineEdit_10["text"] = "输入消息"
      self.GLineEdit_10.place(x=180,y=570,width=729,height=30)

      self.GButton_728=tk.Button(root)
      self.GButton_728["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_728["font"] = ft
      self.GButton_728["fg"] = "#000000"
      self.GButton_728["justify"] = "center"
      self.GButton_728["text"] = "发送"
      self.GButton_728.place(x=930,y=570,width=68,height=30)
      self.GButton_728["command"] = self.GButton_728_command

      self.GLineEdit_386=tk.Entry(root)
      self.GLineEdit_386["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_386["font"] = ft
      self.GLineEdit_386["fg"] = "#333333"
      self.GLineEdit_386["justify"] = "center"
      self.GLineEdit_386["text"] = "好友列表"
      self.GLineEdit_386.place(x=910,y=340,width=108,height=230)

      self.GCheckBox_967=tk.Checkbutton(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GCheckBox_967["font"] = ft
      self.GCheckBox_967["fg"] = "#333333"
      self.GCheckBox_967["justify"] = "center"
      self.GCheckBox_967["text"] = "公屏"
      self.GCheckBox_967.place(x=20,y=570,width=44,height=30)
      self.GCheckBox_967["offvalue"] = "0"
      self.GCheckBox_967["onvalue"] = "1"
      self.GCheckBox_967["command"] = self.GCheckBox_967_command

      self.GLineEdit_294=tk.Entry(root)
      self.GLineEdit_294["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_294["font"] = ft
      self.GLineEdit_294["fg"] = "#333333"
      self.GLineEdit_294["justify"] = "center"
      self.GLineEdit_294["text"] = "对方昵称"
      self.GLineEdit_294.place(x=70,y=570,width=99,height=30)

      self.GLineEdit_742=tk.Text(root)
      self.GLineEdit_742["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_742["font"] = ft
      self.GLineEdit_742["fg"] = "#333333"
      self.GLineEdit_742.place(x=390,y=30,width=520,height=448)

      self.GLabel_497=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_497["font"] = ft
      self.GLabel_497["fg"] = "#333333"
      self.GLabel_497["justify"] = "center"
      self.GLabel_497["text"] = "武器"
      self.GLabel_497.place(x=1020,y=120,width=30,height=30)

      self.GLabel_851=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_851["font"] = ft
      self.GLabel_851["fg"] = "#333333"
      self.GLabel_851["justify"] = "center"
      self.GLabel_851["text"] = "账号"
      self.GLabel_851.place(x=10,y=0,width=31,height=30)

      self.GButton_107=tk.Button(root)
      self.GButton_107["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_107["font"] = ft
      self.GButton_107["fg"] = "#000000"
      self.GButton_107["justify"] = "center"
      self.GButton_107["text"] = "登陆"
      self.GButton_107.place(x=240,y=0,width=70,height=25)
      self.GButton_107["command"] = self.GButton_107_command

      self.GLabel_35=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_35["font"] = ft
      self.GLabel_35["fg"] = "#333333"
      self.GLabel_35["justify"] = "center"
      self.GLabel_35["text"] = "密码"
      self.GLabel_35.place(x=120,y=0,width=42,height=30)

      self.GLineEdit_363=tk.Entry(root)
      self.GLineEdit_363["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_363["font"] = ft
      self.GLineEdit_363["fg"] = "#333333"
      self.GLineEdit_363["justify"] = "center"
      self.GLineEdit_363["text"] = "账号"
      self.GLineEdit_363.place(x=40,y=0,width=70,height=25)

      self.GLineEdit_127=tk.Entry(root)
      self.GLineEdit_127["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_127["font"] = ft
      self.GLineEdit_127["fg"] = "#333333"
      self.GLineEdit_127["justify"] = "center"
      self.GLineEdit_127["text"] = "密码"
      self.GLineEdit_127.place(x=160,y=0,width=70,height=25)

      self.GLabel_894=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_894["font"] = ft
      self.GLabel_894["fg"] = "#333333"
      self.GLabel_894["justify"] = "center"
      self.GLabel_894["text"] = "玩家昵称"
      self.GLabel_894.place(x=320,y=0,width=70,height=25)

      self.GLineEdit_458=tk.Entry(root)
      self.GLineEdit_458["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_458["font"] = ft
      self.GLineEdit_458["fg"] = "#333333"
      self.GLineEdit_458["justify"] = "center"
      self.GLineEdit_458["text"] = "玩家"
      self.GLineEdit_458.place(x=390,y=0,width=70,height=25)

      self.GLabel_129=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_129["font"] = ft
      self.GLabel_129["fg"] = "#333333"
      self.GLabel_129["justify"] = "center"
      self.GLabel_129["text"] = "所属门派"
      self.GLabel_129.place(x=470,y=0,width=62,height=30)

      self.GLineEdit_456=tk.Entry(root)
      self.GLineEdit_456["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_456["font"] = ft
      self.GLineEdit_456["fg"] = "#333333"
      self.GLineEdit_456["justify"] = "center"
      self.GLineEdit_456["text"] = "门派"
      self.GLineEdit_456.place(x=540,y=0,width=70,height=25)

      self.GLabel_80=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_80["font"] = ft
      self.GLabel_80["fg"] = "#333333"
      self.GLabel_80["justify"] = "center"
      self.GLabel_80["text"] = "任务"
      self.GLabel_80.place(x=1020,y=50,width=30,height=41)

      self.GLineEdit_39=tk.Entry(root)
      self.GLineEdit_39["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_39["font"] = ft
      self.GLineEdit_39["fg"] = "#333333"
      self.GLineEdit_39["justify"] = "center"
      self.GLineEdit_39["text"] = "任务"
      self.GLineEdit_39.place(x=1050,y=0,width=208,height=116)

      self.GLineEdit_445=tk.Text(root)
      self.GLineEdit_445["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_445["font"] = ft
      self.GLineEdit_445["fg"] = "#333333"
      self.GLineEdit_445.place(x=1020,y=340,width=243,height=241)

      self.GButton_947=tk.Button(root)
      self.GButton_947["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_947["font"] = ft
      self.GButton_947["fg"] = "#000000"
      self.GButton_947["justify"] = "center"
      self.GButton_947["text"] = "修练查看"
      self.GButton_947["relief"] = "groove"
      self.GButton_947.place(x=490,y=650,width=58,height=30)
      self.GButton_947["command"] = self.GButton_947_command

      self.GLineEdit_714=tk.Entry(root)
      self.GLineEdit_714["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_714["font"] = ft
      self.GLineEdit_714["fg"] = "#333333"
      self.GLineEdit_714["justify"] = "center"
      self.GLineEdit_714["text"] = "30"
      self.GLineEdit_714.place(x=560,y=650,width=51,height=30)

      self.GLabel_364=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_364["font"] = ft
      self.GLabel_364["fg"] = "#333333"
      self.GLabel_364["justify"] = "center"
      self.GLabel_364["text"] = "分钟"
      self.GLabel_364.place(x=610,y=650,width=30,height=30)

      self.GLineEdit_563=tk.Entry(root)
      self.GLineEdit_563["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_563["font"] = ft
      self.GLineEdit_563["fg"] = "#333333"
      self.GLineEdit_563["justify"] = "center"
      self.GLineEdit_563["text"] = "920"
      self.GLineEdit_563.place(x=650,y=650,width=60,height=30)

      self.GLabel_403=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_403["font"] = ft
      self.GLabel_403["fg"] = "#333333"
      self.GLabel_403["justify"] = "center"
      self.GLabel_403["text"] = "修为"
      self.GLabel_403.place(x=710,y=650,width=35,height=30)

      self.GButton_744=tk.Button(root)
      self.GButton_744["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_744["font"] = ft
      self.GButton_744["fg"] = "#000000"
      self.GButton_744["justify"] = "center"
      self.GButton_744["text"] = "停止"
      self.GButton_744["relief"] = "groove"
      self.GButton_744.place(x=750,y=650,width=64,height=30)
      self.GButton_744["command"] = self.GButton_744_command

      self.GButton_32=tk.Button(root)
      self.GButton_32["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_32["font"] = ft
      self.GButton_32["fg"] = "#000000"
      self.GButton_32["justify"] = "center"
      self.GButton_32["text"] = "药品"
      self.GButton_32["relief"] = "groove"
      self.GButton_32.place(x=1030,y=310,width=35,height=30)
      self.GButton_32["command"] = self.GButton_32_command

      self.GButton_793=tk.Button(root)
      self.GButton_793["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_793["font"] = ft
      self.GButton_793["fg"] = "#000000"
      self.GButton_793["justify"] = "center"
      self.GButton_793["text"] = "装备"
      self.GButton_793["relief"] = "groove"
      self.GButton_793.place(x=1070,y=310,width=35,height=30)
      self.GButton_793["command"] = self.GButton_793_command

      self.GButton_217=tk.Button(root)
      self.GButton_217["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_217["font"] = ft
      self.GButton_217["fg"] = "#000000"
      self.GButton_217["justify"] = "center"
      self.GButton_217["text"] = "道具"
      self.GButton_217["relief"] = "groove"
      self.GButton_217.place(x=1110,y=310,width=34,height=30)
      self.GButton_217["command"] = self.GButton_217_command

      self.GButton_889=tk.Button(root)
      self.GButton_889["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_889["font"] = ft
      self.GButton_889["fg"] = "#000000"
      self.GButton_889["justify"] = "center"
      self.GButton_889["text"] = "符箓"
      self.GButton_889["relief"] = "groove"
      self.GButton_889.place(x=1150,y=310,width=35,height=30)
      self.GButton_889["command"] = self.GButton_889_command

      self.GButton_724=tk.Button(root)
      self.GButton_724["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_724["font"] = ft
      self.GButton_724["fg"] = "#000000"
      self.GButton_724["justify"] = "center"
      self.GButton_724["text"] = "坊市"
      self.GButton_724["relief"] = "groove"
      self.GButton_724.place(x=1190,y=310,width=35,height=30)
      self.GButton_724["command"] = self.GButton_724_command

      self.GButton_210=tk.Button(root)
      self.GButton_210["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_210["font"] = ft
      self.GButton_210["fg"] = "#000000"
      self.GButton_210["justify"] = "center"
      self.GButton_210["text"] = "排行"
      self.GButton_210["relief"] = "groove"
      self.GButton_210.place(x=1230,y=310,width=35,height=30)
      self.GButton_210["command"] = self.GButton_210_command

      self.GLabel_380=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_380["font"] = ft
      self.GLabel_380["fg"] = "#333333"
      self.GLabel_380["justify"] = "center"
      self.GLabel_380["text"] = "当前地图"
      self.GLabel_380.place(x=630,y=0,width=67,height=30)

      self.GLineEdit_300=tk.Entry(root)
      self.GLineEdit_300["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_300["font"] = ft
      self.GLineEdit_300["fg"] = "#333333"
      self.GLineEdit_300["justify"] = "center"
      self.GLineEdit_300["text"] = "当前地图"
      self.GLineEdit_300.place(x=710,y=0,width=94,height=30)

      self.GLineEdit_179=tk.Entry(root)
      self.GLineEdit_179["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_179["font"] = ft
      self.GLineEdit_179["fg"] = "#333333"
      self.GLineEdit_179["justify"] = "center"
      self.GLineEdit_179["text"] = "当前场景玩家"
      self.GLineEdit_179.place(x=10,y=370,width=146,height=195)

      self.GLabel_953=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_953["font"] = ft
      self.GLabel_953["fg"] = "#333333"
      self.GLabel_953["justify"] = "center"
      self.GLabel_953["text"] = "当前对象"
      self.GLabel_953.place(x=170,y=30,width=54,height=30)

      self.GLineEdit_824=tk.Entry(root)
      self.GLineEdit_824["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_824["font"] = ft
      self.GLineEdit_824["fg"] = "#333333"
      self.GLineEdit_824["justify"] = "center"
      self.GLineEdit_824["text"] = "对象"
      self.GLineEdit_824.place(x=230,y=30,width=152,height=30)

      self.GListBox_981=tk.Text(root)
      self.GListBox_981["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GListBox_981["font"] = ft
      self.GListBox_981["fg"] = "#333333"
      self.GListBox_981.place(x=160,y=190,width=226,height=287)

      self.GButton_779=tk.Button(root)
      self.GButton_779["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_779["font"] = ft
      self.GButton_779["fg"] = "#000000"
      self.GButton_779["justify"] = "center"
      self.GButton_779["text"] = "操作1"
      self.GButton_779["relief"] = "groove"
      self.GButton_779.place(x=170,y=70,width=58,height=30)
      self.GButton_779["command"] = self.GButton_779_command

      self.GLabel_300=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_300["font"] = ft
      self.GLabel_300["fg"] = "#333333"
      self.GLabel_300["justify"] = "center"
      self.GLabel_300["text"] = "世界地图"
      self.GLabel_300.place(x=830,y=0,width=70,height=25)

      self.GLineEdit_938=tk.Entry(root)
      self.GLineEdit_938["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_938["font"] = ft
      self.GLineEdit_938["fg"] = "#333333"
      self.GLineEdit_938["justify"] = "center"
      self.GLineEdit_938["text"] = "世界地图"
      self.GLineEdit_938.place(x=910,y=0,width=108,height=336)

      self.GButton_745=tk.Button(root)
      self.GButton_745["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_745["font"] = ft
      self.GButton_745["fg"] = "#000000"
      self.GButton_745["justify"] = "center"
      self.GButton_745["text"] = "操作2"
      self.GButton_745["relief"] = "groove"
      self.GButton_745.place(x=240,y=70,width=61,height=30)
      self.GButton_745["command"] = self.GButton_745_command

      self.GButton_152=tk.Button(root)
      self.GButton_152["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_152["font"] = ft
      self.GButton_152["fg"] = "#000000"
      self.GButton_152["justify"] = "center"
      self.GButton_152["text"] = "操作3"
      self.GButton_152["relief"] = "groove"
      self.GButton_152.place(x=310,y=70,width=61,height=30)
      self.GButton_152["command"] = self.GButton_152_command

      self.GButton_14=tk.Button(root)
      self.GButton_14["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_14["font"] = ft
      self.GButton_14["fg"] = "#000000"
      self.GButton_14["justify"] = "center"
      self.GButton_14["text"] = "技能1"
      self.GButton_14["relief"] = "groove"
      self.GButton_14.place(x=170,y=110,width=57,height=30)
      self.GButton_14["command"] = self.GButton_14_command

      self.GButton_645=tk.Button(root)
      self.GButton_645["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_645["font"] = ft
      self.GButton_645["fg"] = "#000000"
      self.GButton_645["justify"] = "center"
      self.GButton_645["text"] = "技能2"
      self.GButton_645["relief"] = "groove"
      self.GButton_645.place(x=240,y=110,width=61,height=30)
      self.GButton_645["command"] = self.GButton_645_command

      self.GButton_141=tk.Button(root)
      self.GButton_141["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_141["font"] = ft
      self.GButton_141["fg"] = "#000000"
      self.GButton_141["justify"] = "center"
      self.GButton_141["text"] = "技能3"
      self.GButton_141["relief"] = "groove"
      self.GButton_141.place(x=310,y=110,width=61,height=30)
      self.GButton_141["command"] = self.GButton_141_command

      self.GButton_581=tk.Button(root)
      self.GButton_581["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_581["font"] = ft
      self.GButton_581["fg"] = "#000000"
      self.GButton_581["justify"] = "center"
      self.GButton_581["text"] = "药品1"
      self.GButton_581["relief"] = "groove"
      self.GButton_581.place(x=170,y=150,width=57,height=30)
      self.GButton_581["command"] = self.GButton_581_command

      self.GButton_405=tk.Button(root)
      self.GButton_405["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_405["font"] = ft
      self.GButton_405["fg"] = "#000000"
      self.GButton_405["justify"] = "center"
      self.GButton_405["text"] = "药品2"
      self.GButton_405["relief"] = "groove"
      self.GButton_405.place(x=240,y=150,width=63,height=30)
      self.GButton_405["command"] = self.GButton_405_command

      self.GButton_125=tk.Button(root)
      self.GButton_125["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_125["font"] = ft
      self.GButton_125["fg"] = "#000000"
      self.GButton_125["justify"] = "center"
      self.GButton_125["text"] = "药品3"
      self.GButton_125["relief"] = "groove"
      self.GButton_125.place(x=310,y=150,width=60,height=30)
      self.GButton_125["command"] = self.GButton_125_command

    def tvMonsterSelection(self, event):

      # self.GLineEdit_companyname.delete(0,'end')

      items = event.widget.selection()
      item = self.tvMonster.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      # self.GLineEdit_companyname.insert(0,item)
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'

    def setNowObject(self,name,url):
      self.GLineEdit_824.delete(0,'end')
      self.GLineEdit_824.insert(0,name)
      # self._log(url)
      req = self._requests('get', url, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//body/text()")
      links =[]
      self.GListBox_981.delete(0.0,'end')

      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                if "掉落" in text:
                  self.GListBox_981.insert('end',"\n"+text+"\n")
                else:
                  self.GListBox_981.insert('end',text+"\n")
      table_element = html_etree.xpath("//body//div/a/text()")
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                self.GListBox_981.insert('end',row.strip()+"\n")

      table_element = html_etree.xpath("//a")
      for row in table_element:
            if row.text =='攻击':
                # print(row.text)
                self.GButton_779['text'] = '查看'
                self.NowObject_op1 = self.url_game+row.attrib["href"]
                # self._log(self.NowObject_op1)

    def GButton_779_command(self): #查看血量 野怪详情
      # print("command self.GButton_779")
      if self.NowObject_op1:
            req = self._requests('get', self.NowObject_op1, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip)>0:
                  # self.GListBox_981.insert('end',rowstrip+"\n")
                  # print(rowstrip)
                  if rowstrip == "==战斗==":
                            self.GListBox_981.insert('end',rowstrip+"\n")
                  elif rowstrip == "===================":
                        self.GListBox_981.insert('end',tempstr+"\n")
                        tempstr = ""
                        self.GListBox_981.insert('end',rowstrip+"\n")
                  elif rowstrip =='逃跑':
                        continue
                  else:
                        tempstr= tempstr +" "+ rowstrip
            self.GListBox_981.insert('end',tempstr+"\n")

            table_element = html_etree.xpath("//a")
            for row in table_element:
                if row.text =='攻击':
                  self.GButton_745['text'] = '攻击'
                  self.NowObject_op2 = self.url_game+row.attrib["href"]
                  # self._log(self.NowObject_op1)
                  self.GButton_745['state'] = 'active'
                  break

    def GButton_745_command(self): #发起进攻
            print("command self.GButton_745")
            if self.NowObject_op2:
                req = self._requests('get', self.NowObject_op2, decode_level=1)
                html_etree = etree.HTML(req)
                table_element = html_etree.xpath("//body//text()")
                tempstr = ""
                for row in table_element:
                  text = row.strip().replace('\n', '').replace('\r\n', '')
                  if len(text)>0:
                        # self.GListBox_981.insert('end',row.strip()+"\n")
                        rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                        print(rowstrip)
                        if rowstrip == "==战斗==":
                            self._log(rowstrip)
                        elif rowstrip == "===================":
                            self._log(tempstr)
                            tempstr = ""
                            self._log(rowstrip)
                        elif rowstrip =='逃跑':
                            break
                        elif rowstrip =='返回游戏':
                            print(rowstrip)
                            table_element = html_etree.xpath("//a")
                            for row in table_element:

                              if row.text == '返回游戏':
                                    url_game =self.url_game+row.attrib["href"]
                                    print(url_game)
                                    self.refreshGame(url_game)
                                    self.GButton_745['state'] = 'disable'
                                    self.GButton_779['state'] = 'disable'
                                    break
                        else:
                            tempstr= tempstr +" "+ rowstrip
                self._log(tempstr)

    def GButton_9_command(self):
      print(self.NowPosition)
      self.refreshGame(self.NowPosition)


    def GButton_720_command(self):
      print("command")
      url_game = self.url_game + self.url_navN
      self.refreshGame(url_game)


    def GButton_126_command(self):#向西
      print("command Button_126")
      url = self.url_navW
      url_game = self.url_game + self.url_navW
      self.refreshGame(url_game)


    def GButton_750_command(self):
      print("command")
      url_game = self.url_game + self.url_navE
      self.refreshGame(url_game)


    def GButton_181_command(self):
      print("command")
      url_game = self.url_game + self.url_navS
      self.refreshGame(url_game)


    def GButton_673_command(self):
      print("command")


    def GButton_928_command(self):
      print("command")


    def GButton_299_command(self):
      print("command")


    def GButton_682_command(self):
      print("command")


    def GButton_289_command(self):
      print("command")


    def GButton_503_command(self):
      print("command")


    def GButton_728_command(self):
      print("command")


    def GCheckBox_967_command(self):
      print("command")


    def GButton_107_command(self):
      username = self.GLineEdit_363.get().strip()
      userpass = self.GLineEdit_127.get().strip()
      url_login = self.url_base
      data_login = {"username":username,"userpass":userpass,"submit":"登陆"}
      req = self._requests('post', url_login, decode_level=3,data=data_login)
      # print(req.headers)
      # print(req.headers["refresh"])
      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return
      if not refresh: #登陆成功
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return

      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"账号{username}登陆成功")
      url_refresh = url_split
      url_game = self.url_base + url_refresh
      # print(url_game) #refresh地址 获取用户信息
      req = self._requests('get', url_game, decode_level=3)
      refresh = None
      try:
            refresh = req.headers["refresh"] #取用户信息成功跳转上次玩家地图
      except:
            self._log(f"服务器返回数据出错,请联系管理员")
            return

      if not refresh:
            self._log(f"服务器返回数据出错,请联系管理员")
            return
      self._log(f"取用户信息成功")
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"进入寻仙世界失败,请联系管理员")
            return
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      self._log(f"欢迎进入寻仙世界")
      self.refreshGame(url_game)
      self.NowPosition = url_game

    def refreshGame(self,url_game):
      print(url_game) #refresh地址 获取用户信息
      self.NowPosition = url_game
      req = self._requests('get', url_game, decode_level=1)
      # print(req)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      links =[]
      for row in table_element:
            # print(row.text)
            # print(row.attrib['href'])
            href= row.attrib["href"]
            dhref = href
            print(self.needDecode)
            if self.needDecode:
                href = self.DecodeParam(href)
                print(href)
            types = re.search("cmd=cmd=.*?&",href)
            type = None
            if not types:
                continue
            else:
                type = types.group(0)
            links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})
      print(links)
      self.analysisStatus(links)

    def analysisStatus(self,links):
      url = self.getStatusUrl(links,"状态")
      if url:
            self.setStatusUserInfo(url)
      url = self.getStatusUrl(links,"包裹")
      if url:
            self.setStatusPackageDrugsInfo(url)

      for i in self.tvMonster.get_children():
                self.tvMonster.delete(i)
      for i in self.tvNpc.get_children():
                self.tvNpc.delete(i)
      navs =[]
      for link in links:
            if link['type']:
                type = link['type']
                if type == "npc":
                  self.tvNpc.insert('', 'end', values=(link['text'],"查看",link['dhref']))
                if type =="getginfo": #野怪
                  self.tvMonster.insert('', 'end', values=(link['text'],"查看",link['dhref']))
                if type =="gomid": #导航
                  navs.append(link)
      self.setNav(navs)

    def setNav(self,navs):
      N = False
      S = False
      W = False
      E = False
      for link in navs:
            if "←" in link['text']:
                W = True
                self.GButton_126["text"] = link['text']
                self.GButton_126["state"] = 'active'
                self.url_navW = link['dhref']
            if "→" in link['text']:
                E= True
                self.GButton_750["text"] = link['text']
                self.GButton_750["state"] = 'active'
                self.url_navE = link['dhref']
            if "↓" in link['text']:
                S = True
                self.GButton_181["text"] = link['text']
                self.GButton_181["state"] = 'active'
                self.url_navS = link['dhref']
            if "↑" in link['text']:
                N = True
                self.GButton_720["text"] = link['text']
                self.GButton_720["state"] = 'active'
                self.url_navN = link['dhref']
      if not N :
            self.GButton_720["state"] ='disable'
            self.GButton_720["text"] =   '此路不通'
      if not S :
            self.GButton_181["state"] = 'disable'
            self.GButton_181["text"] =   '此路不通'
      if not E :
            self.GButton_750["state"] = 'disable'
            self.GButton_750["text"] =   '此路不通'
      if not W :
            self.GButton_126["state"] = 'disable'
            self.GButton_126["text"] =   '此路不通'





    def getStatusUrl(self,links,callName):
      url=''
      for link in links:
            if link["text"] == callName:
                url =link["dhref"]
                return url

    def setStatusPackageDrugsInfo(self,url):
      url= self.url_game+url
      print(url)
      req = self._requests('get', url, decode_level=1)
      self.GLineEdit_445.delete(0.0,'end')
      for i in range(1,50):
            str = f'\[{i}\]'
            str_show = self.getPackageDrugsInfoReqValue(req,str)
            if str_show:
                self.GLineEdit_445.insert('end',self.getPackageDrugsInfoReqValue(req,str)+"\n")

    def getPackageDrugsInfoReqValue(self,req,text):
      l = len(text)
      print(req)
      try:
            value = re.search(f"{text}\..*?</a>",req).group(0)
            print(f"{text}\..*?</a>")
            print(value)
            if value.startswith("<a"):
               value = re.search(">.*?</a>",value).group(0)
               print(value)
            return value
      except:
            return None

    def setStatusUserInfo(self,url):
      url= self.url_game+url
      print(url)
      req = self._requests('get', url, decode_level=1)
      self.setEditText(self.GLineEdit_458,self.getReqValue(req,'昵称'))
      self.setEditText(self.GLineEdit_546,self.getReqValue(req,'境界'))
      self.setEditText(self.GLineEdit_644,self.getReqValue(req,'等级'))
      self.setEditText(self.GLineEdit_268,self.getReqValue(req,'修为'))
      self.setEditText(self.GLineEdit_998,self.getReqValue(req,'灵石'))
      self.setEditText(self.GLineEdit_789,self.getReqValue(req,'极品灵石'))
      self.setEditText(self.GLineEdit_556,self.getReqValue(req,'气血'))
      self.setEditText(self.GLineEdit_634,self.getReqValue(req,'攻击'))
      self.setEditText(self.GLineEdit_875,self.getReqValue(req,'防御'))
      self.setEditText(self.GLineEdit_588,self.getReqValue(req,'暴击'))
      self.setEditText(self.GLineEdit_323,self.getReqValue(req,'吸血'))
      self.setEditText(self.GLineEdit_129,self.getReqValue(req,'武器'))
      self.setEditText(self.GLineEdit_810,self.getReqValue(req,'头饰'))
      self.setEditText(self.GLineEdit_708,self.getReqValue(req,'衣服'))
      self.setEditText(self.GLineEdit_554,self.getReqValue(req,'腰带'))
      self.setEditText(self.GLineEdit_809,self.getReqValue(req,'首饰'))
      self.setEditText(self.GLineEdit_31,self.getReqValue(req,'鞋子'))

    def getReqValue(self,req,text):
      l = len(text)
      value = re.search(f"{text}:.*?<br/>",req).group(0)
      if value.startswith("<a"):
             value = re.search(">.*?</a>",value).group(0)
      return value

    def setEditText(self,_GLineEdit,value):
      _GLineEdit.delete(0,'end')
      _GLineEdit.insert(0,value)





    def GButton_947_command(self):
      print(self.NowPosition)



    def GButton_744_command(self):
      print("command")


    def GButton_32_command(self):
      print("command")


    def GButton_793_command(self):
      print("command")


    def GButton_217_command(self):
      print("command")


    def GButton_889_command(self):
      print("command")


    def GButton_724_command(self):
      print("command")


    def GButton_210_command(self):
      print("command")


    def GButton_14_command(self):
      print("command self.GButton_14")


    def GButton_645_command(self):
      print("command self.GButton_645")


    def GButton_141_command(self):
      print("command self.GButton_141")


    def GButton_581_command(self):
      print("command self.GButton_581")


    def GButton_405_command(self):
      print("command self.GButton_405")


    def GButton_125_command(self):
      print("command self.GButton_125")


    def GButton_152_command(self):
      print("command self.GButton_152")

    def DecodeParam(self,str):
      if str:
            strs = str.split('cmd=')
            if len(strs)<2:
                return str
      else:
            return str
      str = strs
      str = str.replace('O0O0O','=').replace('o000o','+').replace('oo00o','/')
      list_str = re.findall(r'.{2}', str)
      skey = 'cxphp'
      strCount = len(list_str)
      list_skey = re.findall(r'.{1}', skey)
      for i in range(0,len(list_skey)):
         if i<=strCount and list_str and list_str == list_skey :
               list_str =list_str
      strout = "".join(list_str)
      if(len(strout)%3 == 1):
            strout += "=="
      elif(len(strout)%3 == 2):
            strout += "="
      else:
            strout += "="
      dStr = base64.b64decode(strout)
      return '?cmd='+bytes.decode(dStr)
    def _requests(self, method, url, decode_level=1, retry=0, timeout=15, **kwargs):
      if method in ["get", "post"]:
            for _ in range(retry + 1):
                try:
                  warnings.filterwarnings('ignore')
                  response = getattr(self.session, method)(url, timeout=timeout, verify=False, **kwargs)
                  return response.text if decode_level == 1 else response.json() if decode_level == 2 else response
                except Exception as e:
                  self._log(e)
      return None

    def _log(self, logmsg):
      global LOG_LINE_NUM
      current_time = self.get_current_time()
      logmsg_in = str(current_time) + " " + str(logmsg) + "\n"# 换行
      self.GLineEdit_742.tag_config("even", background='#e0e0e0')
      self.GLineEdit_742.tag_config("odd", background='#ffffff')
      self.tag = 'odd' if self.tag == 'even' else 'even'
      if LOG_LINE_NUM <= 25:

            self.GLineEdit_742.insert('end', logmsg_in, self.tag)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
      else:
            self.GLineEdit_742.delete(1.0, 2.0)
            self.GLineEdit_742.insert('end', logmsg_in, self.tag)

    def get_current_time(self):
      current_time = time.strftime('%H:%M:%S', time.localtime(time.time()))
      return current_time
if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()








neteast 发表于 2022-8-4 17:05

本次更新
1.道具可以强化
2.显示当前地图玩家,当前进行中任务,玩家排行
3.增加经验进度条,玩家血条。直观显示。

优化
1.实时监控玩家血条状态,血量损失高于100,自动使用药品1. 血量损失高于300,自动使用药品2 血量损失高于600,自动使用药品3
2.玩家血量低,且没有药品时,自动飞入世界地图安全区
3优化了一些显示刷新。




下载地址下载:https://wwz.lanzoub.com/iz1D708zz1xi 密码:52pj


# -*- coding:utf-8 -*-
# @FileName:52pj_xunxianUI.py
# @ author    :neteast@52pojie
import base64
import json
import threading
import time
from tkinter import *
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.font as tkFont
import tkinter.messagebox
from lxml import etree
import warnings
import re
import requests

LOG_LINE_NUM = 0
counter_tv = 0
class App:
    def __init__(self, root):
      self.initUI()
      self.initData()
      self.test()

    def test(self):
      if self.status_test:
            
            self.GButton_107_command()

      else:

            self.GButton_107_command()


    def initData(self):
      self.status_test = False
      self.needDecode =True#链接加密

      self.tag = 'odd'
      self.session = requests.Session()
      self.session.headers.update({
                                        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'})

      self.url_base = 'http://youxi.kebai.work/'
      self.url_game =self.url_base +'game.php'
      self.NowObject_op1 =None
      self.NowObject_op2 =None
      self.NowObject_op3 =None
      self.NowPosition = None
      self.url_navW = None
      self.url_navE = None
      self.url_navN = None
      self.url_navS = None

      self.url_op1 = None
      self.url_op2 = None
      self.url_op3 = None
      self.url_pve_useyp1 =None
      self.url_pve_useyp2 =None
      self.url_pve_useyp3 =None
      self.url_pve_usejn1 =None
      self.url_pve_usejn2 =None
      self.url_pve_usejn3 =None

      self.status_pve = False
      self.status_autofighting = False
      self.status_auto_bybutton = False

      self.status_drugs1 = False

      self.url_safyhouse = None

      pass


    def initUI(self):
      #setting title
      root.title("寻仙记 neteast@52pojie")
      #setting window size
      width=1273
      height=696
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      root.geometry(alignstr)
      root.resizable(width=False, height=False)

      self.GButton_9=tk.Button(root)
      self.GButton_9["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_9["font"] = ft
      self.GButton_9["fg"] = "#000000"
      self.GButton_9["justify"] = "center"
      self.GButton_9["text"] = "当前位置"
      self.GButton_9.place(x=1100,y=620,width=69,height=30)
      self.GButton_9["command"] = self.GButton_9_command

      self.GButton_720=tk.Button(root)
      self.GButton_720["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_720["font"] = ft
      self.GButton_720["fg"] = "#000000"
      self.GButton_720["justify"] = "center"
      self.GButton_720["text"] = "向北"
      self.GButton_720.place(x=1090,y=590,width=91,height=30)
      self.GButton_720["command"] = self.GButton_720_command

      self.GButton_126=tk.Button(root)
      self.GButton_126["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_126["font"] = ft
      self.GButton_126["fg"] = "#000000"
      self.GButton_126["justify"] = "center"
      self.GButton_126["text"] = "向西"
      self.GButton_126.place(x=1010,y=620,width=88,height=30)
      self.GButton_126["command"] = self.GButton_126_command

      self.GButton_750=tk.Button(root)
      self.GButton_750["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_750["font"] = ft
      self.GButton_750["fg"] = "#000000"
      self.GButton_750["justify"] = "center"
      self.GButton_750["text"] = "向东"
      self.GButton_750.place(x=1170,y=620,width=94,height=30)
      self.GButton_750["command"] = self.GButton_750_command

      self.GButton_181=tk.Button(root)
      self.GButton_181["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_181["font"] = ft
      self.GButton_181["fg"] = "#000000"
      self.GButton_181["justify"] = "center"
      self.GButton_181["text"] = "向南"
      self.GButton_181.place(x=1090,y=650,width=91,height=30)
      self.GButton_181["command"] = self.GButton_181_command

      self.GLabel_72=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_72["font"] = ft
      self.GLabel_72["fg"] = "#333333"
      self.GLabel_72["justify"] = "center"
      self.GLabel_72["text"] = "气血"
      self.GLabel_72.place(x=10,y=620,width=30,height=30)

      self.GLineEdit_556=tk.Entry(root)
      self.GLineEdit_556["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_556["font"] = ft
      self.GLineEdit_556["fg"] = "#333333"
      self.GLineEdit_556["justify"] = "center"
      self.GLineEdit_556["text"] = "45/199"
      self.GLineEdit_556.place(x=40,y=620,width=118,height=30)

      self.GLabel_795=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_795["font"] = ft
      self.GLabel_795["fg"] = "#333333"
      self.GLabel_795["justify"] = "center"
      self.GLabel_795["text"] = "攻击"
      self.GLabel_795.place(x=160,y=620,width=30,height=30)

      self.GLineEdit_634=tk.Entry(root)
      self.GLineEdit_634["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_634["font"] = ft
      self.GLineEdit_634["fg"] = "#333333"
      self.GLineEdit_634["justify"] = "center"
      self.GLineEdit_634["text"] = "38"
      self.GLineEdit_634.place(x=190,y=620,width=59,height=30)

      self.GLabel_228=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_228["font"] = ft
      self.GLabel_228["fg"] = "#333333"
      self.GLabel_228["justify"] = "center"
      self.GLabel_228["text"] = "防御"
      self.GLabel_228.place(x=250,y=620,width=35,height=30)

      self.GLineEdit_875=tk.Entry(root)
      self.GLineEdit_875["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_875["font"] = ft
      self.GLineEdit_875["fg"] = "#333333"
      self.GLineEdit_875["justify"] = "center"
      self.GLineEdit_875["text"] = "27"
      self.GLineEdit_875.place(x=290,y=620,width=70,height=25)

      self.GLabel_517=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_517["font"] = ft
      self.GLabel_517["fg"] = "#333333"
      self.GLabel_517["justify"] = "center"
      self.GLabel_517["text"] = "暴击"
      self.GLabel_517.place(x=360,y=620,width=36,height=30)

      self.GLineEdit_588=tk.Entry(root)
      self.GLineEdit_588["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_588["font"] = ft
      self.GLineEdit_588["fg"] = "#333333"
      self.GLineEdit_588["justify"] = "center"
      self.GLineEdit_588["text"] = "0%"
      self.GLineEdit_588.place(x=400,y=620,width=70,height=25)

      self.GLabel_19=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_19["font"] = ft
      self.GLabel_19["fg"] = "#333333"
      self.GLabel_19["justify"] = "center"
      self.GLabel_19["text"] = "吸血"
      self.GLabel_19.place(x=470,y=620,width=35,height=30)

      self.GLineEdit_323=tk.Entry(root)
      self.GLineEdit_323["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_323["font"] = ft
      self.GLineEdit_323["fg"] = "#333333"
      self.GLineEdit_323["justify"] = "center"
      self.GLineEdit_323["text"] = "2%"
      self.GLineEdit_323.place(x=510,y=620,width=70,height=25)

      self.GLineEdit_129=tk.Entry(root)
      self.GLineEdit_129["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_129["font"] = ft
      self.GLineEdit_129["fg"] = "#333333"
      self.GLineEdit_129["justify"] = "center"
      self.GLineEdit_129["text"] = "百炼青刚剑+7"
      self.GLineEdit_129.place(x=1050,y=120,width=167,height=30)

      self.GButton_673=tk.Button(root)
      self.GButton_673["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_673["font"] = ft
      self.GButton_673["fg"] = "#000000"
      self.GButton_673["justify"] = "center"
      self.GButton_673["text"] = "卸下"
      self.GButton_673["relief"] = "groove"
      self.GButton_673.place(x=1220,y=120,width=44,height=30)
      self.GButton_673["command"] = self.GButton_673_command

      self.GLabel_994=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_994["font"] = ft
      self.GLabel_994["fg"] = "#333333"
      self.GLabel_994["justify"] = "center"
      self.GLabel_994["text"] = "头饰"
      self.GLabel_994.place(x=1020,y=150,width=30,height=30)

      self.GLineEdit_810=tk.Entry(root)
      self.GLineEdit_810["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_810["font"] = ft
      self.GLineEdit_810["fg"] = "#333333"
      self.GLineEdit_810["justify"] = "center"
      self.GLineEdit_810["text"] = "无"
      self.GLineEdit_810.place(x=1050,y=150,width=167,height=30)

      self.GButton_928=tk.Button(root)
      self.GButton_928["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_928["font"] = ft
      self.GButton_928["fg"] = "#000000"
      self.GButton_928["justify"] = "center"
      self.GButton_928["text"] = "卸下"
      self.GButton_928["relief"] = "groove"
      self.GButton_928.place(x=1220,y=150,width=44,height=30)
      self.GButton_928["command"] = self.GButton_928_command

      self.GLabel_789=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_789["font"] = ft
      self.GLabel_789["fg"] = "#333333"
      self.GLabel_789["justify"] = "center"
      self.GLabel_789["text"] = "衣服"
      self.GLabel_789.place(x=1020,y=180,width=31,height=30)

      self.GLineEdit_708=tk.Entry(root)
      self.GLineEdit_708["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_708["font"] = ft
      self.GLineEdit_708["fg"] = "#333333"
      self.GLineEdit_708["justify"] = "center"
      self.GLineEdit_708["text"] = "衣服"
      self.GLineEdit_708.place(x=1050,y=180,width=167,height=30)

      self.GButton_299=tk.Button(root)
      self.GButton_299["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_299["font"] = ft
      self.GButton_299["fg"] = "#000000"
      self.GButton_299["justify"] = "center"
      self.GButton_299["text"] = "卸下"
      self.GButton_299["relief"] = "groove"
      self.GButton_299.place(x=1220,y=180,width=44,height=30)
      self.GButton_299["command"] = self.GButton_299_command

      self.GLabel_466=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_466["font"] = ft
      self.GLabel_466["fg"] = "#333333"
      self.GLabel_466["justify"] = "center"
      self.GLabel_466["text"] = "腰带"
      self.GLabel_466.place(x=1020,y=210,width=32,height=30)

      self.GLineEdit_554=tk.Entry(root)
      self.GLineEdit_554["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_554["font"] = ft
      self.GLineEdit_554["fg"] = "#333333"
      self.GLineEdit_554["justify"] = "center"
      self.GLineEdit_554["text"] = "腰带"
      self.GLineEdit_554.place(x=1050,y=210,width=168,height=30)

      self.GButton_682=tk.Button(root)
      self.GButton_682["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_682["font"] = ft
      self.GButton_682["fg"] = "#000000"
      self.GButton_682["justify"] = "center"
      self.GButton_682["text"] = "卸下"
      self.GButton_682["relief"] = "groove"
      self.GButton_682.place(x=1220,y=210,width=44,height=30)
      self.GButton_682["command"] = self.GButton_682_command

      self.GLineEdit_809=tk.Entry(root)
      self.GLineEdit_809["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_809["font"] = ft
      self.GLineEdit_809["fg"] = "#333333"
      self.GLineEdit_809["justify"] = "center"
      self.GLineEdit_809["text"] = "首饰"
      self.GLineEdit_809.place(x=1050,y=240,width=167,height=30)

      self.GButton_289=tk.Button(root)
      self.GButton_289["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_289["font"] = ft
      self.GButton_289["fg"] = "#000000"
      self.GButton_289["justify"] = "center"
      self.GButton_289["text"] = "卸下"
      self.GButton_289["relief"] = "groove"
      self.GButton_289.place(x=1220,y=240,width=44,height=30)
      self.GButton_289["command"] = self.GButton_289_command

      self.GLabel_474=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_474["font"] = ft
      self.GLabel_474["fg"] = "#333333"
      self.GLabel_474["justify"] = "center"
      self.GLabel_474["text"] = "首饰"
      self.GLabel_474.place(x=1020,y=240,width=30,height=31)

      self.GLabel_368=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_368["font"] = ft
      self.GLabel_368["fg"] = "#333333"
      self.GLabel_368["justify"] = "center"
      self.GLabel_368["text"] = "鞋子"
      self.GLabel_368.place(x=1020,y=270,width=30,height=33)

      self.GLineEdit_31=tk.Entry(root)
      self.GLineEdit_31["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_31["font"] = ft
      self.GLineEdit_31["fg"] = "#333333"
      self.GLineEdit_31["justify"] = "center"
      self.GLineEdit_31["text"] = "鞋子"
      self.GLineEdit_31.place(x=1050,y=270,width=167,height=30)

      self.GButton_503=tk.Button(root)
      self.GButton_503["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_503["font"] = ft
      self.GButton_503["fg"] = "#000000"
      self.GButton_503["justify"] = "center"
      self.GButton_503["text"] = "卸下"
      self.GButton_503["relief"] = "groove"
      self.GButton_503.place(x=1220,y=270,width=44,height=30)
      self.GButton_503["command"] = self.GButton_503_command

      self.GLabel_355=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_355["font"] = ft
      self.GLabel_355["fg"] = "#333333"
      self.GLabel_355["justify"] = "center"
      self.GLabel_355["text"] = "境界"
      self.GLabel_355.place(x=590,y=620,width=35,height=30)

      self.GLineEdit_546=tk.Entry(root)
      self.GLineEdit_546["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_546["font"] = ft
      self.GLineEdit_546["fg"] = "#333333"
      self.GLineEdit_546["justify"] = "center"
      self.GLineEdit_546["text"] = "3"
      self.GLineEdit_546.place(x=630,y=620,width=70,height=25)

      self.GLabel_786=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_786["font"] = ft
      self.GLabel_786["fg"] = "#333333"
      self.GLabel_786["justify"] = "center"
      self.GLabel_786["text"] = "等级"
      self.GLabel_786.place(x=710,y=620,width=32,height=30)

      self.GLineEdit_644=tk.Entry(root)
      self.GLineEdit_644["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_644["font"] = ft
      self.GLineEdit_644["fg"] = "#333333"
      self.GLineEdit_644["justify"] = "center"
      self.GLineEdit_644["text"] = "9"
      self.GLineEdit_644.place(x=750,y=620,width=70,height=25)

      self.GLabel_582=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_582["font"] = ft
      self.GLabel_582["fg"] = "#333333"
      self.GLabel_582["justify"] = "center"
      self.GLabel_582["text"] = "灵石"
      self.GLabel_582.place(x=10,y=650,width=31,height=30)

      self.GLineEdit_998=tk.Entry(root)
      self.GLineEdit_998["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_998["font"] = ft
      self.GLineEdit_998["fg"] = "#333333"
      self.GLineEdit_998["justify"] = "center"
      self.GLineEdit_998["text"] = "1999"
      self.GLineEdit_998.place(x=40,y=650,width=95,height=30)

      self.GLabel_925=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_925["font"] = ft
      self.GLabel_925["fg"] = "#333333"
      self.GLabel_925["justify"] = "center"
      self.GLabel_925["text"] = "极品"
      self.GLabel_925.place(x=130,y=650,width=54,height=30)

      self.GLineEdit_789=tk.Entry(root)
      self.GLineEdit_789["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_789["font"] = ft
      self.GLineEdit_789["fg"] = "#333333"
      self.GLineEdit_789["justify"] = "center"
      self.GLineEdit_789["text"] = "101"
      self.GLineEdit_789.place(x=180,y=650,width=82,height=30)

      self.GLabel_312=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_312["font"] = ft
      self.GLabel_312["fg"] = "#333333"
      self.GLabel_312["justify"] = "center"
      self.GLabel_312["text"] = "强化石"
      self.GLabel_312.place(x=270,y=650,width=39,height=30)

      self.GLineEdit_198=tk.Entry(root)
      self.GLineEdit_198["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_198["font"] = ft
      self.GLineEdit_198["fg"] = "#333333"
      self.GLineEdit_198["justify"] = "center"
      self.GLineEdit_198["text"] = "强化石"
      self.GLineEdit_198.place(x=310,y=650,width=73,height=30)

      self.GLabel_565=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_565["font"] = ft
      self.GLabel_565["fg"] = "#333333"
      self.GLabel_565["justify"] = "center"
      self.GLabel_565["text"] = "修为"
      self.GLabel_565.place(x=420,y=650,width=46,height=30)

      self.GLineEdit_268=tk.Entry(root)
      self.GLineEdit_268["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_268["font"] = ft
      self.GLineEdit_268["fg"] = "#333333"
      self.GLineEdit_268["justify"] = "center"
      self.GLineEdit_268["text"] = "1640/1626"
      self.GLineEdit_268.place(x=470,y=650,width=171,height=30)

      self.GLineEdit_969=tk.Entry(root)
      self.GLineEdit_969["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_969["font"] = ft
      self.GLineEdit_969["fg"] = "#333333"
      self.GLineEdit_969["justify"] = "center"
      self.GLineEdit_969["text"] = "当前npc"
      self.GLineEdit_969.place(x=10,y=30,width=143,height=106)
      yscroll = Scrollbar(self.GLineEdit_969, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('NPC' , '操作','url' )
      self.tvNpc=ttk.Treeview(self.GLineEdit_969,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvNpc.yview)
      self.tvNpc.pack()
      self.tvNpc.column(title,width=85,anchor=CENTER)
      self.tvNpc.heading(title,text=title)
      self.tvNpc.column(title,width=40,anchor='w')
      self.tvNpc.heading(title,text=title)
      self.tvNpc.heading(title,text=title)
      self.tvNpc.bind('<<TreeviewSelect>>', self.tvNpcSelection)

      self.GLineEdit_612=tk.Entry(root)
      self.GLineEdit_612["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_612["font"] = ft
      self.GLineEdit_612["fg"] = "#333333"
      self.GLineEdit_612["justify"] = "center"
      self.GLineEdit_612["text"] = "当前野怪"
      self.GLineEdit_612.place(x=10,y=140,width=143,height=221)
      yscroll = Scrollbar(self.GLineEdit_612, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('怪物' , '操作','url' )
      self.tvMonster=ttk.Treeview(self.GLineEdit_612,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvMonster.yview)
      self.tvMonster.pack()
      self.tvMonster.column(title,width=85,anchor=CENTER)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.column(title,width=40,anchor='w')
      self.tvMonster.heading(title,text=title)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLineEdit_252=tk.Text(root) #"公屏聊天内容"
      self.GLineEdit_252["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_252["font"] = ft
      self.GLineEdit_252["fg"] = "#333333"
      self.GLineEdit_252.place(x=160,y=480,width=751,height=87)

      self.GLineEdit_10=tk.Entry(root)
      self.GLineEdit_10["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_10["font"] = ft
      self.GLineEdit_10["fg"] = "#333333"
      self.GLineEdit_10["justify"] = "center"
      self.GLineEdit_10["text"] = "输入消息"
      self.GLineEdit_10.place(x=180,y=570,width=729,height=30)

      self.GButton_728=tk.Button(root)
      self.GButton_728["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_728["font"] = ft
      self.GButton_728["fg"] = "#000000"
      self.GButton_728["justify"] = "center"
      self.GButton_728["text"] = "发送"
      self.GButton_728.place(x=930,y=570,width=68,height=30)
      self.GButton_728["command"] = self.GButton_728_command

      self.GLineEdit_386=tk.Entry(root)
      self.GLineEdit_386["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_386["font"] = ft
      self.GLineEdit_386["fg"] = "#333333"
      self.GLineEdit_386["justify"] = "center"
      self.GLineEdit_386["text"] = "好友列表"
      self.GLineEdit_386.place(x=910,y=340,width=108,height=230)
      yscroll = Scrollbar(self.GLineEdit_386, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('玩家排行' , '操作','url' )
      self.tvTopPlayer=ttk.Treeview(self.GLineEdit_386,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvTopPlayer.yview)
      self.tvTopPlayer.pack()
      self.tvTopPlayer.column(title,width=85,anchor=CENTER)
      self.tvTopPlayer.heading(title,text=title)
      self.tvTopPlayer.column(title,width=40,anchor='w')
      self.tvTopPlayer.heading(title,text=title)
      self.tvTopPlayer.heading(title,text=title)
      # self.tvTopPlayer.bind('<<TreeviewSelect>>', self.tvTopPlayerSelection)

      self.GCheckBox_967=tk.Checkbutton(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GCheckBox_967["font"] = ft
      self.GCheckBox_967["fg"] = "#333333"
      self.GCheckBox_967["justify"] = "center"
      self.GCheckBox_967["text"] = "公屏"
      self.GCheckBox_967.place(x=20,y=570,width=44,height=30)
      self.GCheckBox_967["offvalue"] = "0"
      self.GCheckBox_967["onvalue"] = "1"
      self.GCheckBox_967["command"] = self.GCheckBox_967_command

      self.GLineEdit_294=tk.Entry(root)
      self.GLineEdit_294["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_294["font"] = ft
      self.GLineEdit_294["fg"] = "#333333"
      self.GLineEdit_294["justify"] = "center"
      self.GLineEdit_294["text"] = "对方昵称"
      self.GLineEdit_294.place(x=70,y=570,width=99,height=30)

      self.GLineEdit_742=tk.Text(root)
      self.GLineEdit_742["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_742["font"] = ft
      self.GLineEdit_742["fg"] = "#333333"
      self.GLineEdit_742.place(x=390,y=30,width=520,height=448)

      self.GLabel_497=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_497["font"] = ft
      self.GLabel_497["fg"] = "#333333"
      self.GLabel_497["justify"] = "center"
      self.GLabel_497["text"] = "武器"
      self.GLabel_497.place(x=1020,y=120,width=30,height=30)

      self.GLabel_851=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_851["font"] = ft
      self.GLabel_851["fg"] = "#333333"
      self.GLabel_851["justify"] = "center"
      self.GLabel_851["text"] = "账号"
      self.GLabel_851.place(x=10,y=0,width=31,height=30)

      self.GButton_107=tk.Button(root)
      self.GButton_107["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_107["font"] = ft
      self.GButton_107["fg"] = "#000000"
      self.GButton_107["justify"] = "center"
      self.GButton_107["text"] = "登陆"
      self.GButton_107.place(x=240,y=0,width=70,height=25)
      self.GButton_107["command"] = self.GButton_107_command

      self.GLabel_35=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_35["font"] = ft
      self.GLabel_35["fg"] = "#333333"
      self.GLabel_35["justify"] = "center"
      self.GLabel_35["text"] = "密码"
      self.GLabel_35.place(x=120,y=0,width=42,height=30)

      self.GLineEdit_363=tk.Entry(root)
      self.GLineEdit_363["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_363["font"] = ft
      self.GLineEdit_363["fg"] = "#333333"
      self.GLineEdit_363["justify"] = "center"
      self.GLineEdit_363["text"] = "账号"
      self.GLineEdit_363.place(x=40,y=0,width=70,height=25)

      self.GLineEdit_127=tk.Entry(root)
      self.GLineEdit_127["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_127["font"] = ft
      self.GLineEdit_127["fg"] = "#333333"
      self.GLineEdit_127["justify"] = "center"
      self.GLineEdit_127["text"] = "密码"
      self.GLineEdit_127.place(x=160,y=0,width=70,height=25)

      self.GLabel_894=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_894["font"] = ft
      self.GLabel_894["fg"] = "#333333"
      self.GLabel_894["justify"] = "center"
      self.GLabel_894["text"] = "玩家昵称"
      self.GLabel_894.place(x=320,y=0,width=70,height=25)

      self.GLineEdit_458=tk.Entry(root)
      self.GLineEdit_458["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_458["font"] = ft
      self.GLineEdit_458["fg"] = "#333333"
      self.GLineEdit_458["justify"] = "center"
      self.GLineEdit_458["text"] = "玩家"
      self.GLineEdit_458.place(x=390,y=0,width=70,height=25)

      self.GLabel_129=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_129["font"] = ft
      self.GLabel_129["fg"] = "#333333"
      self.GLabel_129["justify"] = "center"
      self.GLabel_129["text"] = "所属门派"
      self.GLabel_129.place(x=470,y=0,width=62,height=30)

      self.GLineEdit_456=tk.Entry(root)
      self.GLineEdit_456["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_456["font"] = ft
      self.GLineEdit_456["fg"] = "#333333"
      self.GLineEdit_456["justify"] = "center"
      self.GLineEdit_456["text"] = "门派"
      self.GLineEdit_456.place(x=540,y=0,width=70,height=25)

      self.GLabel_80=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_80["font"] = ft
      self.GLabel_80["fg"] = "#333333"
      self.GLabel_80["justify"] = "center"
      self.GLabel_80["text"] = "任务"
      self.GLabel_80.place(x=1020,y=50,width=30,height=41)

      self.GLineEdit_39=tk.Entry(root)
      self.GLineEdit_39["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_39["font"] = ft
      self.GLineEdit_39["fg"] = "#333333"
      self.GLineEdit_39["justify"] = "center"
      self.GLineEdit_39["text"] = "任务"
      self.GLineEdit_39.place(x=1050,y=0,width=208,height=116)
      yscroll = Scrollbar(self.GLineEdit_39, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('任务名称' , '完成度','任务详情' )
      self.tvAllJob=ttk.Treeview(self.GLineEdit_39,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllJob.yview)
      self.tvAllJob.pack()
      self.tvAllJob.column(title,width=55,anchor=CENTER)
      self.tvAllJob.heading(title,text=title)
      self.tvAllJob.column(title,width=50,anchor='w')
      self.tvAllJob.heading(title,text=title)
      self.tvAllJob.heading(title,text=title)
      # self.tvAllJob.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GLineEdit_445=tk.Text(root)
      self.GLineEdit_445["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_445["font"] = ft
      self.GLineEdit_445["fg"] = "#333333"
      self.GLineEdit_445.place(x=1020,y=340,width=243,height=241)
      yscroll = Scrollbar(self.GLineEdit_445, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
      self.tvPackageInfo=ttk.Treeview(self.GLineEdit_445,columns=title,style='Treeview',show='headings',height=20, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPackageInfo.yview)
      self.tvPackageInfo.pack()
      for i in range(0,len(title)):
            self.tvPackageInfo.column(title,anchor=CENTER)
            self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title,width=120,anchor=CENTER)
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title,width=50,anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title,width=50,anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.bind('<<TreeviewSelect>>', self.tvPackageInfoSelection)

      self.GButton_947=tk.Button(root)
      self.GButton_947["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_947["font"] = ft
      self.GButton_947["fg"] = "#000000"
      self.GButton_947["justify"] = "center"
      self.GButton_947["text"] = "修练查看"
      self.GButton_947["relief"] = "groove"
      self.GButton_947.place(x=860,y=610,width=58,height=30)
      self.GButton_947["command"] = self.GButton_947_command

      self.GLineEdit_714=tk.Entry(root)
      self.GLineEdit_714["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_714["font"] = ft
      self.GLineEdit_714["fg"] = "#333333"
      self.GLineEdit_714["justify"] = "center"
      self.GLineEdit_714["text"] = "30"
      self.GLineEdit_714.place(x=650,y=650,width=51,height=30)

      self.GLabel_364=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_364["font"] = ft
      self.GLabel_364["fg"] = "#333333"
      self.GLabel_364["justify"] = "center"
      self.GLabel_364["text"] = "分钟"
      self.GLabel_364.place(x=710,y=650,width=30,height=30)

      self.GLineEdit_563=tk.Entry(root)
      self.GLineEdit_563["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_563["font"] = ft
      self.GLineEdit_563["fg"] = "#333333"
      self.GLineEdit_563["justify"] = "center"
      self.GLineEdit_563["text"] = "920"
      self.GLineEdit_563.place(x=740,y=650,width=60,height=30)

      self.GLabel_403=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_403["font"] = ft
      self.GLabel_403["fg"] = "#333333"
      self.GLabel_403["justify"] = "center"
      self.GLabel_403["text"] = "修为"
      self.GLabel_403.place(x=800,y=650,width=35,height=30)

      self.GButton_744=tk.Button(root)
      self.GButton_744["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_744["font"] = ft
      self.GButton_744["fg"] = "#000000"
      self.GButton_744["justify"] = "center"
      self.GButton_744["text"] = "停止"
      self.GButton_744["relief"] = "groove"
      self.GButton_744.place(x=860,y=650,width=64,height=30)
      self.GButton_744["command"] = self.GButton_744_command

      self.GButton_32=tk.Button(root)
      self.GButton_32["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_32["font"] = ft
      self.GButton_32["fg"] = "#000000"
      self.GButton_32["justify"] = "center"
      self.GButton_32["text"] = "装备"
      self.GButton_32["relief"] = "groove"
      self.GButton_32.place(x=1030,y=310,width=35,height=30)
      self.GButton_32["command"] = self.GButton_32_command

      self.GButton_793=tk.Button(root)
      self.GButton_793["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_793["font"] = ft
      self.GButton_793["fg"] = "#000000"
      self.GButton_793["justify"] = "center"
      self.GButton_793["text"] = "药品"
      self.GButton_793["relief"] = "groove"
      self.GButton_793.place(x=1070,y=310,width=35,height=30)
      self.GButton_793["command"] = self.GButton_793_command

      self.GButton_217=tk.Button(root)
      self.GButton_217["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_217["font"] = ft
      self.GButton_217["fg"] = "#000000"
      self.GButton_217["justify"] = "center"
      self.GButton_217["text"] = "道具"
      self.GButton_217["relief"] = "groove"
      self.GButton_217.place(x=1110,y=310,width=34,height=30)
      self.GButton_217["command"] = self.GButton_217_command

      self.GButton_889=tk.Button(root)
      self.GButton_889["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_889["font"] = ft
      self.GButton_889["fg"] = "#000000"
      self.GButton_889["justify"] = "center"
      self.GButton_889["text"] = "符箓"
      self.GButton_889["relief"] = "groove"
      self.GButton_889.place(x=1150,y=310,width=35,height=30)
      self.GButton_889["command"] = self.GButton_889_command

      self.GButton_724=tk.Button(root)
      self.GButton_724["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_724["font"] = ft
      self.GButton_724["fg"] = "#000000"
      self.GButton_724["justify"] = "center"
      self.GButton_724["text"] = "坊市"
      self.GButton_724["relief"] = "groove"
      self.GButton_724.place(x=1190,y=310,width=35,height=30)
      self.GButton_724["command"] = self.GButton_724_command

      self.GButton_210=tk.Button(root)
      self.GButton_210["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_210["font"] = ft
      self.GButton_210["fg"] = "#000000"
      self.GButton_210["justify"] = "center"
      self.GButton_210["text"] = "排行"
      self.GButton_210["relief"] = "groove"
      self.GButton_210.place(x=1230,y=310,width=35,height=30)
      self.GButton_210["command"] = self.GButton_210_command

      self.GLabel_380=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_380["font"] = ft
      self.GLabel_380["fg"] = "#333333"
      self.GLabel_380["justify"] = "center"
      self.GLabel_380["text"] = "当前地图"
      self.GLabel_380.place(x=610,y=0,width=67,height=30)

      self.GLineEdit_300=tk.Entry(root)
      self.GLineEdit_300["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_300["font"] = ft
      self.GLineEdit_300["fg"] = "#333333"
      self.GLineEdit_300["justify"] = "center"
      self.GLineEdit_300["text"] = "当前地图"
      self.GLineEdit_300.place(x=690,y=0,width=140,height=30)

      self.GLineEdit_179=tk.Entry(root)
      self.GLineEdit_179["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_179["font"] = ft
      self.GLineEdit_179["fg"] = "#333333"
      self.GLineEdit_179["justify"] = "center"
      self.GLineEdit_179["text"] = "当前场景玩家"
      self.GLineEdit_179.place(x=10,y=370,width=146,height=195)
      yscroll = Scrollbar(self.GLineEdit_179, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('玩家' , '操作','url' )
      self.tvPlayerInThisPlace=ttk.Treeview(self.GLineEdit_179,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPlayerInThisPlace.yview)
      self.tvPlayerInThisPlace.pack()
      self.tvPlayerInThisPlace.column(title,width=85,anchor=CENTER)
      self.tvPlayerInThisPlace.heading(title,text=title)
      self.tvPlayerInThisPlace.column(title,width=40,anchor='w')
      self.tvPlayerInThisPlace.heading(title,text=title)
      self.tvPlayerInThisPlace.heading(title,text=title)
      self.tvPlayerInThisPlace.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLabel_953=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_953["font"] = ft
      self.GLabel_953["fg"] = "#333333"
      self.GLabel_953["justify"] = "center"
      self.GLabel_953["text"] = "当前对象"
      self.GLabel_953.place(x=170,y=30,width=54,height=30)

      self.GLineEdit_824=tk.Entry(root)
      self.GLineEdit_824["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_824["font"] = ft
      self.GLineEdit_824["fg"] = "#333333"
      self.GLineEdit_824["justify"] = "center"
      self.GLineEdit_824["text"] = "对象"
      self.GLineEdit_824.place(x=230,y=30,width=152,height=30)

      self.GListBox_981=tk.Text(root)
      self.GListBox_981["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GListBox_981["font"] = ft
      self.GListBox_981["fg"] = "#333333"
      self.GListBox_981.place(x=160,y=190,width=226,height=287)

      self.GButton_779=tk.Button(root)
      self.GButton_779["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_779["font"] = ft
      self.GButton_779["fg"] = "#000000"
      self.GButton_779["justify"] = "center"
      self.GButton_779["text"] = "操作1"
      self.GButton_779["relief"] = "groove"
      self.GButton_779.place(x=170,y=70,width=58,height=30)
      self.GButton_779["command"] = self.GButton_779_command



      self.GLineEdit_938=tk.Entry(root)
      self.GLineEdit_938["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_938["font"] = ft
      self.GLineEdit_938["fg"] = "#333333"
      self.GLineEdit_938["justify"] = "center"
      self.GLineEdit_938["text"] = "世界地图"
      self.GLineEdit_938.place(x=910,y=0,width=108,height=336)
      yscroll = Scrollbar(self.GLineEdit_938, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('地图列表' , '操作','url' )
      self.tvAllMap=ttk.Treeview(self.GLineEdit_938,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllMap.yview)
      self.tvAllMap.pack()
      self.tvAllMap.column(title,width=85,anchor=CENTER)
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.column(title,width=40,anchor='w')
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GButton_745=tk.Button(root)
      self.GButton_745["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_745["font"] = ft
      self.GButton_745["fg"] = "#000000"
      self.GButton_745["justify"] = "center"
      self.GButton_745["text"] = "操作2"
      self.GButton_745["relief"] = "groove"
      self.GButton_745.place(x=240,y=70,width=61,height=30)
      self.GButton_745["command"] = self.GButton_745_command

      self.GButton_152=tk.Button(root)
      self.GButton_152["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_152["font"] = ft
      self.GButton_152["fg"] = "#000000"
      self.GButton_152["justify"] = "center"
      self.GButton_152["text"] = "操作3"
      self.GButton_152["relief"] = "groove"
      self.GButton_152.place(x=310,y=70,width=61,height=30)
      self.GButton_152["command"] = self.GButton_152_command

      self.GButton_14=tk.Button(root)
      self.GButton_14["bg"] = "#efefef"
      ftGButton_14 = tkFont.Font(family='Times',size=8)
      self.GButton_14["font"] = ftGButton_14
      self.GButton_14["fg"] = "#000000"
      self.GButton_14["justify"] = "center"
      self.GButton_14["text"] = "技能1"
      self.GButton_14["relief"] = "groove"
      self.GButton_14.place(x=170,y=110,width=57,height=30)
      self.GButton_14["command"] = self.GButton_14_command

      self.GButton_645=tk.Button(root)
      self.GButton_645["bg"] = "#efefef"
      ftGButton_645 = tkFont.Font(family='Times',size=8)
      self.GButton_645["font"] = ftGButton_645
      self.GButton_645["fg"] = "#000000"
      self.GButton_645["justify"] = "center"
      self.GButton_645["text"] = "技能2"
      self.GButton_645["relief"] = "groove"
      self.GButton_645.place(x=240,y=110,width=61,height=30)
      self.GButton_645["command"] = self.GButton_645_command

      self.GButton_141=tk.Button(root)
      self.GButton_141["bg"] = "#efefef"
      ftGButton_141 = tkFont.Font(family='Times',size=8)
      self.GButton_141["font"] = ftGButton_141
      self.GButton_141["fg"] = "#000000"
      self.GButton_141["justify"] = "center"
      self.GButton_141["text"] = "技能3"
      self.GButton_141["relief"] = "groove"
      self.GButton_141.place(x=310,y=110,width=61,height=30)
      self.GButton_141["command"] = self.GButton_141_command

      self.GButton_581=tk.Button(root)
      self.GButton_581["bg"] = "#efefef"
      ftGButton_581 = tkFont.Font(family='Times',size=8)
      self.GButton_581["font"] = ftGButton_581
      self.GButton_581["fg"] = "#000000"
      self.GButton_581["justify"] = "center"
      self.GButton_581["text"] = "药品1"
      self.GButton_581["relief"] = "groove"
      self.GButton_581.place(x=170,y=150,width=57,height=30)
      self.GButton_581["command"] = self.GButton_581_command

      self.GButton_405=tk.Button(root)
      self.GButton_405["bg"] = "#efefef"
      ftGButton_405 = tkFont.Font(family='Times',size=8)
      self.GButton_405["font"] = ftGButton_405
      self.GButton_405["fg"] = "#000000"
      self.GButton_405["justify"] = "center"
      self.GButton_405["text"] = "药品2"
      self.GButton_405["relief"] = "groove"
      self.GButton_405.place(x=240,y=150,width=63,height=30)
      self.GButton_405["command"] = self.GButton_405_command

      self.GButton_125=tk.Button(root)
      self.GButton_125["bg"] = "#efefef"
      ftGButton_125 = tkFont.Font(family='Times',size=8)
      self.GButton_125["font"] = ftGButton_125
      self.GButton_125["fg"] = "#000000"
      self.GButton_125["justify"] = "center"
      self.GButton_125["text"] = "药品3"
      self.GButton_125["relief"] = "groove"
      self.GButton_125.place(x=310,y=150,width=60,height=30)
      self.GButton_125["command"] = self.GButton_125_command

      self.GLabel_185=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      # self.GLabel_185["bg"] = "#cc0000"
      self.GLabel_185["font"] = ft
      self.GLabel_185["justify"] = "center"
      self.GLabel_185["text"] = "hp"
      self.GLabel_185.place(x=10,y=680,width=1253,height=15)
      s = ttk.Style()
      s.theme_use('winnative')
      # win10环境下主题:('winnative','clam','alt','default','classic','vista','xpnative')
      # 进度条颜色改变测试成功的是:'winnative','clam','alt','default','classic'
      s.configure("green.Horizontal.TProgressbar", troughcolor ='white', background='green')
      self.progressbarHP = tkinter.ttk.Progressbar(self.GLabel_185, style= "green.Horizontal.TProgressbar")
      # progressbarOne.place(x=10,y=685,width=1253,height=20 )
      self.progressbarHP.pack(expand=True, fill='both' )
      # 进度值最大值
      self.progressbarHP['maximum'] = 1253
      # 进度值初始值
      self.progressbarHP['value'] = 800

      self.GLabel_604=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_604["font"] = ft
      self.GLabel_604["fg"] = "#333333"
      self.GLabel_604["justify"] = "center"
      self.GLabel_604["text"] = "label"
      self.GLabel_604.place(x=10,y=600,width=810,height=15)
      s.configure("lightblue.Horizontal.TProgressbar", troughcolor ='white', background='lightblue')
      self.progressbarEXP = tkinter.ttk.Progressbar(self.GLabel_604, style= "lightblue.Horizontal.TProgressbar" )
      self.progressbarEXP.pack(expand=True, fill='both' )
      self.progressbarEXP['maximum'] = 1253
      self.progressbarEXP['value'] = 800

    def tvPackageInfoSelection(self,event):
      self.resetOPButtonName()
      self.GListBox_981.delete(0.0,'end')
      items = event.widget.selection()
      # title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
      item = self.tvPackageInfo.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'

    def tvNpcSelection(self,event):
      items = event.widget.selection()
      item = self.tvNpc.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      # self.refreshGame(url_oprate)
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'

    def tvAllMapSelection(self,event):
      items = event.widget.selection()
      item = self.tvAllMap.item(items)['values']
      name = item
      url_oprate = self.url_game+item

      self.refreshGame(url_oprate)

    def tvMonsterSelection(self, event):

      # self.GLineEdit_companyname.delete(0,'end')
      # self.resetOPButtonName()
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
      items = event.widget.selection()
      item = self.tvMonster.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      # self.GLineEdit_companyname.insert(0,item)
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'

    def setNowObject(self,name,href):
      self.GLineEdit_824.delete(0,'end')
      self.GLineEdit_824.insert(0,name)
      # self._log(href)
      # links = self.getHrefLabelLinks(req)
      url = href
      # self._log(url)
      if self.needDecode:
            url = self.DecodeParam(href)
      types = re.search("cmd=cmd=.*?&",url)
      type = None
      iftypes:
            type = types.group(0)
      if not type:
            return
      # self._log(type)
      req = self._requests('get', href, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//body/text()")
      links =[]
      self.GListBox_981.delete(0.0,'end')
      self.GButton_779['text'] = '暂无功能'
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                if "掉落" in text or '装备信息' in text:
                  self.GListBox_981.insert('end',"\n"+text+"\n")
                else:
                  self.GListBox_981.insert('end',text+"\n")
      table_element = html_etree.xpath("//body//div/a/text()")
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                self.GListBox_981.insert('end',row.strip()+"\n")

      table_element = html_etree.xpath("//a")
      for row in table_element:
            if row.text =='攻击':
                self.GButton_779['text'] = '查看'
                self.NowObject_op1 = self.url_game+row.attrib["href"]
                # self._log(self.NowObject_op1)
      links = []
      try:
            links = self.getHrefLabelLinks(req)
      except Exception as me:
            print(me)
      # links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})


      for link in links:

            if link['text'] == "返回游戏" :
                break
            iflink['type'] =='npc':
                self.GListBox_981.insert('end',f'{"-"*53}'+"\n")
                self.GListBox_981.insert('end',link['text']+"\n")
                if 'canshu=rehp' in link['href']:
                  self.GButton_779['text'] = '生命恢复'
                  self.NowObject_op1 = self.url_game + link['dhref']
                elif 'canshu=gogoumai' in link['href']:
                  self.GButton_779['text'] = '购买药品'
                  self.NowObject_op1 = self.url_game + link['dhref']

                else:
                  self.GButton_779['text'] = '暂无功能'
            elif link['type'] =='upzb':
                if '&upsx=zbgj&' in link['href']:
                  self.GButton_779['text'] = '强化攻击'
                  self.NowObject_op1 = self.url_game + link['dhref']
                if '&upsx=zbfy&' in link['href']:
                  self.GButton_745['text'] = '强化防御'
                  self.NowObject_op2 =link['dhref']
                if '&upsx=zbhp&' in link['href']:
                  self.GButton_152['text'] = '强化气血'
                  self.NowObject_op3 =   link['dhref']



    def GButton_779_command(self): #查看血量 野怪详情 #操作一
      if self.NowObject_op1:
            req = self._requests('get', self.NowObject_op1, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            links = self.getHrefLabelLinks(req)
            self.analysisButtonFight(links)
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip)>0:
                  if rowstrip == "==战斗==":
                        self.GListBox_981.insert('end',rowstrip+"\n")
                        userHP = re.findall("气血.*?<br",req) #.group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp= table_element_hp + "/" +table_element_hp
                        self._log("当前HP: "+hp)
                        self.GLineEdit_556.delete(0,'end')
                        self.GLineEdit_556.insert(0,hp)
                        self.status_pve = True
                        #监控
                        nowhp = int(table_element_hp)#血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp -nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp,allhp)


                  elif rowstrip == "===================":
                        self.GListBox_981.insert('end',tempstr+"\n")
                        tempstr = ""
                        self.GListBox_981.insert('end',rowstrip+"\n")
                  elif rowstrip =='逃跑':
                        continue
                  elif rowstrip =='信息:来来来   便宜':
                        self.GListBox_981.insert('end',f'{"-"*53}'+"\n")
                        break
                  else:
                        tempstr= tempstr +" "+ rowstrip
            self.GListBox_981.insert('end',tempstr+"\n")


    def analysisButtonFight(self,links):
      i_pve = 0;
      i_pvegj = 0
      for link in links:
            if link['text'] =='攻击':
                self.GButton_745['text'] = '攻击'
                self.NowObject_op2 = link["dhref"]
                self.NowObject_op3 = link["dhref"]
                # self._log(self.NowObject_op1)
                self.GButton_745['state'] = 'active'
                self.GButton_152['text'] = '连续攻击'
            if link['type'] =='pve':
                i_pve += 1
                if i_pve == 1:
                  self.GButton_581['text'] = link['text']
                  self.url_pve_useyp1 = link['dhref']
                elif i_pve == 2:
                  self.GButton_405['text'] = link['text']
                  self.url_pve_useyp2 = link['dhref']
                else:
                  self.GButton_125['text'] = link['text']
                  self.url_pve_useyp3 = link['dhref']
            if link['type'] =='pvegj' and 'canshu=usejn' in link['href']:
                i_pvegj += 1
                if i_pvegj == 1:
                  self.GButton_14['text'] = link['text']
                  self.url_pve_usejn1 = link['dhref']
                elif i_pvegj == 2:
                  self.GButton_645['text'] = link['text']
                  self.url_pve_usejn2 = link['dhref']
                else:
                  self.GButton_141['text'] = link['text']
                  self.url_pve_usejn3 = link['dhref']
            if link['type'] =='npc':
                self.GButton_745['state'] = 'active'
                if 'ypid=6' in link['href']: #还原丹
                  self.GButton_745['text'] = '还原丹1个'
                  self.GButton_152['text'] = '还原丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.NowObject_op2 = link['dhref']
                  else:
                        self.NowObject_op3 = link['dhref']
                elif 'ypid=7' in link['href']: #回血散
                  self.GButton_14['text'] = '回血散1个'
                  self.GButton_645['text'] = '回血散10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn1 = link['dhref']
                  else:
                        self.url_pve_usejn2 = link['dhref']
                elif 'ypid=8' in link['href']: #回春汤
                  self.GButton_141['text'] = '回春汤1个'
                  self.GButton_581['text'] = '回春汤10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn3 = link['dhref']
                  else:
                        self.url_pve_useyp1 = link['dhref']
                elif 'ypid=9' in link['href']: #复伤丹
                  self.GButton_405['text'] = '复伤丹1个'
                  self.GButton_125['text'] = '复伤丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_useyp2 = link['dhref']
                  else:
                        self.url_pve_useyp3 = link['dhref']
                else:
                  pass
            if link['type'] =='ypinfo':
                self.GListBox_981.insert('end',link['text']+" ")
                url =self.url_game + link['dhref']
                req = self._requests('get', url, decode_level=1)
                hp = re.search("气血.*?<br",req).group(0)[:-3]
                self.GListBox_981.insert('end',hp+"\n")

      # self.GButton_9_command()


    def GButton_745_command(self): #发起进攻 #操作2
      if self.NowObject_op2:
            self.status_auto_bybutton = False
            self.NowObject_run(self.NowObject_op2)



    def GButton_9_command(self):
      self.refreshGame(self.NowPosition)


    def GButton_720_command(self):#向北
      url_game = self.url_game + self.url_navN
      self.refreshGame(url_game)


    def GButton_126_command(self):#向西
      url = self.url_navW
      url_game = self.url_game + self.url_navW
      self.refreshGame(url_game)


    def GButton_750_command(self):#向东
      url_game = self.url_game + self.url_navE
      self.refreshGame(url_game)


    def GButton_181_command(self):#向南
      url_game = self.url_game + self.url_navS
      self.refreshGame(url_game)


    def GButton_673_command(self):
      print("command")


    def GButton_928_command(self):
      print("command")


    def GButton_299_command(self):
      print("command")


    def GButton_682_command(self):
      print("command")


    def GButton_289_command(self):
      print("command")


    def GButton_503_command(self):
      print("command")





    def GCheckBox_967_command(self):
      print("command")


    def GButton_107_command(self):
      username = self.GLineEdit_363.get().strip()
      userpass = self.GLineEdit_127.get().strip()
      url_login = self.url_base
      data_login = {"username":username,"userpass":userpass,"submit":"登陆"}
      req = self._requests('post', url_login, decode_level=3,data=data_login)
      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return
      if not refresh: #登陆成功
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return

      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"账号{username}登陆成功")
      url_refresh = url_split
      url_game = self.url_base + url_refresh
      req = self._requests('get', url_game, decode_level=3)
      refresh = None
      try:
            refresh = req.headers["refresh"] #取用户信息成功跳转上次玩家地图
      except:
            self._log(f"服务器返回数据出错,请联系管理员")
            return

      if not refresh:
            self._log(f"服务器返回数据出错,请联系管理员")
            return
      self._log(f"获取用户信息成功")
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"进入寻仙世界失败,请联系管理员")
            return
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      self._log(f"欢迎进入寻仙世界")
      self.refreshGame(url_game)
      self.NowPosition = url_game


    def analysisFightStatus(self,links,jobs):

      self.reset(self.tvMonster)
      self.reset(self.tvPlayerInThisPlace)
      url = self.getStatusUrl(links,"状态")
      if url:
            self.setStatusUserInfo(url)
      # url = self.getStatusUrl(links,"包裹")
      # if url:
      #   self.setStatusPackageDrugsInfo(url)
      url = self.getStatusUrl(links,"查看地图")
      if url:
            self.setAllMap(url)
      navs =[]
      for link in links:
            if link['type']:
                type = link['type']
                if type == "npc":
                  self.tvNpc.insert('', 'end', values=(link['text'],"查看",link['dhref']))
                elif type =="getginfo": #野怪
                  id_tv = self.next_id()
                  self.tvMonster.insert('', 'end',id = id_tv, values=(link['text'],"查看",link['dhref']) )
                elif type =="gomid": #导航
                  navs.append(link)


      self.setNav(navs)
      # self.tvMonster.selection_set('I001')#刷新第一个怪物

    def refreshGame(self,url_game):
      self.NowPosition = url_game
      ifnot self.status_auto_bybutton :
            self.resetOPButtonName()
      req = self._requests('get', url_game, decode_level=1)
      if '你已经重伤请治疗' in req:
            self._log('你已经重伤请治疗')
            return
      html_etree = etree.HTML(req)
      try:
            mapname = re.search("当前地图:.*?<a",req).group(0)
            jobs = re.search(">任务.*?</a>",req,re.S).group(0)

            self.GLineEdit_300.delete(0,'end')
            self.GLineEdit_300.insert(0,mapname)
            self.GButton_9['text'] = mapname
            links = self.getHrefLabelLinks(req)
            self.analysisStatus(links,jobs)
            #公共聊天处理
            # table_element = html_etree.xpath('//*[@id="ltmsg"]')
            # for row in table_element:
            #   self.GLineEdit_252.insert('end',row.text+"\n")
      except Exception as me:
            print(me)

            table_element = html_etree.xpath("//a")
            href = None
            for row in table_element:
                text = row.text
                href= row.attrib["href"]
                url =href
                if self.needDecode:
                  url = self.DecodeParam(url)
                if text == '突破' and 'canshu=tupo' in url:
                  break
            if href:
                req = self._requests('get', self.url_game+href, decode_level=1)
                if "灵石不足" in req:
                  value = re.search(f"突破需要灵石.*?<a",req).group(0)[:-2]
                  self._log(f"突破失败,灵石不足!{value}")
                if "突破成功" in req:
                  self._log("突破成功!")
                  self.refreshGame(url_game)
      try:
            self.tvMonster.selection_set('Item001')
      except:
            pass

    def resetOPButtonName(self):
      self.GButton_779['text'] = '操作1'
      self.GButton_745['text'] = '操作2'
      self.GButton_152['text'] = '操作3'
      self.GButton_14['text'] = '技能1'
      self.GButton_645['text'] = '技能2'
      self.GButton_141['text'] = '技能3'
      self.GButton_581['text'] = '药品1'
      self.GButton_405['text'] = '药品2'
      self.GButton_125['text'] = '药品3'
      # self.NowObject_op1 =None
      # self.NowObject_op2 =None
      # self.NowObject_op3 =None
      # self.url_op1 = None
      # self.url_op2 = None
      # self.url_op3 = None
      # self.url_pve_useyp1 =None
      # self.url_pve_useyp2 =None
      # self.url_pve_useyp3 =None
      # self.url_pve_usejn1 =None
      # self.url_pve_usejn2 =None
      # self.url_pve_usejn3 =None

    def TestSched(self):
      while self.status_autofighting :
            time.sleep(0.1)
            # self.tvMonster.selection_set('Item001')#刷新第一个怪物
            time.sleep(0.1)
            self.GButton_779_command()#查看
            time.sleep(0.1)
            self.GButton_152_command() #连续攻击

    def GButton_728_command(self):
      self.status_autofighting = not self.status_autofighting
      if self.status_autofighting:
            self.GButton_728['text'] = '自动战斗'
      else:
            self.GButton_728['text'] = '停止战斗'

      try:
            obj1 = threading.Thread(target=self.TestSched, args=())
            obj1.setDaemon(True)
            obj1.start()

      except Exception as me:
            print(me)


    def getHrefLabelLinks(self,req):
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      links =[]
      for row in table_element:
            href= row.attrib["href"]
            dhref = href
            if self.needDecode:
                href = self.DecodeParam(href)
            types = re.search("cmd=cmd=.*?&",href)

            type = None
            if   typesis None:
                continue
            else:
                try:
                  type = types.group(0)
                except:
                  continue

            links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})

      return links

    def analysisStatus(self,links,jobs):

      self.reset(self.tvMonster)
      url = self.getStatusUrl(links,"状态")
      if url:
            self.setStatusUserInfo(url)
      if not self.status_auto_bybutton:
            self.reset(self.tvNpc)
            self.reset(self.tvPlayerInThisPlace)
            self.reset(self.tvPackageInfo)
            url = self.getStatusUrl(links,"包裹")
            if url:
                self.setStatusPackageDrugsInfo(url)
            url = self.getStatusUrl(links,"查看地图")
            if url:
                self.setAllMap(url)
            url = self.getStatusUrl(links,"排行")
            if url:
                self.setTopPlayer(url)

            url = self.getStatusUrl(links,jobs)
            if url:
                self.setJobList(url)

      navs =[]
      for link in links:
            if link['type']:
                type = link['type']

                if type == "npc" and not self.status_auto_bybutton:
                  self.tvNpc.insert('', 'end', values=(link['text'],"查看",link['dhref']))
                elif type =="getginfo": #野怪
                  id_tv = self.next_id()
                  self.tvMonster.insert('', 'end',id = id_tv, values=(link['text'],"查看",link['dhref']) )
                elif type =="gomid": #导航
                  navs.append(link)
                elif type =="getplayerinfo" and not self.status_auto_bybutton: #导航
                  self.tvPlayerInThisPlace.insert('', 'end', values=(link['text'],"查看",link['dhref']))

      self.setNav(navs)
      # self.tvMonster.selection_set('I001')#刷新第一个怪物

    def next_id(self):
            global counter_tv
            counter_tv += 1
            return "Item%.3d" % counter_tv

    def reset(self,o):
      global counter_tv
      for item in o.get_children():
            o.delete(item)
      counter_tv = 0

    def setAllMap(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllMap)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href= row.attrib["href"]
            if row.text == '返回上一页':
                break
            self.tvAllMap.insert('', 'end', values=(row.text,"查看",href))
            self.url_safyhouse = href

    def setTopPlayer(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvTopPlayer)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href= row.attrib["href"]
            if row.text == '返回游戏':

                break
            self.tvTopPlayer.insert('', 'end', values=(row.text,"查看",href))

    def setJobList(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllJob)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href= row.attrib["href"]
            if row.text == '返回游戏':
                break
            # self.tvAllJob.insert('', 'end', values=(row.text,"查看",href))
            url= self.url_game+href
            req = self._requests('get', url, decode_level=1)
            try:
                content = re.search(":<br/>.*?<br/>",req,re.S).group(0)
                content = content.replace("\r\n","").replace(" ","")
                workdone = re.search("进度.*?<br/>",req,re.S).group(0)
                self.tvAllJob.insert('', 'end', values=(row.text,workdone,content))
            except:
                pass

    def setNav(self,navs):
      N = False
      S = False
      W = False
      E = False
      for link in navs:
            if "←" in link['text']:
                W = True
                self.GButton_126["text"] = link['text']
                self.GButton_126["state"] = 'active'
                self.url_navW = link['dhref']
            if "→" in link['text']:
                E= True
                self.GButton_750["text"] = link['text']
                self.GButton_750["state"] = 'active'
                self.url_navE = link['dhref']
            if "↓" in link['text']:
                S = True
                self.GButton_181["text"] = link['text']
                self.GButton_181["state"] = 'active'
                self.url_navS = link['dhref']
            if "↑" in link['text']:
                N = True
                self.GButton_720["text"] = link['text']
                self.GButton_720["state"] = 'active'
                self.url_navN = link['dhref']
      if not N :
            self.GButton_720["state"] ='disable'
            self.GButton_720["text"] =   '此路不通'
      if not S :
            self.GButton_181["state"] = 'disable'
            self.GButton_181["text"] =   '此路不通'
      if not E :
            self.GButton_750["state"] = 'disable'
            self.GButton_750["text"] =   '此路不通'
      if not W :
            self.GButton_126["state"] = 'disable'
            self.GButton_126["text"] =   '此路不通'





    def getStatusUrl(self,links,callName):
      url=''
      for link in links:
            if link["text"] == callName:
                url =link["dhref"]
                return url

    def setStatusPackageDrugsInfo(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      # self.reset(self.tvPackageInfo)
      # for i in range(1,10):
      #   str = f'\[{i}\]'
      #   str_showItem = self.getPackageItem(req,str)
      #   if str_showItem:
      #         # self.tvPackageInfo.insert('', 'end', values=(str_show,"workdone","content"))
      #         self.tvPackageInfo.insert('', 'end', values=str_showItem)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      l_list = []
      for row in table_element:
            if row.text == "下一页" or row.text == "返回游戏":
                break
            url = row.attrib["href"]
            dhref = url

            if self.needDecode:
                url = self.DecodeParam(url)
            l_list.append(json.loads('{\"'+re.sub('(?<!&)&(?!&)','\",\"',re.sub('(?<!=)=(?!=|&)','\":\"',url))+'\",\"url\":\"'
                        + url+"\",\"dhref\":\"" + dhref +"\",\"urltext\":\"" + row.text +'\"}'))
      if len(l_list) < 1:
            return
      self.analysisPackage(l_list)

    def analysisPackage(self,l_list):
      for item in l_list:
            if item["cmd"] == 'chakanzb':
                # self.tvPackageInfo.insert('', 'end', values=(item["urltext"],"workdone",item["dhref"]))
                zbnowid = item["zbnowid"]
                zbinfo = item["dhref"]
                zb_op1 = None
                zb_op1_url = None
                zb_op2 = None
                zb_op2_url = None
                for itemn in l_list:
                  try:
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '卖出':
                            zb_op1 = '卖出'
                            zb_op1_url = itemn["dhref"]
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '分解':
                            zb_op2 = '分解'
                            zb_op2_url = itemn["dhref"]
                  except:
                        pass
                if zb_op1:
                  self.tvPackageInfo.insert('', 'end', values=(item["urltext"],zb_op1,zb_op2,zb_op1_url,zb_op2_url,zbinfo))
                else:
                  self.tvPackageInfo.insert('', 'end', values=(item["urltext"],'已装备','','','',zbinfo))

    def getPackageDrugsInfoReqValue(self,req,text):
      l = len(text)
      try:
            value = re.search(f"{text}\..*?</a>",req).group(0)
            if value.startswith("<a"):
               value = re.search(">.*?</a>",value).group(0)
            return value

      except Exception as me:
            print(me)
            return None

    def setStatusUserInfo(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.setEditText(self.GLineEdit_458,self.getReqValue(req,'昵称'))
      self.setEditText(self.GLineEdit_546,self.getReqValue(req,'境界'))
      self.setEditText(self.GLineEdit_644,self.getReqValue(req,'等级'))
      self.setEditText(self.GLineEdit_268,self.getReqValue(req,'修为'))
      self.setEditText(self.GLineEdit_998,self.getReqValue(req,'灵石'))
      self.setEditText(self.GLineEdit_789,self.getReqValue(req,'极品灵石'))
      self.setEditText(self.GLineEdit_556,self.getReqValue(req,'气血'))
      self.setEditText(self.GLineEdit_634,self.getReqValue(req,'攻击'))
      self.setEditText(self.GLineEdit_875,self.getReqValue(req,'防御'))
      self.setEditText(self.GLineEdit_588,self.getReqValue(req,'暴击'))
      self.setEditText(self.GLineEdit_323,self.getReqValue(req,'吸血'))
      self.setEditText(self.GLineEdit_129,self.getReqValue(req,'武器'))
      self.setEditText(self.GLineEdit_810,self.getReqValue(req,'头饰'))
      self.setEditText(self.GLineEdit_708,self.getReqValue(req,'衣服'))
      self.setEditText(self.GLineEdit_554,self.getReqValue(req,'腰带'))
      self.setEditText(self.GLineEdit_809,self.getReqValue(req,'首饰'))
      self.setEditText(self.GLineEdit_31,self.getReqValue(req,'鞋子'))
      exp = self.getReqValue(req,'修为')
      hp =self.getReqValue(req,'气血')
      exps =exp.split('/')
      nowexp = int(exps)
      allexp = int(exps)
      self.progressbarEXP['maximum'] = allexp
      self.progressbarEXP['value'] = nowexp
      hps = hp.split('/')#血量监控
      nowhp = int(hps)
      allhp = int(hps)
      # 进度值最大值
      self.progressbarHP['maximum'] = allhp
      # 进度值初始值
      self.progressbarHP['value'] = nowhp

    def getReqValue(self,req,text):
      l = len(text)
      value = re.search(f"{text}:.*?<br/>",req).group(0)
      if value.startswith("<a"):
             value = re.search(">.*?</a>",value).group(0)
      return value

    def setEditText(self,_GLineEdit,value):
      _GLineEdit.delete(0,'end')
      _GLineEdit.insert(0,value)





    def GButton_947_command(self):
      print(self.NowPosition)



    def GButton_744_command(self):
      print("command")


    def GButton_32_command(self):
      print("command")


    def GButton_793_command(self):
      print("command")


    def GButton_217_command(self):
      print("command")


    def GButton_889_command(self):
      print("command")


    def GButton_724_command(self):
      print("command")


    def GButton_210_command(self):
      print("command")


    def GButton_14_command(self):#技能一
      url = self.url_pve_usejn1
      self.NowObject_run(url)



    def GButton_645_command(self):#技能二
      url = self.url_pve_usejn2
      self.NowObject_run(url)


    def GButton_141_command(self):#技能三
      url = self.url_pve_usejn3
      self.NowObject_run(url)


    def GButton_581_command(self): #药品一按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp1
      # self.GButton_779_command()
      url = self.url_pve_useyp1
      self.NowObject_run(url)


    def GButton_405_command(self):#药品二按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp2
      # self.GButton_779_command()
      url = self.url_pve_useyp2
      self.NowObject_run(url)


    def GButton_125_command(self):#药品三按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp3
      # self.GButton_779_command()
      url = self.url_pve_useyp3
      self.NowObject_run(url)


    def GButton_152_command(self): #操作3 连续进攻
      if self.NowObject_op3:
            self.status_auto_bybutton = True
            self.NowObject_run(self.NowObject_op3)

    def NowObject_run(self,url):
      if url:
            status_fight = False
            href= url
            if self.needDecode:
                href = self.DecodeParam(href)
            if "cmd=pvegj&" in href:
                status_fight = True
            if "canshu=usejn&" in href:
                status_fight = False

            req = self._requests('get', self.url_game+url, decode_level=1)

            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            hp = None
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip)>0:
                  if rowstrip == "==战斗==":
                        self._log(rowstrip)
                  elif rowstrip == "===================":
                        self._log(tempstr)
                        tempstr = ""
                        userHP = re.findall("气血.*?<br",req) #.group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp= table_element_hp + "/" +table_element_hp
                        self.GLineEdit_556.delete(0,'end')
                        self.GLineEdit_556.insert(0,hp)
                        nowhp = int(table_element_hp)#血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp -nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp,allhp)
                        self._log(rowstrip)
                  elif rowstrip =='逃跑':
                        break
                  elif rowstrip =='恭喜强化成功':
                        self._log('恭喜强化成功')
                        tempstr = None
                        # self.refreshGame(url)
                        break
                  elif   '强化失败' in rowstrip:
                        self._log('强化失败')
                        tempstr = None
                        break

                  elif '灵石数量不足' in rowstrip or '突破成功' in rowstrip:
                        msg = re.search("便宜<br/>.*?<br/>",req,re.S).group(0)
                        msg = msg.replace("\r\n","").replace(" ","")
                        msg = "购买状态:"+msg
                        self._log(msg)
                        tempstr = None
                        break
                  elif re.search("购买.*?成功",rowstrip):
                        tempstr=rowstrip
                        break
                  elif rowstrip =='返回游戏':
                        table_element = html_etree.xpath("//a")
                        self.status_pve = False
                        for row2 in table_element:
                            if row2.text == '返回游戏':
                              url_game =self.url_game+row2.attrib["href"]
                              self.refreshGame(url_game)
                              break
                  else:
                        tempstr= tempstr +" "+ rowstrip
            if tempstr:
                self._log(tempstr)
      if self.status_pve and status_fight and self.status_auto_bybutton:
            self.NowObject_run(url)

    def eatDrugs(self,dorphp,allhp):
      count_drugs1 = None   #吃药1按键设置数量判断
      try:
            opjdrug1 = str(self.GButton_581["text"])
            count_drugs1 = int(re.search( "\(.*?\)",opjdrug1).group(0))
      except:
            pass
      count_drugs2 = None #吃药2按键设置数量判断
      try:
            opjdrug2 = str(self.GButton_405["text"])
            count_drugs2 = int(re.search( "\(.*?\)",opjdrug2).group(0))
      except:
            pass
      count_drugs3 = None #吃药3按键设置数量判断
      try:
            opjdrug3 = str(self.GButton_125["text"])
            count_drugs3 = int(re.search( "\(.*?\)",opjdrug3).group(0))
      except:
            pass

      if dorphp > 100 and count_drugs1 and   count_drugs1 > 0: #吃药一
            self.GButton_581_command()
            time.sleep(0.1)
      elif dorphp > 300 and count_drugs2 and   count_drugs2 > 0:#吃药2
            self.GButton_405_command()
            time.sleep(0.1)
      elifdorphp > 600and count_drugs3 and   count_drugs3 > 0:#吃药3
            self.GButton_125_command()
            time.sleep(0.1)
      elif dorphp >= 100 and dorphp/allhp >0.6: #无药,飞走,停止挂机
            try:
                self.refreshGame(self.url_game+self.url_safyhouse)
                self.status_autofighting = False
            except Exception as e:
                print(e)

    def DecodeParam(self,str):
      if str:
            strs = str.split('cmd=')
            if len(strs)<2:
                return str
      else:
            return str
      str = strs
      str = str.replace('O0O0O','=').replace('o000o','+').replace('oo00o','/')
      list_str = re.findall(r'.{2}', str)
      skey = 'cxphp'
      strCount = len(list_str)
      list_skey = re.findall(r'.{1}', skey)
      for i in range(0,len(list_skey)):
         if i<=strCount and list_str and list_str == list_skey :
               list_str =list_str
      strout = "".join(list_str)
      if(len(strout)%3 == 1):
            strout += "=="
      elif(len(strout)%3 == 2):
            strout += "="
      else:
            strout += "="
      dStr = base64.b64decode(strout)
      return '?cmd='+bytes.decode(dStr)
    def _requests(self, method, url, decode_level=1, retry=0, timeout=15, **kwargs):
      if method in ["get", "post"]:
            for _ in range(retry + 1):
                try:
                  warnings.filterwarnings('ignore')
                  response = getattr(self.session, method)(url, timeout=timeout, verify=False, **kwargs)
                  return response.text if decode_level == 1 else response.json() if decode_level == 2 else response
                except Exception as e:
                  self._log(e)
      return None

    def _log(self, logmsg):
      global LOG_LINE_NUM
      current_time = self.get_current_time()
      logmsg_in = str(current_time) + " " + str(logmsg) + "\n"# 换行
      self.GLineEdit_742.tag_config("even", background='#e0e0e0')
      self.GLineEdit_742.tag_config("odd", background='#ffffff')
      self.tag = 'odd' if self.tag == 'even' else 'even'
      if LOG_LINE_NUM <= 25:

            self.GLineEdit_742.insert('end', logmsg_in, self.tag)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
      else:
            self.GLineEdit_742.delete(1.0, 2.0)
            self.GLineEdit_742.insert('end', logmsg_in, self.tag)

    def get_current_time(self):
      current_time = time.strftime('%H:%M:%S', time.localtime(time.time()))
      return current_time
if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()



neteast 发表于 2022-8-17 12:57

本次更新
1.可以进行注册了,点右下“注册”按钮“按提示注册,出现,注册成功,即可登入账号了。

2.新账号可以创建角色。如果是新账号,登陆后会提示创建角色,角色名长度要在6至12位间。

(玩法:建议先领取村长的三个任务,再去赫柄处完成任务,得到初级嗜血剑,再去村东挂机打,硬翅蜂和山猪,一直挂机到你有50多的还原丹,再去做其它任务,这时候你差不多4级多。期间,会有需要手工突破升级,打的还原丹装备到药品1。然后再找村长完成任务,接新任务,找王大妈,完成任务,再接新任务,打狼。一路过来,打的装备一定要穿戴,这样可以节省很多丹药。10级前,系统是可以自动恢复HP的.建议在狼处挂机到7级,再去打龙雀。8级去打荷花花魅。装备轻蕊盔。突破9级去打血雷鹰。装备血鹰项链。这个血鹰项链是不分位置的,可以把剩下的 鞋子,腰带,位置都装满。过了10级,就没有自动补HP了。需要自己储备足够的还原丹再去闯荡。建议此时回到村口打硬翅蜂和山猪,把还原丹能刷到150以上,再去打魔修士挂机,13级时装备为 初级嗜血剑 +血鹰项链 + 血鹰项链 +血鹰项链强化4 时,不掉血挂机。 升级时,可以通过装备调换或者强化补充,进行无损HP挂机至18级,直接去打魔化幼齿猫。不建议打魔化猴,那个是两个级别在一起的,无法无损HP挂机,虽然会掉还原丹,但是远不及消耗。。挂完魔化幼齿猫,就可以继续以此方式找其它怪物升级了。请自行探索。装备挂机时,不要使用有暴击的武器,会掉血)
3.可以手动吃药。


4.修复了其它一些问题

# -*- coding:utf-8 -*-
# @FileName:52pj_xunxianUI.py
# @ author    :neteast@52pojie
import base64
import json
import re
import threading
import time
import tkinter as tk
import tkinter.font as tkFont
import tkinter.messagebox
import tkinter.ttk as ttk
import warnings
from tkinter import *

import requests
from lxml import etree

LOG_LINE_NUM = 0
counter_tv = 0
image = None


class App:
    def __init__(self, root):
      self.initUI()
      self.initData()
      self.status_test = False
      self.test()

    def test(self):
      if self.status_test:

            pass

      else:

            pass

    def initData(self):
      self.sex = '1'

      self.needDecode = True# 链接加密

      self.tag = 'odd'
      self.session = requests.Session()
      self.session.headers.update({
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'})

      self.url_base = 'http://youxi.kebai.work/'
      self.url_game = self.url_base + 'game.php'
      self.url_regist = self.url_base + 'reguser.php'

      self.NowObject_op1 = None# 功能键
      self.NowObject_op2 = None
      self.NowObject_op3 = None
      self.NowPosition = None# 当前位置
      self.url_navW = None# 导航
      self.url_navE = None
      self.url_navN = None
      self.url_navS = None

      self.url_op1 = None
      self.url_op2 = None
      self.url_op3 = None
      self.url_pve_useyp1 = None# 吃药1
      self.url_pve_useyp2 = None
      self.url_pve_useyp3 = None
      self.url_pve_usejn1 = None# 技能1
      self.url_pve_usejn2 = None
      self.url_pve_usejn3 = None

      self.status_pve = False# 打怪状态
      self.status_autofighting = False# 自动攻击进程
      self.status_auto_bybutton = False# 连攻按键

      self.status_drugs1 = False

      self.url_safyhouse = None# 安全屋链接

      self.url_weapon1 = None# 武器
      self.url_weapon2 = None# 头饰
      self.url_weapon3 = None# 衣服
      self.url_weapon4 = None# 腰带
      self.url_weapon5 = None# 首饰
      self.url_weapon6 = None# 鞋子

      self.url_package = None# 包裹链接

      self.url_package_weapons = None
      self.url_package_drugs = None
      self.url_package_items = None
      self.url_package_skills = None
      self.url_package_market = None
      self.url_package_friends = None

      pass

    def initUI(self):
      # setting title
      root.title("寻仙记 neteast@52pojie")
      # setting window size
      width = 1273
      height = 696
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      root.geometry(alignstr)
      root.resizable(width=False, height=False)

      self.GButton_9 = tk.Button(root)
      self.GButton_9["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_9["font"] = ft
      self.GButton_9["fg"] = "#000000"
      self.GButton_9["justify"] = "center"
      self.GButton_9["text"] = "当前位置"
      self.GButton_9.place(x=1100, y=620, width=69, height=30)
      self.GButton_9["command"] = self.GButton_9_command

      self.GButton_720 = tk.Button(root)
      self.GButton_720["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_720["font"] = ft
      self.GButton_720["fg"] = "#000000"
      self.GButton_720["justify"] = "center"
      self.GButton_720["text"] = "向北"
      self.GButton_720.place(x=1090, y=590, width=91, height=30)
      self.GButton_720["command"] = self.GButton_720_command

      self.GButton_126 = tk.Button(root)
      self.GButton_126["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_126["font"] = ft
      self.GButton_126["fg"] = "#000000"
      self.GButton_126["justify"] = "center"
      self.GButton_126["text"] = "向西"
      self.GButton_126.place(x=1010, y=620, width=88, height=30)
      self.GButton_126["command"] = self.GButton_126_command

      self.GButton_750 = tk.Button(root)
      self.GButton_750["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_750["font"] = ft
      self.GButton_750["fg"] = "#000000"
      self.GButton_750["justify"] = "center"
      self.GButton_750["text"] = "向东"
      self.GButton_750.place(x=1170, y=620, width=94, height=30)
      self.GButton_750["command"] = self.GButton_750_command

      self.GButton_181 = tk.Button(root)
      self.GButton_181["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_181["font"] = ft
      self.GButton_181["fg"] = "#000000"
      self.GButton_181["justify"] = "center"
      self.GButton_181["text"] = "向南"
      self.GButton_181.place(x=1090, y=650, width=91, height=30)
      self.GButton_181["command"] = self.GButton_181_command

      self.GLabel_72 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_72["font"] = ft
      self.GLabel_72["fg"] = "#333333"
      self.GLabel_72["justify"] = "center"
      self.GLabel_72["text"] = "气血"
      self.GLabel_72.place(x=10, y=620, width=30, height=30)

      self.GLineEdit_556 = tk.Entry(root)
      self.GLineEdit_556["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_556["font"] = ft
      self.GLineEdit_556["fg"] = "#333333"
      self.GLineEdit_556["justify"] = "center"
      self.GLineEdit_556["text"] = "45/199"
      self.GLineEdit_556.place(x=40, y=620, width=118, height=30)

      self.GLabel_795 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_795["font"] = ft
      self.GLabel_795["fg"] = "#333333"
      self.GLabel_795["justify"] = "center"
      self.GLabel_795["text"] = "攻击"
      self.GLabel_795.place(x=160, y=620, width=30, height=30)

      self.GLineEdit_634 = tk.Entry(root)
      self.GLineEdit_634["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_634["font"] = ft
      self.GLineEdit_634["fg"] = "#333333"
      self.GLineEdit_634["justify"] = "center"
      self.GLineEdit_634["text"] = "38"
      self.GLineEdit_634.place(x=190, y=620, width=59, height=30)

      self.GLabel_228 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_228["font"] = ft
      self.GLabel_228["fg"] = "#333333"
      self.GLabel_228["justify"] = "center"
      self.GLabel_228["text"] = "防御"
      self.GLabel_228.place(x=250, y=620, width=35, height=30)

      self.GLineEdit_875 = tk.Entry(root)
      self.GLineEdit_875["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_875["font"] = ft
      self.GLineEdit_875["fg"] = "#333333"
      self.GLineEdit_875["justify"] = "center"
      self.GLineEdit_875["text"] = "27"
      self.GLineEdit_875.place(x=290, y=620, width=70, height=25)

      self.GLabel_517 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_517["font"] = ft
      self.GLabel_517["fg"] = "#333333"
      self.GLabel_517["justify"] = "center"
      self.GLabel_517["text"] = "暴击"
      self.GLabel_517.place(x=360, y=620, width=36, height=30)

      self.GLineEdit_588 = tk.Entry(root)
      self.GLineEdit_588["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_588["font"] = ft
      self.GLineEdit_588["fg"] = "#333333"
      self.GLineEdit_588["justify"] = "center"
      self.GLineEdit_588["text"] = "0%"
      self.GLineEdit_588.place(x=400, y=620, width=70, height=25)

      self.GLabel_19 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_19["font"] = ft
      self.GLabel_19["fg"] = "#333333"
      self.GLabel_19["justify"] = "center"
      self.GLabel_19["text"] = "吸血"
      self.GLabel_19.place(x=470, y=620, width=35, height=30)

      self.GLineEdit_323 = tk.Entry(root)
      self.GLineEdit_323["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_323["font"] = ft
      self.GLineEdit_323["fg"] = "#333333"
      self.GLineEdit_323["justify"] = "center"
      self.GLineEdit_323["text"] = "2%"
      self.GLineEdit_323.place(x=510, y=620, width=70, height=25)

      self.GLineEdit_129 = tk.Entry(root)
      self.GLineEdit_129["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_129["font"] = ft
      self.GLineEdit_129["fg"] = "#333333"
      self.GLineEdit_129["justify"] = "center"
      self.GLineEdit_129["text"] = "百炼青刚剑+7"
      self.GLineEdit_129.place(x=1050, y=120, width=167, height=30)

      self.GButton_673 = tk.Button(root)
      self.GButton_673["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_673["font"] = ft
      self.GButton_673["fg"] = "#000000"
      self.GButton_673["justify"] = "center"
      self.GButton_673["text"] = "卸下"
      self.GButton_673["relief"] = "groove"
      self.GButton_673.place(x=1220, y=120, width=44, height=30)
      self.GButton_673["command"] = self.GButton_673_command

      self.GLabel_994 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_994["font"] = ft
      self.GLabel_994["fg"] = "#333333"
      self.GLabel_994["justify"] = "center"
      self.GLabel_994["text"] = "头饰"
      self.GLabel_994.place(x=1020, y=150, width=30, height=30)

      self.GLineEdit_810 = tk.Entry(root)
      self.GLineEdit_810["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_810["font"] = ft
      self.GLineEdit_810["fg"] = "#333333"
      self.GLineEdit_810["justify"] = "center"
      self.GLineEdit_810["text"] = "无"
      self.GLineEdit_810.place(x=1050, y=150, width=167, height=30)

      self.GButton_928 = tk.Button(root)
      self.GButton_928["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_928["font"] = ft
      self.GButton_928["fg"] = "#000000"
      self.GButton_928["justify"] = "center"
      self.GButton_928["text"] = "卸下"
      self.GButton_928["relief"] = "groove"
      self.GButton_928.place(x=1220, y=150, width=44, height=30)
      self.GButton_928["command"] = self.GButton_928_command

      self.GLabel_789 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_789["font"] = ft
      self.GLabel_789["fg"] = "#333333"
      self.GLabel_789["justify"] = "center"
      self.GLabel_789["text"] = "衣服"
      self.GLabel_789.place(x=1020, y=180, width=31, height=30)

      self.GLineEdit_708 = tk.Entry(root)
      self.GLineEdit_708["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_708["font"] = ft
      self.GLineEdit_708["fg"] = "#333333"
      self.GLineEdit_708["justify"] = "center"
      self.GLineEdit_708["text"] = "衣服"
      self.GLineEdit_708.place(x=1050, y=180, width=167, height=30)

      self.GButton_299 = tk.Button(root)
      self.GButton_299["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_299["font"] = ft
      self.GButton_299["fg"] = "#000000"
      self.GButton_299["justify"] = "center"
      self.GButton_299["text"] = "卸下"
      self.GButton_299["relief"] = "groove"
      self.GButton_299.place(x=1220, y=180, width=44, height=30)
      self.GButton_299["command"] = self.GButton_299_command

      self.GLabel_466 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_466["font"] = ft
      self.GLabel_466["fg"] = "#333333"
      self.GLabel_466["justify"] = "center"
      self.GLabel_466["text"] = "腰带"
      self.GLabel_466.place(x=1020, y=210, width=32, height=30)

      self.GLineEdit_554 = tk.Entry(root)
      self.GLineEdit_554["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_554["font"] = ft
      self.GLineEdit_554["fg"] = "#333333"
      self.GLineEdit_554["justify"] = "center"
      self.GLineEdit_554["text"] = "腰带"
      self.GLineEdit_554.place(x=1050, y=210, width=168, height=30)

      self.GButton_682 = tk.Button(root)
      self.GButton_682["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_682["font"] = ft
      self.GButton_682["fg"] = "#000000"
      self.GButton_682["justify"] = "center"
      self.GButton_682["text"] = "卸下"
      self.GButton_682["relief"] = "groove"
      self.GButton_682.place(x=1220, y=210, width=44, height=30)
      self.GButton_682["command"] = self.GButton_682_command

      self.GLineEdit_809 = tk.Entry(root)
      self.GLineEdit_809["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_809["font"] = ft
      self.GLineEdit_809["fg"] = "#333333"
      self.GLineEdit_809["justify"] = "center"
      self.GLineEdit_809["text"] = "首饰"
      self.GLineEdit_809.place(x=1050, y=240, width=167, height=30)

      self.GButton_289 = tk.Button(root)
      self.GButton_289["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_289["font"] = ft
      self.GButton_289["fg"] = "#000000"
      self.GButton_289["justify"] = "center"
      self.GButton_289["text"] = "卸下"
      self.GButton_289["relief"] = "groove"
      self.GButton_289.place(x=1220, y=240, width=44, height=30)
      self.GButton_289["command"] = self.GButton_289_command

      self.GLabel_474 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_474["font"] = ft
      self.GLabel_474["fg"] = "#333333"
      self.GLabel_474["justify"] = "center"
      self.GLabel_474["text"] = "首饰"
      self.GLabel_474.place(x=1020, y=240, width=30, height=31)

      self.GLabel_368 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_368["font"] = ft
      self.GLabel_368["fg"] = "#333333"
      self.GLabel_368["justify"] = "center"
      self.GLabel_368["text"] = "鞋子"
      self.GLabel_368.place(x=1020, y=270, width=30, height=33)

      self.GLineEdit_31 = tk.Entry(root)
      self.GLineEdit_31["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_31["font"] = ft
      self.GLineEdit_31["fg"] = "#333333"
      self.GLineEdit_31["justify"] = "center"
      self.GLineEdit_31["text"] = "鞋子"
      self.GLineEdit_31.place(x=1050, y=270, width=167, height=30)

      self.GButton_503 = tk.Button(root)
      self.GButton_503["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_503["font"] = ft
      self.GButton_503["fg"] = "#000000"
      self.GButton_503["justify"] = "center"
      self.GButton_503["text"] = "卸下"
      self.GButton_503["relief"] = "groove"
      self.GButton_503.place(x=1220, y=270, width=44, height=30)
      self.GButton_503["command"] = self.GButton_503_command

      self.GLabel_355 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_355["font"] = ft
      self.GLabel_355["fg"] = "#333333"
      self.GLabel_355["justify"] = "center"
      self.GLabel_355["text"] = "境界"
      self.GLabel_355.place(x=590, y=620, width=35, height=30)

      self.GLineEdit_546 = tk.Entry(root)
      self.GLineEdit_546["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_546["font"] = ft
      self.GLineEdit_546["fg"] = "#333333"
      self.GLineEdit_546["justify"] = "center"
      self.GLineEdit_546["text"] = "3"
      self.GLineEdit_546.place(x=630, y=620, width=70, height=25)

      self.GLabel_786 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_786["font"] = ft
      self.GLabel_786["fg"] = "#333333"
      self.GLabel_786["justify"] = "center"
      self.GLabel_786["text"] = "等级"
      self.GLabel_786.place(x=710, y=620, width=32, height=30)

      self.GLineEdit_644 = tk.Entry(root)
      self.GLineEdit_644["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_644["font"] = ft
      self.GLineEdit_644["fg"] = "#333333"
      self.GLineEdit_644["justify"] = "center"
      self.GLineEdit_644["text"] = "9"
      self.GLineEdit_644.place(x=750, y=620, width=70, height=25)

      self.GLabel_582 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_582["font"] = ft
      self.GLabel_582["fg"] = "#333333"
      self.GLabel_582["justify"] = "center"
      self.GLabel_582["text"] = "灵石"
      self.GLabel_582.place(x=10, y=650, width=31, height=30)

      self.GLineEdit_998 = tk.Entry(root)
      self.GLineEdit_998["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_998["font"] = ft
      self.GLineEdit_998["fg"] = "#333333"
      self.GLineEdit_998["justify"] = "center"
      self.GLineEdit_998["text"] = "1999"
      self.GLineEdit_998.place(x=40, y=650, width=95, height=30)

      self.GLabel_925 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_925["font"] = ft
      self.GLabel_925["fg"] = "#333333"
      self.GLabel_925["justify"] = "center"
      self.GLabel_925["text"] = "极品"
      self.GLabel_925.place(x=130, y=650, width=54, height=30)

      self.GLineEdit_789 = tk.Entry(root)
      self.GLineEdit_789["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_789["font"] = ft
      self.GLineEdit_789["fg"] = "#333333"
      self.GLineEdit_789["justify"] = "center"
      self.GLineEdit_789["text"] = "101"
      self.GLineEdit_789.place(x=180, y=650, width=82, height=30)

      self.GLabel_312 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_312["font"] = ft
      self.GLabel_312["fg"] = "#333333"
      self.GLabel_312["justify"] = "center"
      self.GLabel_312["text"] = "强化石"
      self.GLabel_312.place(x=270, y=650, width=39, height=30)

      self.GLineEdit_198 = tk.Entry(root)
      self.GLineEdit_198["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_198["font"] = ft
      self.GLineEdit_198["fg"] = "#333333"
      self.GLineEdit_198["justify"] = "center"
      self.GLineEdit_198["text"] = "强化石"
      self.GLineEdit_198.place(x=310, y=650, width=73, height=30)

      self.GLabel_565 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_565["font"] = ft
      self.GLabel_565["fg"] = "#333333"
      self.GLabel_565["justify"] = "center"
      self.GLabel_565["text"] = "修为"
      self.GLabel_565.place(x=420, y=650, width=46, height=30)

      self.GLineEdit_268 = tk.Entry(root)
      self.GLineEdit_268["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_268["font"] = ft
      self.GLineEdit_268["fg"] = "#333333"
      self.GLineEdit_268["justify"] = "center"
      self.GLineEdit_268["text"] = "1640/1626"
      self.GLineEdit_268.place(x=470, y=650, width=171, height=30)

      self.GLineEdit_969 = tk.Entry(root)
      self.GLineEdit_969["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_969["font"] = ft
      self.GLineEdit_969["fg"] = "#333333"
      self.GLineEdit_969["justify"] = "center"
      self.GLineEdit_969["text"] = "当前npc"
      self.GLineEdit_969.place(x=10, y=30, width=143, height=106)
      yscroll = Scrollbar(self.GLineEdit_969, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('NPC', '操作', 'url')
      self.tvNpc = ttk.Treeview(self.GLineEdit_969, columns=title, style='Treeview', show='headings', height=10,
                                  yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvNpc.yview)
      self.tvNpc.pack()
      self.tvNpc.column(title, width=85, anchor=CENTER)
      self.tvNpc.heading(title, text=title)
      self.tvNpc.column(title, width=40, anchor='w')
      self.tvNpc.heading(title, text=title)
      self.tvNpc.heading(title, text=title)
      self.tvNpc.bind('<<TreeviewSelect>>', self.tvNpcSelection)

      self.GLineEdit_612 = tk.Entry(root)
      self.GLineEdit_612["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_612["font"] = ft
      self.GLineEdit_612["fg"] = "#333333"
      self.GLineEdit_612["justify"] = "center"
      self.GLineEdit_612["text"] = "当前野怪"
      self.GLineEdit_612.place(x=10, y=140, width=143, height=221)
      yscroll = Scrollbar(self.GLineEdit_612, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('怪物', '操作', 'url')
      self.tvMonster = ttk.Treeview(self.GLineEdit_612, columns=title, style='Treeview', show='headings', height=10,
                                    yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvMonster.yview)
      self.tvMonster.pack()
      self.tvMonster.column(title, width=85, anchor=CENTER)
      self.tvMonster.heading(title, text=title)
      self.tvMonster.column(title, width=40, anchor='w')
      self.tvMonster.heading(title, text=title)
      self.tvMonster.heading(title, text=title)
      self.tvMonster.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLineEdit_252 = tk.Text(root)# "公屏聊天内容"
      self.GLineEdit_252["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_252["font"] = ft
      self.GLineEdit_252["fg"] = "#333333"
      self.GLineEdit_252.place(x=160, y=480, width=751, height=87)

      self.GLineEdit_10 = tk.Entry(root)
      self.GLineEdit_10["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_10["font"] = ft
      self.GLineEdit_10["fg"] = "#333333"
      self.GLineEdit_10["justify"] = "center"
      self.GLineEdit_10["text"] = "输入消息"
      self.GLineEdit_10.place(x=180, y=570, width=729, height=30)

      self.GButton_728 = tk.Button(root)
      self.GButton_728["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_728["font"] = ft
      self.GButton_728["fg"] = "#000000"
      self.GButton_728["justify"] = "center"
      self.GButton_728["text"] = "挂机"
      self.GButton_728.place(x=930, y=570, width=68, height=30)
      self.GButton_728["command"] = self.GButton_728_command

      self.GLineEdit_386 = tk.Entry(root)
      self.GLineEdit_386["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_386["font"] = ft
      self.GLineEdit_386["fg"] = "#333333"
      self.GLineEdit_386["justify"] = "center"
      self.GLineEdit_386["text"] = "好友列表"
      self.GLineEdit_386.place(x=910, y=340, width=108, height=230)
      yscroll = Scrollbar(self.GLineEdit_386, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('玩家排行', '操作', 'url')
      self.tvTopPlayer = ttk.Treeview(self.GLineEdit_386, columns=title, style='Treeview', show='headings', height=10,
                                        yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvTopPlayer.yview)
      self.tvTopPlayer.pack()
      self.tvTopPlayer.column(title, width=85, anchor=CENTER)
      self.tvTopPlayer.heading(title, text=title)
      self.tvTopPlayer.column(title, width=40, anchor='w')
      self.tvTopPlayer.heading(title, text=title)
      self.tvTopPlayer.heading(title, text=title)
      # self.tvTopPlayer.bind('<<TreeviewSelect>>', self.tvTopPlayerSelection)

      self.GCheckBox_967 = tk.Checkbutton(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GCheckBox_967["font"] = ft
      self.GCheckBox_967["fg"] = "#333333"
      self.GCheckBox_967["justify"] = "center"
      self.GCheckBox_967["text"] = "公屏"
      self.GCheckBox_967.place(x=20, y=570, width=44, height=30)
      self.GCheckBox_967["offvalue"] = "0"
      self.GCheckBox_967["onvalue"] = "1"
      self.GCheckBox_967["command"] = self.GCheckBox_967_command

      self.GLineEdit_294 = tk.Entry(root)
      self.GLineEdit_294["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_294["font"] = ft
      self.GLineEdit_294["fg"] = "#333333"
      self.GLineEdit_294["justify"] = "center"
      self.GLineEdit_294["text"] = "对方昵称"
      self.GLineEdit_294.place(x=70, y=570, width=99, height=30)

      self.GLineEdit_742 = tk.Text(root)
      self.GLineEdit_742["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_742["font"] = ft
      self.GLineEdit_742["fg"] = "#333333"
      self.GLineEdit_742.place(x=390, y=30, width=520, height=448)

      self.GLabel_497 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_497["font"] = ft
      self.GLabel_497["fg"] = "#333333"
      self.GLabel_497["justify"] = "center"
      self.GLabel_497["text"] = "武器"
      self.GLabel_497.place(x=1020, y=120, width=30, height=30)

      self.GLabel_851 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_851["font"] = ft
      self.GLabel_851["fg"] = "#333333"
      self.GLabel_851["justify"] = "center"
      self.GLabel_851["text"] = "账号"
      self.GLabel_851.place(x=10, y=0, width=31, height=30)

      self.GButton_107 = tk.Button(root)
      self.GButton_107["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_107["font"] = ft
      self.GButton_107["fg"] = "#000000"
      self.GButton_107["justify"] = "center"
      self.GButton_107["text"] = "登陆"
      self.GButton_107.place(x=240, y=0, width=70, height=25)
      self.GButton_107["command"] = self.GButton_107_command

      self.GLabel_35 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_35["font"] = ft
      self.GLabel_35["fg"] = "#333333"
      self.GLabel_35["justify"] = "center"
      self.GLabel_35["text"] = "密码"
      self.GLabel_35.place(x=120, y=0, width=42, height=30)

      self.GLineEdit_363 = tk.Entry(root)
      self.GLineEdit_363["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_363["font"] = ft
      self.GLineEdit_363["fg"] = "#333333"
      self.GLineEdit_363["justify"] = "center"
      self.GLineEdit_363["text"] = "账号"
      self.GLineEdit_363.place(x=40, y=0, width=70, height=25)

      self.GLineEdit_127 = tk.Entry(root)
      self.GLineEdit_127["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_127["font"] = ft
      self.GLineEdit_127["fg"] = "#333333"
      self.GLineEdit_127["justify"] = "center"
      self.GLineEdit_127["text"] = "密码"
      self.GLineEdit_127.place(x=160, y=0, width=70, height=25)

      self.GLabel_894 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_894["font"] = ft
      self.GLabel_894["fg"] = "#333333"
      self.GLabel_894["justify"] = "center"
      self.GLabel_894["text"] = "玩家昵称"
      self.GLabel_894.place(x=320, y=0, width=70, height=25)

      self.GLineEdit_458 = tk.Entry(root)
      self.GLineEdit_458["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_458["font"] = ft
      self.GLineEdit_458["fg"] = "#333333"
      self.GLineEdit_458["justify"] = "center"
      self.GLineEdit_458["text"] = "玩家"
      self.GLineEdit_458.place(x=390, y=0, width=70, height=25)

      self.GLabel_129 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_129["font"] = ft
      self.GLabel_129["fg"] = "#333333"
      self.GLabel_129["justify"] = "center"
      self.GLabel_129["text"] = "所属门派"
      self.GLabel_129.place(x=470, y=0, width=62, height=30)

      self.GLineEdit_456 = tk.Entry(root)
      self.GLineEdit_456["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_456["font"] = ft
      self.GLineEdit_456["fg"] = "#333333"
      self.GLineEdit_456["justify"] = "center"
      self.GLineEdit_456["text"] = "门派"
      self.GLineEdit_456.place(x=540, y=0, width=70, height=25)

      self.GLabel_80 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_80["font"] = ft
      self.GLabel_80["fg"] = "#333333"
      self.GLabel_80["justify"] = "center"
      self.GLabel_80["text"] = "任务"
      self.GLabel_80.place(x=1020, y=50, width=30, height=41)

      self.GLineEdit_39 = tk.Entry(root)
      self.GLineEdit_39["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_39["font"] = ft
      self.GLineEdit_39["fg"] = "#333333"
      self.GLineEdit_39["justify"] = "center"
      self.GLineEdit_39["text"] = "任务"
      self.GLineEdit_39.place(x=1050, y=0, width=208, height=116)
      yscroll = Scrollbar(self.GLineEdit_39, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('任务名称', '完成度', '任务详情')
      self.tvAllJob = ttk.Treeview(self.GLineEdit_39, columns=title, style='Treeview', show='headings', height=10,
                                     yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllJob.yview)
      self.tvAllJob.pack()
      self.tvAllJob.column(title, width=55, anchor=CENTER)
      self.tvAllJob.heading(title, text=title)
      self.tvAllJob.column(title, width=50, anchor='w')
      self.tvAllJob.heading(title, text=title)
      self.tvAllJob.heading(title, text=title)
      # self.tvAllJob.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GLineEdit_445 = tk.Text(root)
      self.GLineEdit_445["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_445["font"] = ft
      self.GLineEdit_445["fg"] = "#333333"
      self.GLineEdit_445.place(x=1020, y=340, width=243, height=241)
      yscroll = Scrollbar(self.GLineEdit_445, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('名称', '操作1', '操作2', 'op1_url', 'op1_ur2', 'zbinfo')
      self.tvPackageInfo = ttk.Treeview(self.GLineEdit_445, columns=title, style='Treeview', show='headings',
                                          height=20, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPackageInfo.yview)
      self.tvPackageInfo.pack()
      for i in range(0, len(title)):
            self.tvPackageInfo.column(title, anchor=CENTER)
            self.tvPackageInfo.heading(title, text=title)
            self.tvPackageInfo.heading(i, text=title,
                                       command=lambda _col=i: self.treeview_sort_column(self.tvPackageInfo, _col,
                                                                                        False))
      self.tvPackageInfo.column(title, width=120, anchor=CENTER)
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title, width=50, anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title, width=50, anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      # self.tvPackageInfo.bind('<<TreeviewSelect>>', self.tvPackageInfoSelection)
      self.tvPackageInfo.bind("<ButtonRelease-1>", self.tvPackage_leftButtonRelease)
      # self.tvPackageInfo.bind("<MouseWheel>", self.tvPackage_on_MouseWheel)

      self.GButton_947 = tk.Button(root)
      self.GButton_947["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_947["font"] = ft
      self.GButton_947["fg"] = "#000000"
      self.GButton_947["justify"] = "center"
      self.GButton_947["text"] = "清理包裹"
      self.GButton_947["relief"] = "groove"
      self.GButton_947.place(x=860, y=610, width=58, height=30)
      self.GButton_947["command"] = self.GButton_947_command

      self.GLineEdit_714 = tk.Entry(root)
      self.GLineEdit_714["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_714["font"] = ft
      self.GLineEdit_714["fg"] = "#333333"
      self.GLineEdit_714["justify"] = "center"
      self.GLineEdit_714["text"] = "30"
      self.GLineEdit_714.place(x=650, y=650, width=51, height=30)

      self.GLabel_364 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_364["font"] = ft
      self.GLabel_364["fg"] = "#333333"
      self.GLabel_364["justify"] = "center"
      self.GLabel_364["text"] = "分钟"
      self.GLabel_364.place(x=710, y=650, width=30, height=30)

      self.GLineEdit_563 = tk.Entry(root)
      self.GLineEdit_563["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_563["font"] = ft
      self.GLineEdit_563["fg"] = "#333333"
      self.GLineEdit_563["justify"] = "center"
      self.GLineEdit_563["text"] = "920"
      self.GLineEdit_563.place(x=740, y=650, width=60, height=30)

      self.GLabel_403 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_403["font"] = ft
      self.GLabel_403["fg"] = "#333333"
      self.GLabel_403["justify"] = "center"
      self.GLabel_403["text"] = "修为"
      self.GLabel_403.place(x=800, y=650, width=35, height=30)

      self.GButton_744 = tk.Button(root)
      self.GButton_744["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_744["font"] = ft
      self.GButton_744["fg"] = "#000000"
      self.GButton_744["justify"] = "center"
      self.GButton_744["text"] = "注册"
      self.GButton_744["relief"] = "groove"
      self.GButton_744.place(x=860, y=650, width=64, height=30)
      self.GButton_744["command"] = self.GButton_744_command

      self.GButton_32 = tk.Button(root)
      self.GButton_32["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_32["font"] = ft
      self.GButton_32["fg"] = "#000000"
      self.GButton_32["justify"] = "center"
      self.GButton_32["text"] = "装备"
      self.GButton_32["relief"] = "groove"
      self.GButton_32.place(x=1030, y=310, width=35, height=30)
      self.GButton_32["command"] = self.GButton_32_command

      self.GButton_793 = tk.Button(root)
      self.GButton_793["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_793["font"] = ft
      self.GButton_793["fg"] = "#000000"
      self.GButton_793["justify"] = "center"
      self.GButton_793["text"] = "药品"
      self.GButton_793["relief"] = "groove"
      self.GButton_793.place(x=1070, y=310, width=35, height=30)
      self.GButton_793["command"] = self.GButton_793_command

      self.GButton_217 = tk.Button(root)
      self.GButton_217["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_217["font"] = ft
      self.GButton_217["fg"] = "#000000"
      self.GButton_217["justify"] = "center"
      self.GButton_217["text"] = "道具"
      self.GButton_217["relief"] = "groove"
      self.GButton_217.place(x=1110, y=310, width=34, height=30)
      self.GButton_217["command"] = self.GButton_217_command

      self.GButton_889 = tk.Button(root)
      self.GButton_889["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_889["font"] = ft
      self.GButton_889["fg"] = "#000000"
      self.GButton_889["justify"] = "center"
      self.GButton_889["text"] = "符箓"
      self.GButton_889["relief"] = "groove"
      self.GButton_889.place(x=1150, y=310, width=35, height=30)
      self.GButton_889["command"] = self.GButton_889_command

      self.GButton_724 = tk.Button(root)
      self.GButton_724["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_724["font"] = ft
      self.GButton_724["fg"] = "#000000"
      self.GButton_724["justify"] = "center"
      self.GButton_724["text"] = "坊市"
      self.GButton_724["relief"] = "groove"
      self.GButton_724.place(x=1190, y=310, width=35, height=30)
      self.GButton_724["command"] = self.GButton_724_command

      self.GButton_210 = tk.Button(root)
      self.GButton_210["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_210["font"] = ft
      self.GButton_210["fg"] = "#000000"
      self.GButton_210["justify"] = "center"
      self.GButton_210["text"] = "排行"
      self.GButton_210["relief"] = "groove"
      self.GButton_210.place(x=1230, y=310, width=35, height=30)
      self.GButton_210["command"] = self.GButton_210_command

      self.GLabel_380 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_380["font"] = ft
      self.GLabel_380["fg"] = "#333333"
      self.GLabel_380["justify"] = "center"
      self.GLabel_380["text"] = "当前地图"
      self.GLabel_380.place(x=610, y=0, width=67, height=30)

      self.GLineEdit_300 = tk.Entry(root)
      self.GLineEdit_300["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_300["font"] = ft
      self.GLineEdit_300["fg"] = "#333333"
      self.GLineEdit_300["justify"] = "center"
      self.GLineEdit_300["text"] = "当前地图"
      self.GLineEdit_300.place(x=690, y=0, width=140, height=30)

      self.GLineEdit_179 = tk.Entry(root)
      self.GLineEdit_179["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_179["font"] = ft
      self.GLineEdit_179["fg"] = "#333333"
      self.GLineEdit_179["justify"] = "center"
      self.GLineEdit_179["text"] = "当前场景玩家"
      self.GLineEdit_179.place(x=10, y=370, width=146, height=195)
      yscroll = Scrollbar(self.GLineEdit_179, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('玩家', '操作', 'url')
      self.tvPlayerInThisPlace = ttk.Treeview(self.GLineEdit_179, columns=title, style='Treeview', show='headings',
                                                height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPlayerInThisPlace.yview)
      self.tvPlayerInThisPlace.pack()
      self.tvPlayerInThisPlace.column(title, width=85, anchor=CENTER)
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.column(title, width=40, anchor='w')
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLabel_953 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_953["font"] = ft
      self.GLabel_953["fg"] = "#333333"
      self.GLabel_953["justify"] = "center"
      self.GLabel_953["text"] = "当前对象"
      self.GLabel_953.place(x=170, y=30, width=54, height=30)

      self.GLineEdit_824 = tk.Entry(root)
      self.GLineEdit_824["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_824["font"] = ft
      self.GLineEdit_824["fg"] = "#333333"
      self.GLineEdit_824["justify"] = "center"
      self.GLineEdit_824["text"] = "对象"
      self.GLineEdit_824.place(x=230, y=30, width=152, height=30)

      self.GListBox_981 = tk.Text(root)
      self.GListBox_981["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GListBox_981["font"] = ft
      self.GListBox_981["fg"] = "#333333"
      self.GListBox_981.place(x=160, y=190, width=226, height=287)

      self.GButton_779 = tk.Button(root)
      self.GButton_779["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_779["font"] = ft
      self.GButton_779["fg"] = "#000000"
      self.GButton_779["justify"] = "center"
      self.GButton_779["text"] = "操作1"
      self.GButton_779["relief"] = "groove"
      self.GButton_779.place(x=170, y=70, width=58, height=30)
      self.GButton_779["command"] = self.GButton_779_command

      self.GLineEdit_938 = tk.Entry(root)
      self.GLineEdit_938["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_938["font"] = ft
      self.GLineEdit_938["fg"] = "#333333"
      self.GLineEdit_938["justify"] = "center"
      self.GLineEdit_938["text"] = "世界地图"
      self.GLineEdit_938.place(x=910, y=0, width=108, height=336)
      yscroll = Scrollbar(self.GLineEdit_938, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('地图列表', '操作', 'url')
      self.tvAllMap = ttk.Treeview(self.GLineEdit_938, columns=title, style='Treeview', show='headings', height=20,
                                     yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllMap.yview)
      self.tvAllMap.pack()
      self.tvAllMap.column(title, width=85, anchor=CENTER)
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.column(title, width=40, anchor='w')
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GButton_745 = tk.Button(root)
      self.GButton_745["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_745["font"] = ft
      self.GButton_745["fg"] = "#000000"
      self.GButton_745["justify"] = "center"
      self.GButton_745["text"] = "操作2"
      self.GButton_745["relief"] = "groove"
      self.GButton_745.place(x=240, y=70, width=61, height=30)
      self.GButton_745["command"] = self.GButton_745_command

      self.GButton_152 = tk.Button(root)
      self.GButton_152["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_152["font"] = ft
      self.GButton_152["fg"] = "#000000"
      self.GButton_152["justify"] = "center"
      self.GButton_152["text"] = "操作3"
      self.GButton_152["relief"] = "groove"
      self.GButton_152.place(x=310, y=70, width=61, height=30)
      self.GButton_152["command"] = self.GButton_152_command

      self.GButton_14 = tk.Button(root)
      self.GButton_14["bg"] = "#efefef"
      ftGButton_14 = tkFont.Font(family='Times', size=8)
      self.GButton_14["font"] = ftGButton_14
      self.GButton_14["fg"] = "#000000"
      self.GButton_14["justify"] = "center"
      self.GButton_14["text"] = "技能1"
      self.GButton_14["relief"] = "groove"
      self.GButton_14.place(x=170, y=110, width=57, height=30)
      self.GButton_14["command"] = self.GButton_14_command

      self.GButton_645 = tk.Button(root)
      self.GButton_645["bg"] = "#efefef"
      ftGButton_645 = tkFont.Font(family='Times', size=8)
      self.GButton_645["font"] = ftGButton_645
      self.GButton_645["fg"] = "#000000"
      self.GButton_645["justify"] = "center"
      self.GButton_645["text"] = "技能2"
      self.GButton_645["relief"] = "groove"
      self.GButton_645.place(x=240, y=110, width=61, height=30)
      self.GButton_645["command"] = self.GButton_645_command

      self.GButton_141 = tk.Button(root)
      self.GButton_141["bg"] = "#efefef"
      ftGButton_141 = tkFont.Font(family='Times', size=8)
      self.GButton_141["font"] = ftGButton_141
      self.GButton_141["fg"] = "#000000"
      self.GButton_141["justify"] = "center"
      self.GButton_141["text"] = "技能3"
      self.GButton_141["relief"] = "groove"
      self.GButton_141.place(x=310, y=110, width=61, height=30)
      self.GButton_141["command"] = self.GButton_141_command

      self.GButton_581 = tk.Button(root)
      self.GButton_581["bg"] = "#efefef"
      ftGButton_581 = tkFont.Font(family='Times', size=8)
      self.GButton_581["font"] = ftGButton_581
      self.GButton_581["fg"] = "#000000"
      self.GButton_581["justify"] = "center"
      self.GButton_581["text"] = "药品1"
      self.GButton_581["relief"] = "groove"
      self.GButton_581.place(x=170, y=150, width=57, height=30)
      self.GButton_581["command"] = self.GButton_581_command

      self.GButton_405 = tk.Button(root)
      self.GButton_405["bg"] = "#efefef"
      ftGButton_405 = tkFont.Font(family='Times', size=8)
      self.GButton_405["font"] = ftGButton_405
      self.GButton_405["fg"] = "#000000"
      self.GButton_405["justify"] = "center"
      self.GButton_405["text"] = "药品2"
      self.GButton_405["relief"] = "groove"
      self.GButton_405.place(x=240, y=150, width=63, height=30)
      self.GButton_405["command"] = self.GButton_405_command

      self.GButton_125 = tk.Button(root)
      self.GButton_125["bg"] = "#efefef"
      ftGButton_125 = tkFont.Font(family='Times', size=8)
      self.GButton_125["font"] = ftGButton_125
      self.GButton_125["fg"] = "#000000"
      self.GButton_125["justify"] = "center"
      self.GButton_125["text"] = "药品3"
      self.GButton_125["relief"] = "groove"
      self.GButton_125.place(x=310, y=150, width=60, height=30)
      self.GButton_125["command"] = self.GButton_125_command

      self.GLabel_185 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      # self.GLabel_185["bg"] = "#cc0000"
      self.GLabel_185["font"] = ft
      self.GLabel_185["justify"] = "center"
      self.GLabel_185["text"] = "hp"
      self.GLabel_185.place(x=10, y=680, width=1253, height=15)
      s = ttk.Style()
      s.theme_use('winnative')
      # win10环境下主题:('winnative','clam','alt','default','classic','vista','xpnative')
      # 进度条颜色改变测试成功的是:'winnative','clam','alt','default','classic'
      s.configure("green.Horizontal.TProgressbar", troughcolor='white', background='green')
      self.progressbarHP = tkinter.ttk.Progressbar(self.GLabel_185, style="green.Horizontal.TProgressbar")
      # progressbarOne.place(x=10,y=685,width=1253,height=20 )
      self.progressbarHP.pack(expand=True, fill='both')
      # 进度值最大值
      self.progressbarHP['maximum'] = 1253
      # 进度值初始值
      self.progressbarHP['value'] = 800

      self.GLabel_604 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_604["font"] = ft
      self.GLabel_604["fg"] = "#333333"
      self.GLabel_604["justify"] = "center"
      self.GLabel_604["text"] = "label"
      self.GLabel_604.place(x=10, y=600, width=810, height=15)
      s.configure("lightblue.Horizontal.TProgressbar", troughcolor='white', background='lightblue')
      self.progressbarEXP = tkinter.ttk.Progressbar(self.GLabel_604, style="lightblue.Horizontal.TProgressbar")
      self.progressbarEXP.pack(expand=True, fill='both')
      self.progressbarEXP['maximum'] = 1253
      self.progressbarEXP['value'] = 800

    def treeview_sort_column(self, tv, col, reverse):# Treeview、列名、排列方式
      l = [(tv.set(k, col), k) for k in tv.get_children('')]
      l.sort(reverse=reverse)# 排序方式
      # rearrange items in sorted positions
      for index, (val, k) in enumerate(l):# 根据排序后索引移动
            tv.move(k, '', index)
      tv.heading(col, command=lambda: self.treeview_sort_column(tv, col, not reverse))# 重写标题,使之成为再点倒序的标题

    def tvPackage_leftButtonRelease(self, event):
      # print(event.widget)
      if str(event.widget) == ".!text3.!treeview":# 左键释放的是否为表格
            if not self.status_auto_bybutton:
                self.resetOPButtonName()
                self.GListBox_981.delete(0.0, 'end')
                items = event.widget.selection()
                # title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
                try:
                  item = self.tvPackageInfo.item(items)['values']
                  name = item
                  url_oprate = self.url_game + item
                  self.setNowObject(name, url_oprate)
                  self.GButton_779['state'] = 'active'
                except:
                  pass

            for item in self.tvPackageInfo.selection():# 取消表格选取
                self.tvPackageInfo.selection_remove(item)

            row = self.tvPackageInfo.identify_row(event.y)# 点击的行
            column = self.tvPackageInfo.identify_column(event.x)# 点击的列
            col = int(str(column).replace('#', ''))# 列号
            item = self.tvPackageInfo.item(row)['values']
            if item:
                if "已装备" in item:
                  return
                if col == 2:
                  ttt = item
                  url = item
                  self.NowObject_run(url)
                elif col == 3:
                  ttt = item
                  url = item
                  self.NowObject_run(url)

    def tvPackageInfoSelection1(self, event):
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
            self.GListBox_981.delete(0.0, 'end')
            items = event.widget.selection()
            # title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
            item = self.tvPackageInfo.item(items)['values']
            name = item
            url_oprate = self.url_game + item
            self.setNowObject(name, url_oprate)
            self.GButton_779['state'] = 'active'

    def tvNpcSelection(self, event):
      items = event.widget.selection()
      item = self.tvNpc.item(items)['values']
      name = item
      url_oprate = self.url_game + item
      # self.refreshGame(url_oprate)
      self.setNowObject(name, url_oprate)
      self.GButton_779['state'] = 'active'

    def tvAllMapSelection(self, event):
      items = event.widget.selection()
      item = self.tvAllMap.item(items)['values']
      name = item
      url_oprate = self.url_game + item

      self.refreshGame(url_oprate)

    def tvMonsterSelection(self, event):

      # self.GLineEdit_companyname.delete(0,'end')
      # self.resetOPButtonName()
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
      items = event.widget.selection()
      item = self.tvMonster.item(items)['values']
      name = item

      url_oprate = self.url_game + item
      # self.GLineEdit_companyname.insert(0,item)

      self.setNowObject(name, url_oprate)

      self.GButton_779['state'] = 'active'

    def setNowObject(self, name, href):
      self.GLineEdit_824.delete(0, 'end')
      self.GLineEdit_824.insert(0, name)
      # self._log(href)
      # links = self.getHrefLabelLinks(req)
      url = href
      # self._log(url)
      if self.needDecode:
            url = self.DecodeParam(href)
      types = re.search("cmd=cmd=.*?&", url)
      type = None
      if types:
            type = types.group(0)
      if not type:
            return
      # self._log(type)

      req = self._requests('get', href, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//body/text()")
      links = []
      self.GListBox_981.delete(0.0, 'end')
      self.GButton_779['text'] = '暂无功能'
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text) > 0:
                if "掉落" in text or '装备信息' in text:
                  self.GListBox_981.insert('end', "\n" + text + "\n")
                else:
                  self.GListBox_981.insert('end', text + "\n")
      table_element = html_etree.xpath("//body//div/a/text()")

      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text) > 0:
                self.GListBox_981.insert('end', row.strip() + "\n")

      table_element = html_etree.xpath("//a")
      for row in table_element:
            if row.text == '攻击':
                self.GButton_779['text'] = '查看'
                self.NowObject_op1 = self.url_game + row.attrib["href"]
                # self._log(self.NowObject_op1)
      links = []
      try:
            links = self.getHrefLabelLinks(req)

      except Exception as me:
            print('1257')
            print(me)
      # links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})
      icount_task = 0
      for link in links:
            if link['text'] == "返回游戏":
                break
            if link['type'] == 'npc':
                self.GListBox_981.insert('end', f'{"-" * 53}' + "\n")
                self.GListBox_981.insert('end', link['text'] + "\n")
                if 'canshu=rehp' in link['href']:
                  self.GButton_779['text'] = '生命恢复'
                  self.NowObject_op1 = self.url_game + link['dhref']
                elif 'canshu=gogoumai' in link['href']:
                  self.GButton_779['text'] = '购买药品'
                  self.NowObject_op1 = self.url_game + link['dhref']
                else:
                  self.GButton_779['text'] = '暂无功能'
            elif '=task&' in link['href']:
                icount_task += 1
                if icount_task == 1:
                  self.GButton_14['text'] = link['text']
                  self.url_pve_usejn1 = link['dhref']
                elif icount_task == 2:
                  self.GButton_645['text'] = link['text']
                  self.url_pve_usejn2 = link['dhref']
                else:
                  self.GButton_141['text'] = link['text']
                  self.url_pve_usejn3 = link['dhref']
            elif link['type'] == 'upzb':
                if '&upsx=zbgj&' in link['href']:
                  self.GButton_779['text'] = '强化攻击'
                  self.NowObject_op1 = self.url_game + link['dhref']
                if '&upsx=zbfy&' in link['href']:
                  self.GButton_745['text'] = '强化防御'
                  self.NowObject_op2 = link['dhref']
                if '&upsx=zbhp&' in link['href']:
                  self.GButton_152['text'] = '强化气血'
                  self.NowObject_op3 = link['dhref']
            elif link['type'] == 'setzbwz':
                if '&zbwz=1&' in link['href']:
                  self.GButton_14['text'] = '装备武器'
                  self.url_pve_usejn1 = link['dhref']
                elif '&zbwz=2&' in link['href']:
                  self.GButton_645['text'] = '装备头饰'
                  self.url_pve_usejn2 = link['dhref']
                elif '&zbwz=3&' in link['href']:
                  self.GButton_141['text'] = '装备衣服'
                  self.url_pve_usejn3 = link['dhref']
                elif '&zbwz=4&' in link['href']:
                  self.GButton_581['text'] = '装备腰带'
                  self.url_pve_useyp1 = link['dhref']
                elif '&zbwz=5&' in link['href']:
                  self.GButton_405['text'] = '装备首饰'
                  self.url_pve_useyp2 = link['dhref']
                elif '&zbwz=6&' in link['href']:
                  self.GButton_125['text'] = '装备鞋子'
                  self.url_pve_useyp3 = link['dhref']
            elif link['type'] == 'ypinfo':
                if "&canshu=setyp1" in link['href']:
                  self.GButton_581['text'] = '装备药品1'
                  self.url_pve_useyp1 = link['dhref']
                elif "&canshu=setyp2" in link['href']:
                  self.GButton_405['text'] = '装备药品2'
                  self.url_pve_useyp2 = link['dhref']
                elif "&canshu=setyp3" in link['href']:
                  self.GButton_125['text'] = '装备药品3'
                  self.url_pve_useyp3 = link['dhref']
                elif "&canshu=useyp" in link['href']:
                  self.GButton_779['text'] = '吃药'
                  self.NowObject_op1 = self.url_game +link['dhref']

    def GButton_779_command(self):# 查看血量 野怪详情 #操作一
      if self.NowObject_op1:
            req = self._requests('get', self.NowObject_op1, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            links = self.getHrefLabelLinks(req)
            self.analysisButtonFight(links)
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip) > 0:
                  if rowstrip == "==战斗==":
                        self.GListBox_981.insert('end', rowstrip + "\n")
                        userHP = re.findall("气血.*?<br", req)# .group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp = table_element_hp + "/" + table_element_hp
                        self._log("当前HP: " + hp)
                        self.GLineEdit_556.delete(0, 'end')
                        self.GLineEdit_556.insert(0, hp)
                        self.status_pve = True
                        # 监控
                        nowhp = int(table_element_hp)# 血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp - nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp, allhp)


                  elif rowstrip == "===================":
                        self.GListBox_981.insert('end', tempstr + "\n")
                        tempstr = ""
                        self.GListBox_981.insert('end', rowstrip + "\n")
                  elif rowstrip == '逃跑':
                        continue
                  elif rowstrip == '信息:来来来   便宜':
                        self.GListBox_981.insert('end', f'{"-" * 53}' + "\n")
                        break
                  else:
                        tempstr = tempstr + " " + rowstrip
            self.GListBox_981.insert('end', tempstr + "\n")

    def analysisButtonFight(self, links):
      i_pve = 0;
      i_pvegj = 0
      for link in links:
            if link['text'] == '攻击':
                self.GButton_745['text'] = '攻击'
                self.NowObject_op2 = link["dhref"]
                self.NowObject_op3 = link["dhref"]
                # self._log(self.NowObject_op1)
                self.GButton_745['state'] = 'active'
                self.GButton_152['text'] = '连续攻击'
            if link['type'] == 'pve':
                i_pve += 1
                if i_pve == 1:
                  self.GButton_581['text'] = link['text']
                  self.url_pve_useyp1 = link['dhref']
                elif i_pve == 2:
                  self.GButton_405['text'] = link['text']
                  self.url_pve_useyp2 = link['dhref']
                else:
                  self.GButton_125['text'] = link['text']
                  self.url_pve_useyp3 = link['dhref']
            if link['type'] == 'pvegj' and 'canshu=usejn' in link['href']:
                i_pvegj += 1
                if i_pvegj == 1:
                  self.GButton_14['text'] = link['text']
                  self.url_pve_usejn1 = link['dhref']
                elif i_pvegj == 2:
                  self.GButton_645['text'] = link['text']
                  self.url_pve_usejn2 = link['dhref']
                else:
                  self.GButton_141['text'] = link['text']
                  self.url_pve_usejn3 = link['dhref']
            if link['type'] == 'npc':
                self.GButton_745['state'] = 'active'
                if 'ypid=6' in link['href']:# 还原丹
                  self.GButton_745['text'] = '还原丹1个'
                  self.GButton_152['text'] = '还原丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.NowObject_op2 = link['dhref']
                  else:
                        self.NowObject_op3 = link['dhref']
                elif 'ypid=7' in link['href']:# 回血散
                  self.GButton_14['text'] = '回血散1个'
                  self.GButton_645['text'] = '回血散10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn1 = link['dhref']
                  else:
                        self.url_pve_usejn2 = link['dhref']
                elif 'ypid=8' in link['href']:# 回春汤
                  self.GButton_141['text'] = '回春汤1个'
                  self.GButton_581['text'] = '回春汤10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn3 = link['dhref']
                  else:
                        self.url_pve_useyp1 = link['dhref']
                elif 'ypid=9' in link['href']:# 复伤丹
                  self.GButton_405['text'] = '复伤丹1个'
                  self.GButton_125['text'] = '复伤丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_useyp2 = link['dhref']
                  else:
                        self.url_pve_useyp3 = link['dhref']
                else:
                  pass
            if link['type'] == 'ypinfo':
                self.GListBox_981.insert('end', link['text'] + " ")
                url = self.url_game + link['dhref']
                req = self._requests('get', url, decode_level=1)
                hp = re.search("气血.*?<br", req).group(0)[:-3]
                self.GListBox_981.insert('end', hp + "\n")

      # self.GButton_9_command()

    def GButton_745_command(self):# 发起进攻 #操作2
      if self.NowObject_op2:
            self.status_auto_bybutton = False
            self.NowObject_run(self.NowObject_op2)

    def GButton_9_command(self):
      self.refreshGame(self.NowPosition)

    def GButton_720_command(self):# 向北
      url_game = self.url_game + self.url_navN
      self.refreshGame(url_game)

    def GButton_126_command(self):# 向西
      url = self.url_navW
      url_game = self.url_game + self.url_navW
      self.refreshGame(url_game)

    def GButton_750_command(self):# 向东
      url_game = self.url_game + self.url_navE
      self.refreshGame(url_game)

    def GButton_181_command(self):# 向南
      url_game = self.url_game + self.url_navS
      self.refreshGame(url_game)

    def GButton_673_command(self):# 武器
      url_game = self.url_weapon1
      self.NowObject_run(url_game)

    def GButton_928_command(self):# 头饰
      url_game = self.url_weapon2
      self.NowObject_run(url_game)

    def GButton_299_command(self):# 衣服
      url_game = self.url_weapon3
      self.NowObject_run(url_game)

    def GButton_682_command(self):# 腰带
      url_game = self.url_weapon4
      self.NowObject_run(url_game)

    def GButton_289_command(self):# 首饰
      url_game = self.url_weapon5
      self.NowObject_run(url_game)

    def GButton_503_command(self):# 鞋子
      url_game = self.url_weapon6
      self.NowObject_run(url_game)

    def GCheckBox_967_command(self):
      print("command")

    def GButton_107_command(self):
      username = self.GLineEdit_363.get().strip()
      userpass = self.GLineEdit_127.get().strip()
      url_login = self.url_base
      data_login = {"username": username, "userpass": userpass, "submit": "登陆"}
      req = self._requests('post', url_login, decode_level=3, data=data_login)

      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return
      if not refresh:# 登陆成功
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return

      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"账号{username}登陆成功")
      url_refresh = url_split
      url_game = self.url_base + url_refresh
      req = self._requests('get', url_game, decode_level=3)
      if 'type="hidden" name="token"' in req.text:# 创建角色
            self._log(f"请创建角色后再次进入游戏")
            self.createrole(req.text)
            return
      refresh = None
      try:
            refresh = req.headers["refresh"]# 取用户信息成功跳转上次玩家地图
      except:
            self._log(f"服务器返回数据出错,请联系管理员")
            return

      if not refresh:
            self._log(f"服务器返回数据出错,请联系管理员")
            return
      self._log(f"获取用户信息成功")
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"进入寻仙世界失败,请联系管理员")
            return
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      self._log(f"欢迎进入寻仙世界")
      self.refreshGame(url_game)
      self.NowPosition = url_game

    def refreshGame(self, url_game):
      self.NowPosition = url_game
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
      req = self._requests('get', url_game, decode_level=1)
      if '你已经重伤请治疗' in req:
            self._log('你已经重伤请治疗')
            return
      html_etree = etree.HTML(req)
      try:
            mapname = re.search("当前地图:.*?<a", req).group(0)
            jobs = re.search(">任务.*?</a>", req, re.S).group(0)

            self.GLineEdit_300.delete(0, 'end')
            self.GLineEdit_300.insert(0, mapname)
            self.GButton_9['text'] = mapname
            links = self.getHrefLabelLinks(req)
            self.analysisStatus(links, jobs)
            mission = None
            mission = re.search("images/wen.gif.*?</a>", req, re.S)
            if mission:
                pass
            else:
                mission = re.search("images/tan.gif.*?</a>", req, re.S)
            if mission:
                findname = mission.group(0)
                findname = re.search("<a href=.*?</a>", findname, re.S).group(0)
                findname = re.search(">.*?<", findname, re.S).group(0)
                t = self.tvNpc.get_children()
                icount = 0;
                for i in t:
                  value1 = self.tvNpc.item(i, 'values')
                  for v in value1:
                        if v == findname:
                            icount += 1
                            self.tvNpc.set(i, 1, "新任务")
                            break
                  if icount > 0:
                        break
            else:
                # print("noneeee")
                pass
            # 公共聊天处理
            # table_element = html_etree.xpath('//*[@id="ltmsg"]')
            # for row in table_element:
            #   self.GLineEdit_252.insert('end',row.text+"\n")
      except Exception as me:
            # print('1612')
            # print(me)
            pass

            table_element = html_etree.xpath("//a")
            href = None
            for row in table_element:
                text = row.text
                href = row.attrib["href"]
                url = href
                if self.needDecode:
                  url = self.DecodeParam(url)
                if text == '突破' and 'canshu=tupo' in url:
                  break
            if href:
                req = self._requests('get', self.url_game + href, decode_level=1)
                if "灵石不足" in req:
                  value = re.search(f"突破需要灵石.*?<a", req).group(0)[:-2]
                  self._log(f"突破失败,灵石不足!{value}")
                if "突破成功" in req:
                  self._log("突破成功!")
                  self.refreshGame(url_game)
      try:
            self.tvMonster.selection_set('Item001')
      except:
            pass

    def resetOPButtonName(self):
      self.GButton_779['text'] = '操作1'
      self.GButton_745['text'] = '操作2'
      self.GButton_152['text'] = '操作3'
      self.GButton_14['text'] = '技能1'
      self.GButton_645['text'] = '技能2'
      self.GButton_141['text'] = '技能3'
      self.GButton_581['text'] = '药品1'
      self.GButton_405['text'] = '药品2'
      self.GButton_125['text'] = '药品3'
      # self.NowObject_op1 =None
      # self.NowObject_op2 =None
      # self.NowObject_op3 =None
      # self.url_op1 = None
      # self.url_op2 = None
      # self.url_op3 = None
      # self.url_pve_useyp1 =None
      # self.url_pve_useyp2 =None
      # self.url_pve_useyp3 =None
      # self.url_pve_usejn1 =None
      # self.url_pve_usejn2 =None
      # self.url_pve_usejn3 =None

    def TestSched(self):
      while self.status_autofighting:
            time.sleep(0.1)
            # self.tvMonster.selection_set('Item001')#刷新第一个怪物
            time.sleep(0.1)
            self.GButton_779_command()# 查看
            time.sleep(0.1)
            self.GButton_152_command()# 连续攻击

    def GButton_728_command(self):
      self.status_auto_bybutton = not self.status_auto_bybutton
      self.status_autofighting = not self.status_autofighting
      if self.status_autofighting:
            self.GButton_728['text'] = '自动战斗'
      else:
            self.GButton_728['text'] = '停止战斗'

      try:
            obj1 = threading.Thread(target=self.TestSched, args=())
            obj1.setDaemon(True)
            obj1.start()

      except Exception as me:
            print('1683')

            print(me)

    def getHrefLabelLinks(self, req):
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      links = []

      for row in table_element:
            if row.text is None:
                continue
            href = row.attrib["href"]
            dhref = href
            if self.needDecode:
                href = self.DecodeParam(href)
            types = re.search("cmd=cmd=.*?&", href)
            type = None
            if types is None:
                continue
            else:
                type = types.group(0)
            links.append({"text": row.text, "href": href, "type": type, "dhref": dhref})
      return links

    def analysisStatus(self, links, jobs):

      self.reset(self.tvMonster)
      url = self.getStatusUrl(links, "符箓")
      if url:
            self.url_package_skills = url
      url = self.getStatusUrl(links, "状态")
      if url:
            self.setStatusUserInfo(url)
      if not self.status_auto_bybutton:
            self.reset(self.tvNpc)
            self.reset(self.tvPlayerInThisPlace)
            self.reset(self.tvPackageInfo)
            url = self.getStatusUrl(links, "包裹")
            if url:
                self.url_package = url
                self.url_package_weapons = url
                self.setStatusPackageDrugsInfo(url)
                self.treeview_sort_column(self.tvPackageInfo, 0, True)
            url = self.getStatusUrl(links, "查看地图")
            if url:
                self.setAllMap(url)
            url = self.getStatusUrl(links, "排行")
            if url:
                self.setTopPlayer(url)

            url = self.getStatusUrl(links, jobs)
            if url:
                self.setJobList(url)

      navs = []
      for link in links:
            if link['type']:
                type = link['type']

                if type == "npc" and not self.status_auto_bybutton:
                  self.tvNpc.insert('', 'end', values=(link['text'], "查看", link['dhref']))
                elif type == "getginfo":# 野怪
                  id_tv = self.next_id()
                  self.tvMonster.insert('', 'end', id=id_tv, values=(link['text'], "查看", link['dhref']))
                elif type == "gomid":# 导航
                  navs.append(link)
                elif type == "getplayerinfo" and not self.status_auto_bybutton:# 导航
                  self.tvPlayerInThisPlace.insert('', 'end', values=(link['text'], "查看", link['dhref']))

      self.setNav(navs)
      # self.tvMonster.selection_set('I001')#刷新第一个怪物

    def next_id(self):
      global counter_tv
      counter_tv += 1
      return "Item%.3d" % counter_tv

    def reset(self, o):
      global counter_tv
      for item in o.get_children():
            o.delete(item)
      counter_tv = 0

    def setAllMap(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllMap)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回上一页':
                break
            self.tvAllMap.insert('', 'end', values=(row.text, "查看", href))
            self.url_safyhouse = href

    def setTopPlayer(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvTopPlayer)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回游戏':
                break
            self.tvTopPlayer.insert('', 'end', values=(row.text, "查看", href))

    def setJobList(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllJob)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回游戏':
                break
            # self.tvAllJob.insert('', 'end', values=(row.text,"查看",href))
            url = self.url_game + href
            req = self._requests('get', url, decode_level=1)
            try:
                content = re.search(":<br/>.*?<br/>", req, re.S).group(0)
                content = content.replace("\r\n", "").replace(" ", "")
                workdone = re.search("进度.*?<br/>", req, re.S).group(0)
                self.tvAllJob.insert('', 'end', values=(row.text, workdone, content))
            except:
                pass

    def setNav(self, navs):
      N = False
      S = False
      W = False
      E = False
      for link in navs:
            if "←" in link['text']:
                W = True
                self.GButton_126["text"] = link['text']
                self.GButton_126["state"] = 'active'
                self.url_navW = link['dhref']
            if "→" in link['text']:
                E = True
                self.GButton_750["text"] = link['text']
                self.GButton_750["state"] = 'active'
                self.url_navE = link['dhref']
            if "↓" in link['text']:
                S = True
                self.GButton_181["text"] = link['text']
                self.GButton_181["state"] = 'active'
                self.url_navS = link['dhref']
            if "↑" in link['text']:
                N = True
                self.GButton_720["text"] = link['text']
                self.GButton_720["state"] = 'active'
                self.url_navN = link['dhref']
      if not N:
            self.GButton_720["state"] = 'disable'
            self.GButton_720["text"] = '此路不通'
      if not S:
            self.GButton_181["state"] = 'disable'
            self.GButton_181["text"] = '此路不通'
      if not E:
            self.GButton_750["state"] = 'disable'
            self.GButton_750["text"] = '此路不通'
      if not W:
            self.GButton_126["state"] = 'disable'
            self.GButton_126["text"] = '此路不通'

    def getStatusUrl(self, links, callName):
      url = ''
      for link in links:
            if link["text"] == callName:
                url = link["dhref"]
                return url

    def setStatusPackageDrugsInfo(self, url, count=0):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      # self.reset(self.tvPackageInfo)
      # for i in range(1,10):
      #   str = f'\[{i}\]'
      #   str_showItem = self.getPackageItem(req,str)
      #   if str_showItem:
      #         # self.tvPackageInfo.insert('', 'end', values=(str_show,"workdone","content"))
      #         self.tvPackageInfo.insert('', 'end', values=str_showItem)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      count += 1

      self.searchPackageContent(table_element, count)

    def searchPackageContent(self, table_element, count):
      l_list = []
      for row in table_element:
            if row.text == "返回游戏":
                break
            elif row.text == "上一页":
                continue
            elif row.text == "下一页":
                if count <= 4:
                  url_next = row.attrib["href"]
                  self.setStatusPackageDrugsInfo(url_next, count)
                  break
                else:
                  break
            elif row.text == "道具":
                self.url_package_items = row.attrib["href"]
            elif row.text == "药品":
                self.url_package_drugs = row.attrib["href"]
            elif row.text == "符箓":
                self.url_package_skills = row.attrib["href"]

            url = row.attrib["href"]
            dhref = url

            if self.needDecode:
                url = self.DecodeParam(url)
            l_list.append(json.loads(
                '{\"' + re.sub('(?<!&)&(?!&)', '\",\"', re.sub('(?<!=)=(?!=|&)', '\":\"', url)) + '\",\"url\":\"'
                + url + "\",\"dhref\":\"" + dhref + "\",\"urltext\":\"" + row.text + '\"}'))

      if len(l_list) < 1:
            return
      # print(l_list)
      self.analysisPackage(l_list)

    def analysisPackage(self, l_list):
      for item in l_list:
            if item["cmd"] == 'chakanzb':
                zbnowid = item["zbnowid"]
                zbinfo = item["dhref"]
                zb_op1 = None
                zb_op1_url = None
                zb_op2 = None
                zb_op2_url = None
                for itemn in l_list:
                  try:
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '卖出':
                            zb_op1 = '卖出'
                            zb_op1_url = itemn["dhref"]
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '分解':
                            zb_op2 = '分解'
                            zb_op2_url = itemn["dhref"]
                  except:
                        pass
                if zb_op1:
                  self.tvPackageInfo.insert('', 'end',
                                              values=(item["urltext"], zb_op1, zb_op2, zb_op1_url, zb_op2_url, zbinfo))
                else:
                  self.tvPackageInfo.insert('', 'end', values=(item["urltext"], '已装备', '', '', '', zbinfo))

    def getPackageDrugsInfoReqValue(self, req, text):
      l = len(text)
      try:
            value = re.search(f"{text}\..*?</a>", req).group(0)
            if value.startswith("<a"):
                value = re.search(">.*?</a>", value).group(0)
            return value

      except Exception as me:
            print('1949')
            print(me)
            return None

    def setStatusUserInfo(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.setStatusUserInfo_byreq(req)

    def setStatusUserInfo_byreq(self, req):
      self.GButton_673['state'] = 'disable'# 武器
      self.GButton_928['state'] = 'disable'# 头饰
      self.GButton_299['state'] = 'disable'# 衣服
      self.GButton_682['state'] = 'disable'# 腰带
      self.GButton_289['state'] = 'disable'# 首饰
      self.GButton_503['state'] = 'disable'# 鞋子
      self.setEditText(self.GLineEdit_458, self.getReqValue(req, '昵称'))
      self.setEditText(self.GLineEdit_546, self.getReqValue(req, '境界'))
      self.setEditText(self.GLineEdit_644, self.getReqValue(req, '等级'))
      self.setEditText(self.GLineEdit_268, self.getReqValue(req, '修为'))
      self.setEditText(self.GLineEdit_998, self.getReqValue(req, '灵石'))
      self.setEditText(self.GLineEdit_789, self.getReqValue(req, '极品灵石'))
      self.setEditText(self.GLineEdit_556, self.getReqValue(req, '气血'))
      self.setEditText(self.GLineEdit_634, self.getReqValue(req, '攻击'))
      self.setEditText(self.GLineEdit_875, self.getReqValue(req, '防御'))
      self.setEditText(self.GLineEdit_588, self.getReqValue(req, '暴击'))
      self.setEditText(self.GLineEdit_323, self.getReqValue(req, '吸血'))
      self.setEditText(self.GLineEdit_129, self.getReqValue(req, '武器'))
      self.setEditText(self.GLineEdit_810, self.getReqValue(req, '头饰'))
      self.setEditText(self.GLineEdit_708, self.getReqValue(req, '衣服'))
      self.setEditText(self.GLineEdit_554, self.getReqValue(req, '腰带'))
      self.setEditText(self.GLineEdit_809, self.getReqValue(req, '首饰'))
      self.setEditText(self.GLineEdit_31, self.getReqValue(req, '鞋子'))
      exp = self.getReqValue(req, '修为')
      hp = self.getReqValue(req, '气血')
      exps = exp.split('/')
      nowexp = int(exps)
      allexp = int(exps)
      self.progressbarEXP['maximum'] = allexp
      self.progressbarEXP['value'] = nowexp
      hps = hp.split('/')# 血量监控
      nowhp = int(hps)
      allhp = int(hps)
      # 进度值最大值
      self.progressbarHP['maximum'] = allhp
      # 进度值初始值
      self.progressbarHP['value'] = nowhp

    def getReqValue(self, req, text):

      l = len(text)
      value = re.search(f"{text}:.*?<br/>", req).group(0)
      if value and value.startswith("<a"):

            html_etree = etree.HTML(value)
            table_element = html_etree.xpath("//a")
            url = None
            dhref = None
            for row in table_element:
                if row.text == "卸下":
                  dhref = row.attrib['href']
                  if self.needDecode:
                        url = self.DecodeParam(dhref)
                  else:
                        url = dhref
                else:
                  value = row.text
            if url:
                if "&zbwz=1&" in url:
                  self.url_weapon1 = dhref
                  self.GButton_673['state'] = 'normal'# 武器
                elif "&zbwz=2&" in url:
                  self.url_weapon2 = dhref
                  self.GButton_928['state'] = 'active'# 头饰
                elif "&zbwz=3&" in url:
                  self.url_weapon3 = dhref
                  self.GButton_299['state'] = 'active'# 衣服
                elif "&zbwz=4&" in url:
                  self.url_weapon4 = dhref
                  self.GButton_682['state'] = 'active'# 腰带
                elif "&zbwz=5&" in url:
                  self.url_weapon5 = dhref
                  self.GButton_289['state'] = 'active'# 首饰
                elif "&zbwz=6&" in url:
                  self.url_weapon6 = dhref
                  self.GButton_503['state'] = 'active'# 鞋子
      return value

    def setEditText(self, _GLineEdit, value):
      if not value:
            value = "空"
      _GLineEdit.delete(0, 'end')
      _GLineEdit.insert(0, value)

    def GButton_947_command(self):# 清理装备
      # print(self.NowPosition)
      if self.url_package:
            try:
                obj1 = threading.Thread(target=self.TestcleanItem, args=())
                obj1.setDaemon(True)
                obj1.start()
            except Exception as me:
                print('2063')
                print(me)

    def TestcleanItem(self):
      p_list = []
      plist = self.cleanPackage(self.url_package, p_list)
      itemData = {}
      for row in plist:
            if row['cmd'] == 'chakanzb':
                name = row['urltext']
                zbnowid = row['zbnowid']
                itemData.setdefault(name, {"count": 0})
                itemData['count'] += 1
      for row in itemData:
            if int(itemData['count']) > 6:# 装备多于6个
                count_needsell = itemData['count']
                count_sell = 0
                self.GListBox_981.delete(0.0, 'end')
                self.GListBox_981.insert('end', f'{row},总数:{count_needsell}')
                for row2 in plist:
                  if row2['cmd'] == 'chakanzb' and row2['urltext'] == row:# 跟据装备名找装备编号
                        zbnowid = row2['zbnowid']
                        for row3 in plist:# 跟据装备编号 找卖出URL
                            if row3['cmd'] == 'getbagzb' and row3['zbnowid'] == zbnowid and row3['canshu'] == 'maichu':
                              # if row3['cmd'] == 'delezb' and row3['zbnowid'] == zbnowid : 分解
                              url = row3['dhref']
                              if count_sell < count_needsell - 6:
                                    count_sell += 1
                                    # 执行URL
                                    self.GLineEdit_10.delete(0, 'end')
                                    self.GLineEdit_10.insert('end', f'{row},总数:{count_needsell} 卖出:{count_sell}')
                                    self._requests("get", self.url_game + url)

    def cleanPackage(self, url_package, p_list=[], count=0):
      url = self.url_game + url_package
      req = self._requests('get', url, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      count += 1
      self._log(f'装备栏第{count}页')
      plist = self.researchPackageContent(table_element, p_list, count)
      return plist

    def researchPackageContent(self, table_element, p_list, count):
      for row in table_element:
            if row.text == "返回游戏":
                break
            if row.text == "下一页":
                url_next = row.attrib["href"]
                self.cleanPackage(url_next, p_list, count)
                break
            if row.text == "上一页":
                continue
            url = row.attrib["href"]
            dhref = url

            if self.needDecode:
                url = self.DecodeParam(url)
            p_list.append(json.loads(
                '{\"' + re.sub('(?<!&)&(?!&)', '\",\"', re.sub('(?<!=)=(?!=|&)', '\":\"', url)) + '\",\"url\":\"'
                + url + "\",\"dhref\":\"" + dhref + "\",\"urltext\":\"" + row.text + '\"}'))

      return p_list

    def GButton_744_command(self):# 注册
      print("GButton_744_command")
      window_sign_up = tk.Toplevel(root)
      # setting title
      window_sign_up.title("注册")
      # setting window size
      width = 895
      height = 329
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      window_sign_up.geometry(alignstr)
      window_sign_up.resizable(width=False, height=False)

      self.Frame_634 = tk.Frame(window_sign_up)
      self.Frame_634.place(x=10, y=10, width=472, height=310)
      self.canvas = tk.Canvas(self.Frame_634, bg='SystemButtonFace', width=472, height=310)# SystemButtonFace
      global image
      image = PhotoImage(file="xunxian.png")
      self.canvas.create_image(232, 155, image=image)
      self.canvas.pack()

      self.GLabel_831 = tk.Label(window_sign_up)
      # self.GLabel_831["bg"] = "#00ced1"
      ft = tkFont.Font(family='黑体', size=11)
      self.GLabel_831["font"] = ft
      self.GLabel_831["fg"] = "#333333"
      self.GLabel_831["justify"] = "center"
      self.GLabel_831["text"] = "天下风云出我辈,一入江湖岁月催\n\n皇图霸业谈笑中,不胜人生一场醉\n\n提剑跨骑挥鬼雨,白骨如山鸟惊飞\n\n尘事如潮人如水,只叹江湖几人回\n"
      self.GLabel_831.place(x=490, y=10, width=398, height=137)

      self.GLineEdit_702 = tk.Entry(window_sign_up)
      self.GLineEdit_702["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_702["font"] = ft
      self.GLineEdit_702["fg"] = "#333333"
      self.GLineEdit_702["justify"] = "center"
      self.GLineEdit_702["text"] = "account"
      self.GLineEdit_702.place(x=610, y=160, width=239, height=30)

      self.GLabel_268 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_268["font"] = ft
      self.GLabel_268["fg"] = "#333333"
      self.GLabel_268["justify"] = "center"
      self.GLabel_268["text"] = "账号"
      self.GLabel_268.place(x=500, y=160, width=64, height=30)

      self.GLabel_500 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_500["font"] = ft
      self.GLabel_500["fg"] = "#333333"
      self.GLabel_500["justify"] = "center"
      self.GLabel_500["text"] = "密码"
      self.GLabel_500.place(x=500, y=200, width=62, height=30)

      self.GLabel_104 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_104["font"] = ft
      self.GLabel_104["fg"] = "#333333"
      self.GLabel_104["justify"] = "center"
      self.GLabel_104["text"] = "确认密码"
      self.GLabel_104.place(x=500, y=240, width=70, height=30)

      self.GLineEdit_703 = tk.Entry(window_sign_up)
      self.GLineEdit_703["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_703["font"] = ft
      self.GLineEdit_703["fg"] = "#333333"
      self.GLineEdit_703["justify"] = "center"
      self.GLineEdit_703["text"] = "password"
      # self.GLineEdit_703["show"] = "*"

      self.GLineEdit_703.place(x=610, y=200, width=240, height=32)

      self.GLineEdit_54 = tk.Entry(window_sign_up)
      self.GLineEdit_54["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_54["font"] = ft
      self.GLineEdit_54["fg"] = "#333333"
      self.GLineEdit_54["justify"] = "center"
      self.GLineEdit_54["text"] = "password2"
      # self.GLineEdit_54["show"] = "*"
      self.GLineEdit_54.place(x=610, y=240, width=239, height=30)

      self.GButton_916 = tk.Button(window_sign_up)
      self.GButton_916["bg"] = "#f0f0f0"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_916["font"] = ft
      self.GButton_916["fg"] = "#000000"
      self.GButton_916["justify"] = "center"
      self.GButton_916["text"] = "注册"
      self.GButton_916.place(x=730, y=280, width=119, height=30)
      self.GButton_916["command"] = self.GButton_916_command

      self.GLabel_764 = tk.Label(window_sign_up)# 显示回返
      self.GLabel_764["bg"] = "#00ced1"
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_764["font"] = ft
      self.GLabel_764["fg"] = "#333333"
      self.GLabel_764["justify"] = "center"
      self.GLabel_764["text"] = ""
      self.GLabel_764.place(x=510, y=280, width=190, height=30)

    def createrole(self, req):
      # setting title
      self.window_createrole = tk.Toplevel(root)
      self.window_createrole.title("创建角色")
      # setting window size
      width = 365
      height = 320
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      self.window_createrole.geometry(alignstr)
      self.window_createrole.resizable(width=False, height=False)

      self.GLabel_602 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_602["font"] = ft
      self.GLabel_602["fg"] = "#333333"
      self.GLabel_602["justify"] = "center"
      self.GLabel_602["text"] = "角色名称"
      self.GLabel_602.place(x=30, y=50, width=70, height=25)

      self.GLineEdit_937 = tk.Entry(self.window_createrole)
      self.GLineEdit_937["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_937["font"] = ft
      self.GLineEdit_937["fg"] = "#333333"
      self.GLineEdit_937["justify"] = "center"
      self.GLineEdit_937["text"] = "Entry"
      self.GLineEdit_937.place(x=120, y=50, width=187, height=32)

      self.GLabel_643 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_643["font"] = ft
      self.GLabel_643["fg"] = "#333333"
      self.GLabel_643["justify"] = "center"
      self.GLabel_643["text"] = "性别"
      self.GLabel_643.place(x=30, y=100, width=70, height=25)

      v = tk.IntVar()

      self.GRadio_923 = tk.Radiobutton(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GRadio_923["font"] = ft
      self.GRadio_923["fg"] = "#333333"
      self.GRadio_923["justify"] = "center"
      self.GRadio_923["text"] = "男"
      self.GRadio_923["variable"] = v
      self.GRadio_923["value"] = '1'
      self.GRadio_923.place(x=120, y=100, width=43, height=30)
      self.GRadio_923["command"] = self.GRadio_923_command
      # self.GRadio_923.setCh
      v.set('1')

      self.GRadio_618 = tk.Radiobutton(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GRadio_618["font"] = ft
      self.GRadio_618["fg"] = "#333333"
      self.GRadio_618["justify"] = "center"
      self.GRadio_618["text"] = "女"
      self.GRadio_618["variable"] = v
      self.GRadio_618["value"] = '2'
      self.GRadio_618.place(x=190, y=100, width=62, height=30)
      self.GRadio_618["command"] = self.GRadio_618_command

      self.GButton_264 = tk.Button(self.window_createrole)
      self.GButton_264["bg"] = "#f0f0f0"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_264["font"] = ft
      self.GButton_264["fg"] = "#000000"
      self.GButton_264["justify"] = "center"
      self.GButton_264["text"] = "创   建"
      self.GButton_264.place(x=130, y=240, width=103, height=30)
      self.GButton_264["command"] = self.GButton_264_command

      self.GLabel_735 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_735["font"] = ft
      self.GLabel_735["fg"] = "#333333"
      self.GLabel_735["justify"] = "center"
      self.GLabel_735["text"] = "cmd"
      self.GLabel_735.place(x=30, y=140, width=70, height=25)

      self.GLineEdit_495 = tk.Entry(self.window_createrole)
      self.GLineEdit_495["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_495["font"] = ft
      self.GLineEdit_495["fg"] = "#333333"
      self.GLineEdit_495["justify"] = "center"
      self.GLineEdit_495["text"] = "cjplayer"
      self.GLineEdit_495.place(x=120, y=140, width=190, height=30)

      self.GLabel_318 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_318["font"] = ft
      self.GLabel_318["fg"] = "#333333"
      self.GLabel_318["justify"] = "center"
      self.GLabel_318["text"] = "token"
      self.GLabel_318.place(x=30, y=190, width=70, height=25)

      self.GLineEdit_630 = tk.Entry(self.window_createrole)
      self.GLineEdit_630["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_630["font"] = ft
      self.GLineEdit_630["fg"] = "#333333"
      self.GLineEdit_630["justify"] = "center"
      self.GLineEdit_630["text"] = "tokey"
      self.GLineEdit_630.place(x=120, y=190, width=191, height=30)

      cmd = 'cjplayer'
      self.GLineEdit_495.insert(0, cmd)
      token = re.search('name="token".*?\'>', req).group(0)
      token = re.search('\'.*?\'', token).group(0)
      self.GLineEdit_630.insert(0, token)

    def GButton_264_command(self):# 创建角色
      cmd = self.GLineEdit_495.get()
      token = self.GLineEdit_630.get()
      username = self.GLineEdit_937.get()
      if not username or len(username) < 6 or len(username) > 12:
            self._log('用户名不能太短或者太长(小于6位或大于12位)')
            return
      sex = self.sex
      data_role = {"username": username, "cmd": cmd, "token": token, "sex": sex, "submit": "创建"}
      params = '?cmd=' + cmd + '&token=' + token + '&sex=' + sex + '&username=' + username
      req = self._requests('get', self.url_game + params, decode_level=3)
      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            pass
      if not refresh:# 登陆成功
            self._log(f"角色创建失败,请重试")
            return
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"角色创建成功,等待返回角色信息")
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      req = self._requests('get', url_game, decode_level=3)
      welcome = re.search(f'{username}.*?纪', req.text, re.S).group(0)
      self._log(welcome)
      self.window_createrole.destroy()
      self.GButton_107_command()

    def GRadio_923_command(self):
      self.sex = '1'

    def GRadio_618_command(self):
      self.sex = '2'

    def GButton_32_command(self): #查看装备
      if self.url_package_weapons:
            self.NowObject_run(self.url_package_weapons)

    def GButton_793_command(self):#查看药品
      if self.url_package_drugs:
            self.NowObject_run(self.url_package_drugs)

    def GButton_217_command(self):#查看道具
      if self.url_package_items:
            self.NowObject_run(self.url_package_items)

    def GButton_889_command(self):
      print("GButton_889_command")

    def GButton_724_command(self):
      print("GButton_724_command")

    def GButton_210_command(self):
      print("GButton_210_command")

    def GButton_916_command(self):
      username = self.GLineEdit_702.get()
      userpass = self.GLineEdit_703.get()
      userpass2 = self.GLineEdit_54.get()
      if not username or not userpass or not userpass2:
            self.GLabel_764["text"] = "提示", " 请输入信息 "
            return
      if not userpass == userpass2:
            self.GLabel_764["text"] = '错误', '密码前后不一致'
            return
      if len(username) < 6:
            self.GLabel_764["text"] = '错误', '用户名不能少于6位'
            return

      data_regist = {"username": username, "userpass": userpass, "userpass2": userpass2, "submit": "登陆"}
      req = self._requests('post', self.url_regist, decode_level=1, data=data_regist)
      try:
            xt = re.search('注册失败.*?<p>', req).group(0)[:-3]
            if xt:
                self.GLabel_764["text"] = f'{xt}'
      except:
            pass
      try:
            xt = re.search('注册成功.*?<p>', req).group(0)[:-3]
            if xt:
                self.GLabel_764["text"] = f'{xt}'
                self.GButton_916['state'] = 'disable'
      except:
            pass
      # try:
      #   with open('E:\\usr_info.pickle', 'rb')as usr_file:
      #         exist_usr_info = pickle.load(usr_file)
      # except FileNotFoundError:
      #   exist_usr_info = {}
      # if nn in exist_usr_info:
      #   tk.messagebox.showerror('错误', '用户名已存在')
      # elif np == '' or nn == '':
      #   tk.messagebox.showerror('错误', '用户名或密码为空')
      # elif np != npf:
      #   tk.messagebox.showerror('错误', '密码前后不一致')
      # else:
      #   exist_usr_info = np
      #   with open('E:\\usr_info.pickle', 'wb')as usr_file:
      #         pickle.dump(exist_usr_info, usr_file)
      #   tk.messagebox.showinfo('欢迎', '注册成功')
      #   window_sign_up.destroy()

    def GButton_14_command(self):# 技能一
      url = self.url_pve_usejn1
      self.NowObject_run(url)

    def GButton_645_command(self):# 技能二
      url = self.url_pve_usejn2
      self.NowObject_run(url)

    def GButton_141_command(self):# 技能三
      url = self.url_pve_usejn3
      self.NowObject_run(url)

    def GButton_581_command(self):# 药品一按钮
      url = self.url_pve_useyp1
      self.NowObject_run(url)

    def GButton_405_command(self):# 药品二按钮
      url = self.url_pve_useyp2
      self.NowObject_run(url)

    def GButton_125_command(self):# 药品三按钮
      url = self.url_pve_useyp3
      self.NowObject_run(url)

    def GButton_152_command(self):# 操作3 连续进攻
      if self.NowObject_op3:
            self.status_auto_bybutton = True
            self.NowObject_run(self.NowObject_op3)

    def NowObject_run(self, url):
      if url:
            status_fight = False
            href = url
            if self.needDecode:
                href = self.DecodeParam(href)
            if "cmd=pvegj&" in href:
                status_fight = True
            if "canshu=usejn&" in href:
                status_fight = False

            req = self._requests('get', self.url_game + url, decode_level=1)
            html_etree = etree.HTML(req)
            if "setzbwz&zbwz=" in href:
                self._log("装备成功")
                self.setStatusUserInfo_byreq(req)
                return
            elif "xxzb&zbwz=" in href:
                self._log("卸载成功")
                self.setStatusUserInfo_byreq(req)
                return
            if "&canshu=maichu&" in href:
                msg = re.search("卖出.*?<br/", req).group(0)[:-4]
                self._log(msg)
                # self.setStatusUserInfo_byreq(req)
                # return
            if "cmd=delezb&zbnowid=" in href:
                try:
                  msg = re.search("分解.*?【", req, re.S).group(0)[:-1]
                  msg = msg.replace("<br/>", "")("</a>", "").replace("\r\n", "")
                  self._log(msg)
                except:
                  pass
                # self.setStatusUserInfo_byreq(req)
                # return
            if "cmd=getbagyp&" in href:
                table_element = html_etree.xpath("//a")
                self.reset(self.tvPackageInfo)
                icount = 0
                for row in table_element:
                  urlyp = row.attrib["href"]
                  durlyp = urlyp
                  if self.needDecode:
                        urlyp = self.DecodeParam(urlyp)
                  if "cmd=ypinfo&ypid=" in urlyp:
                        # self.reset(self.tvPackageInfo)
                        self.tvPackageInfo.insert('', 'end', values=(row.text, '', '', '', '', durlyp))
                return
            if "cmd=getbagdj&" in href:
                table_element = html_etree.xpath("//a")
                self.reset(self.tvPackageInfo)
                icount = 0
                for row in table_element:
                  urlyp = row.attrib["href"]
                  durlyp = urlyp
                  if self.needDecode:
                        urlyp = self.DecodeParam(urlyp)
                  if "djinfo" in urlyp:
                        # self.reset(self.tvPackageInfo)
                        self.tvPackageInfo.insert('', 'end', values=(row.text, '', '', '', '', durlyp))
                return

            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            hp = None
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip) > 0:
                  if rowstrip == "==战斗==":
                        self._log(rowstrip)
                  elif rowstrip == "===================":
                        self._log(tempstr)
                        tempstr = ""
                        userHP = re.findall("气血.*?<br", req)# .group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp = table_element_hp + "/" + table_element_hp
                        self.GLineEdit_556.delete(0, 'end')
                        self.GLineEdit_556.insert(0, hp)
                        nowhp = int(table_element_hp)# 血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp - nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp, allhp)
                        self._log(rowstrip)
                  elif rowstrip == '逃跑':
                        break
                  elif rowstrip == '恭喜强化成功':
                        self._log('恭喜强化成功')
                        tempstr = None
                        # self.refreshGame(url)
                        break
                  elif '强化失败' in rowstrip:
                        self._log('强化失败')
                        tempstr = None
                        break

                  elif '灵石数量不足' in rowstrip or '突破成功' in rowstrip:
                        msg = re.search("便宜<br/>.*?<br/>", req, re.S).group(0)
                        msg = msg.replace("\r\n", "").replace(" ", "")
                        msg = "购买状态:" + msg
                        self._log(msg)
                        tempstr = None
                        break
                  elif re.search("购买.*?成功", rowstrip):
                        tempstr = rowstrip
                        break
                  elif rowstrip == '返回游戏':
                        table_element = html_etree.xpath("//a")
                        self.status_pve = False
                        for row2 in table_element:
                            if row2.text == '返回游戏':
                              url_game = self.url_game + row2.attrib["href"]
                              self.refreshGame(url_game)
                              break
                  else:
                        tempstr = tempstr + " " + rowstrip
            if tempstr:
                self._log(tempstr)
            if "=task&nid=" in href:
                table_element = html_etree.xpath("//a")
                # if "&canshu=jieshou&"in href:

                for row in table_element:
                  if row.text == '接受':
                        self.GButton_779["text"] = "接受任务"
                        self.NowObject_op1 = self.url_game + row.attrib["href"]
                        break
                  elif row.text == '提交':
                        self.GButton_779["text"] = "提交任务"
                        self.NowObject_op1 = self.url_game + row.attrib["href"]
                        break
                # elif "&canshu=tijiao&" inhref:
                #   self.GButton_779["text"] = "提交任务"
                #   for row in table_element:
                #         if row.text =='提交':
                #             self.NowObject_op1 = self.url_game+row.attrib["href"]

                # self._log(msg)
                return
      if self.status_pve and status_fight and self.status_auto_bybutton:
            self.NowObject_run(url)

    def eatDrugs(self, dorphp, allhp):
      count_drugs1 = None# 吃药1按键设置数量判断
      try:
            opjdrug1 = str(self.GButton_581["text"])
            count_drugs1 = int(re.search("\(.*?\)", opjdrug1).group(0))
      except:
            pass
      count_drugs2 = None# 吃药2按键设置数量判断
      try:
            opjdrug2 = str(self.GButton_405["text"])
            count_drugs2 = int(re.search("\(.*?\)", opjdrug2).group(0))
      except:
            pass
      count_drugs3 = None# 吃药3按键设置数量判断
      try:
            opjdrug3 = str(self.GButton_125["text"])
            count_drugs3 = int(re.search("\(.*?\)", opjdrug3).group(0))
      except:
            pass

      if dorphp > 100 and count_drugs1 and count_drugs1 > 0:# 吃药一
            self.GButton_581_command()
            time.sleep(0.1)
      elif dorphp > 600 and count_drugs2 and count_drugs2 > 0:# 吃药2
            self.GButton_405_command()
            time.sleep(0.1)
      elif dorphp > 1200 and count_drugs3 and count_drugs3 > 0:# 吃药3
            self.GButton_125_command()
            time.sleep(0.1)
      elif dorphp >= 100 and dorphp / allhp > 0.4:# 无药,飞走,停止挂机
            try:
                self.refreshGame(self.url_game + self.url_safyhouse)
                self.status_autofighting = False
            except Exception as e:
                print('1257')
                print(e)

    def DecodeParam(self, str):
      if str:
            strs = str.split('cmd=')
            if len(strs) < 2:
                return str
      else:
            return str
      str = strs
      str = str.replace('O0O0O', '=').replace('o000o', '+').replace('oo00o', '/')
      list_str = re.findall(r'.{2}', str)
      skey = 'cxphp'
      strCount = len(list_str)
      list_skey = re.findall(r'.{1}', skey)
      for i in range(0, len(list_skey)):
            if i <= strCount and list_str and list_str == list_skey:
                list_str = list_str
      strout = "".join(list_str)
      if (len(strout) % 3 == 1):
            strout += "=="
      elif (len(strout) % 3 == 2):
            strout += "="
      else:
            strout += "="
      dStr = base64.b64decode(strout)
      return '?cmd=' + bytes.decode(dStr)

    def _requests(self, method, url, decode_level=1, retry=0, timeout=15, **kwargs):
      if method in ["get", "post"]:
            for _ in range(retry + 1):
                try:
                  warnings.filterwarnings('ignore')
                  response = getattr(self.session, method)(url, timeout=timeout, verify=False, **kwargs)
                  return response.text if decode_level == 1 else response.json() if decode_level == 2 else response
                except Exception as e:
                  self._log(e)
      return None

    def _log(self, logmsg):
      global LOG_LINE_NUM
      current_time = self.get_current_time()
      logmsg_in = str(current_time) + " " + str(logmsg) + "\n"# 换行
      self.GLineEdit_742.tag_config("even", background='#e0e0e0')
      self.GLineEdit_742.tag_config("odd", background='#ffffff')
      self.tag = 'odd' if self.tag == 'even' else 'even'
      if LOG_LINE_NUM <= 25:

            self.GLineEdit_742.insert('end', logmsg_in, self.tag)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
      else:
            self.GLineEdit_742.delete(1.0, 2.0)
            self.GLineEdit_742.insert('end', logmsg_in, self.tag)

    def get_current_time(self):
      current_time = time.strftime('%H:%M:%S', time.localtime(time.time()))
      return current_time


if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()

neteast 发表于 2022-8-17 19:10

1.刚才代码的吃药判断有问题,调整了一下。

下载地址为文件夹,以后下载直接下载最新上传的即可
https://wwz.lanzoub.com/b03daanje
密码:52pj

# -*- coding:utf-8 -*-
# @FileName:52pj_xunxianUI.py
# @ author    :neteast@52pojie
import base64
import json
import re
import threading
import time
import tkinter as tk
import tkinter.font as tkFont
import tkinter.messagebox
import tkinter.ttk as ttk
import warnings
from tkinter import *

import requests
from lxml import etree

LOG_LINE_NUM = 0
counter_tv = 0
image = None


class App:
    def __init__(self, root):
      self.initUI()
      self.initData()
      self.status_test = False
      self.test()

    def test(self):
      if self.status_test:

            pass

      else:

            pass

    def initData(self):
      self.sex = '1'

      self.needDecode = True# 链接加密

      self.tag = 'odd'
      self.session = requests.Session()
      self.session.headers.update({
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'})

      self.url_base = 'http://youxi.kebai.work/'
      self.url_game = self.url_base + 'game.php'
      self.url_regist = self.url_base + 'reguser.php'

      self.NowObject_op1 = None# 功能键
      self.NowObject_op2 = None
      self.NowObject_op3 = None
      self.NowPosition = None# 当前位置
      self.url_navW = None# 导航
      self.url_navE = None
      self.url_navN = None
      self.url_navS = None

      self.url_op1 = None
      self.url_op2 = None
      self.url_op3 = None
      self.url_pve_useyp1 = None# 吃药1
      self.url_pve_useyp2 = None
      self.url_pve_useyp3 = None
      self.url_pve_usejn1 = None# 技能1
      self.url_pve_usejn2 = None
      self.url_pve_usejn3 = None

      self.status_pve = False# 打怪状态
      self.status_autofighting = False# 自动攻击进程
      self.status_auto_bybutton = False# 连攻按键

      self.status_drugs1 = False

      self.url_safyhouse = None# 安全屋链接

      self.url_weapon1 = None# 武器
      self.url_weapon2 = None# 头饰
      self.url_weapon3 = None# 衣服
      self.url_weapon4 = None# 腰带
      self.url_weapon5 = None# 首饰
      self.url_weapon6 = None# 鞋子

      self.url_package = None# 包裹链接

      self.url_package_weapons = None
      self.url_package_drugs = None
      self.url_package_items = None
      self.url_package_skills = None
      self.url_package_market = None
      self.url_package_friends = None

      pass

    def initUI(self):
      # setting title
      root.title("寻仙记 neteast@52pojie")
      # setting window size
      width = 1273
      height = 696
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      root.geometry(alignstr)
      root.resizable(width=False, height=False)

      self.GButton_9 = tk.Button(root)
      self.GButton_9["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_9["font"] = ft
      self.GButton_9["fg"] = "#000000"
      self.GButton_9["justify"] = "center"
      self.GButton_9["text"] = "当前位置"
      self.GButton_9.place(x=1100, y=620, width=69, height=30)
      self.GButton_9["command"] = self.GButton_9_command

      self.GButton_720 = tk.Button(root)
      self.GButton_720["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_720["font"] = ft
      self.GButton_720["fg"] = "#000000"
      self.GButton_720["justify"] = "center"
      self.GButton_720["text"] = "向北"
      self.GButton_720.place(x=1090, y=590, width=91, height=30)
      self.GButton_720["command"] = self.GButton_720_command

      self.GButton_126 = tk.Button(root)
      self.GButton_126["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_126["font"] = ft
      self.GButton_126["fg"] = "#000000"
      self.GButton_126["justify"] = "center"
      self.GButton_126["text"] = "向西"
      self.GButton_126.place(x=1010, y=620, width=88, height=30)
      self.GButton_126["command"] = self.GButton_126_command

      self.GButton_750 = tk.Button(root)
      self.GButton_750["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_750["font"] = ft
      self.GButton_750["fg"] = "#000000"
      self.GButton_750["justify"] = "center"
      self.GButton_750["text"] = "向东"
      self.GButton_750.place(x=1170, y=620, width=94, height=30)
      self.GButton_750["command"] = self.GButton_750_command

      self.GButton_181 = tk.Button(root)
      self.GButton_181["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_181["font"] = ft
      self.GButton_181["fg"] = "#000000"
      self.GButton_181["justify"] = "center"
      self.GButton_181["text"] = "向南"
      self.GButton_181.place(x=1090, y=650, width=91, height=30)
      self.GButton_181["command"] = self.GButton_181_command

      self.GLabel_72 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_72["font"] = ft
      self.GLabel_72["fg"] = "#333333"
      self.GLabel_72["justify"] = "center"
      self.GLabel_72["text"] = "气血"
      self.GLabel_72.place(x=10, y=620, width=30, height=30)

      self.GLineEdit_556 = tk.Entry(root)
      self.GLineEdit_556["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_556["font"] = ft
      self.GLineEdit_556["fg"] = "#333333"
      self.GLineEdit_556["justify"] = "center"
      self.GLineEdit_556["text"] = "45/199"
      self.GLineEdit_556.place(x=40, y=620, width=118, height=30)

      self.GLabel_795 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_795["font"] = ft
      self.GLabel_795["fg"] = "#333333"
      self.GLabel_795["justify"] = "center"
      self.GLabel_795["text"] = "攻击"
      self.GLabel_795.place(x=160, y=620, width=30, height=30)

      self.GLineEdit_634 = tk.Entry(root)
      self.GLineEdit_634["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_634["font"] = ft
      self.GLineEdit_634["fg"] = "#333333"
      self.GLineEdit_634["justify"] = "center"
      self.GLineEdit_634["text"] = "38"
      self.GLineEdit_634.place(x=190, y=620, width=59, height=30)

      self.GLabel_228 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_228["font"] = ft
      self.GLabel_228["fg"] = "#333333"
      self.GLabel_228["justify"] = "center"
      self.GLabel_228["text"] = "防御"
      self.GLabel_228.place(x=250, y=620, width=35, height=30)

      self.GLineEdit_875 = tk.Entry(root)
      self.GLineEdit_875["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_875["font"] = ft
      self.GLineEdit_875["fg"] = "#333333"
      self.GLineEdit_875["justify"] = "center"
      self.GLineEdit_875["text"] = "27"
      self.GLineEdit_875.place(x=290, y=620, width=70, height=25)

      self.GLabel_517 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_517["font"] = ft
      self.GLabel_517["fg"] = "#333333"
      self.GLabel_517["justify"] = "center"
      self.GLabel_517["text"] = "暴击"
      self.GLabel_517.place(x=360, y=620, width=36, height=30)

      self.GLineEdit_588 = tk.Entry(root)
      self.GLineEdit_588["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_588["font"] = ft
      self.GLineEdit_588["fg"] = "#333333"
      self.GLineEdit_588["justify"] = "center"
      self.GLineEdit_588["text"] = "0%"
      self.GLineEdit_588.place(x=400, y=620, width=70, height=25)

      self.GLabel_19 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_19["font"] = ft
      self.GLabel_19["fg"] = "#333333"
      self.GLabel_19["justify"] = "center"
      self.GLabel_19["text"] = "吸血"
      self.GLabel_19.place(x=470, y=620, width=35, height=30)

      self.GLineEdit_323 = tk.Entry(root)
      self.GLineEdit_323["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_323["font"] = ft
      self.GLineEdit_323["fg"] = "#333333"
      self.GLineEdit_323["justify"] = "center"
      self.GLineEdit_323["text"] = "2%"
      self.GLineEdit_323.place(x=510, y=620, width=70, height=25)

      self.GLineEdit_129 = tk.Entry(root)
      self.GLineEdit_129["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_129["font"] = ft
      self.GLineEdit_129["fg"] = "#333333"
      self.GLineEdit_129["justify"] = "center"
      self.GLineEdit_129["text"] = "百炼青刚剑+7"
      self.GLineEdit_129.place(x=1050, y=120, width=167, height=30)

      self.GButton_673 = tk.Button(root)
      self.GButton_673["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_673["font"] = ft
      self.GButton_673["fg"] = "#000000"
      self.GButton_673["justify"] = "center"
      self.GButton_673["text"] = "卸下"
      self.GButton_673["relief"] = "groove"
      self.GButton_673.place(x=1220, y=120, width=44, height=30)
      self.GButton_673["command"] = self.GButton_673_command

      self.GLabel_994 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_994["font"] = ft
      self.GLabel_994["fg"] = "#333333"
      self.GLabel_994["justify"] = "center"
      self.GLabel_994["text"] = "头饰"
      self.GLabel_994.place(x=1020, y=150, width=30, height=30)

      self.GLineEdit_810 = tk.Entry(root)
      self.GLineEdit_810["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_810["font"] = ft
      self.GLineEdit_810["fg"] = "#333333"
      self.GLineEdit_810["justify"] = "center"
      self.GLineEdit_810["text"] = "无"
      self.GLineEdit_810.place(x=1050, y=150, width=167, height=30)

      self.GButton_928 = tk.Button(root)
      self.GButton_928["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_928["font"] = ft
      self.GButton_928["fg"] = "#000000"
      self.GButton_928["justify"] = "center"
      self.GButton_928["text"] = "卸下"
      self.GButton_928["relief"] = "groove"
      self.GButton_928.place(x=1220, y=150, width=44, height=30)
      self.GButton_928["command"] = self.GButton_928_command

      self.GLabel_789 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_789["font"] = ft
      self.GLabel_789["fg"] = "#333333"
      self.GLabel_789["justify"] = "center"
      self.GLabel_789["text"] = "衣服"
      self.GLabel_789.place(x=1020, y=180, width=31, height=30)

      self.GLineEdit_708 = tk.Entry(root)
      self.GLineEdit_708["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_708["font"] = ft
      self.GLineEdit_708["fg"] = "#333333"
      self.GLineEdit_708["justify"] = "center"
      self.GLineEdit_708["text"] = "衣服"
      self.GLineEdit_708.place(x=1050, y=180, width=167, height=30)

      self.GButton_299 = tk.Button(root)
      self.GButton_299["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_299["font"] = ft
      self.GButton_299["fg"] = "#000000"
      self.GButton_299["justify"] = "center"
      self.GButton_299["text"] = "卸下"
      self.GButton_299["relief"] = "groove"
      self.GButton_299.place(x=1220, y=180, width=44, height=30)
      self.GButton_299["command"] = self.GButton_299_command

      self.GLabel_466 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_466["font"] = ft
      self.GLabel_466["fg"] = "#333333"
      self.GLabel_466["justify"] = "center"
      self.GLabel_466["text"] = "腰带"
      self.GLabel_466.place(x=1020, y=210, width=32, height=30)

      self.GLineEdit_554 = tk.Entry(root)
      self.GLineEdit_554["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_554["font"] = ft
      self.GLineEdit_554["fg"] = "#333333"
      self.GLineEdit_554["justify"] = "center"
      self.GLineEdit_554["text"] = "腰带"
      self.GLineEdit_554.place(x=1050, y=210, width=168, height=30)

      self.GButton_682 = tk.Button(root)
      self.GButton_682["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_682["font"] = ft
      self.GButton_682["fg"] = "#000000"
      self.GButton_682["justify"] = "center"
      self.GButton_682["text"] = "卸下"
      self.GButton_682["relief"] = "groove"
      self.GButton_682.place(x=1220, y=210, width=44, height=30)
      self.GButton_682["command"] = self.GButton_682_command

      self.GLineEdit_809 = tk.Entry(root)
      self.GLineEdit_809["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_809["font"] = ft
      self.GLineEdit_809["fg"] = "#333333"
      self.GLineEdit_809["justify"] = "center"
      self.GLineEdit_809["text"] = "首饰"
      self.GLineEdit_809.place(x=1050, y=240, width=167, height=30)

      self.GButton_289 = tk.Button(root)
      self.GButton_289["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_289["font"] = ft
      self.GButton_289["fg"] = "#000000"
      self.GButton_289["justify"] = "center"
      self.GButton_289["text"] = "卸下"
      self.GButton_289["relief"] = "groove"
      self.GButton_289.place(x=1220, y=240, width=44, height=30)
      self.GButton_289["command"] = self.GButton_289_command

      self.GLabel_474 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_474["font"] = ft
      self.GLabel_474["fg"] = "#333333"
      self.GLabel_474["justify"] = "center"
      self.GLabel_474["text"] = "首饰"
      self.GLabel_474.place(x=1020, y=240, width=30, height=31)

      self.GLabel_368 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_368["font"] = ft
      self.GLabel_368["fg"] = "#333333"
      self.GLabel_368["justify"] = "center"
      self.GLabel_368["text"] = "鞋子"
      self.GLabel_368.place(x=1020, y=270, width=30, height=33)

      self.GLineEdit_31 = tk.Entry(root)
      self.GLineEdit_31["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_31["font"] = ft
      self.GLineEdit_31["fg"] = "#333333"
      self.GLineEdit_31["justify"] = "center"
      self.GLineEdit_31["text"] = "鞋子"
      self.GLineEdit_31.place(x=1050, y=270, width=167, height=30)

      self.GButton_503 = tk.Button(root)
      self.GButton_503["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_503["font"] = ft
      self.GButton_503["fg"] = "#000000"
      self.GButton_503["justify"] = "center"
      self.GButton_503["text"] = "卸下"
      self.GButton_503["relief"] = "groove"
      self.GButton_503.place(x=1220, y=270, width=44, height=30)
      self.GButton_503["command"] = self.GButton_503_command

      self.GLabel_355 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_355["font"] = ft
      self.GLabel_355["fg"] = "#333333"
      self.GLabel_355["justify"] = "center"
      self.GLabel_355["text"] = "境界"
      self.GLabel_355.place(x=590, y=620, width=35, height=30)

      self.GLineEdit_546 = tk.Entry(root)
      self.GLineEdit_546["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_546["font"] = ft
      self.GLineEdit_546["fg"] = "#333333"
      self.GLineEdit_546["justify"] = "center"
      self.GLineEdit_546["text"] = "3"
      self.GLineEdit_546.place(x=630, y=620, width=70, height=25)

      self.GLabel_786 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_786["font"] = ft
      self.GLabel_786["fg"] = "#333333"
      self.GLabel_786["justify"] = "center"
      self.GLabel_786["text"] = "等级"
      self.GLabel_786.place(x=710, y=620, width=32, height=30)

      self.GLineEdit_644 = tk.Entry(root)
      self.GLineEdit_644["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_644["font"] = ft
      self.GLineEdit_644["fg"] = "#333333"
      self.GLineEdit_644["justify"] = "center"
      self.GLineEdit_644["text"] = "9"
      self.GLineEdit_644.place(x=750, y=620, width=70, height=25)

      self.GLabel_582 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_582["font"] = ft
      self.GLabel_582["fg"] = "#333333"
      self.GLabel_582["justify"] = "center"
      self.GLabel_582["text"] = "灵石"
      self.GLabel_582.place(x=10, y=650, width=31, height=30)

      self.GLineEdit_998 = tk.Entry(root)
      self.GLineEdit_998["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_998["font"] = ft
      self.GLineEdit_998["fg"] = "#333333"
      self.GLineEdit_998["justify"] = "center"
      self.GLineEdit_998["text"] = "1999"
      self.GLineEdit_998.place(x=40, y=650, width=95, height=30)

      self.GLabel_925 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_925["font"] = ft
      self.GLabel_925["fg"] = "#333333"
      self.GLabel_925["justify"] = "center"
      self.GLabel_925["text"] = "极品"
      self.GLabel_925.place(x=130, y=650, width=54, height=30)

      self.GLineEdit_789 = tk.Entry(root)
      self.GLineEdit_789["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_789["font"] = ft
      self.GLineEdit_789["fg"] = "#333333"
      self.GLineEdit_789["justify"] = "center"
      self.GLineEdit_789["text"] = "101"
      self.GLineEdit_789.place(x=180, y=650, width=82, height=30)

      self.GLabel_312 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_312["font"] = ft
      self.GLabel_312["fg"] = "#333333"
      self.GLabel_312["justify"] = "center"
      self.GLabel_312["text"] = "强化石"
      self.GLabel_312.place(x=270, y=650, width=39, height=30)

      self.GLineEdit_198 = tk.Entry(root)
      self.GLineEdit_198["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_198["font"] = ft
      self.GLineEdit_198["fg"] = "#333333"
      self.GLineEdit_198["justify"] = "center"
      self.GLineEdit_198["text"] = "强化石"
      self.GLineEdit_198.place(x=310, y=650, width=73, height=30)

      self.GLabel_565 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_565["font"] = ft
      self.GLabel_565["fg"] = "#333333"
      self.GLabel_565["justify"] = "center"
      self.GLabel_565["text"] = "修为"
      self.GLabel_565.place(x=420, y=650, width=46, height=30)

      self.GLineEdit_268 = tk.Entry(root)
      self.GLineEdit_268["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_268["font"] = ft
      self.GLineEdit_268["fg"] = "#333333"
      self.GLineEdit_268["justify"] = "center"
      self.GLineEdit_268["text"] = "1640/1626"
      self.GLineEdit_268.place(x=470, y=650, width=171, height=30)

      self.GLineEdit_969 = tk.Entry(root)
      self.GLineEdit_969["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_969["font"] = ft
      self.GLineEdit_969["fg"] = "#333333"
      self.GLineEdit_969["justify"] = "center"
      self.GLineEdit_969["text"] = "当前npc"
      self.GLineEdit_969.place(x=10, y=30, width=143, height=106)
      yscroll = Scrollbar(self.GLineEdit_969, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('NPC', '操作', 'url')
      self.tvNpc = ttk.Treeview(self.GLineEdit_969, columns=title, style='Treeview', show='headings', height=10,
                                  yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvNpc.yview)
      self.tvNpc.pack()
      self.tvNpc.column(title, width=85, anchor=CENTER)
      self.tvNpc.heading(title, text=title)
      self.tvNpc.column(title, width=40, anchor='w')
      self.tvNpc.heading(title, text=title)
      self.tvNpc.heading(title, text=title)
      self.tvNpc.bind('<<TreeviewSelect>>', self.tvNpcSelection)

      self.GLineEdit_612 = tk.Entry(root)
      self.GLineEdit_612["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_612["font"] = ft
      self.GLineEdit_612["fg"] = "#333333"
      self.GLineEdit_612["justify"] = "center"
      self.GLineEdit_612["text"] = "当前野怪"
      self.GLineEdit_612.place(x=10, y=140, width=143, height=221)
      yscroll = Scrollbar(self.GLineEdit_612, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('怪物', '操作', 'url')
      self.tvMonster = ttk.Treeview(self.GLineEdit_612, columns=title, style='Treeview', show='headings', height=10,
                                    yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvMonster.yview)
      self.tvMonster.pack()
      self.tvMonster.column(title, width=85, anchor=CENTER)
      self.tvMonster.heading(title, text=title)
      self.tvMonster.column(title, width=40, anchor='w')
      self.tvMonster.heading(title, text=title)
      self.tvMonster.heading(title, text=title)
      self.tvMonster.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLineEdit_252 = tk.Text(root)# "公屏聊天内容"
      self.GLineEdit_252["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_252["font"] = ft
      self.GLineEdit_252["fg"] = "#333333"
      self.GLineEdit_252.place(x=160, y=480, width=751, height=87)

      self.GLineEdit_10 = tk.Entry(root)
      self.GLineEdit_10["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_10["font"] = ft
      self.GLineEdit_10["fg"] = "#333333"
      self.GLineEdit_10["justify"] = "center"
      self.GLineEdit_10["text"] = "输入消息"
      self.GLineEdit_10.place(x=180, y=570, width=729, height=30)

      self.GButton_728 = tk.Button(root)
      self.GButton_728["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_728["font"] = ft
      self.GButton_728["fg"] = "#000000"
      self.GButton_728["justify"] = "center"
      self.GButton_728["text"] = "挂机"
      self.GButton_728.place(x=930, y=570, width=68, height=30)
      self.GButton_728["command"] = self.GButton_728_command

      self.GLineEdit_386 = tk.Entry(root)
      self.GLineEdit_386["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_386["font"] = ft
      self.GLineEdit_386["fg"] = "#333333"
      self.GLineEdit_386["justify"] = "center"
      self.GLineEdit_386["text"] = "好友列表"
      self.GLineEdit_386.place(x=910, y=340, width=108, height=230)
      yscroll = Scrollbar(self.GLineEdit_386, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('玩家排行', '操作', 'url')
      self.tvTopPlayer = ttk.Treeview(self.GLineEdit_386, columns=title, style='Treeview', show='headings', height=10,
                                        yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvTopPlayer.yview)
      self.tvTopPlayer.pack()
      self.tvTopPlayer.column(title, width=85, anchor=CENTER)
      self.tvTopPlayer.heading(title, text=title)
      self.tvTopPlayer.column(title, width=40, anchor='w')
      self.tvTopPlayer.heading(title, text=title)
      self.tvTopPlayer.heading(title, text=title)
      # self.tvTopPlayer.bind('<<TreeviewSelect>>', self.tvTopPlayerSelection)

      self.GCheckBox_967 = tk.Checkbutton(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GCheckBox_967["font"] = ft
      self.GCheckBox_967["fg"] = "#333333"
      self.GCheckBox_967["justify"] = "center"
      self.GCheckBox_967["text"] = "公屏"
      self.GCheckBox_967.place(x=20, y=570, width=44, height=30)
      self.GCheckBox_967["offvalue"] = "0"
      self.GCheckBox_967["onvalue"] = "1"
      self.GCheckBox_967["command"] = self.GCheckBox_967_command

      self.GLineEdit_294 = tk.Entry(root)
      self.GLineEdit_294["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_294["font"] = ft
      self.GLineEdit_294["fg"] = "#333333"
      self.GLineEdit_294["justify"] = "center"
      self.GLineEdit_294["text"] = "对方昵称"
      self.GLineEdit_294.place(x=70, y=570, width=99, height=30)

      self.GLineEdit_742 = tk.Text(root)
      self.GLineEdit_742["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_742["font"] = ft
      self.GLineEdit_742["fg"] = "#333333"
      self.GLineEdit_742.place(x=390, y=30, width=520, height=448)

      self.GLabel_497 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_497["font"] = ft
      self.GLabel_497["fg"] = "#333333"
      self.GLabel_497["justify"] = "center"
      self.GLabel_497["text"] = "武器"
      self.GLabel_497.place(x=1020, y=120, width=30, height=30)

      self.GLabel_851 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_851["font"] = ft
      self.GLabel_851["fg"] = "#333333"
      self.GLabel_851["justify"] = "center"
      self.GLabel_851["text"] = "账号"
      self.GLabel_851.place(x=10, y=0, width=31, height=30)

      self.GButton_107 = tk.Button(root)
      self.GButton_107["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_107["font"] = ft
      self.GButton_107["fg"] = "#000000"
      self.GButton_107["justify"] = "center"
      self.GButton_107["text"] = "登陆"
      self.GButton_107.place(x=240, y=0, width=70, height=25)
      self.GButton_107["command"] = self.GButton_107_command

      self.GLabel_35 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_35["font"] = ft
      self.GLabel_35["fg"] = "#333333"
      self.GLabel_35["justify"] = "center"
      self.GLabel_35["text"] = "密码"
      self.GLabel_35.place(x=120, y=0, width=42, height=30)

      self.GLineEdit_363 = tk.Entry(root)
      self.GLineEdit_363["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_363["font"] = ft
      self.GLineEdit_363["fg"] = "#333333"
      self.GLineEdit_363["justify"] = "center"
      self.GLineEdit_363["text"] = "账号"
      self.GLineEdit_363.place(x=40, y=0, width=70, height=25)

      self.GLineEdit_127 = tk.Entry(root)
      self.GLineEdit_127["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_127["font"] = ft
      self.GLineEdit_127["fg"] = "#333333"
      self.GLineEdit_127["justify"] = "center"
      self.GLineEdit_127["text"] = "密码"
      self.GLineEdit_127.place(x=160, y=0, width=70, height=25)

      self.GLabel_894 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_894["font"] = ft
      self.GLabel_894["fg"] = "#333333"
      self.GLabel_894["justify"] = "center"
      self.GLabel_894["text"] = "玩家昵称"
      self.GLabel_894.place(x=320, y=0, width=70, height=25)

      self.GLineEdit_458 = tk.Entry(root)
      self.GLineEdit_458["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_458["font"] = ft
      self.GLineEdit_458["fg"] = "#333333"
      self.GLineEdit_458["justify"] = "center"
      self.GLineEdit_458["text"] = "玩家"
      self.GLineEdit_458.place(x=390, y=0, width=70, height=25)

      self.GLabel_129 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_129["font"] = ft
      self.GLabel_129["fg"] = "#333333"
      self.GLabel_129["justify"] = "center"
      self.GLabel_129["text"] = "所属门派"
      self.GLabel_129.place(x=470, y=0, width=62, height=30)

      self.GLineEdit_456 = tk.Entry(root)
      self.GLineEdit_456["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_456["font"] = ft
      self.GLineEdit_456["fg"] = "#333333"
      self.GLineEdit_456["justify"] = "center"
      self.GLineEdit_456["text"] = "门派"
      self.GLineEdit_456.place(x=540, y=0, width=70, height=25)

      self.GLabel_80 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_80["font"] = ft
      self.GLabel_80["fg"] = "#333333"
      self.GLabel_80["justify"] = "center"
      self.GLabel_80["text"] = "任务"
      self.GLabel_80.place(x=1020, y=50, width=30, height=41)

      self.GLineEdit_39 = tk.Entry(root)
      self.GLineEdit_39["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_39["font"] = ft
      self.GLineEdit_39["fg"] = "#333333"
      self.GLineEdit_39["justify"] = "center"
      self.GLineEdit_39["text"] = "任务"
      self.GLineEdit_39.place(x=1050, y=0, width=208, height=116)
      yscroll = Scrollbar(self.GLineEdit_39, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('任务名称', '完成度', '任务详情')
      self.tvAllJob = ttk.Treeview(self.GLineEdit_39, columns=title, style='Treeview', show='headings', height=10,
                                     yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllJob.yview)
      self.tvAllJob.pack()
      self.tvAllJob.column(title, width=55, anchor=CENTER)
      self.tvAllJob.heading(title, text=title)
      self.tvAllJob.column(title, width=50, anchor='w')
      self.tvAllJob.heading(title, text=title)
      self.tvAllJob.heading(title, text=title)
      # self.tvAllJob.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GLineEdit_445 = tk.Text(root)
      self.GLineEdit_445["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_445["font"] = ft
      self.GLineEdit_445["fg"] = "#333333"
      self.GLineEdit_445.place(x=1020, y=340, width=243, height=241)
      yscroll = Scrollbar(self.GLineEdit_445, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('名称', '操作1', '操作2', 'op1_url', 'op1_ur2', 'zbinfo')
      self.tvPackageInfo = ttk.Treeview(self.GLineEdit_445, columns=title, style='Treeview', show='headings',
                                          height=20, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPackageInfo.yview)
      self.tvPackageInfo.pack()
      for i in range(0, len(title)):
            self.tvPackageInfo.column(title, anchor=CENTER)
            self.tvPackageInfo.heading(title, text=title)
            self.tvPackageInfo.heading(i, text=title,
                                       command=lambda _col=i: self.treeview_sort_column(self.tvPackageInfo, _col,
                                                                                        False))
      self.tvPackageInfo.column(title, width=120, anchor=CENTER)
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title, width=50, anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      self.tvPackageInfo.column(title, width=50, anchor='w')
      # self.tvPackageInfo.heading(title,text=title)
      # self.tvPackageInfo.bind('<<TreeviewSelect>>', self.tvPackageInfoSelection)
      self.tvPackageInfo.bind("<ButtonRelease-1>", self.tvPackage_leftButtonRelease)
      # self.tvPackageInfo.bind("<MouseWheel>", self.tvPackage_on_MouseWheel)

      self.GButton_947 = tk.Button(root)
      self.GButton_947["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_947["font"] = ft
      self.GButton_947["fg"] = "#000000"
      self.GButton_947["justify"] = "center"
      self.GButton_947["text"] = "清理包裹"
      self.GButton_947["relief"] = "groove"
      self.GButton_947.place(x=860, y=610, width=58, height=30)
      self.GButton_947["command"] = self.GButton_947_command

      self.GLineEdit_714 = tk.Entry(root)
      self.GLineEdit_714["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_714["font"] = ft
      self.GLineEdit_714["fg"] = "#333333"
      self.GLineEdit_714["justify"] = "center"
      self.GLineEdit_714["text"] = "30"
      self.GLineEdit_714.place(x=650, y=650, width=51, height=30)

      self.GLabel_364 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_364["font"] = ft
      self.GLabel_364["fg"] = "#333333"
      self.GLabel_364["justify"] = "center"
      self.GLabel_364["text"] = "分钟"
      self.GLabel_364.place(x=710, y=650, width=30, height=30)

      self.GLineEdit_563 = tk.Entry(root)
      self.GLineEdit_563["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_563["font"] = ft
      self.GLineEdit_563["fg"] = "#333333"
      self.GLineEdit_563["justify"] = "center"
      self.GLineEdit_563["text"] = "920"
      self.GLineEdit_563.place(x=740, y=650, width=60, height=30)

      self.GLabel_403 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_403["font"] = ft
      self.GLabel_403["fg"] = "#333333"
      self.GLabel_403["justify"] = "center"
      self.GLabel_403["text"] = "修为"
      self.GLabel_403.place(x=800, y=650, width=35, height=30)

      self.GButton_744 = tk.Button(root)
      self.GButton_744["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_744["font"] = ft
      self.GButton_744["fg"] = "#000000"
      self.GButton_744["justify"] = "center"
      self.GButton_744["text"] = "注册"
      self.GButton_744["relief"] = "groove"
      self.GButton_744.place(x=860, y=650, width=64, height=30)
      self.GButton_744["command"] = self.GButton_744_command

      self.GButton_32 = tk.Button(root)
      self.GButton_32["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_32["font"] = ft
      self.GButton_32["fg"] = "#000000"
      self.GButton_32["justify"] = "center"
      self.GButton_32["text"] = "装备"
      self.GButton_32["relief"] = "groove"
      self.GButton_32.place(x=1030, y=310, width=35, height=30)
      self.GButton_32["command"] = self.GButton_32_command

      self.GButton_793 = tk.Button(root)
      self.GButton_793["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_793["font"] = ft
      self.GButton_793["fg"] = "#000000"
      self.GButton_793["justify"] = "center"
      self.GButton_793["text"] = "药品"
      self.GButton_793["relief"] = "groove"
      self.GButton_793.place(x=1070, y=310, width=35, height=30)
      self.GButton_793["command"] = self.GButton_793_command

      self.GButton_217 = tk.Button(root)
      self.GButton_217["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_217["font"] = ft
      self.GButton_217["fg"] = "#000000"
      self.GButton_217["justify"] = "center"
      self.GButton_217["text"] = "道具"
      self.GButton_217["relief"] = "groove"
      self.GButton_217.place(x=1110, y=310, width=34, height=30)
      self.GButton_217["command"] = self.GButton_217_command

      self.GButton_889 = tk.Button(root)
      self.GButton_889["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_889["font"] = ft
      self.GButton_889["fg"] = "#000000"
      self.GButton_889["justify"] = "center"
      self.GButton_889["text"] = "符箓"
      self.GButton_889["relief"] = "groove"
      self.GButton_889.place(x=1150, y=310, width=35, height=30)
      self.GButton_889["command"] = self.GButton_889_command

      self.GButton_724 = tk.Button(root)
      self.GButton_724["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_724["font"] = ft
      self.GButton_724["fg"] = "#000000"
      self.GButton_724["justify"] = "center"
      self.GButton_724["text"] = "坊市"
      self.GButton_724["relief"] = "groove"
      self.GButton_724.place(x=1190, y=310, width=35, height=30)
      self.GButton_724["command"] = self.GButton_724_command

      self.GButton_210 = tk.Button(root)
      self.GButton_210["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_210["font"] = ft
      self.GButton_210["fg"] = "#000000"
      self.GButton_210["justify"] = "center"
      self.GButton_210["text"] = "排行"
      self.GButton_210["relief"] = "groove"
      self.GButton_210.place(x=1230, y=310, width=35, height=30)
      self.GButton_210["command"] = self.GButton_210_command

      self.GLabel_380 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_380["font"] = ft
      self.GLabel_380["fg"] = "#333333"
      self.GLabel_380["justify"] = "center"
      self.GLabel_380["text"] = "当前地图"
      self.GLabel_380.place(x=610, y=0, width=67, height=30)

      self.GLineEdit_300 = tk.Entry(root)
      self.GLineEdit_300["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_300["font"] = ft
      self.GLineEdit_300["fg"] = "#333333"
      self.GLineEdit_300["justify"] = "center"
      self.GLineEdit_300["text"] = "当前地图"
      self.GLineEdit_300.place(x=690, y=0, width=140, height=30)

      self.GLineEdit_179 = tk.Entry(root)
      self.GLineEdit_179["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_179["font"] = ft
      self.GLineEdit_179["fg"] = "#333333"
      self.GLineEdit_179["justify"] = "center"
      self.GLineEdit_179["text"] = "当前场景玩家"
      self.GLineEdit_179.place(x=10, y=370, width=146, height=195)
      yscroll = Scrollbar(self.GLineEdit_179, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('玩家', '操作', 'url')
      self.tvPlayerInThisPlace = ttk.Treeview(self.GLineEdit_179, columns=title, style='Treeview', show='headings',
                                                height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvPlayerInThisPlace.yview)
      self.tvPlayerInThisPlace.pack()
      self.tvPlayerInThisPlace.column(title, width=85, anchor=CENTER)
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.column(title, width=40, anchor='w')
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.heading(title, text=title)
      self.tvPlayerInThisPlace.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLabel_953 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_953["font"] = ft
      self.GLabel_953["fg"] = "#333333"
      self.GLabel_953["justify"] = "center"
      self.GLabel_953["text"] = "当前对象"
      self.GLabel_953.place(x=170, y=30, width=54, height=30)

      self.GLineEdit_824 = tk.Entry(root)
      self.GLineEdit_824["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_824["font"] = ft
      self.GLineEdit_824["fg"] = "#333333"
      self.GLineEdit_824["justify"] = "center"
      self.GLineEdit_824["text"] = "对象"
      self.GLineEdit_824.place(x=230, y=30, width=152, height=30)

      self.GListBox_981 = tk.Text(root)
      self.GListBox_981["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GListBox_981["font"] = ft
      self.GListBox_981["fg"] = "#333333"
      self.GListBox_981.place(x=160, y=190, width=226, height=287)

      self.GButton_779 = tk.Button(root)
      self.GButton_779["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_779["font"] = ft
      self.GButton_779["fg"] = "#000000"
      self.GButton_779["justify"] = "center"
      self.GButton_779["text"] = "操作1"
      self.GButton_779["relief"] = "groove"
      self.GButton_779.place(x=170, y=70, width=58, height=30)
      self.GButton_779["command"] = self.GButton_779_command

      self.GLineEdit_938 = tk.Entry(root)
      self.GLineEdit_938["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_938["font"] = ft
      self.GLineEdit_938["fg"] = "#333333"
      self.GLineEdit_938["justify"] = "center"
      self.GLineEdit_938["text"] = "世界地图"
      self.GLineEdit_938.place(x=910, y=0, width=108, height=336)
      yscroll = Scrollbar(self.GLineEdit_938, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title = ('地图列表', '操作', 'url')
      self.tvAllMap = ttk.Treeview(self.GLineEdit_938, columns=title, style='Treeview', show='headings', height=20,
                                     yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllMap.yview)
      self.tvAllMap.pack()
      self.tvAllMap.column(title, width=85, anchor=CENTER)
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.column(title, width=40, anchor='w')
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.heading(title, text=title)
      self.tvAllMap.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GButton_745 = tk.Button(root)
      self.GButton_745["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_745["font"] = ft
      self.GButton_745["fg"] = "#000000"
      self.GButton_745["justify"] = "center"
      self.GButton_745["text"] = "操作2"
      self.GButton_745["relief"] = "groove"
      self.GButton_745.place(x=240, y=70, width=61, height=30)
      self.GButton_745["command"] = self.GButton_745_command

      self.GButton_152 = tk.Button(root)
      self.GButton_152["bg"] = "#efefef"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_152["font"] = ft
      self.GButton_152["fg"] = "#000000"
      self.GButton_152["justify"] = "center"
      self.GButton_152["text"] = "操作3"
      self.GButton_152["relief"] = "groove"
      self.GButton_152.place(x=310, y=70, width=61, height=30)
      self.GButton_152["command"] = self.GButton_152_command

      self.GButton_14 = tk.Button(root)
      self.GButton_14["bg"] = "#efefef"
      ftGButton_14 = tkFont.Font(family='Times', size=8)
      self.GButton_14["font"] = ftGButton_14
      self.GButton_14["fg"] = "#000000"
      self.GButton_14["justify"] = "center"
      self.GButton_14["text"] = "技能1"
      self.GButton_14["relief"] = "groove"
      self.GButton_14.place(x=170, y=110, width=57, height=30)
      self.GButton_14["command"] = self.GButton_14_command

      self.GButton_645 = tk.Button(root)
      self.GButton_645["bg"] = "#efefef"
      ftGButton_645 = tkFont.Font(family='Times', size=8)
      self.GButton_645["font"] = ftGButton_645
      self.GButton_645["fg"] = "#000000"
      self.GButton_645["justify"] = "center"
      self.GButton_645["text"] = "技能2"
      self.GButton_645["relief"] = "groove"
      self.GButton_645.place(x=240, y=110, width=61, height=30)
      self.GButton_645["command"] = self.GButton_645_command

      self.GButton_141 = tk.Button(root)
      self.GButton_141["bg"] = "#efefef"
      ftGButton_141 = tkFont.Font(family='Times', size=8)
      self.GButton_141["font"] = ftGButton_141
      self.GButton_141["fg"] = "#000000"
      self.GButton_141["justify"] = "center"
      self.GButton_141["text"] = "技能3"
      self.GButton_141["relief"] = "groove"
      self.GButton_141.place(x=310, y=110, width=61, height=30)
      self.GButton_141["command"] = self.GButton_141_command

      self.GButton_581 = tk.Button(root)
      self.GButton_581["bg"] = "#efefef"
      ftGButton_581 = tkFont.Font(family='Times', size=8)
      self.GButton_581["font"] = ftGButton_581
      self.GButton_581["fg"] = "#000000"
      self.GButton_581["justify"] = "center"
      self.GButton_581["text"] = "药品1"
      self.GButton_581["relief"] = "groove"
      self.GButton_581.place(x=170, y=150, width=57, height=30)
      self.GButton_581["command"] = self.GButton_581_command

      self.GButton_405 = tk.Button(root)
      self.GButton_405["bg"] = "#efefef"
      ftGButton_405 = tkFont.Font(family='Times', size=8)
      self.GButton_405["font"] = ftGButton_405
      self.GButton_405["fg"] = "#000000"
      self.GButton_405["justify"] = "center"
      self.GButton_405["text"] = "药品2"
      self.GButton_405["relief"] = "groove"
      self.GButton_405.place(x=240, y=150, width=63, height=30)
      self.GButton_405["command"] = self.GButton_405_command

      self.GButton_125 = tk.Button(root)
      self.GButton_125["bg"] = "#efefef"
      ftGButton_125 = tkFont.Font(family='Times', size=8)
      self.GButton_125["font"] = ftGButton_125
      self.GButton_125["fg"] = "#000000"
      self.GButton_125["justify"] = "center"
      self.GButton_125["text"] = "药品3"
      self.GButton_125["relief"] = "groove"
      self.GButton_125.place(x=310, y=150, width=60, height=30)
      self.GButton_125["command"] = self.GButton_125_command

      self.GLabel_185 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      # self.GLabel_185["bg"] = "#cc0000"
      self.GLabel_185["font"] = ft
      self.GLabel_185["justify"] = "center"
      self.GLabel_185["text"] = "hp"
      self.GLabel_185.place(x=10, y=680, width=1253, height=15)
      s = ttk.Style()
      s.theme_use('winnative')
      # win10环境下主题:('winnative','clam','alt','default','classic','vista','xpnative')
      # 进度条颜色改变测试成功的是:'winnative','clam','alt','default','classic'
      s.configure("green.Horizontal.TProgressbar", troughcolor='white', background='green')
      self.progressbarHP = tkinter.ttk.Progressbar(self.GLabel_185, style="green.Horizontal.TProgressbar")
      # progressbarOne.place(x=10,y=685,width=1253,height=20 )
      self.progressbarHP.pack(expand=True, fill='both')
      # 进度值最大值
      self.progressbarHP['maximum'] = 1253
      # 进度值初始值
      self.progressbarHP['value'] = 800

      self.GLabel_604 = tk.Label(root)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_604["font"] = ft
      self.GLabel_604["fg"] = "#333333"
      self.GLabel_604["justify"] = "center"
      self.GLabel_604["text"] = "label"
      self.GLabel_604.place(x=10, y=600, width=810, height=15)
      s.configure("lightblue.Horizontal.TProgressbar", troughcolor='white', background='lightblue')
      self.progressbarEXP = tkinter.ttk.Progressbar(self.GLabel_604, style="lightblue.Horizontal.TProgressbar")
      self.progressbarEXP.pack(expand=True, fill='both')
      self.progressbarEXP['maximum'] = 1253
      self.progressbarEXP['value'] = 800

    def treeview_sort_column(self, tv, col, reverse):# Treeview、列名、排列方式
      l = [(tv.set(k, col), k) for k in tv.get_children('')]
      l.sort(reverse=reverse)# 排序方式
      # rearrange items in sorted positions
      for index, (val, k) in enumerate(l):# 根据排序后索引移动
            tv.move(k, '', index)
      tv.heading(col, command=lambda: self.treeview_sort_column(tv, col, not reverse))# 重写标题,使之成为再点倒序的标题

    def tvPackage_leftButtonRelease(self, event):
      # print(event.widget)
      if str(event.widget) == ".!text3.!treeview":# 左键释放的是否为表格
            if not self.status_auto_bybutton:
                self.resetOPButtonName()
                self.GListBox_981.delete(0.0, 'end')
                items = event.widget.selection()
                # title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
                try:
                  item = self.tvPackageInfo.item(items)['values']
                  name = item
                  url_oprate = self.url_game + item
                  self.setNowObject(name, url_oprate)
                  self.GButton_779['state'] = 'active'
                except:
                  pass

            for item in self.tvPackageInfo.selection():# 取消表格选取
                self.tvPackageInfo.selection_remove(item)

            row = self.tvPackageInfo.identify_row(event.y)# 点击的行
            column = self.tvPackageInfo.identify_column(event.x)# 点击的列
            col = int(str(column).replace('#', ''))# 列号
            item = self.tvPackageInfo.item(row)['values']
            if item:
                if "已装备" in item:
                  return
                if col == 2:
                  ttt = item
                  url = item
                  self.NowObject_run(url)
                elif col == 3:
                  ttt = item
                  url = item
                  self.NowObject_run(url)

    def tvPackageInfoSelection1(self, event):
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
            self.GListBox_981.delete(0.0, 'end')
            items = event.widget.selection()
            # title=('名称' , '操作1','操作2','op1_url','op1_ur2','zbinfo' )
            item = self.tvPackageInfo.item(items)['values']
            name = item
            url_oprate = self.url_game + item
            self.setNowObject(name, url_oprate)
            self.GButton_779['state'] = 'active'

    def tvNpcSelection(self, event):
      items = event.widget.selection()
      item = self.tvNpc.item(items)['values']
      name = item
      url_oprate = self.url_game + item
      # self.refreshGame(url_oprate)
      self.setNowObject(name, url_oprate)
      self.GButton_779['state'] = 'active'

    def tvAllMapSelection(self, event):
      items = event.widget.selection()
      item = self.tvAllMap.item(items)['values']
      name = item
      url_oprate = self.url_game + item

      self.refreshGame(url_oprate)

    def tvMonsterSelection(self, event):

      # self.GLineEdit_companyname.delete(0,'end')
      # self.resetOPButtonName()
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
      items = event.widget.selection()
      item = self.tvMonster.item(items)['values']
      name = item

      url_oprate = self.url_game + item
      # self.GLineEdit_companyname.insert(0,item)

      self.setNowObject(name, url_oprate)

      self.GButton_779['state'] = 'active'

    def setNowObject(self, name, href):
      self.GLineEdit_824.delete(0, 'end')
      self.GLineEdit_824.insert(0, name)
      # self._log(href)
      # links = self.getHrefLabelLinks(req)
      url = href
      # self._log(url)
      if self.needDecode:
            url = self.DecodeParam(href)
      types = re.search("cmd=cmd=.*?&", url)
      type = None
      if types:
            type = types.group(0)
      if not type:
            return
      # self._log(type)

      req = self._requests('get', href, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//body/text()")
      links = []
      self.GListBox_981.delete(0.0, 'end')
      self.GButton_779['text'] = '暂无功能'
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text) > 0:
                if "掉落" in text or '装备信息' in text:
                  self.GListBox_981.insert('end', "\n" + text + "\n")
                else:
                  self.GListBox_981.insert('end', text + "\n")
      table_element = html_etree.xpath("//body//div/a/text()")

      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text) > 0:
                self.GListBox_981.insert('end', row.strip() + "\n")

      table_element = html_etree.xpath("//a")
      for row in table_element:
            if row.text == '攻击':
                self.GButton_779['text'] = '查看'
                self.NowObject_op1 = self.url_game + row.attrib["href"]
                # self._log(self.NowObject_op1)
      links = []
      try:
            links = self.getHrefLabelLinks(req)

      except Exception as me:
            print('1257')
            print(me)
      # links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})
      icount_task = 0
      for link in links:
            if link['text'] == "返回游戏":
                break
            if link['type'] == 'npc':
                self.GListBox_981.insert('end', f'{"-" * 53}' + "\n")
                self.GListBox_981.insert('end', link['text'] + "\n")
                if 'canshu=rehp' in link['href']:
                  self.GButton_779['text'] = '生命恢复'
                  self.NowObject_op1 = self.url_game + link['dhref']
                elif 'canshu=gogoumai' in link['href']:
                  self.GButton_779['text'] = '购买药品'
                  self.NowObject_op1 = self.url_game + link['dhref']
                else:
                  self.GButton_779['text'] = '暂无功能'
            elif '=task&' in link['href']:
                icount_task += 1
                if icount_task == 1:
                  self.GButton_14['text'] = link['text']
                  self.url_pve_usejn1 = link['dhref']
                elif icount_task == 2:
                  self.GButton_645['text'] = link['text']
                  self.url_pve_usejn2 = link['dhref']
                else:
                  self.GButton_141['text'] = link['text']
                  self.url_pve_usejn3 = link['dhref']
            elif link['type'] == 'upzb':
                if '&upsx=zbgj&' in link['href']:
                  self.GButton_779['text'] = '强化攻击'
                  self.NowObject_op1 = self.url_game + link['dhref']
                if '&upsx=zbfy&' in link['href']:
                  self.GButton_745['text'] = '强化防御'
                  self.NowObject_op2 = link['dhref']
                if '&upsx=zbhp&' in link['href']:
                  self.GButton_152['text'] = '强化气血'
                  self.NowObject_op3 = link['dhref']
            elif link['type'] == 'setzbwz':
                if '&zbwz=1&' in link['href']:
                  self.GButton_14['text'] = '装备武器'
                  self.url_pve_usejn1 = link['dhref']
                elif '&zbwz=2&' in link['href']:
                  self.GButton_645['text'] = '装备头饰'
                  self.url_pve_usejn2 = link['dhref']
                elif '&zbwz=3&' in link['href']:
                  self.GButton_141['text'] = '装备衣服'
                  self.url_pve_usejn3 = link['dhref']
                elif '&zbwz=4&' in link['href']:
                  self.GButton_581['text'] = '装备腰带'
                  self.url_pve_useyp1 = link['dhref']
                elif '&zbwz=5&' in link['href']:
                  self.GButton_405['text'] = '装备首饰'
                  self.url_pve_useyp2 = link['dhref']
                elif '&zbwz=6&' in link['href']:
                  self.GButton_125['text'] = '装备鞋子'
                  self.url_pve_useyp3 = link['dhref']
            elif link['type'] == 'ypinfo':
                if "&canshu=setyp1" in link['href']:
                  self.GButton_581['text'] = '装备药品1'
                  self.url_pve_useyp1 = link['dhref']
                elif "&canshu=setyp2" in link['href']:
                  self.GButton_405['text'] = '装备药品2'
                  self.url_pve_useyp2 = link['dhref']
                elif "&canshu=setyp3" in link['href']:
                  self.GButton_125['text'] = '装备药品3'
                  self.url_pve_useyp3 = link['dhref']
                elif "&canshu=useyp" in link['href']:
                  self.GButton_779['text'] = '吃药'
                  self.NowObject_op1 = self.url_game +link['dhref']

    def GButton_779_command(self):# 查看血量 野怪详情 #操作一
      if self.NowObject_op1:
            req = self._requests('get', self.NowObject_op1, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            links = self.getHrefLabelLinks(req)
            self.analysisButtonFight(links)
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip) > 0:
                  if rowstrip == "==战斗==":
                        self.GListBox_981.insert('end', rowstrip + "\n")
                        userHP = re.findall("气血.*?<br", req)# .group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp = table_element_hp + "/" + table_element_hp
                        self._log("当前HP: " + hp)
                        self.GLineEdit_556.delete(0, 'end')
                        self.GLineEdit_556.insert(0, hp)
                        self.status_pve = True
                        # 监控
                        nowhp = int(table_element_hp)# 血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp - nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp, allhp)


                  elif rowstrip == "===================":
                        self.GListBox_981.insert('end', tempstr + "\n")
                        tempstr = ""
                        self.GListBox_981.insert('end', rowstrip + "\n")
                  elif rowstrip == '逃跑':
                        continue
                  elif rowstrip == '信息:来来来   便宜':
                        self.GListBox_981.insert('end', f'{"-" * 53}' + "\n")
                        break
                  else:
                        tempstr = tempstr + " " + rowstrip
            self.GListBox_981.insert('end', tempstr + "\n")

    def analysisButtonFight(self, links):
      i_pve = 0;
      i_pvegj = 0
      for link in links:
            if link['text'] == '攻击':
                self.GButton_745['text'] = '攻击'
                self.NowObject_op2 = link["dhref"]
                self.NowObject_op3 = link["dhref"]
                # self._log(self.NowObject_op1)
                self.GButton_745['state'] = 'active'
                self.GButton_152['text'] = '连续攻击'
            if link['type'] == 'pve':
                i_pve += 1
                if i_pve == 1:
                  self.GButton_581['text'] = link['text']
                  self.url_pve_useyp1 = link['dhref']
                elif i_pve == 2:
                  self.GButton_405['text'] = link['text']
                  self.url_pve_useyp2 = link['dhref']
                else:
                  self.GButton_125['text'] = link['text']
                  self.url_pve_useyp3 = link['dhref']
            if link['type'] == 'pvegj' and 'canshu=usejn' in link['href']:
                i_pvegj += 1
                if i_pvegj == 1:
                  self.GButton_14['text'] = link['text']
                  self.url_pve_usejn1 = link['dhref']
                elif i_pvegj == 2:
                  self.GButton_645['text'] = link['text']
                  self.url_pve_usejn2 = link['dhref']
                else:
                  self.GButton_141['text'] = link['text']
                  self.url_pve_usejn3 = link['dhref']
            if link['type'] == 'npc':
                self.GButton_745['state'] = 'active'
                if 'ypid=6' in link['href']:# 还原丹
                  self.GButton_745['text'] = '还原丹1个'
                  self.GButton_152['text'] = '还原丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.NowObject_op2 = link['dhref']
                  else:
                        self.NowObject_op3 = link['dhref']
                elif 'ypid=7' in link['href']:# 回血散
                  self.GButton_14['text'] = '回血散1个'
                  self.GButton_645['text'] = '回血散10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn1 = link['dhref']
                  else:
                        self.url_pve_usejn2 = link['dhref']
                elif 'ypid=8' in link['href']:# 回春汤
                  self.GButton_141['text'] = '回春汤1个'
                  self.GButton_581['text'] = '回春汤10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_usejn3 = link['dhref']
                  else:
                        self.url_pve_useyp1 = link['dhref']
                elif 'ypid=9' in link['href']:# 复伤丹
                  self.GButton_405['text'] = '复伤丹1个'
                  self.GButton_125['text'] = '复伤丹10个'
                  if 'ypcount=1&' in link['href']:
                        self.url_pve_useyp2 = link['dhref']
                  else:
                        self.url_pve_useyp3 = link['dhref']
                else:
                  pass
            if link['type'] == 'ypinfo':
                self.GListBox_981.insert('end', link['text'] + " ")
                url = self.url_game + link['dhref']
                req = self._requests('get', url, decode_level=1)
                hp = re.search("气血.*?<br", req).group(0)[:-3]
                self.GListBox_981.insert('end', hp + "\n")

      # self.GButton_9_command()

    def GButton_745_command(self):# 发起进攻 #操作2
      if self.NowObject_op2:
            self.status_auto_bybutton = False
            self.NowObject_run(self.NowObject_op2)

    def GButton_9_command(self):
      self.refreshGame(self.NowPosition)

    def GButton_720_command(self):# 向北
      url_game = self.url_game + self.url_navN
      self.refreshGame(url_game)

    def GButton_126_command(self):# 向西
      url = self.url_navW
      url_game = self.url_game + self.url_navW
      self.refreshGame(url_game)

    def GButton_750_command(self):# 向东
      url_game = self.url_game + self.url_navE
      self.refreshGame(url_game)

    def GButton_181_command(self):# 向南
      url_game = self.url_game + self.url_navS
      self.refreshGame(url_game)

    def GButton_673_command(self):# 武器
      url_game = self.url_weapon1
      self.NowObject_run(url_game)

    def GButton_928_command(self):# 头饰
      url_game = self.url_weapon2
      self.NowObject_run(url_game)

    def GButton_299_command(self):# 衣服
      url_game = self.url_weapon3
      self.NowObject_run(url_game)

    def GButton_682_command(self):# 腰带
      url_game = self.url_weapon4
      self.NowObject_run(url_game)

    def GButton_289_command(self):# 首饰
      url_game = self.url_weapon5
      self.NowObject_run(url_game)

    def GButton_503_command(self):# 鞋子
      url_game = self.url_weapon6
      self.NowObject_run(url_game)

    def GCheckBox_967_command(self):
      print("command")

    def GButton_107_command(self):
      username = self.GLineEdit_363.get().strip()
      userpass = self.GLineEdit_127.get().strip()
      url_login = self.url_base
      data_login = {"username": username, "userpass": userpass, "submit": "登陆"}
      req = self._requests('post', url_login, decode_level=3, data=data_login)

      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return
      if not refresh:# 登陆成功
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return

      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"账号{username}登陆成功")
      url_refresh = url_split
      url_game = self.url_base + url_refresh
      req = self._requests('get', url_game, decode_level=3)
      if 'type="hidden" name="token"' in req.text:# 创建角色
            self._log(f"请创建角色后再次进入游戏")
            self.createrole(req.text)
            return
      refresh = None
      try:
            refresh = req.headers["refresh"]# 取用户信息成功跳转上次玩家地图
      except:
            self._log(f"服务器返回数据出错,请联系管理员")
            return

      if not refresh:
            self._log(f"服务器返回数据出错,请联系管理员")
            return
      self._log(f"获取用户信息成功")
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"进入寻仙世界失败,请联系管理员")
            return
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      self._log(f"欢迎进入寻仙世界")
      self.refreshGame(url_game)
      self.NowPosition = url_game

    def refreshGame(self, url_game):
      self.NowPosition = url_game
      if not self.status_auto_bybutton:
            self.resetOPButtonName()
      req = self._requests('get', url_game, decode_level=1)
      if '你已经重伤请治疗' in req:
            self._log('你已经重伤请治疗')
            return
      html_etree = etree.HTML(req)
      try:
            mapname = re.search("当前地图:.*?<a", req).group(0)
            jobs = re.search(">任务.*?</a>", req, re.S).group(0)

            self.GLineEdit_300.delete(0, 'end')
            self.GLineEdit_300.insert(0, mapname)
            self.GButton_9['text'] = mapname
            links = self.getHrefLabelLinks(req)
            self.analysisStatus(links, jobs)
            mission = None
            mission = re.search("images/wen.gif.*?</a>", req, re.S)
            if mission:
                pass
            else:
                mission = re.search("images/tan.gif.*?</a>", req, re.S)
            if mission:
                findname = mission.group(0)
                findname = re.search("<a href=.*?</a>", findname, re.S).group(0)
                findname = re.search(">.*?<", findname, re.S).group(0)
                t = self.tvNpc.get_children()
                icount = 0;
                for i in t:
                  value1 = self.tvNpc.item(i, 'values')
                  for v in value1:
                        if v == findname:
                            icount += 1
                            self.tvNpc.set(i, 1, "新任务")
                            break
                  if icount > 0:
                        break
            else:
                # print("noneeee")
                pass
            # 公共聊天处理
            # table_element = html_etree.xpath('//*[@id="ltmsg"]')
            # for row in table_element:
            #   self.GLineEdit_252.insert('end',row.text+"\n")
      except Exception as me:
            # print('1612')
            # print(me)
            pass

            table_element = html_etree.xpath("//a")
            href = None
            for row in table_element:
                text = row.text
                href = row.attrib["href"]
                url = href
                if self.needDecode:
                  url = self.DecodeParam(url)
                if text == '突破' and 'canshu=tupo' in url:
                  break
            if href:
                req = self._requests('get', self.url_game + href, decode_level=1)
                if "灵石不足" in req:
                  value = re.search(f"突破需要灵石.*?<a", req).group(0)[:-2]
                  self._log(f"突破失败,灵石不足!{value}")
                if "突破成功" in req:
                  self._log("突破成功!")
                  self.refreshGame(url_game)
      try:
            self.tvMonster.selection_set('Item001')
      except:
            pass

    def resetOPButtonName(self):
      self.GButton_779['text'] = '操作1'
      self.GButton_745['text'] = '操作2'
      self.GButton_152['text'] = '操作3'
      self.GButton_14['text'] = '技能1'
      self.GButton_645['text'] = '技能2'
      self.GButton_141['text'] = '技能3'
      self.GButton_581['text'] = '药品1'
      self.GButton_405['text'] = '药品2'
      self.GButton_125['text'] = '药品3'
      # self.NowObject_op1 =None
      # self.NowObject_op2 =None
      # self.NowObject_op3 =None
      # self.url_op1 = None
      # self.url_op2 = None
      # self.url_op3 = None
      # self.url_pve_useyp1 =None
      # self.url_pve_useyp2 =None
      # self.url_pve_useyp3 =None
      # self.url_pve_usejn1 =None
      # self.url_pve_usejn2 =None
      # self.url_pve_usejn3 =None

    def TestSched(self):
      while self.status_autofighting:
            time.sleep(0.1)
            # self.tvMonster.selection_set('Item001')#刷新第一个怪物
            time.sleep(0.1)
            self.GButton_779_command()# 查看
            time.sleep(0.1)
            self.GButton_152_command()# 连续攻击

    def GButton_728_command(self):
      self.status_auto_bybutton = not self.status_auto_bybutton
      self.status_autofighting = not self.status_autofighting
      if self.status_autofighting:
            self.GButton_728['text'] = '自动战斗'
      else:
            self.GButton_728['text'] = '停止战斗'

      try:
            obj1 = threading.Thread(target=self.TestSched, args=())
            obj1.setDaemon(True)
            obj1.start()

      except Exception as me:
            print('1683')

            print(me)

    def getHrefLabelLinks(self, req):
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      links = []

      for row in table_element:
            if row.text is None:
                continue
            href = row.attrib["href"]
            dhref = href
            if self.needDecode:
                href = self.DecodeParam(href)
            types = re.search("cmd=cmd=.*?&", href)
            type = None
            if types is None:
                continue
            else:
                type = types.group(0)
            links.append({"text": row.text, "href": href, "type": type, "dhref": dhref})
      return links

    def analysisStatus(self, links, jobs):

      self.reset(self.tvMonster)
      url = self.getStatusUrl(links, "符箓")
      if url:
            self.url_package_skills = url
      url = self.getStatusUrl(links, "状态")
      if url:
            self.setStatusUserInfo(url)
      if not self.status_auto_bybutton:
            self.reset(self.tvNpc)
            self.reset(self.tvPlayerInThisPlace)
            self.reset(self.tvPackageInfo)
            url = self.getStatusUrl(links, "包裹")
            if url:
                self.url_package = url
                self.url_package_weapons = url
                self.setStatusPackageDrugsInfo(url)
                self.treeview_sort_column(self.tvPackageInfo, 0, True)
            url = self.getStatusUrl(links, "查看地图")
            if url:
                self.setAllMap(url)
            url = self.getStatusUrl(links, "排行")
            if url:
                self.setTopPlayer(url)

            url = self.getStatusUrl(links, jobs)
            if url:
                self.setJobList(url)

      navs = []
      for link in links:
            if link['type']:
                type = link['type']

                if type == "npc" and not self.status_auto_bybutton:
                  self.tvNpc.insert('', 'end', values=(link['text'], "查看", link['dhref']))
                elif type == "getginfo":# 野怪
                  id_tv = self.next_id()
                  self.tvMonster.insert('', 'end', id=id_tv, values=(link['text'], "查看", link['dhref']))
                elif type == "gomid":# 导航
                  navs.append(link)
                elif type == "getplayerinfo" and not self.status_auto_bybutton:# 导航
                  self.tvPlayerInThisPlace.insert('', 'end', values=(link['text'], "查看", link['dhref']))

      self.setNav(navs)
      # self.tvMonster.selection_set('I001')#刷新第一个怪物

    def next_id(self):
      global counter_tv
      counter_tv += 1
      return "Item%.3d" % counter_tv

    def reset(self, o):
      global counter_tv
      for item in o.get_children():
            o.delete(item)
      counter_tv = 0

    def setAllMap(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllMap)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回上一页':
                break
            self.tvAllMap.insert('', 'end', values=(row.text, "查看", href))
            self.url_safyhouse = href

    def setTopPlayer(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvTopPlayer)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回游戏':
                break
            self.tvTopPlayer.insert('', 'end', values=(row.text, "查看", href))

    def setJobList(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.reset(self.tvAllJob)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href = row.attrib["href"]
            if row.text == '返回游戏':
                break
            # self.tvAllJob.insert('', 'end', values=(row.text,"查看",href))
            url = self.url_game + href
            req = self._requests('get', url, decode_level=1)
            try:
                content = re.search(":<br/>.*?<br/>", req, re.S).group(0)
                content = content.replace("\r\n", "").replace(" ", "")
                workdone = re.search("进度.*?<br/>", req, re.S).group(0)
                self.tvAllJob.insert('', 'end', values=(row.text, workdone, content))
            except:
                pass

    def setNav(self, navs):
      N = False
      S = False
      W = False
      E = False
      for link in navs:
            if "←" in link['text']:
                W = True
                self.GButton_126["text"] = link['text']
                self.GButton_126["state"] = 'active'
                self.url_navW = link['dhref']
            if "→" in link['text']:
                E = True
                self.GButton_750["text"] = link['text']
                self.GButton_750["state"] = 'active'
                self.url_navE = link['dhref']
            if "↓" in link['text']:
                S = True
                self.GButton_181["text"] = link['text']
                self.GButton_181["state"] = 'active'
                self.url_navS = link['dhref']
            if "↑" in link['text']:
                N = True
                self.GButton_720["text"] = link['text']
                self.GButton_720["state"] = 'active'
                self.url_navN = link['dhref']
      if not N:
            self.GButton_720["state"] = 'disable'
            self.GButton_720["text"] = '此路不通'
      if not S:
            self.GButton_181["state"] = 'disable'
            self.GButton_181["text"] = '此路不通'
      if not E:
            self.GButton_750["state"] = 'disable'
            self.GButton_750["text"] = '此路不通'
      if not W:
            self.GButton_126["state"] = 'disable'
            self.GButton_126["text"] = '此路不通'

    def getStatusUrl(self, links, callName):
      url = ''
      for link in links:
            if link["text"] == callName:
                url = link["dhref"]
                return url

    def setStatusPackageDrugsInfo(self, url, count=0):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      # self.reset(self.tvPackageInfo)
      # for i in range(1,10):
      #   str = f'\[{i}\]'
      #   str_showItem = self.getPackageItem(req,str)
      #   if str_showItem:
      #         # self.tvPackageInfo.insert('', 'end', values=(str_show,"workdone","content"))
      #         self.tvPackageInfo.insert('', 'end', values=str_showItem)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      count += 1

      self.searchPackageContent(table_element, count)

    def searchPackageContent(self, table_element, count):
      l_list = []
      for row in table_element:
            if row.text == "返回游戏":
                break
            elif row.text == "上一页":
                continue
            elif row.text == "下一页":
                if count <= 4:
                  url_next = row.attrib["href"]
                  self.setStatusPackageDrugsInfo(url_next, count)
                  break
                else:
                  break
            elif row.text == "道具":
                self.url_package_items = row.attrib["href"]
            elif row.text == "药品":
                self.url_package_drugs = row.attrib["href"]
            elif row.text == "符箓":
                self.url_package_skills = row.attrib["href"]

            url = row.attrib["href"]
            dhref = url

            if self.needDecode:
                url = self.DecodeParam(url)
            l_list.append(json.loads(
                '{\"' + re.sub('(?<!&)&(?!&)', '\",\"', re.sub('(?<!=)=(?!=|&)', '\":\"', url)) + '\",\"url\":\"'
                + url + "\",\"dhref\":\"" + dhref + "\",\"urltext\":\"" + row.text + '\"}'))

      if len(l_list) < 1:
            return
      # print(l_list)
      self.analysisPackage(l_list)

    def analysisPackage(self, l_list):
      for item in l_list:
            if item["cmd"] == 'chakanzb':
                zbnowid = item["zbnowid"]
                zbinfo = item["dhref"]
                zb_op1 = None
                zb_op1_url = None
                zb_op2 = None
                zb_op2_url = None
                for itemn in l_list:
                  try:
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '卖出':
                            zb_op1 = '卖出'
                            zb_op1_url = itemn["dhref"]
                        if itemn["zbnowid"] == zbnowid and itemn["urltext"] == '分解':
                            zb_op2 = '分解'
                            zb_op2_url = itemn["dhref"]
                  except:
                        pass
                if zb_op1:
                  self.tvPackageInfo.insert('', 'end',
                                              values=(item["urltext"], zb_op1, zb_op2, zb_op1_url, zb_op2_url, zbinfo))
                else:
                  self.tvPackageInfo.insert('', 'end', values=(item["urltext"], '已装备', '', '', '', zbinfo))

    def getPackageDrugsInfoReqValue(self, req, text):
      l = len(text)
      try:
            value = re.search(f"{text}\..*?</a>", req).group(0)
            if value.startswith("<a"):
                value = re.search(">.*?</a>", value).group(0)
            return value

      except Exception as me:
            print('1949')
            print(me)
            return None

    def setStatusUserInfo(self, url):
      url = self.url_game + url
      req = self._requests('get', url, decode_level=1)
      self.setStatusUserInfo_byreq(req)

    def setStatusUserInfo_byreq(self, req):
      self.GButton_673['state'] = 'disable'# 武器
      self.GButton_928['state'] = 'disable'# 头饰
      self.GButton_299['state'] = 'disable'# 衣服
      self.GButton_682['state'] = 'disable'# 腰带
      self.GButton_289['state'] = 'disable'# 首饰
      self.GButton_503['state'] = 'disable'# 鞋子
      self.setEditText(self.GLineEdit_458, self.getReqValue(req, '昵称'))
      self.setEditText(self.GLineEdit_546, self.getReqValue(req, '境界'))
      self.setEditText(self.GLineEdit_644, self.getReqValue(req, '等级'))
      self.setEditText(self.GLineEdit_268, self.getReqValue(req, '修为'))
      self.setEditText(self.GLineEdit_998, self.getReqValue(req, '灵石'))
      self.setEditText(self.GLineEdit_789, self.getReqValue(req, '极品灵石'))
      self.setEditText(self.GLineEdit_556, self.getReqValue(req, '气血'))
      self.setEditText(self.GLineEdit_634, self.getReqValue(req, '攻击'))
      self.setEditText(self.GLineEdit_875, self.getReqValue(req, '防御'))
      self.setEditText(self.GLineEdit_588, self.getReqValue(req, '暴击'))
      self.setEditText(self.GLineEdit_323, self.getReqValue(req, '吸血'))
      self.setEditText(self.GLineEdit_129, self.getReqValue(req, '武器'))
      self.setEditText(self.GLineEdit_810, self.getReqValue(req, '头饰'))
      self.setEditText(self.GLineEdit_708, self.getReqValue(req, '衣服'))
      self.setEditText(self.GLineEdit_554, self.getReqValue(req, '腰带'))
      self.setEditText(self.GLineEdit_809, self.getReqValue(req, '首饰'))
      self.setEditText(self.GLineEdit_31, self.getReqValue(req, '鞋子'))
      exp = self.getReqValue(req, '修为')
      hp = self.getReqValue(req, '气血')
      exps = exp.split('/')
      nowexp = int(exps)
      allexp = int(exps)
      self.progressbarEXP['maximum'] = allexp
      self.progressbarEXP['value'] = nowexp
      hps = hp.split('/')# 血量监控
      nowhp = int(hps)
      allhp = int(hps)
      # 进度值最大值
      self.progressbarHP['maximum'] = allhp
      # 进度值初始值
      self.progressbarHP['value'] = nowhp

    def getReqValue(self, req, text):

      l = len(text)
      value = re.search(f"{text}:.*?<br/>", req).group(0)
      if value and value.startswith("<a"):

            html_etree = etree.HTML(value)
            table_element = html_etree.xpath("//a")
            url = None
            dhref = None
            for row in table_element:
                if row.text == "卸下":
                  dhref = row.attrib['href']
                  if self.needDecode:
                        url = self.DecodeParam(dhref)
                  else:
                        url = dhref
                else:
                  value = row.text
            if url:
                if "&zbwz=1&" in url:
                  self.url_weapon1 = dhref
                  self.GButton_673['state'] = 'normal'# 武器
                elif "&zbwz=2&" in url:
                  self.url_weapon2 = dhref
                  self.GButton_928['state'] = 'active'# 头饰
                elif "&zbwz=3&" in url:
                  self.url_weapon3 = dhref
                  self.GButton_299['state'] = 'active'# 衣服
                elif "&zbwz=4&" in url:
                  self.url_weapon4 = dhref
                  self.GButton_682['state'] = 'active'# 腰带
                elif "&zbwz=5&" in url:
                  self.url_weapon5 = dhref
                  self.GButton_289['state'] = 'active'# 首饰
                elif "&zbwz=6&" in url:
                  self.url_weapon6 = dhref
                  self.GButton_503['state'] = 'active'# 鞋子
      return value

    def setEditText(self, _GLineEdit, value):
      if not value:
            value = "空"
      _GLineEdit.delete(0, 'end')
      _GLineEdit.insert(0, value)

    def GButton_947_command(self):# 清理装备
      # print(self.NowPosition)
      if self.url_package:
            try:
                obj1 = threading.Thread(target=self.TestcleanItem, args=())
                obj1.setDaemon(True)
                obj1.start()
            except Exception as me:
                print('2063')
                print(me)

    def TestcleanItem(self):
      p_list = []
      plist = self.cleanPackage(self.url_package, p_list)
      itemData = {}
      for row in plist:
            if row['cmd'] == 'chakanzb':
                name = row['urltext']
                zbnowid = row['zbnowid']
                itemData.setdefault(name, {"count": 0})
                itemData['count'] += 1
      for row in itemData:
            if int(itemData['count']) > 6:# 装备多于6个
                count_needsell = itemData['count']
                count_sell = 0
                self.GListBox_981.delete(0.0, 'end')
                self.GListBox_981.insert('end', f'{row},总数:{count_needsell}')
                for row2 in plist:
                  if row2['cmd'] == 'chakanzb' and row2['urltext'] == row:# 跟据装备名找装备编号
                        zbnowid = row2['zbnowid']
                        for row3 in plist:# 跟据装备编号 找卖出URL
                            if row3['cmd'] == 'getbagzb' and row3['zbnowid'] == zbnowid and row3['canshu'] == 'maichu':
                              # if row3['cmd'] == 'delezb' and row3['zbnowid'] == zbnowid : 分解
                              url = row3['dhref']
                              if count_sell < count_needsell - 6:
                                    count_sell += 1
                                    # 执行URL
                                    self.GLineEdit_10.delete(0, 'end')
                                    self.GLineEdit_10.insert('end', f'{row},总数:{count_needsell} 卖出:{count_sell}')
                                    self._requests("get", self.url_game + url)

    def cleanPackage(self, url_package, p_list=[], count=0):
      url = self.url_game + url_package
      req = self._requests('get', url, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      count += 1
      self._log(f'装备栏第{count}页')
      plist = self.researchPackageContent(table_element, p_list, count)
      return plist

    def researchPackageContent(self, table_element, p_list, count):
      for row in table_element:
            if row.text == "返回游戏":
                break
            if row.text == "下一页":
                url_next = row.attrib["href"]
                self.cleanPackage(url_next, p_list, count)
                break
            if row.text == "上一页":
                continue
            url = row.attrib["href"]
            dhref = url

            if self.needDecode:
                url = self.DecodeParam(url)
            p_list.append(json.loads(
                '{\"' + re.sub('(?<!&)&(?!&)', '\",\"', re.sub('(?<!=)=(?!=|&)', '\":\"', url)) + '\",\"url\":\"'
                + url + "\",\"dhref\":\"" + dhref + "\",\"urltext\":\"" + row.text + '\"}'))

      return p_list

    def GButton_744_command(self):# 注册
      print("GButton_744_command")
      window_sign_up = tk.Toplevel(root)
      # setting title
      window_sign_up.title("注册")
      # setting window size
      width = 895
      height = 329
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      window_sign_up.geometry(alignstr)
      window_sign_up.resizable(width=False, height=False)

      self.Frame_634 = tk.Frame(window_sign_up)
      self.Frame_634.place(x=10, y=10, width=472, height=310)
      self.canvas = tk.Canvas(self.Frame_634, bg='SystemButtonFace', width=472, height=310)# SystemButtonFace
      global image
      image = PhotoImage(file="xunxian.png")
      self.canvas.create_image(232, 155, image=image)
      self.canvas.pack()

      self.GLabel_831 = tk.Label(window_sign_up)
      # self.GLabel_831["bg"] = "#00ced1"
      ft = tkFont.Font(family='黑体', size=11)
      self.GLabel_831["font"] = ft
      self.GLabel_831["fg"] = "#333333"
      self.GLabel_831["justify"] = "center"
      self.GLabel_831["text"] = "天下风云出我辈,一入江湖岁月催\n\n皇图霸业谈笑中,不胜人生一场醉\n\n提剑跨骑挥鬼雨,白骨如山鸟惊飞\n\n尘事如潮人如水,只叹江湖几人回\n"
      self.GLabel_831.place(x=490, y=10, width=398, height=137)

      self.GLineEdit_702 = tk.Entry(window_sign_up)
      self.GLineEdit_702["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_702["font"] = ft
      self.GLineEdit_702["fg"] = "#333333"
      self.GLineEdit_702["justify"] = "center"
      self.GLineEdit_702["text"] = "account"
      self.GLineEdit_702.place(x=610, y=160, width=239, height=30)

      self.GLabel_268 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_268["font"] = ft
      self.GLabel_268["fg"] = "#333333"
      self.GLabel_268["justify"] = "center"
      self.GLabel_268["text"] = "账号"
      self.GLabel_268.place(x=500, y=160, width=64, height=30)

      self.GLabel_500 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_500["font"] = ft
      self.GLabel_500["fg"] = "#333333"
      self.GLabel_500["justify"] = "center"
      self.GLabel_500["text"] = "密码"
      self.GLabel_500.place(x=500, y=200, width=62, height=30)

      self.GLabel_104 = tk.Label(window_sign_up)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_104["font"] = ft
      self.GLabel_104["fg"] = "#333333"
      self.GLabel_104["justify"] = "center"
      self.GLabel_104["text"] = "确认密码"
      self.GLabel_104.place(x=500, y=240, width=70, height=30)

      self.GLineEdit_703 = tk.Entry(window_sign_up)
      self.GLineEdit_703["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_703["font"] = ft
      self.GLineEdit_703["fg"] = "#333333"
      self.GLineEdit_703["justify"] = "center"
      self.GLineEdit_703["text"] = "password"
      # self.GLineEdit_703["show"] = "*"

      self.GLineEdit_703.place(x=610, y=200, width=240, height=32)

      self.GLineEdit_54 = tk.Entry(window_sign_up)
      self.GLineEdit_54["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_54["font"] = ft
      self.GLineEdit_54["fg"] = "#333333"
      self.GLineEdit_54["justify"] = "center"
      self.GLineEdit_54["text"] = "password2"
      # self.GLineEdit_54["show"] = "*"
      self.GLineEdit_54.place(x=610, y=240, width=239, height=30)

      self.GButton_916 = tk.Button(window_sign_up)
      self.GButton_916["bg"] = "#f0f0f0"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_916["font"] = ft
      self.GButton_916["fg"] = "#000000"
      self.GButton_916["justify"] = "center"
      self.GButton_916["text"] = "注册"
      self.GButton_916.place(x=730, y=280, width=119, height=30)
      self.GButton_916["command"] = self.GButton_916_command

      self.GLabel_764 = tk.Label(window_sign_up)# 显示回返
      self.GLabel_764["bg"] = "#00ced1"
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_764["font"] = ft
      self.GLabel_764["fg"] = "#333333"
      self.GLabel_764["justify"] = "center"
      self.GLabel_764["text"] = ""
      self.GLabel_764.place(x=510, y=280, width=190, height=30)

    def createrole(self, req):
      # setting title
      self.window_createrole = tk.Toplevel(root)
      self.window_createrole.title("创建角色")
      # setting window size
      width = 365
      height = 320
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      self.window_createrole.geometry(alignstr)
      self.window_createrole.resizable(width=False, height=False)

      self.GLabel_602 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_602["font"] = ft
      self.GLabel_602["fg"] = "#333333"
      self.GLabel_602["justify"] = "center"
      self.GLabel_602["text"] = "角色名称"
      self.GLabel_602.place(x=30, y=50, width=70, height=25)

      self.GLineEdit_937 = tk.Entry(self.window_createrole)
      self.GLineEdit_937["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_937["font"] = ft
      self.GLineEdit_937["fg"] = "#333333"
      self.GLineEdit_937["justify"] = "center"
      self.GLineEdit_937["text"] = "Entry"
      self.GLineEdit_937.place(x=120, y=50, width=187, height=32)

      self.GLabel_643 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_643["font"] = ft
      self.GLabel_643["fg"] = "#333333"
      self.GLabel_643["justify"] = "center"
      self.GLabel_643["text"] = "性别"
      self.GLabel_643.place(x=30, y=100, width=70, height=25)

      v = tk.IntVar()

      self.GRadio_923 = tk.Radiobutton(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GRadio_923["font"] = ft
      self.GRadio_923["fg"] = "#333333"
      self.GRadio_923["justify"] = "center"
      self.GRadio_923["text"] = "男"
      self.GRadio_923["variable"] = v
      self.GRadio_923["value"] = '1'
      self.GRadio_923.place(x=120, y=100, width=43, height=30)
      self.GRadio_923["command"] = self.GRadio_923_command
      # self.GRadio_923.setCh
      v.set('1')

      self.GRadio_618 = tk.Radiobutton(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GRadio_618["font"] = ft
      self.GRadio_618["fg"] = "#333333"
      self.GRadio_618["justify"] = "center"
      self.GRadio_618["text"] = "女"
      self.GRadio_618["variable"] = v
      self.GRadio_618["value"] = '2'
      self.GRadio_618.place(x=190, y=100, width=62, height=30)
      self.GRadio_618["command"] = self.GRadio_618_command

      self.GButton_264 = tk.Button(self.window_createrole)
      self.GButton_264["bg"] = "#f0f0f0"
      ft = tkFont.Font(family='Times', size=10)
      self.GButton_264["font"] = ft
      self.GButton_264["fg"] = "#000000"
      self.GButton_264["justify"] = "center"
      self.GButton_264["text"] = "创   建"
      self.GButton_264.place(x=130, y=240, width=103, height=30)
      self.GButton_264["command"] = self.GButton_264_command

      self.GLabel_735 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_735["font"] = ft
      self.GLabel_735["fg"] = "#333333"
      self.GLabel_735["justify"] = "center"
      self.GLabel_735["text"] = "cmd"
      self.GLabel_735.place(x=30, y=140, width=70, height=25)

      self.GLineEdit_495 = tk.Entry(self.window_createrole)
      self.GLineEdit_495["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_495["font"] = ft
      self.GLineEdit_495["fg"] = "#333333"
      self.GLineEdit_495["justify"] = "center"
      self.GLineEdit_495["text"] = "cjplayer"
      self.GLineEdit_495.place(x=120, y=140, width=190, height=30)

      self.GLabel_318 = tk.Label(self.window_createrole)
      ft = tkFont.Font(family='Times', size=10)
      self.GLabel_318["font"] = ft
      self.GLabel_318["fg"] = "#333333"
      self.GLabel_318["justify"] = "center"
      self.GLabel_318["text"] = "token"
      self.GLabel_318.place(x=30, y=190, width=70, height=25)

      self.GLineEdit_630 = tk.Entry(self.window_createrole)
      self.GLineEdit_630["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times', size=10)
      self.GLineEdit_630["font"] = ft
      self.GLineEdit_630["fg"] = "#333333"
      self.GLineEdit_630["justify"] = "center"
      self.GLineEdit_630["text"] = "tokey"
      self.GLineEdit_630.place(x=120, y=190, width=191, height=30)

      cmd = 'cjplayer'
      self.GLineEdit_495.insert(0, cmd)
      token = re.search('name="token".*?\'>', req).group(0)
      token = re.search('\'.*?\'', token).group(0)
      self.GLineEdit_630.insert(0, token)

    def GButton_264_command(self):# 创建角色
      cmd = self.GLineEdit_495.get()
      token = self.GLineEdit_630.get()
      username = self.GLineEdit_937.get()
      if not username or len(username) < 6 or len(username) > 12:
            self._log('用户名不能太短或者太长(小于6位或大于12位)')
            return
      sex = self.sex
      data_role = {"username": username, "cmd": cmd, "token": token, "sex": sex, "submit": "创建"}
      params = '?cmd=' + cmd + '&token=' + token + '&sex=' + sex + '&username=' + username
      req = self._requests('get', self.url_game + params, decode_level=3)
      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            pass
      if not refresh:# 登陆成功
            self._log(f"角色创建失败,请重试")
            return
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"角色创建成功,等待返回角色信息")
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      req = self._requests('get', url_game, decode_level=3)
      welcome = re.search(f'{username}.*?纪', req.text, re.S).group(0)
      self._log(welcome)
      self.window_createrole.destroy()
      self.GButton_107_command()

    def GRadio_923_command(self):
      self.sex = '1'

    def GRadio_618_command(self):
      self.sex = '2'

    def GButton_32_command(self): #查看装备
      if self.url_package_weapons:
            self.NowObject_run(self.url_package_weapons)

    def GButton_793_command(self):#查看药品
      if self.url_package_drugs:
            self.NowObject_run(self.url_package_drugs)

    def GButton_217_command(self):#查看道具
      if self.url_package_items:
            self.NowObject_run(self.url_package_items)

    def GButton_889_command(self):
      print("GButton_889_command")

    def GButton_724_command(self):
      print("GButton_724_command")

    def GButton_210_command(self):
      print("GButton_210_command")

    def GButton_916_command(self):
      username = self.GLineEdit_702.get()
      userpass = self.GLineEdit_703.get()
      userpass2 = self.GLineEdit_54.get()
      if not username or not userpass or not userpass2:
            self.GLabel_764["text"] = "提示", " 请输入信息 "
            return
      if not userpass == userpass2:
            self.GLabel_764["text"] = '错误', '密码前后不一致'
            return
      if len(username) < 6:
            self.GLabel_764["text"] = '错误', '用户名不能少于6位'
            return

      data_regist = {"username": username, "userpass": userpass, "userpass2": userpass2, "submit": "登陆"}
      req = self._requests('post', self.url_regist, decode_level=1, data=data_regist)
      try:
            xt = re.search('注册失败.*?<p>', req).group(0)[:-3]
            if xt:
                self.GLabel_764["text"] = f'{xt}'
      except:
            pass
      try:
            xt = re.search('注册成功.*?<p>', req).group(0)[:-3]
            if xt:
                self.GLabel_764["text"] = f'{xt}'
                self.GButton_916['state'] = 'disable'
      except:
            pass
      # try:
      #   with open('E:\\usr_info.pickle', 'rb')as usr_file:
      #         exist_usr_info = pickle.load(usr_file)
      # except FileNotFoundError:
      #   exist_usr_info = {}
      # if nn in exist_usr_info:
      #   tk.messagebox.showerror('错误', '用户名已存在')
      # elif np == '' or nn == '':
      #   tk.messagebox.showerror('错误', '用户名或密码为空')
      # elif np != npf:
      #   tk.messagebox.showerror('错误', '密码前后不一致')
      # else:
      #   exist_usr_info = np
      #   with open('E:\\usr_info.pickle', 'wb')as usr_file:
      #         pickle.dump(exist_usr_info, usr_file)
      #   tk.messagebox.showinfo('欢迎', '注册成功')
      #   window_sign_up.destroy()

    def GButton_14_command(self):# 技能一
      url = self.url_pve_usejn1
      self.NowObject_run(url)

    def GButton_645_command(self):# 技能二
      url = self.url_pve_usejn2
      self.NowObject_run(url)

    def GButton_141_command(self):# 技能三
      url = self.url_pve_usejn3
      self.NowObject_run(url)

    def GButton_581_command(self):# 药品一按钮
      url = self.url_pve_useyp1
      self.NowObject_run(url)

    def GButton_405_command(self):# 药品二按钮
      url = self.url_pve_useyp2
      self.NowObject_run(url)

    def GButton_125_command(self):# 药品三按钮
      url = self.url_pve_useyp3
      self.NowObject_run(url)

    def GButton_152_command(self):# 操作3 连续进攻
      if self.NowObject_op3:
            self.status_auto_bybutton = True
            self.NowObject_run(self.NowObject_op3)

    def NowObject_run(self, url):
      if url:
            status_fight = False
            href = url
            if self.needDecode:
                href = self.DecodeParam(href)
            if "cmd=pvegj&" in href:
                status_fight = True
            if "canshu=usejn&" in href:
                status_fight = False

            req = self._requests('get', self.url_game + url, decode_level=1)
            html_etree = etree.HTML(req)
            if "setzbwz&zbwz=" in href:
                self._log("装备成功")
                self.setStatusUserInfo_byreq(req)
                return
            elif "xxzb&zbwz=" in href:
                self._log("卸载成功")
                self.setStatusUserInfo_byreq(req)
                return
            if "&canshu=maichu&" in href:
                msg = re.search("卖出.*?<br/", req).group(0)[:-4]
                self._log(msg)
                # self.setStatusUserInfo_byreq(req)
                # return
            if "cmd=delezb&zbnowid=" in href:
                try:
                  msg = re.search("分解.*?【", req, re.S).group(0)[:-1]
                  msg = msg.replace("<br/>", "")("</a>", "").replace("\r\n", "")
                  self._log(msg)
                except:
                  pass
                # self.setStatusUserInfo_byreq(req)
                # return
            if "cmd=getbagyp&" in href:
                table_element = html_etree.xpath("//a")
                self.reset(self.tvPackageInfo)
                icount = 0
                for row in table_element:
                  urlyp = row.attrib["href"]
                  durlyp = urlyp
                  if self.needDecode:
                        urlyp = self.DecodeParam(urlyp)
                  if "cmd=ypinfo&ypid=" in urlyp:
                        # self.reset(self.tvPackageInfo)
                        self.tvPackageInfo.insert('', 'end', values=(row.text, '', '', '', '', durlyp))
                return
            if "cmd=getbagdj&" in href:
                table_element = html_etree.xpath("//a")
                self.reset(self.tvPackageInfo)
                icount = 0
                for row in table_element:
                  urlyp = row.attrib["href"]
                  durlyp = urlyp
                  if self.needDecode:
                        urlyp = self.DecodeParam(urlyp)
                  if "djinfo" in urlyp:
                        # self.reset(self.tvPackageInfo)
                        self.tvPackageInfo.insert('', 'end', values=(row.text, '', '', '', '', durlyp))
                return

            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            hp = None
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip) > 0:
                  if rowstrip == "==战斗==":
                        self._log(rowstrip)
                  elif rowstrip == "===================":
                        self._log(tempstr)
                        tempstr = ""
                        userHP = re.findall("气血.*?<br", req)# .group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp = table_element_hp + "/" + table_element_hp
                        self.GLineEdit_556.delete(0, 'end')
                        self.GLineEdit_556.insert(0, hp)
                        nowhp = int(table_element_hp)# 血量监控
                        allhp = int(table_element_hp)
                        # 进度值最大值
                        self.progressbarHP['maximum'] = allhp
                        # 进度值初始值
                        self.progressbarHP['value'] = nowhp
                        dorphp = allhp - nowhp
                        #######################自动吃药判断#########################
                        self.eatDrugs(dorphp, allhp)
                        self._log(rowstrip)
                  elif rowstrip == '逃跑':
                        break
                  elif rowstrip == '恭喜强化成功':
                        self._log('恭喜强化成功')
                        tempstr = None
                        # self.refreshGame(url)
                        break
                  elif '强化失败' in rowstrip:
                        self._log('强化失败')
                        tempstr = None
                        break

                  elif '灵石数量不足' in rowstrip or '突破成功' in rowstrip:
                        msg = re.search("便宜<br/>.*?<br/>", req, re.S).group(0)
                        msg = msg.replace("\r\n", "").replace(" ", "")
                        msg = "购买状态:" + msg
                        self._log(msg)
                        tempstr = None
                        break
                  elif re.search("购买.*?成功", rowstrip):
                        tempstr = rowstrip
                        break
                  elif rowstrip == '返回游戏':
                        table_element = html_etree.xpath("//a")
                        self.status_pve = False
                        for row2 in table_element:
                            if row2.text == '返回游戏':
                              url_game = self.url_game + row2.attrib["href"]
                              self.refreshGame(url_game)
                              break
                  else:
                        tempstr = tempstr + " " + rowstrip
            if tempstr:
                self._log(tempstr)
            if "=task&nid=" in href:
                table_element = html_etree.xpath("//a")
                # if "&canshu=jieshou&"in href:

                for row in table_element:
                  if row.text == '接受':
                        self.GButton_779["text"] = "接受任务"
                        self.NowObject_op1 = self.url_game + row.attrib["href"]
                        break
                  elif row.text == '提交':
                        self.GButton_779["text"] = "提交任务"
                        self.NowObject_op1 = self.url_game + row.attrib["href"]
                        break
                # elif "&canshu=tijiao&" inhref:
                #   self.GButton_779["text"] = "提交任务"
                #   for row in table_element:
                #         if row.text =='提交':
                #             self.NowObject_op1 = self.url_game+row.attrib["href"]

                # self._log(msg)
                return
      if self.status_pve and status_fight and self.status_auto_bybutton:
            self.NowObject_run(url)

    def eatDrugs(self, dorphp, allhp):
      count_drugs1 = None# 吃药1按键设置数量判断
      try:
            opjdrug1 = str(self.GButton_581["text"])
            count_drugs1 = int(re.search("\(.*?\)", opjdrug1).group(0))
      except:
            pass
      count_drugs2 = None# 吃药2按键设置数量判断
      try:
            opjdrug2 = str(self.GButton_405["text"])
            count_drugs2 = int(re.search("\(.*?\)", opjdrug2).group(0))
      except:
            pass
      count_drugs3 = None# 吃药3按键设置数量判断
      try:
            opjdrug3 = str(self.GButton_125["text"])
            count_drugs3 = int(re.search("\(.*?\)", opjdrug3).group(0))
      except:
            pass

      if dorphp > 100 and count_drugs1 and count_drugs1 > 0:# 吃药一
            self.GButton_581_command()
            time.sleep(0.1)
      elif dorphp > 300 and count_drugs2 and count_drugs2 > 0:# 吃药2
            self.GButton_405_command()
            time.sleep(0.1)
      elif dorphp > 600 and count_drugs3 and count_drugs3 > 0:# 吃药3
            self.GButton_125_command()
            time.sleep(0.1)
      elif dorphp >= 100 and (allhp-dorphp) / allhp < 0.3:# 无药,飞走,停止挂机
            try:
                self.refreshGame(self.url_game + self.url_safyhouse)
                self.status_autofighting = False
            except Exception as e:
                print('1257')
                print(e)

    def DecodeParam(self, str):
      if str:
            strs = str.split('cmd=')
            if len(strs) < 2:
                return str
      else:
            return str
      str = strs
      str = str.replace('O0O0O', '=').replace('o000o', '+').replace('oo00o', '/')
      list_str = re.findall(r'.{2}', str)
      skey = 'cxphp'
      strCount = len(list_str)
      list_skey = re.findall(r'.{1}', skey)
      for i in range(0, len(list_skey)):
            if i <= strCount and list_str and list_str == list_skey:
                list_str = list_str
      strout = "".join(list_str)
      if (len(strout) % 3 == 1):
            strout += "=="
      elif (len(strout) % 3 == 2):
            strout += "="
      else:
            strout += "="
      dStr = base64.b64decode(strout)
      return '?cmd=' + bytes.decode(dStr)

    def _requests(self, method, url, decode_level=1, retry=0, timeout=15, **kwargs):
      if method in ["get", "post"]:
            for _ in range(retry + 1):
                try:
                  warnings.filterwarnings('ignore')
                  response = getattr(self.session, method)(url, timeout=timeout, verify=False, **kwargs)
                  return response.text if decode_level == 1 else response.json() if decode_level == 2 else response
                except Exception as e:
                  self._log(e)
      return None

    def _log(self, logmsg):
      global LOG_LINE_NUM
      current_time = self.get_current_time()
      logmsg_in = str(current_time) + " " + str(logmsg) + "\n"# 换行
      self.GLineEdit_742.tag_config("even", background='#e0e0e0')
      self.GLineEdit_742.tag_config("odd", background='#ffffff')
      self.tag = 'odd' if self.tag == 'even' else 'even'
      if LOG_LINE_NUM <= 25:

            self.GLineEdit_742.insert('end', logmsg_in, self.tag)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
      else:
            self.GLineEdit_742.delete(1.0, 2.0)
            self.GLineEdit_742.insert('end', logmsg_in, self.tag)

    def get_current_time(self):
      current_time = time.strftime('%H:%M:%S', time.localtime(time.time()))
      return current_time


if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()

Xue1203 发表于 2022-8-1 00:24

摩拜大佬,厉害&#128077;

ysjd22 发表于 2022-8-1 06:34

这是侠客行的地图?

kololi 发表于 2022-8-2 09:02

玩上了,那个服务器速度还挺快,希望尽快更新更多功能。

neteast 发表于 2022-8-2 10:25

更新来了
更新内容如下
1.显示当前所在地图名
2点中间的方向键可以刷新当前位置数据
3切换地图时, 自动查看第1位置的怪物信息,显示于右侧,方便观察等级,掉落物品等信息
4当前对象为:怪物时,可以进行道具攻击,或者吃药补充状态。
当前对像为:NPC(商人)时,可以进行4种药品的分别购买。
5.当前地图自动战斗功能
6.自动战斗时,监视当前气血,掉100血时,使用药品1.当掉血300时,使用药品2
7.当需要突破时,地图列表出现 突破 字样,点击突破 ,灵石足够时,突破成功。
8.其他一些细节优化

打包的下载如下
下载:https://wwz.lanzoub.com/ieI9m08uv9od 密码:52pj




# -*- coding:utf-8 -*-
# @FileName:52pj_xunxianUI.py
# @ author    :neteast@52pojie
import base64
import threading
import time
from tkinter import *
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.font as tkFont
import tkinter.messagebox
from lxml import etree
import warnings
import re
import requests

LOG_LINE_NUM = 0
counter_tv = 0
class App:
    def __init__(self, root):
      self.initUI()
      self.initData()
      self.test()

    def test(self):
      if self.status_test:
         

            pass


    def initData(self):
      self.status_test = True
      self.needDecode =True#链接加密
      self.tag = 'odd'
      self.session = requests.Session()
      self.session.headers.update({
                                        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36'})
      # self.url_base = 'http://www.xx.com/'
      self.url_base = 'http://youxi.kebai.work/'
      self.url_game =self.url_base +'game.php'
      self.NowObject_op1 =None
      self.NowObject_op2 =None
      self.NowObject_op3 =None
      self.NowPosition = None
      self.url_navW = None
      self.url_navE = None
      self.url_navN = None
      self.url_navS = None

      self.url_op1 = None
      self.url_op2 = None
      self.url_op3 = None
      self.url_pve_useyp1 =None
      self.url_pve_useyp2 =None
      self.url_pve_useyp3 =None
      self.url_pve_usejn1 =None
      self.url_pve_usejn2 =None
      self.url_pve_usejn3 =None

      self.status_pve = False
      self.status_autofighting = False

      pass


    def initUI(self):
      #setting title
      root.title("寻仙记 neteast@52pojie")
      #setting window size
      width=1273
      height=696
      screenwidth = root.winfo_screenwidth()
      screenheight = root.winfo_screenheight()
      alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
      root.geometry(alignstr)
      root.resizable(width=False, height=False)

      self.GButton_9=tk.Button(root)
      self.GButton_9["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_9["font"] = ft
      self.GButton_9["fg"] = "#000000"
      self.GButton_9["justify"] = "center"
      self.GButton_9["text"] = "当前位置"
      self.GButton_9.place(x=1100,y=620,width=69,height=30)
      self.GButton_9["command"] = self.GButton_9_command

      self.GButton_720=tk.Button(root)
      self.GButton_720["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_720["font"] = ft
      self.GButton_720["fg"] = "#000000"
      self.GButton_720["justify"] = "center"
      self.GButton_720["text"] = "向北"
      self.GButton_720.place(x=1090,y=590,width=91,height=30)
      self.GButton_720["command"] = self.GButton_720_command

      self.GButton_126=tk.Button(root)
      self.GButton_126["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_126["font"] = ft
      self.GButton_126["fg"] = "#000000"
      self.GButton_126["justify"] = "center"
      self.GButton_126["text"] = "向西"
      self.GButton_126.place(x=1010,y=620,width=88,height=30)
      self.GButton_126["command"] = self.GButton_126_command

      self.GButton_750=tk.Button(root)
      self.GButton_750["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_750["font"] = ft
      self.GButton_750["fg"] = "#000000"
      self.GButton_750["justify"] = "center"
      self.GButton_750["text"] = "向东"
      self.GButton_750.place(x=1170,y=620,width=94,height=30)
      self.GButton_750["command"] = self.GButton_750_command

      self.GButton_181=tk.Button(root)
      self.GButton_181["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_181["font"] = ft
      self.GButton_181["fg"] = "#000000"
      self.GButton_181["justify"] = "center"
      self.GButton_181["text"] = "向南"
      self.GButton_181.place(x=1090,y=650,width=91,height=30)
      self.GButton_181["command"] = self.GButton_181_command

      self.GLabel_72=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_72["font"] = ft
      self.GLabel_72["fg"] = "#333333"
      self.GLabel_72["justify"] = "center"
      self.GLabel_72["text"] = "气血"
      self.GLabel_72.place(x=10,y=620,width=30,height=30)

      self.GLineEdit_556=tk.Entry(root)
      self.GLineEdit_556["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_556["font"] = ft
      self.GLineEdit_556["fg"] = "#333333"
      self.GLineEdit_556["justify"] = "center"
      self.GLineEdit_556["text"] = "45/199"
      self.GLineEdit_556.place(x=40,y=620,width=118,height=30)

      self.GLabel_795=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_795["font"] = ft
      self.GLabel_795["fg"] = "#333333"
      self.GLabel_795["justify"] = "center"
      self.GLabel_795["text"] = "攻击"
      self.GLabel_795.place(x=160,y=620,width=30,height=30)

      self.GLineEdit_634=tk.Entry(root)
      self.GLineEdit_634["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_634["font"] = ft
      self.GLineEdit_634["fg"] = "#333333"
      self.GLineEdit_634["justify"] = "center"
      self.GLineEdit_634["text"] = "38"
      self.GLineEdit_634.place(x=190,y=620,width=59,height=30)

      self.GLabel_228=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_228["font"] = ft
      self.GLabel_228["fg"] = "#333333"
      self.GLabel_228["justify"] = "center"
      self.GLabel_228["text"] = "防御"
      self.GLabel_228.place(x=250,y=620,width=35,height=30)

      self.GLineEdit_875=tk.Entry(root)
      self.GLineEdit_875["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_875["font"] = ft
      self.GLineEdit_875["fg"] = "#333333"
      self.GLineEdit_875["justify"] = "center"
      self.GLineEdit_875["text"] = "27"
      self.GLineEdit_875.place(x=290,y=620,width=70,height=25)

      self.GLabel_517=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_517["font"] = ft
      self.GLabel_517["fg"] = "#333333"
      self.GLabel_517["justify"] = "center"
      self.GLabel_517["text"] = "暴击"
      self.GLabel_517.place(x=360,y=620,width=36,height=30)

      self.GLineEdit_588=tk.Entry(root)
      self.GLineEdit_588["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_588["font"] = ft
      self.GLineEdit_588["fg"] = "#333333"
      self.GLineEdit_588["justify"] = "center"
      self.GLineEdit_588["text"] = "0%"
      self.GLineEdit_588.place(x=400,y=620,width=70,height=25)

      self.GLabel_19=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_19["font"] = ft
      self.GLabel_19["fg"] = "#333333"
      self.GLabel_19["justify"] = "center"
      self.GLabel_19["text"] = "吸血"
      self.GLabel_19.place(x=470,y=620,width=35,height=30)

      self.GLineEdit_323=tk.Entry(root)
      self.GLineEdit_323["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_323["font"] = ft
      self.GLineEdit_323["fg"] = "#333333"
      self.GLineEdit_323["justify"] = "center"
      self.GLineEdit_323["text"] = "2%"
      self.GLineEdit_323.place(x=510,y=620,width=70,height=25)

      self.GLineEdit_129=tk.Entry(root)
      self.GLineEdit_129["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_129["font"] = ft
      self.GLineEdit_129["fg"] = "#333333"
      self.GLineEdit_129["justify"] = "center"
      self.GLineEdit_129["text"] = "百炼青刚剑+7"
      self.GLineEdit_129.place(x=1050,y=120,width=167,height=30)

      self.GButton_673=tk.Button(root)
      self.GButton_673["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_673["font"] = ft
      self.GButton_673["fg"] = "#000000"
      self.GButton_673["justify"] = "center"
      self.GButton_673["text"] = "卸下"
      self.GButton_673["relief"] = "groove"
      self.GButton_673.place(x=1220,y=120,width=44,height=30)
      self.GButton_673["command"] = self.GButton_673_command

      self.GLabel_994=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_994["font"] = ft
      self.GLabel_994["fg"] = "#333333"
      self.GLabel_994["justify"] = "center"
      self.GLabel_994["text"] = "头饰"
      self.GLabel_994.place(x=1020,y=150,width=30,height=30)

      self.GLineEdit_810=tk.Entry(root)
      self.GLineEdit_810["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_810["font"] = ft
      self.GLineEdit_810["fg"] = "#333333"
      self.GLineEdit_810["justify"] = "center"
      self.GLineEdit_810["text"] = "无"
      self.GLineEdit_810.place(x=1050,y=150,width=167,height=30)

      self.GButton_928=tk.Button(root)
      self.GButton_928["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_928["font"] = ft
      self.GButton_928["fg"] = "#000000"
      self.GButton_928["justify"] = "center"
      self.GButton_928["text"] = "卸下"
      self.GButton_928["relief"] = "groove"
      self.GButton_928.place(x=1220,y=150,width=44,height=30)
      self.GButton_928["command"] = self.GButton_928_command

      self.GLabel_789=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_789["font"] = ft
      self.GLabel_789["fg"] = "#333333"
      self.GLabel_789["justify"] = "center"
      self.GLabel_789["text"] = "衣服"
      self.GLabel_789.place(x=1020,y=180,width=31,height=30)

      self.GLineEdit_708=tk.Entry(root)
      self.GLineEdit_708["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_708["font"] = ft
      self.GLineEdit_708["fg"] = "#333333"
      self.GLineEdit_708["justify"] = "center"
      self.GLineEdit_708["text"] = "衣服"
      self.GLineEdit_708.place(x=1050,y=180,width=167,height=30)

      self.GButton_299=tk.Button(root)
      self.GButton_299["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_299["font"] = ft
      self.GButton_299["fg"] = "#000000"
      self.GButton_299["justify"] = "center"
      self.GButton_299["text"] = "卸下"
      self.GButton_299["relief"] = "groove"
      self.GButton_299.place(x=1220,y=180,width=44,height=30)
      self.GButton_299["command"] = self.GButton_299_command

      self.GLabel_466=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_466["font"] = ft
      self.GLabel_466["fg"] = "#333333"
      self.GLabel_466["justify"] = "center"
      self.GLabel_466["text"] = "腰带"
      self.GLabel_466.place(x=1020,y=210,width=32,height=30)

      self.GLineEdit_554=tk.Entry(root)
      self.GLineEdit_554["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_554["font"] = ft
      self.GLineEdit_554["fg"] = "#333333"
      self.GLineEdit_554["justify"] = "center"
      self.GLineEdit_554["text"] = "腰带"
      self.GLineEdit_554.place(x=1050,y=210,width=168,height=30)

      self.GButton_682=tk.Button(root)
      self.GButton_682["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_682["font"] = ft
      self.GButton_682["fg"] = "#000000"
      self.GButton_682["justify"] = "center"
      self.GButton_682["text"] = "卸下"
      self.GButton_682["relief"] = "groove"
      self.GButton_682.place(x=1220,y=210,width=44,height=30)
      self.GButton_682["command"] = self.GButton_682_command

      self.GLineEdit_809=tk.Entry(root)
      self.GLineEdit_809["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_809["font"] = ft
      self.GLineEdit_809["fg"] = "#333333"
      self.GLineEdit_809["justify"] = "center"
      self.GLineEdit_809["text"] = "首饰"
      self.GLineEdit_809.place(x=1050,y=240,width=167,height=30)

      self.GButton_289=tk.Button(root)
      self.GButton_289["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_289["font"] = ft
      self.GButton_289["fg"] = "#000000"
      self.GButton_289["justify"] = "center"
      self.GButton_289["text"] = "卸下"
      self.GButton_289["relief"] = "groove"
      self.GButton_289.place(x=1220,y=240,width=44,height=30)
      self.GButton_289["command"] = self.GButton_289_command

      self.GLabel_474=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_474["font"] = ft
      self.GLabel_474["fg"] = "#333333"
      self.GLabel_474["justify"] = "center"
      self.GLabel_474["text"] = "首饰"
      self.GLabel_474.place(x=1020,y=240,width=30,height=31)

      self.GLabel_368=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_368["font"] = ft
      self.GLabel_368["fg"] = "#333333"
      self.GLabel_368["justify"] = "center"
      self.GLabel_368["text"] = "鞋子"
      self.GLabel_368.place(x=1020,y=270,width=30,height=33)

      self.GLineEdit_31=tk.Entry(root)
      self.GLineEdit_31["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_31["font"] = ft
      self.GLineEdit_31["fg"] = "#333333"
      self.GLineEdit_31["justify"] = "center"
      self.GLineEdit_31["text"] = "鞋子"
      self.GLineEdit_31.place(x=1050,y=270,width=167,height=30)

      self.GButton_503=tk.Button(root)
      self.GButton_503["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_503["font"] = ft
      self.GButton_503["fg"] = "#000000"
      self.GButton_503["justify"] = "center"
      self.GButton_503["text"] = "卸下"
      self.GButton_503["relief"] = "groove"
      self.GButton_503.place(x=1220,y=270,width=44,height=30)
      self.GButton_503["command"] = self.GButton_503_command

      self.GLabel_355=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_355["font"] = ft
      self.GLabel_355["fg"] = "#333333"
      self.GLabel_355["justify"] = "center"
      self.GLabel_355["text"] = "境界"
      self.GLabel_355.place(x=590,y=620,width=35,height=30)

      self.GLineEdit_546=tk.Entry(root)
      self.GLineEdit_546["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_546["font"] = ft
      self.GLineEdit_546["fg"] = "#333333"
      self.GLineEdit_546["justify"] = "center"
      self.GLineEdit_546["text"] = "3"
      self.GLineEdit_546.place(x=630,y=620,width=70,height=25)

      self.GLabel_786=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_786["font"] = ft
      self.GLabel_786["fg"] = "#333333"
      self.GLabel_786["justify"] = "center"
      self.GLabel_786["text"] = "等级"
      self.GLabel_786.place(x=710,y=620,width=32,height=30)

      self.GLineEdit_644=tk.Entry(root)
      self.GLineEdit_644["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_644["font"] = ft
      self.GLineEdit_644["fg"] = "#333333"
      self.GLineEdit_644["justify"] = "center"
      self.GLineEdit_644["text"] = "9"
      self.GLineEdit_644.place(x=750,y=620,width=70,height=25)

      self.GLabel_582=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_582["font"] = ft
      self.GLabel_582["fg"] = "#333333"
      self.GLabel_582["justify"] = "center"
      self.GLabel_582["text"] = "灵石"
      self.GLabel_582.place(x=10,y=650,width=31,height=30)

      self.GLineEdit_998=tk.Entry(root)
      self.GLineEdit_998["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_998["font"] = ft
      self.GLineEdit_998["fg"] = "#333333"
      self.GLineEdit_998["justify"] = "center"
      self.GLineEdit_998["text"] = "1999"
      self.GLineEdit_998.place(x=40,y=650,width=95,height=30)

      self.GLabel_925=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_925["font"] = ft
      self.GLabel_925["fg"] = "#333333"
      self.GLabel_925["justify"] = "center"
      self.GLabel_925["text"] = "极品"
      self.GLabel_925.place(x=130,y=650,width=54,height=30)

      self.GLineEdit_789=tk.Entry(root)
      self.GLineEdit_789["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_789["font"] = ft
      self.GLineEdit_789["fg"] = "#333333"
      self.GLineEdit_789["justify"] = "center"
      self.GLineEdit_789["text"] = "101"
      self.GLineEdit_789.place(x=180,y=650,width=82,height=30)

      self.GLabel_312=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_312["font"] = ft
      self.GLabel_312["fg"] = "#333333"
      self.GLabel_312["justify"] = "center"
      self.GLabel_312["text"] = "强化石"
      self.GLabel_312.place(x=270,y=650,width=39,height=30)

      self.GLineEdit_198=tk.Entry(root)
      self.GLineEdit_198["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_198["font"] = ft
      self.GLineEdit_198["fg"] = "#333333"
      self.GLineEdit_198["justify"] = "center"
      self.GLineEdit_198["text"] = "强化石"
      self.GLineEdit_198.place(x=310,y=650,width=73,height=30)

      self.GLabel_565=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_565["font"] = ft
      self.GLabel_565["fg"] = "#333333"
      self.GLabel_565["justify"] = "center"
      self.GLabel_565["text"] = "修为"
      self.GLabel_565.place(x=420,y=650,width=46,height=30)

      self.GLineEdit_268=tk.Entry(root)
      self.GLineEdit_268["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_268["font"] = ft
      self.GLineEdit_268["fg"] = "#333333"
      self.GLineEdit_268["justify"] = "center"
      self.GLineEdit_268["text"] = "1640/1626"
      self.GLineEdit_268.place(x=470,y=650,width=171,height=30)

      self.GLineEdit_969=tk.Entry(root)
      self.GLineEdit_969["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_969["font"] = ft
      self.GLineEdit_969["fg"] = "#333333"
      self.GLineEdit_969["justify"] = "center"
      self.GLineEdit_969["text"] = "当前npc"
      self.GLineEdit_969.place(x=10,y=30,width=143,height=106)
      yscroll = Scrollbar(self.GLineEdit_969, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('NPC' , '操作','url' )
      self.tvNpc=ttk.Treeview(self.GLineEdit_969,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvNpc.yview)
      self.tvNpc.pack()
      self.tvNpc.column(title,width=85,anchor=CENTER)
      self.tvNpc.heading(title,text=title)
      self.tvNpc.column(title,width=40,anchor='w')
      self.tvNpc.heading(title,text=title)
      self.tvNpc.heading(title,text=title)
      self.tvNpc.bind('<<TreeviewSelect>>', self.tvNpcSelection)

      self.GLineEdit_612=tk.Entry(root)
      self.GLineEdit_612["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_612["font"] = ft
      self.GLineEdit_612["fg"] = "#333333"
      self.GLineEdit_612["justify"] = "center"
      self.GLineEdit_612["text"] = "当前野怪"
      self.GLineEdit_612.place(x=10,y=140,width=143,height=221)
      yscroll = Scrollbar(self.GLineEdit_612, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('怪物' , '操作','url' )
      self.tvMonster=ttk.Treeview(self.GLineEdit_612,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvMonster.yview)
      self.tvMonster.pack()
      self.tvMonster.column(title,width=85,anchor=CENTER)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.column(title,width=40,anchor='w')
      self.tvMonster.heading(title,text=title)
      self.tvMonster.heading(title,text=title)
      self.tvMonster.bind('<<TreeviewSelect>>', self.tvMonsterSelection)

      self.GLineEdit_252=tk.Entry(root)
      self.GLineEdit_252["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_252["font"] = ft
      self.GLineEdit_252["fg"] = "#333333"
      self.GLineEdit_252["justify"] = "center"
      self.GLineEdit_252["text"] = "公屏聊天内容"
      self.GLineEdit_252.place(x=160,y=480,width=751,height=87)

      self.GLineEdit_10=tk.Entry(root)
      self.GLineEdit_10["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_10["font"] = ft
      self.GLineEdit_10["fg"] = "#333333"
      self.GLineEdit_10["justify"] = "center"
      self.GLineEdit_10["text"] = "输入消息"
      self.GLineEdit_10.place(x=180,y=570,width=729,height=30)

      self.GButton_728=tk.Button(root)
      self.GButton_728["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_728["font"] = ft
      self.GButton_728["fg"] = "#000000"
      self.GButton_728["justify"] = "center"
      self.GButton_728["text"] = "发送"
      self.GButton_728.place(x=930,y=570,width=68,height=30)
      self.GButton_728["command"] = self.GButton_728_command

      self.GLineEdit_386=tk.Entry(root)
      self.GLineEdit_386["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_386["font"] = ft
      self.GLineEdit_386["fg"] = "#333333"
      self.GLineEdit_386["justify"] = "center"
      self.GLineEdit_386["text"] = "好友列表"
      self.GLineEdit_386.place(x=910,y=340,width=108,height=230)

      self.GCheckBox_967=tk.Checkbutton(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GCheckBox_967["font"] = ft
      self.GCheckBox_967["fg"] = "#333333"
      self.GCheckBox_967["justify"] = "center"
      self.GCheckBox_967["text"] = "公屏"
      self.GCheckBox_967.place(x=20,y=570,width=44,height=30)
      self.GCheckBox_967["offvalue"] = "0"
      self.GCheckBox_967["onvalue"] = "1"
      self.GCheckBox_967["command"] = self.GCheckBox_967_command

      self.GLineEdit_294=tk.Entry(root)
      self.GLineEdit_294["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_294["font"] = ft
      self.GLineEdit_294["fg"] = "#333333"
      self.GLineEdit_294["justify"] = "center"
      self.GLineEdit_294["text"] = "对方昵称"
      self.GLineEdit_294.place(x=70,y=570,width=99,height=30)

      self.GLineEdit_742=tk.Text(root)
      self.GLineEdit_742["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_742["font"] = ft
      self.GLineEdit_742["fg"] = "#333333"
      self.GLineEdit_742.place(x=390,y=30,width=520,height=448)

      self.GLabel_497=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_497["font"] = ft
      self.GLabel_497["fg"] = "#333333"
      self.GLabel_497["justify"] = "center"
      self.GLabel_497["text"] = "武器"
      self.GLabel_497.place(x=1020,y=120,width=30,height=30)

      self.GLabel_851=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_851["font"] = ft
      self.GLabel_851["fg"] = "#333333"
      self.GLabel_851["justify"] = "center"
      self.GLabel_851["text"] = "账号"
      self.GLabel_851.place(x=10,y=0,width=31,height=30)

      self.GButton_107=tk.Button(root)
      self.GButton_107["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_107["font"] = ft
      self.GButton_107["fg"] = "#000000"
      self.GButton_107["justify"] = "center"
      self.GButton_107["text"] = "登陆"
      self.GButton_107.place(x=240,y=0,width=70,height=25)
      self.GButton_107["command"] = self.GButton_107_command

      self.GLabel_35=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_35["font"] = ft
      self.GLabel_35["fg"] = "#333333"
      self.GLabel_35["justify"] = "center"
      self.GLabel_35["text"] = "密码"
      self.GLabel_35.place(x=120,y=0,width=42,height=30)

      self.GLineEdit_363=tk.Entry(root)
      self.GLineEdit_363["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_363["font"] = ft
      self.GLineEdit_363["fg"] = "#333333"
      self.GLineEdit_363["justify"] = "center"
      self.GLineEdit_363["text"] = "账号"
      self.GLineEdit_363.place(x=40,y=0,width=70,height=25)

      self.GLineEdit_127=tk.Entry(root)
      self.GLineEdit_127["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_127["font"] = ft
      self.GLineEdit_127["fg"] = "#333333"
      self.GLineEdit_127["justify"] = "center"
      self.GLineEdit_127["text"] = "密码"
      self.GLineEdit_127.place(x=160,y=0,width=70,height=25)

      self.GLabel_894=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_894["font"] = ft
      self.GLabel_894["fg"] = "#333333"
      self.GLabel_894["justify"] = "center"
      self.GLabel_894["text"] = "玩家昵称"
      self.GLabel_894.place(x=320,y=0,width=70,height=25)

      self.GLineEdit_458=tk.Entry(root)
      self.GLineEdit_458["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_458["font"] = ft
      self.GLineEdit_458["fg"] = "#333333"
      self.GLineEdit_458["justify"] = "center"
      self.GLineEdit_458["text"] = "玩家"
      self.GLineEdit_458.place(x=390,y=0,width=70,height=25)

      self.GLabel_129=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_129["font"] = ft
      self.GLabel_129["fg"] = "#333333"
      self.GLabel_129["justify"] = "center"
      self.GLabel_129["text"] = "所属门派"
      self.GLabel_129.place(x=470,y=0,width=62,height=30)

      self.GLineEdit_456=tk.Entry(root)
      self.GLineEdit_456["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_456["font"] = ft
      self.GLineEdit_456["fg"] = "#333333"
      self.GLineEdit_456["justify"] = "center"
      self.GLineEdit_456["text"] = "门派"
      self.GLineEdit_456.place(x=540,y=0,width=70,height=25)

      self.GLabel_80=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_80["font"] = ft
      self.GLabel_80["fg"] = "#333333"
      self.GLabel_80["justify"] = "center"
      self.GLabel_80["text"] = "任务"
      self.GLabel_80.place(x=1020,y=50,width=30,height=41)

      self.GLineEdit_39=tk.Entry(root)
      self.GLineEdit_39["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_39["font"] = ft
      self.GLineEdit_39["fg"] = "#333333"
      self.GLineEdit_39["justify"] = "center"
      self.GLineEdit_39["text"] = "任务"
      self.GLineEdit_39.place(x=1050,y=0,width=208,height=116)

      self.GLineEdit_445=tk.Text(root)
      self.GLineEdit_445["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_445["font"] = ft
      self.GLineEdit_445["fg"] = "#333333"
      self.GLineEdit_445.place(x=1020,y=340,width=243,height=241)

      self.GButton_947=tk.Button(root)
      self.GButton_947["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_947["font"] = ft
      self.GButton_947["fg"] = "#000000"
      self.GButton_947["justify"] = "center"
      self.GButton_947["text"] = "修练查看"
      self.GButton_947["relief"] = "groove"
      self.GButton_947.place(x=860,y=610,width=58,height=30)
      self.GButton_947["command"] = self.GButton_947_command

      self.GLineEdit_714=tk.Entry(root)
      self.GLineEdit_714["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_714["font"] = ft
      self.GLineEdit_714["fg"] = "#333333"
      self.GLineEdit_714["justify"] = "center"
      self.GLineEdit_714["text"] = "30"
      self.GLineEdit_714.place(x=650,y=650,width=51,height=30)

      self.GLabel_364=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_364["font"] = ft
      self.GLabel_364["fg"] = "#333333"
      self.GLabel_364["justify"] = "center"
      self.GLabel_364["text"] = "分钟"
      self.GLabel_364.place(x=710,y=650,width=30,height=30)

      self.GLineEdit_563=tk.Entry(root)
      self.GLineEdit_563["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_563["font"] = ft
      self.GLineEdit_563["fg"] = "#333333"
      self.GLineEdit_563["justify"] = "center"
      self.GLineEdit_563["text"] = "920"
      self.GLineEdit_563.place(x=740,y=650,width=60,height=30)

      self.GLabel_403=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_403["font"] = ft
      self.GLabel_403["fg"] = "#333333"
      self.GLabel_403["justify"] = "center"
      self.GLabel_403["text"] = "修为"
      self.GLabel_403.place(x=800,y=650,width=35,height=30)

      self.GButton_744=tk.Button(root)
      self.GButton_744["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_744["font"] = ft
      self.GButton_744["fg"] = "#000000"
      self.GButton_744["justify"] = "center"
      self.GButton_744["text"] = "停止"
      self.GButton_744["relief"] = "groove"
      self.GButton_744.place(x=860,y=650,width=64,height=30)
      self.GButton_744["command"] = self.GButton_744_command

      self.GButton_32=tk.Button(root)
      self.GButton_32["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_32["font"] = ft
      self.GButton_32["fg"] = "#000000"
      self.GButton_32["justify"] = "center"
      self.GButton_32["text"] = "装备"
      self.GButton_32["relief"] = "groove"
      self.GButton_32.place(x=1030,y=310,width=35,height=30)
      self.GButton_32["command"] = self.GButton_32_command

      self.GButton_793=tk.Button(root)
      self.GButton_793["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_793["font"] = ft
      self.GButton_793["fg"] = "#000000"
      self.GButton_793["justify"] = "center"
      self.GButton_793["text"] = "药品"
      self.GButton_793["relief"] = "groove"
      self.GButton_793.place(x=1070,y=310,width=35,height=30)
      self.GButton_793["command"] = self.GButton_793_command

      self.GButton_217=tk.Button(root)
      self.GButton_217["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_217["font"] = ft
      self.GButton_217["fg"] = "#000000"
      self.GButton_217["justify"] = "center"
      self.GButton_217["text"] = "道具"
      self.GButton_217["relief"] = "groove"
      self.GButton_217.place(x=1110,y=310,width=34,height=30)
      self.GButton_217["command"] = self.GButton_217_command

      self.GButton_889=tk.Button(root)
      self.GButton_889["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_889["font"] = ft
      self.GButton_889["fg"] = "#000000"
      self.GButton_889["justify"] = "center"
      self.GButton_889["text"] = "符箓"
      self.GButton_889["relief"] = "groove"
      self.GButton_889.place(x=1150,y=310,width=35,height=30)
      self.GButton_889["command"] = self.GButton_889_command

      self.GButton_724=tk.Button(root)
      self.GButton_724["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_724["font"] = ft
      self.GButton_724["fg"] = "#000000"
      self.GButton_724["justify"] = "center"
      self.GButton_724["text"] = "坊市"
      self.GButton_724["relief"] = "groove"
      self.GButton_724.place(x=1190,y=310,width=35,height=30)
      self.GButton_724["command"] = self.GButton_724_command

      self.GButton_210=tk.Button(root)
      self.GButton_210["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_210["font"] = ft
      self.GButton_210["fg"] = "#000000"
      self.GButton_210["justify"] = "center"
      self.GButton_210["text"] = "排行"
      self.GButton_210["relief"] = "groove"
      self.GButton_210.place(x=1230,y=310,width=35,height=30)
      self.GButton_210["command"] = self.GButton_210_command

      self.GLabel_380=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_380["font"] = ft
      self.GLabel_380["fg"] = "#333333"
      self.GLabel_380["justify"] = "center"
      self.GLabel_380["text"] = "当前地图"
      self.GLabel_380.place(x=610,y=0,width=67,height=30)

      self.GLineEdit_300=tk.Entry(root)
      self.GLineEdit_300["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_300["font"] = ft
      self.GLineEdit_300["fg"] = "#333333"
      self.GLineEdit_300["justify"] = "center"
      self.GLineEdit_300["text"] = "当前地图"
      self.GLineEdit_300.place(x=690,y=0,width=140,height=30)

      self.GLineEdit_179=tk.Entry(root)
      self.GLineEdit_179["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_179["font"] = ft
      self.GLineEdit_179["fg"] = "#333333"
      self.GLineEdit_179["justify"] = "center"
      self.GLineEdit_179["text"] = "当前场景玩家"
      self.GLineEdit_179.place(x=10,y=370,width=146,height=195)

      self.GLabel_953=tk.Label(root)
      ft = tkFont.Font(family='Times',size=10)
      self.GLabel_953["font"] = ft
      self.GLabel_953["fg"] = "#333333"
      self.GLabel_953["justify"] = "center"
      self.GLabel_953["text"] = "当前对象"
      self.GLabel_953.place(x=170,y=30,width=54,height=30)

      self.GLineEdit_824=tk.Entry(root)
      self.GLineEdit_824["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_824["font"] = ft
      self.GLineEdit_824["fg"] = "#333333"
      self.GLineEdit_824["justify"] = "center"
      self.GLineEdit_824["text"] = "对象"
      self.GLineEdit_824.place(x=230,y=30,width=152,height=30)

      self.GListBox_981=tk.Text(root)
      self.GListBox_981["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GListBox_981["font"] = ft
      self.GListBox_981["fg"] = "#333333"
      self.GListBox_981.place(x=160,y=190,width=226,height=287)

      self.GButton_779=tk.Button(root)
      self.GButton_779["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_779["font"] = ft
      self.GButton_779["fg"] = "#000000"
      self.GButton_779["justify"] = "center"
      self.GButton_779["text"] = "操作1"
      self.GButton_779["relief"] = "groove"
      self.GButton_779.place(x=170,y=70,width=58,height=30)
      self.GButton_779["command"] = self.GButton_779_command



      self.GLineEdit_938=tk.Entry(root)
      self.GLineEdit_938["borderwidth"] = "1px"
      ft = tkFont.Font(family='Times',size=10)
      self.GLineEdit_938["font"] = ft
      self.GLineEdit_938["fg"] = "#333333"
      self.GLineEdit_938["justify"] = "center"
      self.GLineEdit_938["text"] = "世界地图"
      self.GLineEdit_938.place(x=910,y=0,width=108,height=336)
      yscroll = Scrollbar(self.GLineEdit_938, orient=VERTICAL)
      yscroll.pack(side=RIGHT, fill=Y)
      title=('地图列表' , '操作','url' )
      self.tvAllMap=ttk.Treeview(self.GLineEdit_938,columns=title,style='Treeview',show='headings',height=10, yscrollcommand=yscroll.set)
      yscroll.config(command=self.tvAllMap.yview)
      self.tvAllMap.pack()
      self.tvAllMap.column(title,width=85,anchor=CENTER)
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.column(title,width=40,anchor='w')
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.heading(title,text=title)
      self.tvAllMap.bind('<<TreeviewSelect>>', self.tvAllMapSelection)

      self.GButton_745=tk.Button(root)
      self.GButton_745["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_745["font"] = ft
      self.GButton_745["fg"] = "#000000"
      self.GButton_745["justify"] = "center"
      self.GButton_745["text"] = "操作2"
      self.GButton_745["relief"] = "groove"
      self.GButton_745.place(x=240,y=70,width=61,height=30)
      self.GButton_745["command"] = self.GButton_745_command

      self.GButton_152=tk.Button(root)
      self.GButton_152["bg"] = "#efefef"
      ft = tkFont.Font(family='Times',size=10)
      self.GButton_152["font"] = ft
      self.GButton_152["fg"] = "#000000"
      self.GButton_152["justify"] = "center"
      self.GButton_152["text"] = "操作3"
      self.GButton_152["relief"] = "groove"
      self.GButton_152.place(x=310,y=70,width=61,height=30)
      self.GButton_152["command"] = self.GButton_152_command

      self.GButton_14=tk.Button(root)
      self.GButton_14["bg"] = "#efefef"
      ftGButton_14 = tkFont.Font(family='Times',size=8)
      self.GButton_14["font"] = ftGButton_14
      self.GButton_14["fg"] = "#000000"
      self.GButton_14["justify"] = "center"
      self.GButton_14["text"] = "技能1"
      self.GButton_14["relief"] = "groove"
      self.GButton_14.place(x=170,y=110,width=57,height=30)
      self.GButton_14["command"] = self.GButton_14_command

      self.GButton_645=tk.Button(root)
      self.GButton_645["bg"] = "#efefef"
      ftGButton_645 = tkFont.Font(family='Times',size=8)
      self.GButton_645["font"] = ftGButton_645
      self.GButton_645["fg"] = "#000000"
      self.GButton_645["justify"] = "center"
      self.GButton_645["text"] = "技能2"
      self.GButton_645["relief"] = "groove"
      self.GButton_645.place(x=240,y=110,width=61,height=30)
      self.GButton_645["command"] = self.GButton_645_command

      self.GButton_141=tk.Button(root)
      self.GButton_141["bg"] = "#efefef"
      ftGButton_141 = tkFont.Font(family='Times',size=8)
      self.GButton_141["font"] = ftGButton_141
      self.GButton_141["fg"] = "#000000"
      self.GButton_141["justify"] = "center"
      self.GButton_141["text"] = "技能3"
      self.GButton_141["relief"] = "groove"
      self.GButton_141.place(x=310,y=110,width=61,height=30)
      self.GButton_141["command"] = self.GButton_141_command

      self.GButton_581=tk.Button(root)
      self.GButton_581["bg"] = "#efefef"
      ftGButton_581 = tkFont.Font(family='Times',size=8)
      self.GButton_581["font"] = ftGButton_581
      self.GButton_581["fg"] = "#000000"
      self.GButton_581["justify"] = "center"
      self.GButton_581["text"] = "药品1"
      self.GButton_581["relief"] = "groove"
      self.GButton_581.place(x=170,y=150,width=57,height=30)
      self.GButton_581["command"] = self.GButton_581_command

      self.GButton_405=tk.Button(root)
      self.GButton_405["bg"] = "#efefef"
      ftGButton_405 = tkFont.Font(family='Times',size=8)
      self.GButton_405["font"] = ftGButton_405
      self.GButton_405["fg"] = "#000000"
      self.GButton_405["justify"] = "center"
      self.GButton_405["text"] = "药品2"
      self.GButton_405["relief"] = "groove"
      self.GButton_405.place(x=240,y=150,width=63,height=30)
      self.GButton_405["command"] = self.GButton_405_command

      self.GButton_125=tk.Button(root)
      self.GButton_125["bg"] = "#efefef"
      ftGButton_125 = tkFont.Font(family='Times',size=8)
      self.GButton_125["font"] = ftGButton_125
      self.GButton_125["fg"] = "#000000"
      self.GButton_125["justify"] = "center"
      self.GButton_125["text"] = "药品3"
      self.GButton_125["relief"] = "groove"
      self.GButton_125.place(x=310,y=150,width=60,height=30)
      self.GButton_125["command"] = self.GButton_125_command

    def tvNpcSelection(self,event):
      items = event.widget.selection()
      item = self.tvNpc.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      # self.refreshGame(url_oprate)
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'

    def tvAllMapSelection(self,event):
      items = event.widget.selection()
      item = self.tvAllMap.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      self.refreshGame(url_oprate)

    def tvMonsterSelection(self, event):

      # self.GLineEdit_companyname.delete(0,'end')

      items = event.widget.selection()
      item = self.tvMonster.item(items)['values']
      name = item
      url_oprate = self.url_game+item
      # self.GLineEdit_companyname.insert(0,item)
      self.setNowObject(name,url_oprate)
      self.GButton_779['state'] = 'active'
      # print('选择的是:' + str(event.widget.selection()))

    def setNowObject(self,name,href):
      self.GLineEdit_824.delete(0,'end')
      self.GLineEdit_824.insert(0,name)
      # self._log(href)
      # links = self.getHrefLabelLinks(req)
      url = href
      if self.needDecode:
            url = self.DecodeParam(href)
      types = re.search("cmd=cmd=.*?&",url)
      type = None
      iftypes:
            type = types.group(0)
      if not type:
            return
      # self._log(type)
      req = self._requests('get', href, decode_level=1)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//body/text()")
      links =[]
      self.GListBox_981.delete(0.0,'end')
      self.GButton_779['text'] = '暂无功能'
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                if "掉落" in text:
                  self.GListBox_981.insert('end',"\n"+text+"\n")
                else:
                  self.GListBox_981.insert('end',text+"\n")
      table_element = html_etree.xpath("//body//div/a/text()")
      for row in table_element:
            text = row.strip().replace('\n', '').replace('\r\n', '')
            if len(text)>0:
                self.GListBox_981.insert('end',row.strip()+"\n")

      table_element = html_etree.xpath("//a")
      for row in table_element:
            if row.text =='攻击':
                # print(row.text)
                self.GButton_779['text'] = '查看'
                self.NowObject_op1 = self.url_game+row.attrib["href"]
                # self._log(self.NowObject_op1)
      links = []
      try:
            links = self.getHrefLabelLinks(req)
      except:
            pass
      # links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})


      for link in links:
            if link['text'] == "返回游戏" :
                break
            iflink['type'] =='npc':
                self.GListBox_981.insert('end',f'{"-"*53}'+"\n")
                self.GListBox_981.insert('end',link['text']+"\n")
                if 'canshu=rehp' in link['href']:
                  self.GButton_779['text'] = '生命恢复'
                  self.NowObject_op1 = self.url_game + link['dhref']
                elif 'canshu=gogoumai' in link['href']:
                  self.GButton_779['text'] = '购买药品'
                  self.NowObject_op1 = self.url_game + link['dhref']

                else:
                  self.GButton_779['text'] = '暂无功能'



    def GButton_779_command(self): #查看血量 野怪详情
      # print("command self.GButton_779")
      if self.NowObject_op1:
            req = self._requests('get', self.NowObject_op1, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip)>0:
                  if rowstrip == "==战斗==":
                        self.GListBox_981.insert('end',rowstrip+"\n")
                        userHP = re.findall("气血.*?<br",req) #.group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp= table_element_hp + "/" +table_element_hp
                        self._log("当前HP: "+hp)
                        self.GLineEdit_556.delete(0,'end')
                        self.GLineEdit_556.insert(0,hp)
                        self.status_pve = True
                  elif rowstrip == "===================":
                        self.GListBox_981.insert('end',tempstr+"\n")
                        tempstr = ""
                        self.GListBox_981.insert('end',rowstrip+"\n")
                  elif rowstrip =='逃跑':
                        continue
                  elif rowstrip =='信息:来来来   便宜':
                        self.GListBox_981.insert('end',f'{"-"*53}'+"\n")
                        break
                  else:
                        tempstr= tempstr +" "+ rowstrip
            self.GListBox_981.insert('end',tempstr+"\n")
            links = self.getHrefLabelLinks(req)
            i_pve = 0;
            i_pvegj = 0
            for link in links:
                if link['text'] =='攻击':
                  self.GButton_745['text'] = '攻击'
                  self.NowObject_op2 = link["dhref"]
                  self.NowObject_op3 = link["dhref"]
                  # self._log(self.NowObject_op1)
                  self.GButton_745['state'] = 'active'
                  self.GButton_152['text'] = '连续攻击'
                if link['type'] =='pve':
                  i_pve += 1
                  if i_pve == 1:
                        self.GButton_581['text'] = link['text']
                        self.url_pve_useyp1 = link['dhref']
                  elif i_pve == 2:
                        self.GButton_405['text'] = link['text']
                        self.url_pve_useyp2 = link['dhref']
                  else:
                        self.GButton_125['text'] = link['text']
                        self.url_pve_useyp3 = link['dhref']
                if link['type'] =='pvegj' and 'canshu=usejn' in link['href']:
                  i_pvegj += 1
                  if i_pvegj == 1:
                        self.GButton_14['text'] = link['text']
                        self.url_pve_usejn1 = link['dhref']
                  elif i_pvegj == 2:
                        self.GButton_645['text'] = link['text']
                        self.url_pve_usejn2 = link['dhref']
                  else:
                        self.GButton_141['text'] = link['text']
                        self.url_pve_usejn3 = link['dhref']
                if link['type'] =='npc':
                  if 'ypid=6' in link['href']: #还原丹
                        self.GButton_745['text'] = '还原丹1个'
                        self.GButton_152['text'] = '还原丹10个'
                        if 'ypcount=1&' in link['href']:
                            self.NowObject_op2 = link['dhref']
                        else:
                            self.NowObject_op3 = link['dhref']
                  elif 'ypid=7' in link['href']: #回血散
                        self.GButton_14['text'] = '回血散1个'
                        self.GButton_645['text'] = '回血散10个'
                        if 'ypcount=1&' in link['href']:
                            self.url_pve_usejn1 = link['dhref']
                        else:
                            self.url_pve_usejn2 = link['dhref']
                  elif 'ypid=8' in link['href']: #回春汤
                        self.GButton_141['text'] = '回春汤1个'
                        self.GButton_581['text'] = '回春汤10个'
                        if 'ypcount=1&' in link['href']:
                            self.url_pve_usejn3 = link['dhref']
                        else:
                            self.url_pve_useyp1 = link['dhref']
                  elif 'ypid=9' in link['href']: #复伤丹
                        self.GButton_405['text'] = '复伤丹1个'
                        self.GButton_125['text'] = '复伤丹10个'
                        if 'ypcount=1&' in link['href']:
                            self.url_pve_useyp2 = link['dhref']
                        else:
                            self.url_pve_useyp3 = link['dhref']
                  else:
                        pass
                if link['type'] =='ypinfo':
                  self.GListBox_981.insert('end',link['text']+" ")
                  url =self.url_game + link['dhref']
                  req = self._requests('get', url, decode_level=1)
                  hp = re.search("气血.*?<br",req).group(0)[:-3]
                  self.GListBox_981.insert('end',hp+"\n")

      # self.GButton_9_command()


    def GButton_745_command(self): #发起进攻
            if self.NowObject_op2:
                req = self._requests('get', self.url_game+self.NowObject_op2, decode_level=1)
                html_etree = etree.HTML(req)
                table_element = html_etree.xpath("//body//text()")
                tempstr = ""
                hp = None
                for row in table_element:
                  text = row.strip().replace('\n', '').replace('\r\n', '')
                  if len(text)>0:
                        # self.GListBox_981.insert('end',row.strip()+"\n")
                        rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                        if rowstrip == "==战斗==":
                            self._log(rowstrip)
                            userHP = re.findall("气血.*?<br",req) #.group(1)[:-3]
                            html_etree_hp = etree.HTML(userHP)
                            table_element_hp = html_etree_hp.xpath("//div//text()")
                            hp= table_element_hp + "/" +table_element_hp
                            self.GLineEdit_556.delete(0,'end')
                            self.GLineEdit_556.insert(0,hp)

                        elif rowstrip == "===================":
                            self._log(tempstr)
                            tempstr = ""
                            self._log(rowstrip)
                        elif rowstrip =='逃跑':
                            break
                        elif'成功' in rowstrip:
                            tempstr = rowstrip
                            break
                        elif rowstrip =='返回游戏':
                            table_element = html_etree.xpath("//a")
                            for row in table_element:
                              if row.text == '返回游戏':
                                    url_game =self.url_game+row.attrib["href"]
                                    self.refreshGame(url_game)
                                    # self.GButton_745['state'] = 'disable'
                                    # self.GButton_779['state'] = 'disable'
                                    break
                        else:
                            tempstr= tempstr +" "+ rowstrip
                self._log(tempstr)
                if hp:
                  self._log("当前HP: "+hp)


    def GButton_9_command(self):
      print(self.NowPosition)
      self.refreshGame(self.NowPosition)


    def GButton_720_command(self):
      url_game = self.url_game + self.url_navN
      self.refreshGame(url_game)


    def GButton_126_command(self):#向西
      url = self.url_navW
      url_game = self.url_game + self.url_navW
      self.refreshGame(url_game)


    def GButton_750_command(self):
      url_game = self.url_game + self.url_navE
      self.refreshGame(url_game)


    def GButton_181_command(self):
      url_game = self.url_game + self.url_navS
      self.refreshGame(url_game)


    def GButton_673_command(self):
      print("command")


    def GButton_928_command(self):
      print("command")


    def GButton_299_command(self):
      print("command")


    def GButton_682_command(self):
      print("command")


    def GButton_289_command(self):
      print("command")


    def GButton_503_command(self):
      print("command")





    def GCheckBox_967_command(self):
      print("command")


    def GButton_107_command(self):
      username = self.GLineEdit_363.get().strip()
      userpass = self.GLineEdit_127.get().strip()
      url_login = self.url_base
      data_login = {"username":username,"userpass":userpass,"submit":"登陆"}
      req = self._requests('post', url_login, decode_level=3,data=data_login)
      # print(req.headers)
      # print(req.headers["refresh"])
      refresh = None
      url_refresh = None
      try:
            refresh = req.headers["refresh"]
      except:
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return
      if not refresh: #登陆成功
            self._log(f"账号{username}登陆失败,请检查账号或密码")
            return

      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"服务器返回数据出错,退出登陆")
            return
      self._log(f"账号{username}登陆成功")
      url_refresh = url_split
      url_game = self.url_base + url_refresh
      # print(url_game) #refresh地址 获取用户信息
      req = self._requests('get', url_game, decode_level=3)
      refresh = None
      try:
            refresh = req.headers["refresh"] #取用户信息成功跳转上次玩家地图
      except:
            self._log(f"服务器返回数据出错,请联系管理员")
            return

      if not refresh:
            self._log(f"服务器返回数据出错,请联系管理员")
            return
      self._log(f"获取用户信息成功")
      url_split = refresh.split("url=")
      if len(url_split) != 2:
            self._log(f"进入寻仙世界失败,请联系管理员")
            return
      url_refresh = url_split
      url_game = self.url_game + url_refresh
      self._log(f"欢迎进入寻仙世界")
      self.refreshGame(url_game)
      self.NowPosition = url_game

    def refreshGame(self,url_game):
      self.NowPosition = url_game
      req = self._requests('get', url_game, decode_level=1)
      try:
            mapname = re.search("当前地图:.*?<a",req).group(0)
            self.GLineEdit_300.delete(0,'end')
            self.GLineEdit_300.insert(0,mapname)
            self.GButton_9['text'] = mapname
            links = self.getHrefLabelLinks(req)
            self.analysisStatus(links)
      except:
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//a")
            href = None
            for row in table_element:
                text = row.text
                href= row.attrib["href"]
                url =href
                if self.needDecode:
                  url = self.DecodeParam(url)
                if text == '突破' and 'canshu=tupo' in url:
                  break
            if href:
                req = self._requests('get', self.url_game+href, decode_level=1)
                if "灵石不足" in req:
                  value = re.search(f"突破需要灵石.*?<a",req).group(0)[:-2]
                  self._log(f"突破失败,灵石不足!{value}")
                if "突破成功" in req:
                  self._log("突破成功!")
                  self.refreshGame(url_game)
      try:
            self.tvMonster.selection_set('Item001')
      except:
            pass
      # try:
      #   obj1 = threading.Thread(target=self.TestSched, args=())
      #   obj1.setDaemon(True)
      #   obj1.start()
      #   pass
      #
      # except:
      #   pass

    def TestSched(self):
      # print("刷新第一个怪物")
      while self.status_autofighting :
            time.sleep(0.1)
            # self.tvMonster.selection_set('Item001')#刷新第一个怪物
            time.sleep(0.1)
            self.GButton_779_command()#查看
            time.sleep(0.1)
            str = self.GLineEdit_556.get()#血量监控
            hps =str.split('/')
            nowhp = int(hps)
            allhp = int(hps)
            if allhp -nowhp > 100:
                self.GButton_581_command()
                time.sleep(0.1)
            elif allhp -nowhp > 300:
                self.GButton_405_command()
                time.sleep(0.1)

            self.GButton_152_command() #连续攻击

    def GButton_728_command(self):
      print("command")
      self.status_autofighting = not self.status_autofighting
      if self.status_autofighting:
            self.GButton_728['text'] = '自动战斗'
      else:
            self.GButton_728['text'] = '停止战斗'

      try:
            obj1 = threading.Thread(target=self.TestSched, args=())
            obj1.setDaemon(True)
            obj1.start()
            pass

      except:
            pass

    def getHrefLabelLinks(self,req):
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      links =[]
      for row in table_element:
            href= row.attrib["href"]
            dhref = href
            if self.needDecode:
                href = self.DecodeParam(href)
            types = re.search("cmd=cmd=.*?&",href)
            type = None
            if not types:
                continue
            else:
                type = types.group(0)
            links.append({"text":row.text,"href":href,"type":type,"dhref":dhref})

      return links

    def analysisStatus(self,links):
      url = self.getStatusUrl(links,"状态")
      if url:
            self.setStatusUserInfo(url)
      url = self.getStatusUrl(links,"包裹")
      if url:
            self.setStatusPackageDrugsInfo(url)
      url = self.getStatusUrl(links,"查看地图")
      if url:
            self.setAllMap(url)

      for i in self.tvMonster.get_children():
                self.tvMonster.delete(i)
      for i in self.tvNpc.get_children():
                self.tvNpc.delete(i)
      navs =[]
      self.reset(self.tvMonster)
      for link in links:
            if link['type']:
                type = link['type']
                if type == "npc":
                  self.tvNpc.insert('', 'end', values=(link['text'],"查看",link['dhref']))
                if type =="getginfo": #野怪
                  id_tv = self.next_id()
                  self.tvMonster.insert('', 'end',id = id_tv, values=(link['text'],"查看",link['dhref']) )
                if type =="gomid": #导航
                  navs.append(link)
      self.setNav(navs)
      # self.tvMonster.selection_set('I001')#刷新第一个怪物

    def next_id(self):
            global counter_tv
            counter_tv += 1
            return "Item%.3d" % counter_tv

    def reset(self,o):
      global counter_tv
      for item in o.get_children():
            o.delete(item)
      counter_tv = 0

    def setAllMap(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      for i in self.tvAllMap.get_children():
                self.tvAllMap.delete(i)
      html_etree = etree.HTML(req)
      table_element = html_etree.xpath("//a")
      for row in table_element:
            href= row.attrib["href"]
            if row.text == '返回上一页':
                break
            self.tvAllMap.insert('', 'end', values=(row.text,"查看",href))

    def setNav(self,navs):
      N = False
      S = False
      W = False
      E = False
      for link in navs:
            if "←" in link['text']:
                W = True
                self.GButton_126["text"] = link['text']
                self.GButton_126["state"] = 'active'
                self.url_navW = link['dhref']
            if "→" in link['text']:
                E= True
                self.GButton_750["text"] = link['text']
                self.GButton_750["state"] = 'active'
                self.url_navE = link['dhref']
            if "↓" in link['text']:
                S = True
                self.GButton_181["text"] = link['text']
                self.GButton_181["state"] = 'active'
                self.url_navS = link['dhref']
            if "↑" in link['text']:
                N = True
                self.GButton_720["text"] = link['text']
                self.GButton_720["state"] = 'active'
                self.url_navN = link['dhref']
      if not N :
            self.GButton_720["state"] ='disable'
            self.GButton_720["text"] =   '此路不通'
      if not S :
            self.GButton_181["state"] = 'disable'
            self.GButton_181["text"] =   '此路不通'
      if not E :
            self.GButton_750["state"] = 'disable'
            self.GButton_750["text"] =   '此路不通'
      if not W :
            self.GButton_126["state"] = 'disable'
            self.GButton_126["text"] =   '此路不通'





    def getStatusUrl(self,links,callName):
      url=''
      for link in links:
            if link["text"] == callName:
                url =link["dhref"]
                return url

    def setStatusPackageDrugsInfo(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.GLineEdit_445.delete(0.0,'end')
      for i in range(1,50):
            str = f'\[{i}\]'
            str_show = self.getPackageDrugsInfoReqValue(req,str)
            if str_show:
                self.GLineEdit_445.insert('end',self.getPackageDrugsInfoReqValue(req,str)+"\n")

    def getPackageDrugsInfoReqValue(self,req,text):
      l = len(text)
      try:
            value = re.search(f"{text}\..*?</a>",req).group(0)
            if value.startswith("<a"):
               value = re.search(">.*?</a>",value).group(0)
            return value
      except:
            return None

    def setStatusUserInfo(self,url):
      url= self.url_game+url
      req = self._requests('get', url, decode_level=1)
      self.setEditText(self.GLineEdit_458,self.getReqValue(req,'昵称'))
      self.setEditText(self.GLineEdit_546,self.getReqValue(req,'境界'))
      self.setEditText(self.GLineEdit_644,self.getReqValue(req,'等级'))
      self.setEditText(self.GLineEdit_268,self.getReqValue(req,'修为'))
      self.setEditText(self.GLineEdit_998,self.getReqValue(req,'灵石'))
      self.setEditText(self.GLineEdit_789,self.getReqValue(req,'极品灵石'))
      self.setEditText(self.GLineEdit_556,self.getReqValue(req,'气血'))
      self.setEditText(self.GLineEdit_634,self.getReqValue(req,'攻击'))
      self.setEditText(self.GLineEdit_875,self.getReqValue(req,'防御'))
      self.setEditText(self.GLineEdit_588,self.getReqValue(req,'暴击'))
      self.setEditText(self.GLineEdit_323,self.getReqValue(req,'吸血'))
      self.setEditText(self.GLineEdit_129,self.getReqValue(req,'武器'))
      self.setEditText(self.GLineEdit_810,self.getReqValue(req,'头饰'))
      self.setEditText(self.GLineEdit_708,self.getReqValue(req,'衣服'))
      self.setEditText(self.GLineEdit_554,self.getReqValue(req,'腰带'))
      self.setEditText(self.GLineEdit_809,self.getReqValue(req,'首饰'))
      self.setEditText(self.GLineEdit_31,self.getReqValue(req,'鞋子'))

    def getReqValue(self,req,text):
      l = len(text)
      value = re.search(f"{text}:.*?<br/>",req).group(0)
      if value.startswith("<a"):
             value = re.search(">.*?</a>",value).group(0)
      return value

    def setEditText(self,_GLineEdit,value):
      _GLineEdit.delete(0,'end')
      _GLineEdit.insert(0,value)





    def GButton_947_command(self):
      print(self.NowPosition)



    def GButton_744_command(self):
      print("command")


    def GButton_32_command(self):
      print("command")


    def GButton_793_command(self):
      print("command")


    def GButton_217_command(self):
      print("command")


    def GButton_889_command(self):
      print("command")


    def GButton_724_command(self):
      print("command")


    def GButton_210_command(self):
      print("command")


    def GButton_14_command(self):#技能一
      url = self.url_pve_usejn1
      self.NowObject_run(url)



    def GButton_645_command(self):#技能二
      url = self.url_pve_usejn2
      self.NowObject_run(url)


    def GButton_141_command(self):#技能三
      url = self.url_pve_usejn3
      self.NowObject_run(url)


    def GButton_581_command(self): #药品一按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp1
      # self.GButton_779_command()
      url = self.url_pve_useyp1
      self.NowObject_run(url)


    def GButton_405_command(self):#药品二按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp2
      # self.GButton_779_command()
      url = self.url_pve_useyp2
      self.NowObject_run(url)


    def GButton_125_command(self):#药品三按钮
      # self.NowObject_op1 = self.url_game + self.url_pve_useyp3
      # self.GButton_779_command()
      url = self.url_pve_useyp3
      self.NowObject_run(url)


    def GButton_152_command(self):
      # print("GButton_152_command")
      url = self.NowObject_op3
      self.NowObject_run(url)

    def NowObject_run(self,url):
      if url:
            status_fight = False
            href= url
            if self.needDecode:
                href = self.DecodeParam(href)
            if "cmd=pvegj&" in href:
                status_fight = True
            if "canshu=usejn&" in href:
                status_fight = False

            # print(url)
            req = self._requests('get', self.url_game+url, decode_level=1)
            html_etree = etree.HTML(req)
            table_element = html_etree.xpath("//body//text()")
            tempstr = ""
            hp = None
            for row in table_element:
                rowstrip = row.strip().replace('\n', '').replace('\r\n', '')
                if len(rowstrip)>0:
                  if rowstrip == "==战斗==":
                        self._log(rowstrip)
                  elif rowstrip == "===================":
                        self._log(tempstr)
                        tempstr = ""
                        userHP = re.findall("气血.*?<br",req) #.group(1)[:-3]
                        html_etree_hp = etree.HTML(userHP)
                        table_element_hp = html_etree_hp.xpath("//div//text()")
                        hp= table_element_hp + "/" +table_element_hp
                        self.GLineEdit_556.delete(0,'end')
                        self.GLineEdit_556.insert(0,hp)
                        self._log(rowstrip)
                  elif rowstrip =='逃跑':
                        break

                  elif '灵石数量不足' in rowstrip or '成功' in rowstrip:
                        # print(req)
                        msg = re.search("便宜<br/>.*?<br/>",req,re.S).group(0)
                        msg = msg.replace("\r\n","").replace(" ","")
                        msg = "购买状态:"+msg
                        self._log(msg)
                        tempstr = None
                        break
                  elif rowstrip =='返回游戏':
                        table_element = html_etree.xpath("//a")
                        self.status_pve = False
                        for row2 in table_element:
                            if row2.text == '返回游戏':
                              url_game =self.url_game+row2.attrib["href"]
                              self.refreshGame(url_game)
                              self.GButton_745['state'] = 'disable'
                              self.GButton_779['state'] = 'disable'
                              self.status_pve = False
                              break
                  else:
                        tempstr= tempstr +" "+ rowstrip
            if tempstr:
                self._log(tempstr)
      if self.status_pve and status_fight:
            self.NowObject_run(url)


    def DecodeParam(self,str):
      if str:
            strs = str.split('cmd=')
            if len(strs)<2:
                return str
      else:
            return str
      str = strs
      str = str.replace('O0O0O','=').replace('o000o','+').replace('oo00o','/')
      list_str = re.findall(r'.{2}', str)
      skey = 'cxphp'
      strCount = len(list_str)
      list_skey = re.findall(r'.{1}', skey)
      for i in range(0,len(list_skey)):
         if i<=strCount and list_str and list_str == list_skey :
               list_str =list_str
      strout = "".join(list_str)
      if(len(strout)%3 == 1):
            strout += "=="
      elif(len(strout)%3 == 2):
            strout += "="
      else:
            strout += "="
      dStr = base64.b64decode(strout)
      return '?cmd='+bytes.decode(dStr)
    def _requests(self, method, url, decode_level=1, retry=0, timeout=15, **kwargs):
      if method in ["get", "post"]:
            for _ in range(retry + 1):
                try:
                  warnings.filterwarnings('ignore')
                  response = getattr(self.session, method)(url, timeout=timeout, verify=False, **kwargs)
                  return response.text if decode_level == 1 else response.json() if decode_level == 2 else response
                except Exception as e:
                  self._log(e)
      return None

    def _log(self, logmsg):
      global LOG_LINE_NUM
      current_time = self.get_current_time()
      logmsg_in = str(current_time) + " " + str(logmsg) + "\n"# 换行
      self.GLineEdit_742.tag_config("even", background='#e0e0e0')
      self.GLineEdit_742.tag_config("odd", background='#ffffff')
      self.tag = 'odd' if self.tag == 'even' else 'even'
      if LOG_LINE_NUM <= 25:

            self.GLineEdit_742.insert('end', logmsg_in, self.tag)
            LOG_LINE_NUM = LOG_LINE_NUM + 1
      else:
            self.GLineEdit_742.delete(1.0, 2.0)
            self.GLineEdit_742.insert('end', logmsg_in, self.tag)

    def get_current_time(self):
      current_time = time.strftime('%H:%M:%S', time.localtime(time.time()))
      return current_time
if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()


neteast 发表于 2022-8-2 19:20

该游戏的怪物总攻击为:怪物总攻击-玩家防御 *0.75   不低于 怪物总攻击 *0.15
所以打幼齿猫妖时,如下配置可以不掉血刷 回血散。

cao777 发表于 2022-8-3 09:16

本帖最后由 cao777 于 2022-8-3 09:26 编辑

python写程序这么效率吗
膜拜大佬 已评分!

cao777 发表于 2022-8-3 09:44

重伤了怎么弄

neteast 发表于 2022-8-3 11:38

cao777 发表于 2022-8-3 09:44
重伤了怎么弄

程序有BUG,不能死,死了不能复生了{:1_909:}

所以要先刷足够的药品出来,再去闯荡。
同时为了突破升级,也要有足够的灵石准备好。

索马里老鸨 发表于 2022-8-3 13:38

感谢楼主分享,下载玩玩试试
页: [1] 2 3
查看完整版本: mud游戏寻仙纪伪客户端,目前可以切换地图,打野了