舰_2-3潜艇偷油
--[[
潜艇偷油脚本
[20161127] bug修正和增加双潜艇支持401
[20170209] 拆船设置改为每进行多少次出击后执行,支持在非出击时段内修船
[20180813] 移除即将弃用的API
注意事项
1.运行前请先把第一舰队清空,留一只船
2.请根据自行需要修改ChangeTeam中的潜艇的特征
3.一般喂满护甲,30级以上的潜艇就可以参与捞油了
]]
--###################################################################
--这里是设置区域!请仔细阅读!!!!! 然后再修改
--如果设置区域读不懂 请按Alt+F4提高智商后再来
math.randomseed(os.time())
--随机数初始化 不要改
one_ss = false
--单舰模式开关,设置true开启后将使用1艘SS去偷,会增加较高的败率,不推荐
color_site = 3
--颜色误差值 如果总是找不到潜艇,可以适量改到5或6! 建议不要超过10
--自行添加特征教程 http://www.7moe.com/forum.php?mod=viewthread&tid=22037
page = 3
--潜艇是从按照船排序的第几页开始的 一般人可能从1开始
page_next = 6
--向后翻的页数 如page=2、page_next=4则是在2 3 4 5 6页面选择船
next_page_back = true
--让页面从后向前翻 如果设置的是start_page是6 则翻页 6 5 4 ...
use_speed = false
--修理大破船是否使用桶 如果桶很多可以考虑使用 当前潜艇如果也很多可以用量来代替
--想要不用桶连刷,估计需要3页潜艇吧(大概
use_speed_mid = false
--修理中破船是否使用桶
run_hour = '["9:10-12:01", "14:20-17:10", "19:20-21:40"]'
--出击的时间设置 默认"[[0,23]]"为全天随时都执行,1.5.3版本KCA才可以使用
--设置举例:"[8,10,[20,22]]" 为8、10、20、21、22为脚本出击时间
reset_battle_count = true
--是否在每次等待到可执行的时间后重置战斗次数,1.5.3版本KCA才可以使用
--比如"[8,10,[20,22]]"的设置,会在8点,10点,20点进行重置
deleteKanAtBattleCount = 40
--在每进行多少次出击后执行拆船 如果设置0 则不会拆船
notBattleTimeRepair = true
--是否在非战斗时段修船
battle_count = 200
--偷油出击次数 30-50 (如果设置定时清0的话,这里没必要随机了)
battle_count_change = 3
--一个队伍最多打几场就换船 如果设置0 则直到大破中破才会换船
Kan.DelBattleInfo()
Kan.AddBattleInfo(1, 阵型.单纵, 否, false) --第一个点 不进夜战
Kan.AddBattleInfo(2, 阵型.单纵, 是, false) --第二个点 进夜战
Kan.AddBattleInfo(3, 阵型.单纵, 是, false) --第三个点 进夜战
--如果是过任务,可以把所有点都设置夜战
Kan.AddBattleInfoPoint(436, 80, 阵型.单纵, 是, false, false) --
Kan.AddBattleInfoPoint(596,127, 阵型.单纵, 否, false, false) --Boss点 不夜战
-----------------------------------------------------------------------------
k2_conquest = C.長距離練習航海_ID2
k3_conquest = C.東京急行_ID37
k4_conquest = C.北方鼠輸送作戦_ID21
--1.可自行新建一个远征脚本复制出这几行数据
--2.可输入C.会弹出输入提示,下拉可找到相应远征
--Kan.EasyConquestInit(60*6, 60*12)
--设置简易远征,每5-10分钟进行一次检测,1.5.3版本KCA才可以使用
if next_page_back == true then
Base.SetConfig("ChangePageEndStart",1)
end
--###################################################################
m_now_team = 0
Base.MinVer(135, true)
m_now_battle_count = 0
m_lastRepairTime = 0
function ChangeTeam()
if one_ss == true then
return ChangeTeamOneSS()
else
return ChangeTeamTwoSS()
end
end
--每达到某个时间点后重设当前战斗次数
function ReSetBattleCount()
if reset_battle_count == true then
Win.Print("战斗次数清零,并清理")
f_count_now = 0
end
end
function ChangeTeamTwoSS() --双SS的船配置
m_now_team = 1
last_change_battle_count = f_count_now
--如果你不想用某些船 ,请在相应的船特征前面加--注释掉,比如改后的船修理时间长什么的
--自行添加特征教程 http://www.7moe.com/forum.php?mod=viewthread&tid=22037
Kan.DelAllKanChangeColor()
--luigi Torelli
Kan.AddKanChangeColorEx(3, 145, true, "1VFTTRN,1NFVF", "1VFTTRO,1NFVF",0,2)
--i26
Kan.AddKanChangeColorEx(3, 145, true, "1VFVUVR,1RVVV", "1VFNVFR,1VVVV",0,2)
Kan.AddKanChangeColorEx(3, 145, true, "1T01TFF,1NTVVVV,1VVVV", "1TURTFN,1NTVVVV,1VVVV",0,2) --401
Kan.AddKanChangeColorEx(color_site,145,true,"11101111101111111111101110111101111111111111111111","11101100000001111111101110111101111111111111111111",0,2) --伊58
Kan.AddKanChangeColorEx(color_site,145,true,"11110011111011011110110111111111111111111111111111","11111010001111111111111111111111111111111111111111",0,2) --伊8
Kan.AddKanChangeColorEx(color_site,145,true,"11110111110111111111110111011110111011101101111111","11110110000000111111110111011110111011111001011111",0,2) --伊58改
Kan.AddKanChangeColorEx(color_site,145,true,"11101100000001110111101110111110010111111111111111","10101111101101111100111110111010110111111111111111",0,2) --伊8改
Kan.AddKanChangeColorEx(3, 145, true, "1VFRNRV,1VTRF", "1VFRNRV,1VTRV",0,2) --ut25
Kan.AddKanChangeColorEx(color_site,145,true,"11110111110111111111011111101111111101111011111111","11110110000000111111011111101111011101111011111111",0,1) --伊168
--Kan.AddKanChangeColorEx(color_site,145,true,"11110110000000111111011111110001011111111111111111","11010111110110111111011111100111011111111111111111",0,1) --伊19
Kan.AddKanChangeColorEx(color_site,145,true,"10000000000111111110111011111011101111101111111111","11111011111111011101111011111011101111101111111111",0,1) --吕500
Kan.AddKanChangeColorEx(color_site,145,true,"01000000000111110111111011111111011110111111010011","01111101101111110111111101111111011110111111010000",0,1) --伊168改
Kan.AddKanChangeColorEx(color_site,145,true,"11101100000001111110111111100010111011111101011111","10101111101101111110111111001110111011101011111111",0,1) --伊19改
ret = Kan.ChangeDIY(page,C.TEAM_1,0,page_next,false) --更换第二个船的位置
Kan.DelAllKanChangeColor()
Base.Print("成功替换"..ret.."个潜艇")
if ret == 2 then --可以改写失败了换别的船
return true
end
return false
end
function ChangeTeamOneSS() --单SS的船配置
m_now_team = 1
last_change_battle_count = f_count_now
--如果你不想用某些船 ,请在相应的船特征前面加--注释掉,比如改后的船修理时间长什么的
--自行添加特征教程 http://www.7moe.com/forum.php?mod=viewthread&tid=22037
Kan.DelAllKanChangeColor()
Kan.AddKanChangeColorEx(color_site,145,true,"11101111101111111111101110111101111111111111111111","11101100000001111111101110111101111111111111111111",0,1) --伊58
Kan.AddKanChangeColorEx(color_site,145,true,"11110011111011011110110111111111111111111111111111","11111010001111111111111111111111111111111111111111",0,1) --伊8
Kan.AddKanChangeColorEx(color_site,145,true,"11110111110111111111110111011110111011101101111111","11110110000000111111110111011110111011111001011111",0,1) --伊58改
Kan.AddKanChangeColorEx(color_site,145,true,"11101100000001110111101110111110010111111111111111","10101111101101111100111110111010110111111111111111",0,1) --伊8改
Kan.AddKanChangeColorEx(color_site,145,true,"11110111110111111111011111101111111101111011111111","11110110000000111111011111101111011101111011111111",0,1) --伊168
Kan.AddKanChangeColorEx(color_site,145,true,"11110110000000111111011111110001011111111111111111","11010111110110111111011111100111011111111111111111",0,1) --伊19
Kan.AddKanChangeColorEx(color_site,145,true,"10000000000111111110111011111011101111101111111111","11111011111111011101111011111011101111101111111111",0,1) --吕500
Kan.AddKanChangeColorEx(color_site,145,true,"01000000000111110111111011111111011110111111010011","01111101101111110111111101111111011110111111010000",0,1) --伊168改
Kan.AddKanChangeColorEx(color_site,145,true,"11101100000001111110111111100010111011111101011111","10101111101101111110111111001110111011101011111111",0,1) --伊19改
ret = Kan.ChangeDIY(page,队伍.队伍1,0,page_next,false) --更换第二个船的位置
Kan.DelAllKanChangeColor()
Base.Print("成功替换"..ret.."个潜艇")
if ret == 1 then --可以改写失败了换别的船
return true
end
return false
end
--在非执行时段时 每间隔大于300秒进行一次修理
function FuncRepairBottom()
if notBattleTimeRepair == false then return; end;
if os.time() - m_lastRepairTime > 300 then
m_lastRepairTime = os.time();
FuncRepair(true);
end
end
function FuncRepair(_bottom_to_top)
speed = 0
if use_speed == true then
speed = speed + 入渠.大破
end
if use_speed_mid == true then
speed = speed + 入渠.中破
end
Kan.RepairEx(4,speed,入渠.擦伤 + 入渠.小破 + 入渠.中破 + 入渠.大破, _bottom_to_top)
--除了设置里要用桶的 其他慢慢修
end
function FuncNoKan(_min)
Win.Print("没有可替换的船了,等待远征#1")
if _min == nil then
Base.Sleep(1000* 60* 5)
else
Base.Sleep(1000* 60* nil)
end
FuncRepair(true)
end
function CheckLv() --统计等级
count = Base.GetValueInt("LastBattleCount")
Base.Print("LastBattleCount:"..count)
if count > 0 then
m_lv.ALL = m_lv.ALL+count
for n=1,count do
ret = Base.GetValueInt("Battle_Lv_"..n)
if ret == C.WIN_SS then
m_lv.SS = m_lv.SS+1
elseif ret == C.WIN_S then
m_lv.S = m_lv.S+1
elseif ret == C.WIN_A then
m_lv.A = m_lv.A+1
elseif ret == C.WIN_B then
m_lv.B = m_lv.B+1
elseif ret == C.WIN_C then
m_lv.C = m_lv.C+1
elseif ret == C.WIN_D then
m_lv.D = m_lv.D+1
elseif ret == C.WIN_ERROR then
m_lv.ERROR = m_lv.ERROR+1
end
end
end
Win.SetState("累计战斗:"..m_lv.ALL.." SS:"..m_lv.SS.." S:"..m_lv.S.." A:"..m_lv.A.." B:"..m_lv.B.." C:"..m_lv.C.." D:"..m_lv.D)
end
m_lv = {SS=0,S=0,A=0,B=0,C=0,D=0,ALL=0,ERROR=0}
s1 = os.time()
--取现在时间的时间戳
f_count_now = 0 ; run_count = 0;
--当前战斗次数,请勿修改
last_change_battle_count = 0
--最后一次替换船时战斗的次数
Kan.EasyConquestRun(false) --首次启动的时候执行一次远征
math.randomseed(os.time())
--出击和战斗函数
function GoMapAndBattle ()
if f_count_now <= battle_count then
--出击目标 2-3
Kan.Sally(2, 3)
--第一舰队/出击三次(A点)/不夜战/阵型1单纵(并不会选,因为俩船不需要选阵型)
if Kan.BattleEx(1, 3, false) == false then
Win.Print('可能无法出击或道中大破')
end
CheckLv()
--每次战斗增加1
f_count_now = f_count_now + 1
Win.Print('已完成'..f_count_now..'次战斗')
Win.Print('本队完成'..(f_count_now - last_change_battle_count)..'次战斗')
Kan.WaitHome(2000)
Base.Sleep(2000)
else
Kan.WaitHome(2000)
Win.Print('战斗次数达到'..f_count_now..',等待5分后执行远征')
Base.Sleep(1000*60*5)
if math.random(1,2) == 1 then
Kan.Repair(4)
end
end
end
--主循环 无限
while true do
kanState = true;
--判断是否在设置的脚本执行时间段内
Base.WaitRunHour(run_hour, true, "FuncRepairBottom", "ReSetBattleCount")
run_count = run_count + 1
Win.Print("开始第" .. run_count .. "次")
if deleteKanAtBattleCount ~= 0 and run_count % deleteKanAtBattleCount == 1 then
dofile(".\\example\\舰_自定拆船脚本.lua")
end
if m_now_team == 0 then
Win.Print("首次运行,切换到潜艇队伍")
if ChangeTeam() == false then
FuncNoKan(min) --等待远征
Kan.EasyConquestWaitNextRun() --执行远征
kanState = false;
end
end
--如果设置了一个组合打多少次换船(即使没有大破) 执行换船
if battle_count_change ~= nil and battle_count_change > 0 then
if f_count_now - last_change_battle_count >= battle_count_change then
Win.Print("场次满足,执行换人")
if ChangeTeam() == false then
FuncNoKan(min) --等待远征
Kan.EasyConquestWaitNextRun() --执行远征
kanState = false;
end
FuncRepair(true)
else
Win.Print("场次不满足,不换人")
end
end
--补给全部并返回所有舰队及船数据
ret = Kan.SupplyAllT();
kanState1 = ret.kan11
kanState2 = ret.kan12
--当前队伍第一和第二位置有维修中的船 切换队伍
if kanState1 == 补给.修理中 or kanState2 == 补给.修理中 then
if m_now_team ~= 3 then
Win.Print("切换到第3队伍")
if ChangeTeam() == false then
FuncNoKan(min) --等待远征
Kan.EasyConquestWaitNextRun() --执行远征
end
Kan.SupplyAllT() --换到的船不一定是满资源 所以补给
FuncRepair()
else
FuncNoKan(min) --等待远征
Kan.EasyConquestWaitNextRun() --执行远征
end
kanState = false;
--有潜艇中破或者大破了 换队伍 并且将换下的维修
elseif (kanState1 < 3 and kanState1 > 0) or (kanState2 < 3 and kanState2 > 0) then
if ChangeTeam() == false then
FuncNoKan(min) --等待远征
Kan.EasyConquestWaitNextRun() --执行远征
kanState = false;
end
Kan.SupplyAllT() --换到的船不一定是满资源 所以补给
FuncRepair(true) --修理
end
--换船没有失败的情况下出击战斗
if kanState == true then
GoMapAndBattle();
end
Base.Sleep(2000)
--是否到了远征的时间,是的话去搞一次远征
if conquest_open == true then
Kan.EasyConquestWaitNextRun() --执行远征
end
end
Kan.EasyConquestEnterLoop()
Win.Pop('脚本执行完毕!',true)
Last updated