|
kiss216202 發表於 Dec 13, 2018 8:24:17 GMT
我們最新的版本有 "為節省電量不讓機器太熱,每輪檢查完後休息幾秒: " 這個選項 是直接用 wait() 做到休息 您可以參考 想問一下,最近使用上 Hp Mp滿 都被判斷為 74% 是哪邊需要修改 非 18:9
|
|
|
AnkuLua 發表於 Dec 13, 2018 9:58:22 GMT
|
|
|
kiss216202 發表於 Jan 3, 2019 7:39:56 GMT
目前顯示 95% 研究半天 還是找不到關鍵修改處 感謝 你的修改 ^_^
|
|
|
fmhuang 發表於 Jan 7, 2019 5:24:56 GMT
針對內編碼有問題想請問一下: 1.Region(80, 220, 170, 80)這個基準座標延展寬:170 高:80 的區域後面寫到hpAnchor:getCenter():offset(-147, 5) 這個-147,5 代表什麼意思?? 2.Region(hpRatioStart:getX(), hpRatioStart:getY() -4, 108, 9) 這條是血條設定的什麼?? 108應該是血條長度 那-4、8代表什麼意思??MP 的-3、8 代表什麼意思?? 3.hpRatioShowRegion = Region(hpAnchor:getX() - 100, hpAnchor:getY() - 25, 100, 25)
mpRatioShowRegion = Region(hpAnchor:getX() - 100, hpAnchor:getY() + 30, 100, 25)
這是抓MP/HP 的比例嗎?? -25、25代表什麼?? +30、25代表什麼呢?? 4.以下108 應該是血條長度,其他的5是什麼意思?? r b g是代表什麼? 這一整段的編寫能夠解釋一下嗎?? 有可能改變起始座標設定再調整變為遊戲作上方的血條作基準嗎?? 這樣就不用組隊了。
for ratio = 5, 108, 5 do
local loc = ratioPoint:offset(ratio, 0)
local r, g, b = getColor(loc)
-- Region(loc:getX(), loc:getY(), 50, 50):highlight(1)
if (powerType == "HP" and g > 0x18 and r < 0x40 and ratio == 5) then
poison = true;
-- scriptExit(string.format("poisoned, r = %x, g = %x, b = %x", r, g, b))
end
-- usePreviousSnap(true)
if (powerType == "HP" and ((not poison and r < 0x80) or (poison and g < 0x18))) then
usePreviousSnap(false)
return math.floor((ratio - 5) * 100/108), poison
end
if (powerType == "MP" and b < 0x70) then
usePreviousSnap(false)
return math.floor((ratio - 5) * 100/108)
end
以下的內容是我有看不太懂的編碼,在這後面的我都會自己編輯,可否請版大教育一下我,謝謝。-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function initSetup()
local hpAnchor = Region(80, 220, 170, 80):exists("teamArrow.png", 0)
if (not hpAnchor) then
upperLeftestRegion:existsClick("team.png", 0)
upLeftestRegion:existsClick("createTeam.png", 1.5)
lowestCenterRegion:existsClick("confirm.png", 1.5)
wait(1.5)
hpAnchor = Region(80, 220, 170, 80):exists("teamArrow.png", 1)
if (not hpAnchor) then scriptExit("腳本需要用道隊伍的HP和MP圖,請先創建隊伍") end
end
hpRatioStart = hpAnchor:getCenter():offset(-147, 5)
mpRatioStart = hpRatioStart:offset(0, 11)
local hpRegion = Region(hpRatioStart:getX(), hpRatioStart:getY() -4, 108, 9)
local mpRegion = Region(mpRatioStart:getX(), mpRatioStart:getY() -3, 108, 8)
-- hpRegion:highlight(1)
-- mpRegion:highlight(1)
hpRatioShowRegion = Region(hpAnchor:getX() - 100, hpAnchor:getY() - 25, 100, 25)
mpRatioShowRegion = Region(hpAnchor:getX() - 100, hpAnchor:getY() + 30, 100, 25)
if ( getRatio("HP") < 25) then
hpRegion:highlight(1)
mpRegion:highlight(1)
scriptExit("HP 小於 25%\n可能腳本不相容於螢幕長寬比")
end
end
function getRatio(powerType)
local ratio = 0
local ratioPoint
hpLoc = Location(hpRatioStart)
-- orgRegion(hpLoc:offset(0, -30), 108, 5):highlight(5)
if (powerType == "HP") then
ratioPoint = hpRatioStart
else
ratioPoint = mpRatioStart
end
-- usePreviousSnap(false)
snapshotColor()
local poison = false;
for ratio = 5, 108, 5 do
local loc = ratioPoint:offset(ratio, 0)
local r, g, b = getColor(loc)
-- Region(loc:getX(), loc:getY(), 50, 50):highlight(1)
if (powerType == "HP" and g > 0x18 and r < 0x40 and ratio == 5) then
poison = true;
-- scriptExit(string.format("poisoned, r = %x, g = %x, b = %x", r, g, b))
end
-- usePreviousSnap(true)
if (powerType == "HP" and ((not poison and r < 0x80) or (poison and g < 0x18))) then
usePreviousSnap(false)
return math.floor((ratio - 5) * 100/108), poison
end
if (powerType == "MP" and b < 0x70) then
usePreviousSnap(false)
return math.floor((ratio - 5) * 100/108)
end
end
|
|
|
AnkuLua 發表於 Jan 7, 2019 12:13:39 GMT
1. hpRatioStart 就是能量起始點的座標,是用組隊這個圖("teamArrow.png") 來定位,先得到這個圖的中央點座標,然後位移(-147, 5)
2. local hpRegion local mpRegion 並沒有用,可以不管它 3. hpRatioShowRegion 和 mpRatioShowRegion 只是要在後面用highlight() 框出一個區域,用處不大 4. 判斷多少血是用 getRatio(powerType) 這個函數 遊戲上方血顏色會變,不容易判斷
|
|
|
momoovo 發表於 Jan 8, 2019 3:34:44 GMT
顯示錯誤 無法使用...
|
|
|
AnkuLua 發表於 Jan 8, 2019 4:01:02 GMT
顯示錯誤 無法使用...
解壓縮請保持完整目錄,並確定有提示內的檔案
|
|
|
sancola1219 發表於 Jan 14, 2019 0:22:02 GMT
這裡都高手雲集,有人開發高寵模式嗎?
|
|
|
fmhuang 發表於 Jul 5, 2019 7:59:02 GMT
請問手機解析度2248X1080 無法執行,要怎麼修改內部的程式碼,好像是getRealScreenSize():getX() * 720 / getRealScreenSize():getY() 這條1,498.66666666666.....的問題。 可以幫指點一下。
|
|