欢迎光临散文网 会员登陆 & 注册

符文筛选 只显示不操作

2023-03-05 15:16 作者:孤独de修炼  | 我要投稿

import os

import pyautogui

import time

import xlrd

#import pyperclip

from PIL import ImageGrab, Image

#import datetime

from paddleocr import PaddleOCR

import paddleocr

import xlsxwriter

import openpyxl

from win32com.client import Dispatch

import keyboard

import CV2

import sys

import re

import logging

import random

import paddle

import skimage

import shapely


def panduan():

    

    dengji=ImageGrab.grab((changdu1+changdu2*0.19,gaodu1+gaodu2*-0.017,changdu1+changdu2*-0.489, gaodu1+gaodu2*0.037))

    ewaijiacheng=ImageGrab.grab((changdu1+changdu2*0.079,gaodu1+gaodu2*0.127,changdu1+changdu2*-0.166, gaodu1+gaodu2*0.194))

    xiaoguo=ImageGrab.grab((changdu1+changdu2*0.263,gaodu1+gaodu2*0.201,changdu1+changdu2*-0.198, gaodu1+gaodu2*0.382))

    file_path1=r"D:\tp1.png"

    file_path2=r"D:\tp2.png"    

    file_path3=r"D:\tp3.png"

    dengji.save(file_path1)

    ewaijiacheng.save(file_path2)

    xiaoguo.save(file_path3)

    ocr=PaddleOCR(use_angel_cls=True,lang="ch",use_gpu=False)

    res1=ocr.ocr(file_path1,cls=True)

    res2=ocr.ocr(file_path2,cls=True)

    res3=ocr.ocr(file_path3,cls=True)



    try:

        dengjiwenben=res1[0][0][1][0]

        dengjiwenben=dengjiwenben[0:dengjiwenben.rfind("文")]

    except:

        dengjiwenben=0

    

    if res2!=[[]]:

        ewaijiachengwenben=str(res2[0][0][1][0])

    else:

        ewaijiachengwenben="0"

    

    try:

        shuxing1=quchujinglian(res3[0][0][1][0])

    except:

        shuxing1="0"


        

    try:

        shuxing2=quchujinglian(res3[0][1][1][0])

    except:

        shuxing2="0"

    try:

        shuxing3=quchujinglian(res3[0][2][1][0])

    except:

        shuxing3="0"


    try:

        shuxing4=quchujinglian(res3[0][3][1][0])

    except:

        shuxing4="0"

    

    return dengjiwenben,ewaijiachengwenben,shuxing1,shuxing2,shuxing3,shuxing4


def chushidingwei():

    quanping=ImageGrab.grab((0,0,2000, 2000))

    file_path=r"D:\quanping.png"

    quanping.save(file_path)

    res=ocr.ocr(file_path,cls=True)

    dingweidian1="符文管理"

    dingweidian2="变更适用"

    dingweidian1gao=0

    dingweidian1kuan=0

    dingweidian2gao=0

    dingweidian2kuan=0

    for i in range(0,len(res[0])):

        if str(res[0][i][1][0])==dingweidian1:

            dingweidian1kuan=(res[0][i][0][0][0]+res[0][i][0][1][0])/2

            dingweidian1gao=(res[0][i][0][0][1]+res[0][i][0][2][1])/2

            print(dingweidian1kuan)

            print(dingweidian1gao)

        if str(res[0][i][1][0])==dingweidian2:

            dingweidian2gao=(res[0][i][0][0][1]+res[0][i][0][2][1])/2

            dingweidian2kuan=(res[0][i][0][0][0]+res[0][i][0][1][0])/2          

            print(dingweidian2kuan)

            print(dingweidian2gao)       

    return dingweidian1kuan,dingweidian1gao,dingweidian2kuan,dingweidian2gao

def quchujinglian(shuxing):

    if shuxing.count("+")==2:

        shuxing=shuxing[0:shuxing.rfind("+")]

        #print("去除精炼属性:"+str(shuxing))

    return shuxing



def fenshu(shuxing):

    #判断类型

    #sudu

    zonghefenshu=0

    dashoufenshu=0

    fangshoufenshu=0

    fuzhufenshu=0

    tilifenshu=0

    suducanshu=0

    try:

        if "攻击速度" in shuxing:

            zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5                                           

            if int(''.join(filter(lambda x: x.isdigit(), shuxing)))>=sudubiaozhun1:

                suducanshu=1

        if "暴击率" in shuxing:    

            zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1.5

            fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0      

        if "暴击伤害" in shuxing:

            zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.7

            dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.7

            fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.7

            fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

        if "效果命中" in shuxing:

            zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.5

            dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

            tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            

        if "效果抵抗" in shuxing:

            zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.5

            dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

            tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1 

        if "攻击力" in shuxing:

            if "%" in shuxing:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.5

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            else:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.1

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0 

        if "防御力" in shuxing:

            if "%" in shuxing:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

            else:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.1

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.1

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

        if "体力" in shuxing:

            if "%" in shuxing:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1  

            else:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01 

        if "本力" in shuxing:

            if "%" in shuxing:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*1  

            else:

                zonghefenshu=zonghefenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01

                dashoufenshu=dashoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fangshoufenshu=fangshoufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0

                fuzhufenshu=fuzhufenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01

                tilifenshu=tilifenshu+int(''.join(filter(lambda x: x.isdigit(), shuxing)))*0.01 

    except:

        #print("这不是符文吧")

        zhuangmozuoyangyixia=1

    return zonghefenshu,dashoufenshu,fangshoufenshu,fuzhufenshu,tilifenshu,suducanshu



def maifuwen():

    print("卖!")

    pyautogui.click(changdu1+changdu2*0.228+shubiaodianjisuijishu,gaodu1+gaodu2*0.001,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    pyautogui.click(changdu1+changdu2*0.158+shubiaodianjisuijishu,gaodu1+gaodu2*0.315,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    pyautogui.click(changdu1+changdu2*0.422+shubiaodianjisuijishu,gaodu1+gaodu2*0.92,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #转到无标记    

    pyautogui.click(changdu1+changdu2*-0.442+shubiaodianjisuijishu,gaodu1+gaodu2*0.433,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    pyautogui.click(changdu1+changdu2*0.594+shubiaodianjisuijishu,gaodu1+gaodu2*0.647,clicks=1,interval=dianjijiange+0.5,duration=0.1,button="left")


    pyautogui.click(changdu1+changdu2*0.599+shubiaodianjisuijishu,gaodu1+gaodu2*0.636,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")


    pyautogui.click(changdu1+changdu2*0.478+shubiaodianjisuijishu,gaodu1+gaodu2*0.65,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.685+shubiaodianjisuijishu,gaodu1+gaodu2*0.772,clicks=1,interval=dianjijiange,duration=0.1,button="left")   

def fenleifuwen4():

    print("保留到分类4")    

    pyautogui.click(changdu1+changdu2*0.228+shubiaodianjisuijishu,gaodu1+gaodu2*0.001,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.158+shubiaodianjisuijishu,gaodu1+gaodu2*0.315,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #转到符文4

    pyautogui.click(changdu1+changdu2*0.158+shubiaodianjisuijishu,gaodu1+gaodu2*0.69,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #转到符文5

    #pyautogui.click(changdu1+changdu2*0.158,gaodu1+gaodu2*0.783,clicks=1,interval=dianjijiange,duration=0.1,button="left")



    pyautogui.click(changdu1+changdu2*0.422+shubiaodianjisuijishu,gaodu1+gaodu2*0.92,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    pyautogui.click(changdu1+changdu2*0.478+shubiaodianjisuijishu,gaodu1+gaodu2*0.65,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.478+shubiaodianjisuijishu,gaodu1+gaodu2*0.65,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")


    #pyautogui.click(changdu1+changdu2*0.685+shubiaodianjisuijishu,gaodu1+gaodu2*0.772,clicks=1,interval=dianjijiange,duration=0.1,button="left")   

def fenleifuwen5():

    print("保留到分类5")    

    pyautogui.click(changdu1+changdu2*0.228+shubiaodianjisuijishu,gaodu1+gaodu2*0.001,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.158+shubiaodianjisuijishu,gaodu1+gaodu2*0.315,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #转到符文4

    #pyautogui.click(changdu1+changdu2*0.158+shubiaodianjisuijishu,gaodu1+gaodu2*0.69,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    #转到符文5

    pyautogui.click(changdu1+changdu2*0.158,gaodu1+gaodu2*0.783,clicks=1,interval=dianjijiange,duration=0.1,button="left")



    pyautogui.click(changdu1+changdu2*0.422+shubiaodianjisuijishu,gaodu1+gaodu2*0.92,clicks=1,interval=dianjijiange,duration=0.1,button="left")

    pyautogui.click(changdu1+changdu2*0.478+shubiaodianjisuijishu,gaodu1+gaodu2*0.65,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.478+shubiaodianjisuijishu,gaodu1+gaodu2*0.65,clicks=1,interval=dianjijiange+0.7,duration=0.1,button="left")

    #pyautogui.click(changdu1+changdu2*0.685+shubiaodianjisuijishu,gaodu1+gaodu2*0.772,clicks=1,interval=dianjijiange,duration=0.1,button="left")   







print("请在使用时保证,填写完所有标准后,模拟器or投屏处于符文界面,其中是所有需要处理的符文,且没有不显示分类4和5,并且保证截屏时,左下角的变更适用和右上角的符文管理均显示,且为简体汉字,请开启后不要移动鼠标\n")

print("假如不需要计算精炼属性,则点击符文使属性变为XX(基础属性)+yy(精炼属性),此时会不计算精炼后的属性\n")

qianghua12fenshubiaozhun=input("强化12符文分数:(强化+9自动扣除5分,各分类的标准基于综合分扣除5分,只计算副属性,不考虑符文类型、主属性)\n")

qianghua12fenshubiaozhun=int(qianghua12fenshubiaozhun)

sudubiaozhun=999

global sudubiaozhun1

sudubiaozhun1=int(sudubiaozhun)


dianjijiange1=0.2


shifouchongfu=0

shangyigezonghefenshu=0

logging.disable(logging.DEBUG)

logging.disable(logging.WARNING)

global dianjijiange

dianjijiange=float(dianjijiange1)

pyautogui.FAILSAFE=False







#主程序



    #报错



    

#初始化

ocr=PaddleOCR(use_angel_cls=True,lang="ch",use_gpu=False)

#取定位点

weizhi=chushidingwei()

#设定定位点

global changdu1,gaodu1,changdu2,gaodu2

changdu1=weizhi[0]

gaodu1=weizhi[1]

changdu2=weizhi[2]-weizhi[0]

gaodu2=weizhi[3]-weizhi[1]

pyautogui.click(changdu1+changdu2*0.468,gaodu1+gaodu2*0.645,clicks=1,interval=1,duration=0.1,button="left")

#处理1000次符文

for ii in range(1000):

    #防检测用的随机数,但是似乎没用

    shubiaodianjisuijishu=random.random()*2


    #取属性值

    data=panduan()




    #符文等级

    dengjiwenben=data[0]



    #如符文等级不存在则等于0

    try:

        dengjinum=int(''.join(filter(lambda x: x.isdigit(), dengjiwenben)))

    except:

        dengjinum=0


    #计算属性评分    

    ewaijiachengwenben=data[1]

    shuxing1=data[2]

    shuxing2=data[3]

    shuxing3=data[4]

    shuxing4=data[5]

       


    zonghefenshu=0

    dashoufenshu=0

    fangshoufenshu=0

    fuzhufenshu=0

    tilifenshu=0

    sudupanduan=0

    

    zonghefenshu=zonghefenshu+fenshu(ewaijiachengwenben)[0]

    dashoufenshu=dashoufenshu+fenshu(ewaijiachengwenben)[1]

    fangshoufenshu=fangshoufenshu+fenshu(ewaijiachengwenben)[2]

    fuzhufenshu=fuzhufenshu+fenshu(ewaijiachengwenben)[3]

    tilifenshu=tilifenshu+fenshu(ewaijiachengwenben)[4]

    sudupanduan=sudupanduan++fenshu(ewaijiachengwenben)[5]



    

    zonghefenshu=zonghefenshu+fenshu(shuxing1)[0]

    dashoufenshu=dashoufenshu+fenshu(shuxing1)[1]

    fangshoufenshu=fangshoufenshu+fenshu(shuxing1)[2]

    fuzhufenshu=fuzhufenshu+fenshu(shuxing1)[3]

    tilifenshu=tilifenshu+fenshu(shuxing1)[4]

    sudupanduan=sudupanduan++fenshu(shuxing1)[5]

   

    zonghefenshu=zonghefenshu+fenshu(shuxing2)[0]

    dashoufenshu=dashoufenshu+fenshu(shuxing2)[1]

    fangshoufenshu=fangshoufenshu+fenshu(shuxing2)[2]

    fuzhufenshu=fuzhufenshu+fenshu(shuxing2)[3]

    tilifenshu=tilifenshu+fenshu(shuxing2)[4]

    sudupanduan=sudupanduan++fenshu(shuxing2)[5]


    zonghefenshu=zonghefenshu+fenshu(shuxing3)[0]

    dashoufenshu=dashoufenshu+fenshu(shuxing3)[1]

    fangshoufenshu=fangshoufenshu+fenshu(shuxing3)[2]

    fuzhufenshu=fuzhufenshu+fenshu(shuxing3)[3]

    tilifenshu=tilifenshu+fenshu(shuxing3)[4]

    sudupanduan=sudupanduan++fenshu(shuxing3)[5]

    

    zonghefenshu=zonghefenshu+fenshu(shuxing4)[0]

    dashoufenshu=dashoufenshu+fenshu(shuxing4)[1]

    fangshoufenshu=fangshoufenshu+fenshu(shuxing4)[2]

    fuzhufenshu=fuzhufenshu+fenshu(shuxing4)[3]

    tilifenshu=tilifenshu+fenshu(shuxing4)[4]

    sudupanduan=sudupanduan++fenshu(shuxing4)[5]


    #规避重复显示

    if shangyigezonghefenshu!=zonghefenshu and zonghefenshu!=0:

        print("额外属性:"+ewaijiachengwenben)

        print("属性1:"+str(shuxing1))

        print("属性2:"+str(shuxing2))

        print("属性3:"+str(shuxing3))

        print("属性4:"+str(shuxing4))

        shangyigezonghefenshu=zonghefenshu

        shifouchongfu=0

        try:

            print("符文等级:"+(''.join(filter(lambda x: x.isdigit(), dengjiwenben))))

        except:

            print("不是符文界面")         

        print("总评分:"+str(zonghefenshu))

        print("打手评分:"+str(dashoufenshu))

        print("防守评分:"+str(fangshoufenshu))

        print("辅助评分:"+str(fuzhufenshu))

        print("体力评分:"+str(tilifenshu))

        print("速度是否合格:"+str(sudupanduan))

        res=""

        qianghua9zonghefenbiaozhun=qianghua12fenshubiaozhun-5

        qianghua9fenleifenbiaozhun=qianghua12fenshubiaozhun-10 

        qianghua12zonghefenbiaozhun=qianghua12fenshubiaozhun

        qianghua12fenleifenbiaozhun=qianghua12fenshubiaozhun-5

        print("目前标准:12+符文综合评分"+str(qianghua12zonghefenbiaozhun))

        print("")


    

    #售卖逻辑

        if dengjinum>=9 and dengjinum<11:

            if zonghefenshu>qianghua9zonghefenbiaozhun or dashoufenshu>qianghua9fenleifenbiaozhun or fangshoufenshu>qianghua9fenleifenbiaozhun or fuzhufenshu>qianghua9fenleifenbiaozhun or tilifenshu>qianghua9fenleifenbiaozhun or sudupanduan!=0 :

                res="保留"

                print("+9:合格")

                

            else:

                res="卖"

                print("+9:不合格")

        elif  dengjinum>=12:

            if zonghefenshu>qianghua12zonghefenbiaozhun or dashoufenshu>qianghua12fenleifenbiaozhun or fangshoufenshu>qianghua12fenleifenbiaozhun or fuzhufenshu>qianghua12fenleifenbiaozhun or tilifenshu>qianghua12fenleifenbiaozhun or sudupanduan!=0:

                print("+12:合格")

            else:

                print("+12:不合格")        

        else:

             print("都没到+9,要不强化一下?")    

            



符文筛选 只显示不操作的评论 (共 条)

分享到微博请遵守国家法律