主要思路:动态获取物品色特征值,再合成.
下面是合成函数:
- --启始坐标X Y 方块宽度 高度 行数 列数 色点表
- function 通用合成(x1,y1,w,h,c,l,t)
- local monsterinfo={
- }
- local monsterlist={
- }
- for i=1,c do
- if #monsterlist>1 then
- break
- end
- for j=1,l do
- lr.KeepScreen() --截屏
- if #monsterlist>1 then
- break
- end
- for k=1,#t do
- t[k][2]=x1+w*(j-1)
- t[k][3]=y1+h*(i-1)
- t[k][4]=x1+w*j
- t[k][5]=y1+h*i
- end
-
- if lr.Find(t) then
- monsterinfo={}
- monsterinfo.x=lr.fx
- monsterinfo.y=lr.fy
- table.insert(monsterlist,monsterinfo)
- end
- end
- en
- if #monsterlist>1 then
- print("合成-->"..monsterlist[1].x.."-"..monsterlist[1].y.." "..monsterlist[2].x.."-"..monsterlist[2].y)
- --lr.Swipe(monsterlist[1].x,monsterlist[1].y,monsterlist[2].x,monsterlist[2].y,1,1000) --滑动
- swipe(monsterlist[1].x,monsterlist[1].y,monsterlist[2].x,monsterlist[2].y,500)
- sleep(500)
- return true
- end
- return false
- end
- --启始坐标X Y 方块宽度 高度 行数 列数
- --ignoreColor 空格色 注意必须有8个参数 色偏值如:1.0 {"背景色",1.0,0,0,0,0,"634531-050505","-17|-1|634531-050505|-19|-19|634531-050505"}
- --[rule]:方格取色的偏移量 默认:{{0,0},{1,1},{-1,1},{1,-1},{-1,-1}}
- function 通用合成EX(x1,y1,w,h,c,l,ignoreColor,rule)
-
- if rule == nil then
- rule={{0,0},{1,1},{-1,1},{1,-1},{-1,-1}}
- end
- --动态存储色值
- local colorTemp={}
- local colorList={}
-
- local centerPointX=0
- local centerPointY=0
- local currentColor=""
-
-
- --获取色特征
- local tx1,ty1,tx2,ty2
- for i=1,c do
- for j=1,l do
- tx1=x1+w*(j-1)
- ty1=y1+h*(i-1)
- tx2=x1+w*j
- ty2=y1+h*i
- centerPointX=tx1+(tx2-tx1)/2
- centerPointY=ty1+(ty2-ty1)/2
-
-
- local isEqual=false
- if ignoreColor~=nil and #ignoreColor>0 then
- for k=1,#ignoreColor do
- if #ignoreColor[k]<6 then
- print("传入的参数长度有问题:"..#ignoreColor[k])
- return false
- end
- ignoreColor[k][3]=tx1
- ignoreColor[k][4]=ty1
- ignoreColor[k][5]=tx2
- ignoreColor[k][6]=ty2
- end
-
- if lr.Find(ignoreColor) then
- isEqual=true
- print("格子"..i..","..j.."为空格子..")
- -- print(ignoreColor)
- end
- end
-
- if not isEqual then
- colorTemp={}
- --colorTemp[1]=centerPointX.."-"..centerPointY
- colorTemp[1]=i..","..j..","..centerPointX..","..centerPointY
- colorTemp[2]=0
- colorTemp[3]=0
- colorTemp[4]=768
- colorTemp[5]=1280
- --print(colorTemp[1])
-
- for r=1,#rule do
- currentColor=colorToStringRGB(getPixelColor(centerPointX+rule[r][1],centerPointY+rule[r][2])).."-101010"
- if r==1 then
- colorTemp[6]=currentColor
- colorTemp[7]=""
- elseif r==#rule then
- colorTemp[7]=colorTemp[7]..rule[r][1].."|"..rule[r][2].."|"..currentColor
- else
- colorTemp[7]=colorTemp[7]..rule[r][1].."|"..rule[r][2].."|"..currentColor.."|"
- end
-
- end
- table.insert(colorList,colorTemp)
- end
-
- end
-
- end
- for e=1,#colorList do
- --print(colorList[e])
- if 通用合成(x1,y1,w,h,c,l,{colorList[e]}) then
- return true
- end
- end
- return false
- end
复制代码
调用实例:
require "lr"
test={
背景色={
{"背景色",1.0,362,788,531,968,"082841-101010","-14|1|082841-101010|-15|-13|082841-101010|-11|-26|082841-101010|18|-36|082841-101010|38|-17|082841-101010|30|23|082841-101010|14|41|082841-101010|-15|42|082841-101010|-42|15|0C3251-101010|48|10|0C3251-101010|50|-27|0C3251-101010|36|-47|0C3251-101010|9|-55|0C3251-101010"}
}
}
通用合成EX(17,594,170,180,3,4,test.背景色,{{0,0},{1,16},{1,32},{1,38},{-13,38},{-24,38},{-24,17},{-24,-31},{-3,-37},{13,-37},{20,-23},{20,-10},{20,10},{19,30},{12,24},{-2,19}})
---------------------------------------
通用合成 :合成固定物品
通用合成EX:无需设置合成物品的色表,动态获取 其中 背景色:是没有物品的空格子
必须加载 lr.lua 懒人英文插件. 官群里自己下架.
上面例子效率一般..但能使用.
|