舰_3-2A+远征_1208
--[2016.04.10] 替换了远征函数为Easy函数
--[2016.04.10] 在完成了出击次数后进入远征循环,同时会修理损坏的船
--[2016.04.10] 支持使用设置出击的时间
--[2016.04.10] 支持设置在满足战斗次数后修理船
--[2016.04.21] 支持设置拆船
--[2016.06.13] 支持快速设置使用改后潜艇 不过不建议使用 因为修理时间太长了
--[2016.12.08] 部分注释修改 支持设置翻页次数
--###################################################################
--这里是设置区域!请仔细阅读!!!!! 然后再修改
--如果设置区域读不懂 请按Alt+F4提高智商后再来
--false=关闭 true=开启
--使用魔改或高清包可能会导致无法更换潜艇!!!
--使用魔改或高清包可能会导致无法更换潜艇!!!
Base.SetConfig("FindColorBinDefSite", 4)
--潜艇入渠容错,如果您的这个脚本开启了use_speed,但是会把潜艇也入渠,可调高此值(推荐5-8)
kan_id = 4
--潜艇在第一舰队中的位置1-6 推荐4号位或6号了
start_page = 2
--设置潜艇从第几页开始找,因为是默认舰种排序,所以一般是第1或2页
page_count = 3
--翻页次数,从start_page开始翻页几次
next_page_back = false
--让页面从后向前翻 如果设置的是start_page是6 则翻页 6 5 4 ...
use_ss_kai = false
--使用改后潜艇 168改 马路油改 58改等
--改后潜艇修理时间长 不建议使用!!!!
math.randomseed(os.time())
f_count = math.random(30,50) --战斗次数 50-70 随机
--战斗次数 满足战斗次数将会只远征
Kan.DelBattleInfo()
--清空战斗配置
Kan.AddBattleInfo(1,2,false,false)
--增加战斗配置,点1\阵型复纵\不夜战\不接受司令部退避(当前版本不支持)
use_speed = false
--修理时对 除潜艇外 的大破船是否使用桶,建议true
k2_conquest = C.東京急行弐_ID38
k3_conquest = C.北方鼠輸送作戦_ID21
k4_conquest = C.海上護衛任務_ID5
--设置2、3、4队伍远征,可输入C.然后下拉选择
Kan.EasyConquestInit(60*5, 60*10)
--设置简易远征,每5-10分钟进行一次检测,1.5.3版本KCA才可以使用
run_hour = "[[0,23]]"
--出击的时间设置 默认"[[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点进行重置
destroy_kan = false
--是否在每次等待到可执行的时间后执行拆船
--比如"[8,10,[20,22]]"的设置,会在8点,10点,20点进行拆船
over_repair = false
--是否在战斗次数满足后修船,需要设定远征才生效,1.5.3版本KCA才可以使用
Base.SetConfig("Sleep+?",100) --所有延时随机增加1-100
--###################################################################
if next_page_back == true then
Base.SetConfig("ChangePageEndStart",1)
end
m_lv = {SS=0,S=0,A=0,B=0,C=0,D=0,ALL=0,ERROR=0}
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
function ReSetBattleCount() --每达到某个时间点后重设当前战斗次数
if reset_battle_count == true then
Win.Print("战斗次数清零,并清理")
f_count_now = 0
end
if destroy_kan == true then
dofile(".\\example\\舰_自定拆船脚本.lua")
end
end
ss_kai = 1
if use_ss_kai == true then
ss_kai = 3
end
f_count_now = 0 ; run_count = 0; --初始化当前战斗次数,请勿修改
Kan.EasyConquestRun(false) --首次启动的时候执行一次远征
while true do --开始无限循环
Base.WaitRunHour(run_hour, true, "", "ReSetBattleCount")
run_count = run_count + 1
a = "开始第:%d次"
Win.Print(a:format(run_count))
ret = Kan.Supply() --补给 只补给舰队1
speed = 0
if use_speed == true then
speed = 16
end
kan_state = Base.GetValueInt("SupplyKanState"..kan_id)
if kan_state == 8 then --当前潜艇位置状态如果是修理中
Win.Print('当前潜艇位置在修理中..执行更换...')
if Kan.Change(kan_id,1,10,start_page,ss_kai,1,0,page_count)==true then --把潜艇更换
Win.Print('更换成功')
else
Win.Print('更换失败')
end
end
if ret > 0 then
if ret == kan_id then
if Kan.Change(ret,1,10,start_page,ss_kai,1,0,page_count)==true then
Win.Print('成功替换潜艇')
Kan.RepairEx(4,speed,8) --修理大破
else
Win.Print('没有可替换的潜艇,执行入渠、等待5分')
Kan.RepairEx(4,speed,8)
Kan.EasyConquestWaitNextRun() --等待并执行远征
if Kan.EasyConquestIsEnabled() == false then Base.Sleep(1000*60*5) end
end
else
Win.Print('有潜艇以外的船大破!尝试修复、等待5分')
Kan.RepairEx(4,speed,8)
Kan.EasyConquestWaitNextRun() --等待并执行远征
if Kan.EasyConquestIsEnabled() == false then Base.Sleep(1000*60*5) end
end
elseif ret == -1 then
Win.Pop('补给不足,等待远征、等待5分',true)
Kan.RepairEx(4,speed,8)
Kan.EasyConquestWaitNextRun() --等待并执行远征
if Kan.EasyConquestIsEnabled() == false then Base.Sleep(1000*60*5) end
elseif ret == -2 then
Win.Pop('舰队远征中,等待远征、等待5分',true)
Kan.RepairEx(4,speed,8)
Kan.EasyConquestWaitNextRun() --等待并执行远征
if Kan.EasyConquestIsEnabled() == false then Base.Sleep(1000*60*5) end
elseif ret==0 then
if f_count_now >= f_count then --如果超过设定的战斗次数,则直接进入远征的执行
if Kan.EasyConquestIsEnabled() == false then break end
Kan.EasyConquestWaitNextRun() --执行远征
if math.random(1,2) == 1 and over_repair == reue then
Kan.RepairEx(4)
end
else
Kan.Sally(3, 2) --出击目标 3-2
if Kan.BattleEx(1, 1) == false then --第一舰队/出击一次(A点)
Win.Print('可能无法出击或道中大破')
end
CheckLv() --更新统计数据
f_count_now = f_count_now + 1 --每次战斗增加1
Kan.WaitHome(2000)
Base.Sleep(2000)
end
end
end
Kan.EasyConquestEnterLoop()
Win.Pop('脚本执行完毕!',true)
Last updated