chrisreyn/Tap-Titans-2-Progress-Bot

Maxing one skill?

DaBest1Evar opened this issue · 6 comments

I have familiarized myself with the latest script update after taking a long break and coming back. The only problem I have with such a wonderful script is the skill-maxing "touch-up" section. I don't know where to edit to ONLY max out WarCry to 25 and leave everything else at level 1. I have played around with the level-skill section for so long and can't come up with anything. A point in the right-direction would be a godsend!

Edit: After A LOT more tinkering around and researching I finally got what I wanted. Any idea on how to fix the hero-opening window when leveling heroes, the problem persists even in QoL 2 update. I have never had this bug before, where might one need to look to fix it? A scroll issue maybe?

@chrisreyn where would the opening hero-window problem be? I am using your latest update (top-tier work btw)

it's not part of the scirpt. it just does it by itself. maybe if you screen record, i can deduce at what point it happens, but even i've had it since my original adoption of the code but it always gets to click out of the hero window

so long since i have returned to this github, haha. took a break from TT2 so i am not sure i would be able to screen-record but I can provide you with my script and maybe you can pinpoint where this error occurs? it's a really good CS script. haven't updated since the latest patch, no time to play atm.

`// ---------- Click Areas
var #enableFairies 1
var #enablePremiumCollect 1
var #agree 1
var #decline 0

var #enableTapping 1
// 1 = (default) hit the titans with your sword master
// 0 = disable hits (except on CQ)

var #enableCO 1
var #PHoM 1
var #astralAwakening 0
// #astralAwakening is also affected by #equipStack below

var #equipStack 1
// if set to 1, will skip some heroes when tapping for Astral Awakening
// ---------- Actions ---------- [ Prestige ]
var #enableAutoprestige 1

var #lateRun 0
// if 0, no change to run
// if #lateRun > 0, will resume run at #minutes = #lateRun
// 2nd run onwards (aka after prestige) will NOT adjust time

var #prestigeStartTime 19
// input minimum time in minutes before prestige
// prestige time range is ALWAYS +10 more minutes greater than StartTime to prevent teapot

// ---------- Actions ---------- [ General ]
var #runActionsEveryXSeconds 50
// recommended equal to total SC+ED+DShift duration minus ~6 or 7 seconds
// ^esp if you cant level SC in the first run
// ^so that when runActions runs, SC is done and script can level up SC
// also note that displayed run time is not very accurate with real time
// IMPORTANT go to line 248 and edit the settings there

var #runActionsOnStart 1
// 1 = (default) run actions on script start
// 0 = run actions after given run time above
// ---------- Actions ---------- [ ClanQuest ]
var #enableClanQuest 1

//clan boss with max possible hits
var #clanQuestRunsPerReadyUp 1
// 1 = (default) attack every ready up once for free
// 2-99 = spend dias for more attacks
// ---------- Actions ---------- [ Heroes ]
var #enableHeroes 1
var #heroIntensity 1
var #topHeroes 0
//level top hero every X seconds, leave at 0 to disable
// ---------- Actions ---------- [ Skills ]
var #enableSkills 1
var #skipHS 1

var #fullManaSkill 5
// 1 = HS
// 2 = DS
// 3 = HoM
// 4 = FS
// 5 = WC
// 6 = SC

//press given skills every X seconds
var #intervalHS 0
var #intervalDS 5
var #intervalFS 5
var #intervalHoM 5
var #intervalWC 5
var #intervalSC 5

var #scActiveCheck 0
//used mainly for SC+Mana Siphon procs
//0 = Activate skills every X seconds normally
//1 = Activate skills every X seconds only if SC is active and has 1/4 duration left
// 1/4th duration of SC is usually enough to generate mana from a decent level of Mana Siphon

var #unlocked 0
// ^dont edit unless you know what it's for
//these will be the skill intervals when #lateRun > 0
//time dependent variable changes in :start will still apply, be sure to check :start section
if #lateRun > 0
#intervalHS = 0
#intervalDS = 5
#intervalFS = 5
#intervalHoM = 5
#intervalWC = 5
#intervalSC = 5
if #lateRun > #maxSkillsAtXMinutes
#unlocked = 8
else
#unlocked = 4
endif
endif

//just level each skill once
var #justUnlockSkills 1
// 1 = (default) just unlock
// 0 = level skills much as possible
// will always max HS and SC whether 1 or 0
// see Tune389 Issue 80 if using #justUnlockSkills 1

//only applicable when #justUnlockSkills == 1
// use 0 if you don't like
var #maxSkillsAtXMinutes 0

var #stopLevelSkillMins 1

//run skill check after prestige (0) or now (1)
var #startSkillCheckNow 1
// ---------- Actions ---------- [ Boss ]
//wait for given skill (2-6) then start boss
var #startBossSkill 5

//optional skill which will be clicked on start (not checked)
var #startBossSecondarySkill 2
// ---------- Developer / Expert
var #maxHitCount 9999999

//show current script runtime
var #showCurrentTime 1

//if you wanna sync the script time with real time you can play around with this value
var #timeScaleAddition 20
// ---------- Dec
var #randomX 0
var #randomY 0
var #color1 0
var #color2 0
var #loopCount 0
var #clanQuestLoopCount 0
var #pressLevelUpLoopCount 0
var #skillCheckStepper 0
var #actionStepper 0
var #levelHeroesStepper 0
var #skillActive 0
var #colorRed 0
var #colorBlue 0
var #colorGreen 0
var #loopDetectionCount 0
var #skillsUnlocked 0
var #tryWithDelay 0
var #checkRunning 0
var #clanQuestCount 0
var #recheckClanQuest 0
var #count 0
var #hitCount 0
var #skillAvailable 0
var #loopBreak 0
set #rAEXS #runActionsEveryXSeconds
set #iHS #intervalHS
set #iDS #intervalDS
set #iFS #intervalFS
set #iHoM #intervalHoM
set #iWC #intervalWC
set #iSC #intervalSC
calc #minz #lateRun * 60000
var #prestigeAfterXMinutes 60
if #prestigeStartTime > 0
calc #prestigeEndTime #prestigeStartTime + 10
rand #prestigeAfterXMinutes #prestigeStartTime #prestigeEndTime
else
set #prestigeStartTime 27
calc #prestigeEndTime #prestigeStartTime + 10
endif
var #maxedOutSkills 0
if #lateRun > 0
#maxedOutSkills = 2
#startSkillCheckNow = 0
endif
var #prestigeSlide 0
var #manualMax 0
var #hero 0
var #scAC 0
// ---------- Delays
var #btnDelay 150
var #hitDelay 40
var #hitDelay2 20
var #menuSlideDelay 200
var #menuPopUpDelay 500
var #loadingClanQuestDelay 3000
var #shipDelay 200
var #skillDelay 50
// ---------- Menu Coords
var #menuY 780
var #menuStats 15
var #menuHeroes 120
var #menuCloseY 455
var #menuCloseX 466
// ---------- Colors
var #colorWhite -65793
var #colorSkillActivated -20993
var #colorInfoNumber 475629
var #colorDia -7970303
var #colorLevelUpAvailable 1338350
var #skillGray 7829367
var #skillBlue -3693762
var #colorBlack 397861
var #colorStatsButton 3695603
var #colorGray 2695200
// ---------- TimeSets
var #timeLastActionRun 0
var #timeDiff 0
var #time 0
var #seconds 0
var #secondsTotal 0
var #minutes 0
var #lastPressHS 0
var #lastPressDS 0
var #lastPressFS 0
var #lastPressHoM 0
var #lastPressSC 0
var #lastPressWC 0
var #lastTopHeroes 0
var #resultManaPool 0
var #resultCheckBoss 0
var #resultUpdateTime 0
var #resultClanQuest 0
// ---------- MAIN
:start
#loopCount = #loopCount + 1
#resultManaPool = #loopCount % 901
#resultCheckBoss = #loopCount % 302
#resultClanQuest = #loopCount % 101
#resultUpdateTime = #loopCount % 3
#timeDiff = #secondsTotal - #timeLastActionRun

//add general execution delays
#time = #time + #timeScaleAddition

if #resultClanQuest == 0 and #enableClanQuest == 1
	goto :checkClanQuest
endif

if #resultUpdateTime == 0
	#seconds = (#time/1000)%60
	#secondsTotal = #time/1000
	#minutes = (#time/1000)/60
	
	if #enableSkills == 1

//time dynamic skill interval clicks
if #minutes > 10
#runActionsEveryXSeconds = 50
endif
endif
endif

if #showCurrentTime == 1 and #resultUpdateTime == 0
	toast #minutes:#seconds
endif

if #resultUpdateTime == 0 and #enablePremiumCollect == 1 and #agree == 1
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	#time = #time + 60
endif

if #resultUpdateTime == 0 and #enablePremiumCollect == 1 and #decline == 1
	touchDown 0 195 630
	sleep 30
	touchUp 0
	sleep 30
	#time = #time + 60
endif
if #resultUpdateTime == 0 and #timeDiff < #runActionsEveryXSeconds
	goto :pressSkills
endif
	
if #loopCount == 1 and #enableClanQuest == 1
	goto :checkClanQuest
elseif #loopCount == 2
	goto :init
elseif #minutes >= #prestigeAfterXMinutes and #enableAutoprestige == 1
	goto :checkPrestige
elseif #timeDiff >= #runActionsEveryXSeconds
	goto :runActions
elseif #resultCheckBoss == 0
	toast Prestiging at #prestigeAfterXMinutes minutes
	goto :checkBoss
elseif #resultManaPool == 0
	goto :checkMana
elseif #loopCount == #maxHitCount
	#loopCount = 0
	goto :randomTouch
else
	goto :randomTouch
endif

:end

:afterPrestige
#count = 0
#skillsUnlocked = 0
#time = 0
#seconds = 0
#secondsTotal = 0
#minutes = 0
#unlocked = 0
#lateRun = 0
#runActionsEveryXSeconds = #rAEXS
#maxedOutSkills = 0
#prestigeSlide = 0
#startSkillCheckNow = 1

#intervalHS = #iHS
#intervalDS = #iDS
#intervalFS = #iFS
#intervalHoM = #iHoM
#intervalWC = #iWC
#intervalSC = #iSC
rand #prestigeAfterXMinutes #prestigeStartTime #prestigeEndTime

goto :init
// ---------- INIT
:init
if #enablePremiumCollect == 1
if #agree == 1
touchDown 0 350 630
sleep 50
touchUp 0
sleep 50
#time = #time + 100
endif
if #decline == 1
touchDown 0 195 630
sleep 50
touchUp 0
sleep 50
#time = #time + 100
endif
endif

#lastPressHS = 0
#lastPressDS = 0
#lastPressFS = 0
#lastPressHoM = 0
#lastPressSC = 0
#lastPressWC = 0
#timeLastActionRun = 0

touchDown 0 #menuCloseX #menuCloseY
sleep #btnDelay
#time = #time + #btnDelay
touchUp 0
sleep #menuSlideDelay
#time = #time + #menuSlideDelay

if #runActionsOnStart == 1
	#actionStepper = 0
	goto :runActions
endif

goto :start

:loopDetected
toast loop detected - repeating ...
#loopCount = 0
#loopDetectionCount = 0
goto :start
// ---------- PRESS SKILLS
:pressSkills
//click "Fight Boss"
getColor #color1 372 24
if #color1 == 1076975
toast FightBoss1
touchPress 0 390 36
sleep 40
touchUp
sleep 40
#time = #time + 80
goto :pressSkills
endif

touchDown 0 #menuCloseX #menuCloseY
sleep 40
touchUp 0
sleep #menuSlideDelay
#time = #time + #menuSlideDelay + 40

if #enableCO == 1
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	#time = #time + 4 * #shipDelay
endif

if #enablePremiumCollect == 1
	if #agree == 1
		touchDown 0 350 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
	if #decline == 1
		touchDown 0 195 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
endif



#timeDiff = #secondsTotal - #lastPressSC
if #timeDiff >= #intervalSC and #intervalSC > 0
	#lastPressSC = #secondsTotal
	touchPress 0 430 710
	sleep #skillDelay
	touchPress 0 430 710
	sleep #skillDelay
	#time = #time + #skillDelay * 2
endif

#timeDiff = #secondsTotal - #lastPressHoM
if #timeDiff >= #intervalHoM and #intervalHoM > 0
	if #scActiveCheck == 1
		if #scAC == 0
			#scAC = 1
			getRGB #colorRed #colorGreen #colorBlue 423 688
			#time = #time + 100
		endif
		
		if #colorRed == -1 and #colorBlue == 0 and #intervalHoM > 0
			#lastPressHoM = #secondsTotal
			touchPress 0 200 710
			sleep #skillDelay
			touchPress 0 200 710
			sleep #skillDelay
			#time = #time + #skillDelay * 2
		endif
	elseif #scActiveCheck == 0
		#lastPressHoM = #secondsTotal
		touchPress 0 200 710
		sleep #skillDelay
		touchPress 0 200 710
		sleep #skillDelay
		#time = #time + #skillDelay * 2
	endif
endif

goto :pressSkillsB

:pressSkillsB
#timeDiff = #secondsTotal - #lastPressDS
if #timeDiff >= #intervalDS and #intervalDS > 0
if #scActiveCheck == 1
if #scAC == 0
#scAC = 1
getRGB #colorRed #colorGreen #colorBlue 423 688
#time = #time + 100
endif

		if #colorRed == -1 and #colorBlue == 0 and #intervalDS > 0
			#lastPressDS = #secondsTotal
			touchPress 0 120 710
			sleep #skillDelay
			touchPress 0 120 710
			sleep #skillDelay
			#time = #time + #skillDelay * 2
		endif
	elseif #scActiveCheck == 0
		#lastPressHoM = #secondsTotal
		touchPress 0 120 710
		sleep #skillDelay
		touchPress 0 120 710
		sleep #skillDelay
		#time = #time + #skillDelay * 2
	endif
endif
#timeDiff = #secondsTotal - #lastPressWC
if #timeDiff >= #intervalWC and #intervalWC > 0
	if #scActiveCheck == 1
		if #scAC == 0
			#scAC = 1
			getRGB #colorRed #colorGreen #colorBlue 423 688
			#time = #time + 100
		endif
		
		if #colorRed == -1 and #colorBlue == 0 and #intervalWC > 0
			#lastPressWC = #secondsTotal
			touchPress 0 360 710
			sleep #skillDelay
			touchPress 0 360 710
			sleep #skillDelay
			#time = #time + #skillDelay * 2
		endif
	elseif #scActiveCheck == 0
		#lastPressHoM = #secondsTotal
		touchPress 0 360 710
		sleep #skillDelay
		touchPress 0 360 710
		sleep #skillDelay
		#time = #time + #skillDelay * 2
	endif
endif

goto :pressSkillsC

:pressSkillsC
#timeDiff = #secondsTotal - #lastPressFS
if #timeDiff >= #intervalFS and #intervalFS > 0
if #scActiveCheck == 1
if #scAC == 0
#scAC = 1
getRGB #colorRed #colorGreen #colorBlue 423 688
#time = #time + 100
endif

		if #colorRed == -1 and #colorBlue == 0 and #intervalFS > 0
			#lastPressFS = #secondsTotal
			touchPress 0 280 710
			sleep #skillDelay
			touchPress 0 280 710
			sleep #skillDelay
			#time = #time + #skillDelay * 2
		endif
	elseif #scActiveCheck == 0
		#lastPressHoM = #secondsTotal
		touchPress 0 280 710
		sleep #skillDelay
		touchPress 0 280 710
		sleep #skillDelay
		#time = #time + #skillDelay * 2
	endif
endif

#scAC = 0

goto :pressSkillsD

:pressSkillsD
if #topHeroes > 0
#timeDiff = #secondsTotal - #lastTopHeroes
if #timeDiff >= #topHeroes
#lastTopHeroes = #secondsTotal
sleep 100
//open stats
sleep #btnDelay
#time = #time + #btnDelay + 100
touchDown 0 #menuHeroes #menuY
sleep #btnDelay
touchUp 0
sleep 1000
#time = #time + 1000 + #btnDelay

		//wait for slide
		sleep #menuSlideDelay
		#time = #time + #menuSlideDelay
		
		//slide top
		touchDown 0 280 650
		sleep 200
		touchMove 0 280 600
		sleep 50
		touchMove 0 280 700
		sleep 50
		touchMove 0 280 750
		sleep 50
		touchMove 0 280 780
		touchUp 0
		sleep 200
		#time = #time + #btnDelay + 1150
		
		//level top heroes
		touchPress 0 460 670
		sleep #btnDelay
		touchPress 0 460 670
		sleep #btnDelay
		touchPress 0 460 670
		sleep #btnDelay
		touchPress 0 460 670
		sleep #btnDelay
		#time = #time + btnDelay * 4
		
		//close stats
		sleep #btnDelay
		#time = #time + #btnDelay
		touchPress 0 #menuCloseX #menuCloseY
		touchPress 0 #menuCloseX #menuCloseY
		touchPress 0 #menuCloseX #menuCloseY
		sleep #menuSlideDelay
		#time = #time + #menuSlideDelay
	endif
endif

goto :start
// ---------- CHECK MANA
:checkMana
getColor #color1 208 638
if #color1 == #colorWhite
goto :startSkill
endif
goto :start

:startSkill
if #fullManaSkill == 1
touchPress 0 40 710
elseif #fullManaSkill == 2
touchPress 0 120 710
elseif #fullManaSkill == 3
touchPress 0 200 710
elseif #fullManaSkill == 4
touchPress 0 280 710
elseif #fullManaSkill == 5
touchPress 0 360 710
elseif #fullManaSkill == 6
touchPress 0 430 710
endif
#time = #time + 150
goto :start

:runActions
#timeLastActionRun = #secondsTotal
#actionStepper = #actionStepper + 1

if #enablePremiumCollect == 1
	if #agree == 1
		touchDown 0 350 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
	if #decline == 1
		touchDown 0 195 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
endif

//since skills should have been maxed, it wont go to openSwordMasterTab after
if #unlocked >= 8 or #maxedOutSkills > 1 and #actionStepper == 1
	#actionStepper = #actionStepper + 1
endif

if #justUnlockSkills == 0 and #minutes >= #stopLevelSkillMins and #actionStepper == 1
	#actionStepper = #actionStepper + 1
endif

if #actionStepper == 1 and #enableSkills == 1 and #skillsUnlocked < 6
	#skillsUnlocked = 0
	goto :openSwordMasterTab
elseif #actionStepper == 2 and #enableHeroes == 1
	goto :levelHeroes
elseif #actionStepper == 5 and #enableClanQuest == 1
	#actionStepper = 0
	goto :checkClanQuest
else 
	#actionStepper = 0
	goto :checkBoss
endif

goto :runActions

// ---------- CHECK PRESTIGE
:checkPrestige
sleep 4000
//#time = #time + 4000

if #agree == 1
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
endif

sleep 100
//open stats
sleep #btnDelay
touchDown 0 #menuStats #menuY
sleep #btnDelay
touchUp 0
sleep 30
//#time = #time + #btnDelay + #btnDelay + 130
	
//wait for slide
sleep #menuSlideDelay
//#time = #time + #menuSlideDelay

//slide top
touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
sleep 50
touchUp 0
sleep 800
sleep #btnDelay
touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
sleep 50
touchUp 0
sleep 800
sleep #btnDelay
touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
sleep 50
touchUp 0
sleep 800
sleep #btnDelay
//#time = #time + #btnDelay + 1200

//lvl up
sleep #btnDelay
sleep 50
//#time = #time + #btnDelay + 50
touchDown 0 466 580
sleep 50
touchUp 0
sleep 200
touchDown 0 466 580
sleep 50
touchUp 0
sleep 200
touchDown 0 466 580
sleep 50
touchUp 0
sleep 200
//#time = #time + 750

sleep 400

goto :checkPrestigeB

:checkPrestigeB
if #prestigeSlide < 7
//slide down
touchDown 1 280 740
sleep 200
touchMove 1 280 710
sleep 50
touchMove 1 280 500
sleep 50
touchMove 1 280 410
sleep 50
touchMove 1 280 400
sleep 50
touchUp 1
sleep 300
//#time = #time + 700
#prestigeSlide = #prestigeSlide + 1
goto :checkPrestigeB
endif

#loopBreak = #loopBreak + 1
if #loopBreak > 11
	#loopBreak = 0
	#prestigeSlide = 0
	
	//close stats
	sleep #btnDelay
	//#time = #time + #btnDelay
	touchPress 0 #menuCloseX #menuCloseY
	touchPress 0 #menuCloseX #menuCloseY
	touchPress 0 #menuCloseX #menuCloseY
	sleep #menuSlideDelay
	//#time = #time + #menuSlideDelay
	
	goto :checkPrestige
endif

touchDown 0 400 720
sleep 30
touchUp 0
sleep 30
sleep #menuPopUpDelay
//#time = #time + #menuPopUpDelay + 60

touchDown 0 240 640
sleep #btnDelay
touchUp 0
sleep #menuPopUpDelay
sleep 120
getColor #color1 430 540
if #color1 == 6384245
	touchDown 0 330 535
	sleep #btnDelay
	touchUp 0
	sleep 19000
	goto :afterPrestige
else
	touchPress 470 450
	touchPress 470 450
	touchPress 470 450
	touchPress 470 450
	#prestigeSlide = 0
	goto :checkPrestige
endif 

goto :start

// ---------- CHECK CLAN QUEST
:checkClanQuest
sleep 300

getRGB #colorRed #colorGreen #colorBlue 72 21
getColor #color1 65 795
if #colorRed < 190 and #colorRed > 120 and #color1 == #colorStatsButton
	#recheckClanQuest = 1
	goto :checkClanQuestReady
endif

goto :start

:checkClanQuestReady
if #agree == 1
sleep 3500
getRGB #colorRed #colorGreen #colorBlue 428 639
if #colorRed == -216 or #colorGreen == -96
touchDown 0 300 630
sleep 50
touchUp 0
sleep 50
touchDown 0 300 630
sleep 50
touchUp 0
sleep 50
touchDown 0 300 630
sleep 50
touchUp 0
sleep 1100
endif
endif

//open CQ menu
sleep #btnDelay
touchDown 0 80 25
sleep #btnDelay
touchUp 0
sleep #btnDelay
sleep 250
sleep 250

//touch clan icon bottom
touchDown 0 100 730
sleep #btnDelay
touchUp 0
sleep #loadingClanQuestDelay

sleep 3000
//check titan HP if > 0
getColor #color1 420 725
//420 730

if #color1 == -1785765 and #clanQuestCount == 0
	#recheckClanQuest = 0
	goto :clanQuestClose
endif

//boss progress color 
getColor #color1 175 335

#clanQuestLoopCount = 0

if #color1 == 2055160
	//boss up
	touchDown 0 310 740
	sleep #btnDelay
	touchUp 0
	sleep #menuPopUpDelay
	goto :clanQuestCheckDias
elseif #color1 == 0
	//boss down
	#recheckClanQuest = 0
endif

//close (and recheck)

goto :clanQuestClose

:clanQuestCheckDias
getColor #color1 40 215

if #color1 == -7775689
	//no dias left
	#recheckClanQuest = 0
	goto :clanQuestClose
else
	touchDown 0 325 450
	//330 450
	sleep #btnDelay
	touchUp 0
	
	sleep 3000
	getColor #color1 20 770
	
	goto :clanQuestHit
endif

:clanQuestHit
if #color1 == -28929 and #clanQuestLoopCount == 0
//add quest
#clanQuestCount = #clanQuestCount + 1
endif

#clanQuestLoopCount = #clanQuestLoopCount + 1

if #color1 == -28929 and #clanQuestLoopCount < 1000
	//hit the boss
	touchDown 0 180 730
	touchUp 0
	sleep 28
	goto :clanQuestHit
elseif #clanQuestLoopCount > 950
	goto :clanQuestClose
endif

:clanQuestClose
getColor #color1 65 788
if #color1 == #colorStatsButton
goto :clanQuestCloseCheck
else
touchDown 0 415 45
sleep 35
touchUp 0
sleep 200
touchDown 0 420 210
sleep 35
touchUp 0
sleep 200
goto :clanQuestClose
endif

:clanQuestCloseCheck
if #recheckClanQuest == 1 and #clanQuestCount < #clanQuestRunsPerReadyUp
goto :checkClanQuestReady
else
#clanQuestCount = 0
goto :start
endif

// ---------- LEVEL SKILLS
:openSwordMasterTab
if #count < 2
if #lateRun < 1 and #count < 2
if #count == 0
sleep 100
//open sword master tab
sleep #btnDelay
#time = #time + #btnDelay + 100
touchDown 0 #menuStats #menuY
sleep #btnDelay
#time = #time + #btnDelay
touchUp 0
sleep 20

			//wait for menu open
			sleep #menuSlideDelay
			#time = #time + #menuSlideDelay
		endif
		
		//slide top
		touchDown 0 280 650
		sleep 200
		touchMove 0 280 600
		sleep 50
		touchMove 0 280 700
		sleep 50
		touchMove 0 280 750
		sleep 50
		touchMove 0 280 780
		sleep 50
		touchUp 0
		sleep 750
	
		//slide top
		touchDown 0 280 650
		sleep 200
		touchMove 0 280 600
		sleep 50
		touchMove 0 280 700
		sleep 50
		touchMove 0 280 750
		sleep 50
		touchMove 0 280 780
		sleep 50
		touchUp 0
		sleep 750
	
		//slide top
		touchDown 0 280 650
		sleep 200
		touchMove 0 280 600
		sleep 50
		touchMove 0 280 700
		sleep 50
		touchMove 0 280 750
		sleep 50
		touchMove 0 280 780
		sleep 50
		touchUp 0
		sleep 750
		sleep #btnDelay
		#time = #time + #btnDelay + 3450
		
		touchDown 0 466 580
		sleep 50
		touchUp 0
		sleep 200
		touchDown 0 466 580
		sleep 50
		touchUp 0
		sleep 200
		touchDown 0 466 580
		sleep 50
		touchUp 0
		sleep 200
		#time = #time + 750
	endif
	
	if #lateRun > 0 and #count < 1
		#time = #time + #minz
		#seconds = (#time/1000)%60
		#secondsTotal = #time/1000
		#minutes = (#time/1000)/60
		#lateRun = 0
	endif
	
	if #count < 2
		#count = #count + 1
	endif
	
	if #count < 2
		goto :openSwordMasterTab
	endif
endif

//slide top
touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
touchUp 0
sleep 600
#time = #time + 950

if #enableSkills == 1 or #enableHeroes == 1
	goto :checkSkills
endif

goto :closeMenu

:checkSkills
if #startSkillCheckNow == 0
goto :checkSkillsFinish
endif

if #skillsUnlocked == 6 and #justUnlockSkills == 1
	toast skills unlocked, stop now until next prestige
	goto :checkSkillsFinish
endif

#skillCheckStepper = #skillCheckStepper + 1

if #skillCheckStepper == 1
	if #maxedOutSkills > 0 or #skipHS == 1
		#skillCheckStepper = #skillCheckStepper + 1
	endif
endif

goto :checkSkillsB

:checkSkillsB
#manualMax = #manualMax + 1

if #manualMax < 11
	goto :checkSkillsB
else
	#manualMax = 0
	goto :checkSkillsC
endif

:checkSkillsC
elseif #skillCheckStepper == 6
goto :maxSkill
elseif #skillCheckStepper < 6
goto :checkSkillsUnlock
endif

//slide back
touchDown 1 280 650
sleep 200
touchMove 1 280 600
sleep 50
touchMove 1 280 700
sleep 50
touchMove 1 280 750
sleep 50
touchMove 1 280 780
touchUp 1
#time = #time + 350

goto :checkSkillsFinish

:lvlSkill
if #minutes >= #maxSkillsAtXMinutes and #maxSkillsAtXMinutes > 0 and #unlocked < 8 and #skillCheckStepper <= 5
touchPress 0 459 755
sleep 300
#time = #time + 300
#unlocked = #unlocked + 1
endif

#time = #time + 100
getRGB #colorRed #colorGreen #colorBlue 459 755
if #colorBlue <= -45
	sleep 10
	#time = #time + 10
	goto :endLvlSkill

elseif #justUnlockSkills == 0
	goto :maxSkill
	
elseif #justUnlockSkills == 1
	if #skillCheckStepper < 6
		if #unlocked < 4
			#unlocked = #unlocked + 1
			touchPress 0 400 690
			sleep #btnDelay
			#time = #time + #btnDelay
			goto :endLvlSkill
		elseif #unlocked >= 4
			if #minutes < #maxSkillsAtXMinutes
				goto :endLvlSkill
			else
				if #unlocked < 8
					touchPress 0 400 690
					sleep #btnDelay
					#time = #time + #btnDelay
				endif
			endif
		endif
	endif
endif

goto :endLvlSkill

:endLvlSkill
if #skillCheckStepper == 6 and #maxedOutSkills == 0
#maxedOutSkills = #maxedOutSkills + 1
//slide
touchDown 1 280 750
sleep 200
touchMove 1 280 725
sleep 150
touchMove 1 280 660
sleep 150
touchMove 1 280 655
sleep 150
touchUp 1
#time = #time + 550
goto :quickSCTap
elseif #skillCheckStepper == 6
goto :checkSkills
else
goto :checkSkillsSlideDown
endif

:maxSkill
sleep 70
#time = #time + 70

#loopBreak = #loopBreak + 1
if #loopBreak > 15
	#loopBreak = 0
	goto :endLvlSkill
endif

getRGB #colorRed #colorGreen #colorBlue 459 755

sleep 50
#time = #time + 50

if #colorRed < -100 or #colorGreen < -100 or #colorBlue <= -40
	#loopBreak = 0
	goto :endLvlSkill
endif

touchPress 0 400 677
sleep 34
touchPress 0 400 677
touchPress 0 400 677
touchPress 0 400 677
sleep 45
touchPress 0 400 677
sleep 38
#time = #time + 115

goto :maxSkill

:quickSCTap
touchPress 0 400 715
sleep 500
touchPress 0 410 715
sleep 500
#time = #time + 115
#skillsUnlocked = 6
goto :checkSkills

:checkSkillsUnlock
sleep 200
#time = #time + 200

getRGB #colorRed #colorGreen #colorBlue 450 660

if #colorBlue == 2 or #colorBlue == 5
	#skillsUnlocked = #skillsUnlocked + 1
endif

if #colorBlue == 2
	sleep 100
	touchDown 0 466 660
	sleep 300
	touchUp 0
	sleep 200
	#time = #time + 600
endif

if #justUnlockSkills == 0
	getColor #skillAvailable 466 660
	if #skillAvailable == #skillBlue
		goto :checkSkillsSlideDown
	else
		goto :lvlSkill
	endif
endif

if #skillCheckStepper == 6
	goto :checkSkills
endif

goto :checkSkillsSlideDown

:checkSkillsSlideDown
//slide
touchDown 1 280 750
sleep 200
touchMove 1 280 725
sleep 150
touchMove 1 280 660
sleep 150
touchMove 1 280 655
sleep 150
touchUp 1
#time = #time + 550
goto :checkSkills

:checkSkillsFinish
#skillCheckStepper = 0
#maxedOutSkills = #maxedOutSkills + 1

if #enableHeroes == 1
	goto :runActions
endif

goto :closeMenu

// ---------- LEVEL HEROES
:levelHeroes

//collect gold
touchDown 0 30 230
sleep 50
touchUp 0
sleep 50
#time = #time + 100

if #agree == 1
	sleep 2000
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	touchDown 0 350 630
	sleep 30
	touchUp 0
	sleep 30
	#time = #time + 2180
endif

if #decline == 1
	sleep 2000
	touchDown 0 200 630
	sleep 30
	touchUp 0
	sleep 30
	touchDown 0 200 630
	sleep 30
	touchUp 0
	sleep 30
	#time = #time + 2120
endif

if #minutes < 1
	goto :closeMenu
endif

goto :levelHeroes2

:levelHeroes2
//open menu
sleep #btnDelay
#time = #time + #btnDelay
touchDown 0 #menuHeroes #menuY
sleep #btnDelay
#time = #time + #btnDelay
touchUp 0
sleep 1100
#time = #time + 1100

if #tryWithDelay == 1
	sleep 3000
endif

getColor #color 330 480
if #color != 5000276
	sleep 500
	goto :levelHeroes2
endif

#loopDetectionCount = #loopDetectionCount + 1
if #loopDetectionCount > 3
	#loopDetectionCount = 0
	toast levelHeroes loop
	//goto :loopDetected
	goto :scrollTop
endif

//scroll up
touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
touchUp 0
sleep 200

touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
touchUp 0
sleep 200
#time = #time + 2 * 550

//code check if already at top, currently on the process of being removed
// getColor #color1 95 764
// if #color1 == #colorWhite
//getColor #color1 300 510
//if #color1 == #colorGray
	//#loopDetectionCount = 0
	#tryWithDelay = 0
	//#time = #time + 2000
	
	goto :scrollTop
//endif

#tryWithDelay = 1

goto :levelHeroes2

:scrollTop
#loopDetectionCount = #loopDetectionCount + 1
if #loopDetectionCount > 20
#loopDetectionCount = 0
toast scrollTop loop
//goto :loopDetected
goto :lvlTopHero
endif

sleep 90
#time = #time + 90

getColor #color1 275 527
getColor #color2 275 519
//300 510
#time = #time + 110
if #color1 == #colorGray and #color2 == #colorGray
	#loopDetectionCount = 0
	sleep 400
	#time = #time + 400
	
	touchDown 0 280 650
	sleep 200
	touchMove 0 280 600
	sleep 50
	touchMove 0 280 700
	sleep 50
	touchMove 0 280 750
	sleep 50
	touchMove 0 280 780
	touchUp 0
	sleep 600
	#time = #time + 950

	goto :lvlTopHero
endif

touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
touchUp 0
sleep 200

touchDown 0 280 650
sleep 200
touchMove 0 280 600
sleep 50
touchMove 0 280 700
sleep 50
touchMove 0 280 750
sleep 50
touchMove 0 280 780
touchUp 0
sleep 200
#time = #time + 2 * 550

goto :scrollTop

:lvlTopHero
touchPress 0 466 570
sleep #btnDelay
touchPress 0 466 570
sleep #btnDelay
touchPress 0 466 570
sleep #btnDelay
touchPress 0 460 670
sleep #btnDelay
touchPress 0 460 670
sleep #btnDelay
touchPress 0 460 670
sleep #btnDelay
touchPress 0 460 670
sleep #btnDelay
#time = #time + #btnDelay * 7

//lvl up only nearby heroes at this time onwards
//edit as you see fit
if #minutes >= 1 or #lateRun > 0
	//slide down
	touchDown 1 280 740
	sleep 200
	touchMove 1 280 710
	sleep 50
	touchMove 1 280 500
	sleep 50
	touchMove 1 280 410
	sleep 50
	touchMove 1 280 400
	touchUp 1

	sleep 300
	#time = #time + 650
	
	goto :levelHeroesPressLevelUp
endif

goto :levelHeroesScrollDown

:levelHeroesScrollDown
#loopDetectionCount = #loopDetectionCount + 1
if #loopDetectionCount > 29
toast levelHeroesScrollDown loop
goto :loopDetected
endif

getColor #color1 440 760
if #color1 == #colorGray
	#loopDetectionCount = 0
	
	touchDown 1 280 750
	touchMove 1 280 745
	sleep 100
	touchMove 1 280 740
	touchMove 1 280 735
	sleep 50
	touchMove 1 280 700
	touchMove 1 280 690
	sleep 50
	touchMove 1 280 500
	touchMove 1 280 450
	sleep 20
	touchMove 1 280 420
	touchMove 1 280 410
	sleep 50
	touchMove 1 280 400
	touchUp 1
	sleep 300

	touchDown 1 280 750
	touchMove 1 280 745
	sleep 100
	touchMove 1 280 740
	touchMove 1 280 735
	sleep 50
	touchMove 1 280 700
	touchMove 1 280 690
	sleep 50
	touchMove 1 280 500
	touchMove 1 280 450
	sleep 20
	touchMove 1 280 420
	touchMove 1 280 410
	sleep 50
	touchMove 1 280 400
	touchUp 1
	sleep 300

	touchDown 1 280 750
	touchMove 1 280 745
	sleep 100
	touchMove 1 280 740
	touchMove 1 280 735
	sleep 50
	touchMove 1 280 700
	touchMove 1 280 690
	sleep 50
	touchMove 1 280 500
	touchMove 1 280 450
	sleep 20
	touchMove 1 280 420
	touchMove 1 280 410
	sleep 50
	touchMove 1 280 400
	touchUp 1
	sleep 300

	touchDown 1 280 750
	touchMove 1 280 745
	sleep 100
	touchMove 1 280 740
	touchMove 1 280 735
	sleep 50
	touchMove 1 280 700
	touchMove 1 280 690
	sleep 50
	touchMove 1 280 500
	touchMove 1 280 450
	sleep 20
	touchMove 1 280 420
	touchMove 1 280 410
	sleep 50
	touchMove 1 280 400
	touchUp 1
	sleep 300
	#time = #time + 1140
	
	goto :lvlBottomHero
endif

touchDown 1 280 750
touchMove 1 280 745
sleep 100
touchMove 1 280 740
touchMove 1 280 735
sleep 50
touchMove 1 280 700
touchMove 1 280 690
sleep 50
touchMove 1 280 500
touchMove 1 280 450
sleep 20
touchMove 1 280 420
touchMove 1 280 410
sleep 50
touchMove 1 280 400
touchUp 1
sleep 270
#time = #time + 540

goto :levelHeroesScrollDown

:lvlBottomHero
// for legacy coordinates:
// 1 = Finn (Ranged) 466 570
// 2 = Nohni (Melee) 466 645
// 3 = Damon (Mage) 466 720

touchPress 0 466 720
sleep #btnDelay
touchPress 0 466 720
sleep #btnDelay
touchPress 0 466 720
sleep #btnDelay
touchPress 0 466 720
sleep #btnDelay
#time = #time + #btnDelay * 4

#seconds = (#time/1000)%60
#secondsTotal = #time/1000
#minutes = (#time/1000)/60

goto :levelHeroesPressLevelUp

:levelHeroesSlideUpCollection
#loopDetectionCount = #loopDetectionCount + 1
if #loopDetectionCount > 34
#loopDetectionCount = 0
toast levelHeroesSlideUpCollection loop
goto :closeMenu
endif

getColor #color1 275 527
getColor #color2 275 519
//300 510
#time = #time + 210
if #color1 == #colorGray and #color2 == #colorGray
	#loopDetectionCount = 0
	goto :closeMenu
endif

touchDown 1 280 510
sleep 20
touchMove 1 280 512
touchMove 1 280 514
touchMove 1 280 516
sleep 20
touchMove 1 280 520
touchMove 1 280 540
sleep 20
touchMove 1 280 580
touchMove 1 280 600
sleep 20
touchMove 1 280 630
touchMove 1 280 670
sleep 20
touchMove 1 280 690
touchMove 1 280 700
sleep 20
touchMove 1 280 736
touchMove 1 280 738
sleep 20
touchMove 1 280 740
touchMove 1 280 742
sleep 200
touchUp 1
touchPress 1 280 750
#time = #time + 690

goto :levelHeroesPressLevelUp

:levelHeroesPressLevelUp
#pressLevelUpLoopCount = #pressLevelUpLoopCount + 1

touchDown 1 466 720
sleep 42
touchUp 1
sleep 42
touchDown 1 466 700
sleep 42
touchUp 1
sleep 42
touchDown 1 466 680
sleep 42
touchUp 1
sleep 42
touchDown 1 466 660
sleep 42
touchUp 1
sleep 42
touchDown 1 466 640
sleep 42
touchUp 1
sleep 42
touchDown 1 466 620
sleep 42
touchUp 1
sleep 42
touchDown 1 466 600
sleep 42
touchUp 1
sleep 42
touchDown 1 466 580
sleep 42
touchUp 1
sleep 42
touchDown 1 466 560
sleep 42
touchUp 1
sleep 42
touchDown 1 466 540
sleep 42
touchUp 1
sleep 42

#time = #time + 840

if #pressLevelUpLoopCount < #heroIntensity
	goto :levelHeroesPressLevelUp
endif

#pressLevelUpLoopCount = 0

goto :levelHeroesSlideUpCollection

:closeMenu
//close stats
sleep #btnDelay
#time = #time + #btnDelay
touchPress 0 #menuCloseX #menuCloseY
touchPress 0 #menuCloseX #menuCloseY
touchPress 0 #menuCloseX #menuCloseY
sleep #menuSlideDelay
#time = #time + #menuSlideDelay
goto :runActions

// ---------- CHECK BOSS
:checkBoss
getColor #color1 139 85

if #color1 == #colorWhite
	goto :pressSkills
endif

getColor #color2 459 29
	
if #startBossSkill == 2
	getColor #color1 108 685
elseif #startBossSkill == 4
	getColor #color1 268 685
elseif #startBossSkill == 3
	getColor #color1 189 685
elseif #startBossSkill == 5
	getColor #color1 348 685
elseif #startBossSkill == 6
	getColor #color1 428 685
endif

if #color1 == #colorWhite and #color2 == #colorBlack
	goto :startBossWithSkills
elseif #color2 == #colorBlack and #startBossSkill == 0
	toast FightBoss2
	touchDown 0 390 36
	sleep #btnDelay
	touchUp 0
	sleep #btnDelay
	touchDown 0 390 36
	sleep #btnDelay
	touchUp 0
	sleep #btnDelay
	#time = #time + 4 * #btnDelay
endif

//hatchEggs
touchPress 0 30 285
sleep 30
touchUp 0
sleep #btnDelay
#time = #time + #btnDelay

goto :pressSkills

:startBossWithSkills
getColor #color1 372 24
if #color1 == 1204718
toast FightBoss3
touchPress 0 390 36
sleep 300
#time = #time + 300
goto :startBossWithSkills
endif

#time = #time + 400

if #enableCO == 1
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	touchPress 0 175 410
	sleep #shipDelay
	#time = #time + #shipDelay * 4
endif

if #startBossSkill == 2
	touchPress 0 120 710
	sleep 200
	goto :startBossWithSecondarySkill
elseif #startBossSkill == 3
	touchPress 0 200 710
	sleep 200
	goto :startBossWithSecondarySkill
elseif #startBossSkill == 4
	touchPress 0 280 710
	sleep 200
	goto :startBossWithSecondarySkill
elseif #startBossSkill == 5
	touchPress 0 360 710
	sleep 200
	goto :startBossWithSecondarySkill
elseif #startBossSkill == 6
	touchPress 0 430 710
	sleep 200
	goto :startBossWithSecondarySkill
endif

:startBossWithSecondarySkill
if #startBossSecondarySkill == 2
touchPress 0 120 710
elseif #startBossSecondarySkill == 3
touchPress 0 200 710
elseif #startBossSecondarySkill == 4
touchPress 0 280 710
elseif #startBossSecondarySkill == 5
touchPress 0 360 710
elseif #startBossSecondarySkill == 6
touchPress 0 430 710
endif

#time = #time + 400

goto :pressSkills

// ---------- RANDOM ATTACK
:randomTouch

rand #randomX 60 415
if #enableFairies == 1
	rand #randomY 160 420
else
	rand #randomY 270 420
endif

//prevent hero story window
if #randomY > 184 and #randomY < 233 and #randomX > 403
	goto :randomTouch
endif

//equipment stacking
if #equipStack == 1
	if #randomX > 300 and #randomX < 420 and #randomY > 280
		goto :randomTouch
	endif
endif

if #enableTapping == 1
	touchDown 0 #randomX #randomY
	touchUp 0
endif

sleep #hitDelay2
#time = #time + #hitDelay

goto :randomTouchD

:randomTouchD

if #hitCount > 12
	#hitCount = 0
	goto :extra
endif

if #agree == 1 or #decline == 1 or #PHoM == 1
	#hitCount = #hitCount + 1
endif

goto :start

:extra
#hitCount = 0

//prevent hero story window
if #randomY > 37 and #randomY < 233 and #randomX > 420
	goto :randomTouch
endif

if #PHoM == 1
	touchDown 0 270 370
	sleep 12
	touchUp 0
	sleep 14
	touchPress 0 270 370
	sleep 2
	touchUp
	sleep 3
	touchPress 0 270 370
	sleep 16
	touchUp 0
	sleep 18
	touchDown 0 270 370
	sleep 10
	touchUp 0
	sleep 18
	#time = #time + 60
endif

if #enablePremiumCollect == 1
	if #agree == 1
		touchDown 0 350 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
	if #decline == 1
		touchDown 0 195 630
		sleep 50
		touchUp 0
		sleep 50
		#time = #time + 100
	endif
endif

goto :randomTouch`

@DaBest1Evar it's so hard to track changes because formatting fucked up. maybe you can link me to a download link instead

but in general, what was chanegd?

@chrisreyn
i changed the skill leveling to ONLY max warcry to 25 and leave the others at lv.1, works like 98% of the time and rarely maxes another skill other than warcry but nothing too major. i honestly didn't change much because the script was in top condition but that's really the only thing that comes to mind.

Download is below and sorry for the super late response!

https://www.mediafire.com/file/g5p1ssudv4afjl8/PerfectCSBuild.txt/file

@DaBest1Evar im assuming you dont have enough mana regen to sustain the lvl 25 skills. I know my skill level up is not intuitive and how it goes about leveling up everything, but as it stands, the current form works for me so remaking the skill level up sections is on a low priority

since you have your own working part for that and not like i'll touch the level up system soon, then you can just replace it easy in future commits