#Codrineyes TowerTesting

1 messages ยท Page 2 of 1

spark pendant
#

what lowest infinity?

#

previous infinity?

robust flume
#

out of region or out of 90 or on same difficulty lvl or since the script is started

spark pendant
#

yea, I don't know highscores, so idk what you expect it to be?

do you have the thing that sets your current waves, eras and infinities to your highscore?

robust flume
#

oh it cant check it?

spark pendant
#

I mean, I could, but it's not worth the redesign for that. It doesn't add to the functionality and provides an inconvenient extra thing to do... people already don't like the fact that my script can either start from easy or impossible, if I had to start from forest as well, that'd be another thing people don't like

spark pendant
# robust flume oh it cant check it?
:const string counting_string "ABCDEFGHIJKLMNO"
```this is what regions mean, difficulties (if I'm in Difficulty>Region) are `ABCDEFG`
I don't know what region you are. I can figure out what difficulty you're on, but not the region
robust flume
#

but it can rotate tho?
so it only needs to compare to previous ones to the existing ones
keeping 15 value should be enough for region rotation only version?(90 for region+diff)

#

or 3

spark pendant
#

yea, rotating just means I'm back to A if in mode Region>Difficulty, or I just don't care about what region I am at all on Difficulty>Region

robust flume
#

exactly

spark pendant
#

so it only needs to compare to previous ones to the existing ones

That only works if I know the region I started in, which I don't, and just because I could, it doesn't mean the script really should

robust flume
#

i doubt that someone would need region 1 diff 3 be higher than the region 7 diff 5

#

if they really need it they could set it instead

#

"ABCDEFGHIJKLMNO" checking relative to the start should be decent

spark pendant
#

I mean, I doubt people need ratios. You usually want wavegoals, which is the same value across x difficulties and regions.

at mt15, you'll usually just ignore additional_cond entirely and just let it go until your tower dies, or just don't use my script

spark pendant
robust flume
#

yeah but it doesnt need the "forest" in what i mentioned

spark pendant
#

yes, I just need a pre-defined starting point, and forest is the easiest one to guarantee

robust flume
#

ok lemme say it like this

give the starting region "a" and save its value as highest or lowest
and then rotate it around until it reaches the predetermined condition of higher/lower than starting or check every region till it comes back to the "a" then if the lowest/highest value is at "k" use the copied value of "k" and go till it reaches a relative value to it

spark pendant
#

Starting from forest in itself is pretty easy. I just need to add a scrollrect to guarantee I'm at the top and click on forest.

It's simple to add, hard to implement, and absent because I can't see what possible value this information gives, because it's gonna be something extra for the user, sure, but something extra that will only be used by 1 or 2 people... it wouldn't be a problem if it didn't have an impact on the architecture, yknow?

robust flume
#

ohhh i assumed u were using this

#

not the region selector

spark pendant
#

using it would imply knowing what region I'm at. I don't. I'm using this

robust flume
#

but what do u need the region for

#

the thing i mentioned doesnt need the exact region just relative region is enough

spark pendant
#

I don't need the region for anything. I'd need it for what you're saking for

robust flume
#

same way u rotate

robust flume
spark pendant
# robust flume the thing i mentioned doesnt need the exact region just relative region is enoug...

the thing you're asking for requires the actual highscore() function
The thing you're suggesting implies the user buth has the Wave_Restart.pkg software installed and enabled at startup, and also to keep an internal array, that'll need to be in the global field, which I'll need to index for information that also needs to be updated and retrieved and it's genuinely an entire mess.

I can't just add 90 globals to the AI, at minimum I'd add 1, and adding 1 has a lot of consequences

robust flume
#

what kinda consequences?

spark pendant
#

add a protected field, come up with a naming schema so I can actually work with it, make it easy for the user to retrieve info from it, guard against potential race conditions, retrieve region data right as I'm exiting, since waves, eras and infinities are still updating while I exit, keep the rest of the AI functioning, since I'm adding stuff that the script has to interact with... and all for something that people won't even use. Not a lot of people say they use my tool, and I know that from the small amount of users actually using it, a fraction of them actually uses additional_cond, so it's not even going to be used by people

robust flume
#

it sounds messier than regular coding

spark pendant
#

welcome to tpt2 scripting XD

robust flume
#

nah i stayed away from tpt2 scripts cause of that :D

spark pendant
#

you sure about that?
Because this is tpt2 scripting... this is what adding something new to a script implies

robust flume
#

how about other "main ones" requests?
they seem easier

spark pendant
#

what do you mean by "main ones"?

robust flume
#

.

#

i suggested like 5 additional condition

spark pendant
#

isn't that what we've been talking about this whole time?
that is what requires the retrieval of high scores

robust flume
#

wasnt it this?

spark pendant
#

do you have wave restart enabled?
I can make you something that should work for you

robust flume
#

u can ignore the 2nd to bottom on this one

spark pendant
#

ok, so just something that lets you reach a certain ammount of infinities, eras and waves?

robust flume
#

inf is enough thoose were for general use

robust flume
spark pendant
#

oh, ok... tho you didn't have to ping me for that

robust flume
#

hmmm how about after 90 region multiplying the value with number n (10 in my case for what i need)

spark pendant
#

I guess technically possible, but quite the pain, you sure?

#

oh, and definitely impossible in Difficulty>Region without changing {diff.set}, which I'm not too keen on doing

robust flume
#

i wanna try something like
make everything 10k then 100k then 1m then 10m etc...

spark pendant
#

at this point, it's probably better to have another script help you

robust flume
spark pendant
#

hard-ish + tired

I don't think there's another cycler being maintained, no. You can give goals crawl a shot, but when I tried to use it, it didn't work, which is what actually created Codrineye's TowerTesting

vestal vine
#

this doesn't seem to cycle through regions for me or select easy, is there like a specific ui size or something that this needs? I'm pretty sure I run smallest ui size, but not dynamic ui.

spark pendant
vestal vine
#

Smallest so 60? And reso is 1440 by 1080 iirc maximized but not full screen

spark pendant
#

smallest ui size?
that's 50%

No dynamic rendering, ye?

vestal vine
#

I am not at PC but can tell you tomorrow, just heading to bed

#

No dynamic

#

And yeah then 50%

spark pendant
#

I mean. Normal debugging steps:
Was Region Cycling on? I assume yes.
What mode were you on? If Region -> Difficulty, you'd stay on easy for 15 regions and then won't go back to easy for the next 75 go-throughs

vestal vine
spark pendant
#

wait, was region cycling on?

vestal vine
#

Yes

#

W and D were both pressed, but I've tried both toggles of D and neither cycles through regions at all in 8+ hours

#

I can give more info if needed when I get back to my pc, I just got in bed

spark pendant
#

wait, are you maybe willing to run a small test?
probably too late, but hey, worth a try

vestal vine
#

I can't now but can when I wake up if you wanna give me instructions

spark pendant
#

oh, it's just to run this and to send me a ss of where the dots are drawn after you've entered all difficulties. But it's a-ok

vestal vine
#

Yeah I'll do that tomorrow

#

Computer is too far away and I'm too tired to do it tonight, about 4 hours past when I should be asleep lol

#

It's too bad tt buttons aren't part of the api

spark pendant
#

oh no, my monitor isn't big enough for x1080 XD

Ok. I might unfortunately end up needing your screenshot.

vestal vine
#

That's fine, I'll get it to you tomorrow ๐Ÿ™‚ thanks for your help and all your AI projects. I was gonna make a tt region walker at one point but I got frustrated with the coordinates stuff for clicking.

spark pendant
#

yea. No kidding XD

I unfortunately can't reproduce it
Using the script I just gave you. It draws a white square exactly where it clicks, and they're exactly on the buttons.

vestal vine
#

Yeah I'll try tomorrow, have a good day/evening wherever you are

vestal vine
spark pendant
#

just import the new AI, press key.x, enable region cycling, and wait for the AI to enter easy thought impossible + change region

ornate wasp
#

should've given them more contrast

vestal vine
#

oh yeah it's working

#

I thought this was a debug thing for you

#

not a completed script lol

spark pendant
#

it is

#

do you have boots.d0s?

vestal vine
#

uh don't think so

#

checking

#

no, dos autominer, dungeonmap, timer, timer actions, superclick2, and factory

spark pendant
#

no. It's a software

#

wait. You got dungeon map.
you should have it then

vestal vine
spark pendant
#

do you see a software called boots.d0s in the Software tab?

vestal vine
#

no

#

I'm missing one I've never known how to get

spark pendant
#

go into adventure and activate dungeonmap 2 times in quick succession while the debug overlay is active

#

it'll unlock boots.d0s for you. Install it

vestal vine
#

what's the debug overlay

spark pendant
#

f2

#

see?
Open Debug Menu

vestal vine
#

I'm doing something wrong, yeah, f2 works, but it's not unlocking anything in adventure

spark pendant
#

you activated dungeonmap multiple times such that Facility AI crashes?

vestal vine
#

no

#

oh I was pressing wrong key

spark pendant
#

lol

vestal vine
#

doesn't seem to crash it, lags it for a second

#

I did accidently reset my adventure

spark pendant
#

you ran it 2 times?

vestal vine
#

yeah

spark pendant
#

import```
zZBNCoNADIXvkvW0ONCVy16juogxtUEdBydBQbx78W/TE3TzePn5ePAWSDRK1AT5awEklSFsHgrLsuzdcOBR6M4zkykXFQ0hKQbdz49DlZOC+2PC+4uYUHT6SPfL+EOhdEBDqOWqoXQgfbQu8V7KhC1b3L4C9gw5nCERqcVmW4CDyuqGFfKbd2CJn+eoo/Farl8=

#

gad dangit

vestal vine
#

buncha tests

#

on the left

spark pendant
#

oh, right

vestal vine
spark pendant
#

this```
zVBLCsIwEL1KmbVKFFcuvYbtIk3HEGqTkMxQofTuTlPahV7AzYP3G4Y3QTbJRcpwqx4TaEMu+EKgZqXU06LH5MwJ32iYsG6N+KQ9Ffu6ImEmOFR/XNnjNlD4yl4Kql+ERqotdxZJFjmehUmxc/tGi++GyK+M62aj7pFj6Xk9oGiwvRC16bUt0kI54327TIlxbuYP

#

delete the other one

vestal vine
#

that did it

spark pendant
#

good. Now delete test and install boots.d0s

vestal vine
#

done

spark pendant
vestal vine
#

ok, it's drawn 1 so far

#

I assume I have to run it for a bit?

spark pendant
#

oh. I did not change additional_cond XD

vestal vine
#

hehehe

spark pendant
#

you willing to change it yourself to true?

vestal vine
#

I can probably, what line is it on?

spark pendant
#

16

#

ya good bud?

vestal vine
#

just set it to true?

spark pendant
#

ye

vestal vine
#

done

spark pendant
#

ok, just run it and it'll finish quickly

vestal vine
#

I see 1 green and 2 white boxes

#

as it cycles through regions

spark pendant
#

green box?
Wut?

Eh, we'll find that when we get 7 squares

vestal vine
#

ok I see

#

do I stop it now with x?

spark pendant
#

ye

vestal vine
#

oh that didn't keep the boxes hold on

spark pendant
#

did you press f4?

vestal vine
#

no

spark pendant
vestal vine
spark pendant
#

oh. The green square is from BigManx4X, lol

vestal vine
#

lolol

#

haven't even been there since I installed that

spark pendant
#

oh, and bigmanx does a canvas.clear, so that's why it cleared the other white squares

vestal vine
#

so this one seems to be working, the other one wasn't

spark pendant
#

mind giving me the other one?
Or is it deleted?

It looked deleted in your last ss of Facility AI, but maybe you put it somewhere else?

#

nvm. It doesn't look deleted anymore.
Mind giving me that export code?

#

ty

manic juniper
#

-# [AutoMod has flagged a message in #1186247659233751140.]

spark pendant
#

you can just upload message as file

vestal vine
#

how do I do that lol, or do I just have to make a file

spark pendant
#

by pressing this button

#

for a better look at it

vestal vine
#

deleted the old one

#

I didn't know th at context menu changed when there was text in the box

spark pendant
#

yea. That one had a counting string shorter by 1 character, which is why it would skip easy mode and, for some reason I don't remember, skip pressing the next region button

spark pendant
vestal vine
spark pendant
#

yea. And there've been like 3 or 4 patches since then

vestal vine
#

oh ok

#

yeah I got it idk maybe 2 or 3 days after 1.0 came out

#

maybe a little more

#

normally this is something I could debug myself but I just find this incomprehensible to read lol and I really don't like using the external script thingy

spark pendant
#

the version I gave you is basically the one on my github but with an additional cond made for Crafter.
I added the canvas.rect debuggers, but otherwise, it's virtually identical.

The version you were using was the one that was fixed after this message
#1186247659233751140 message

vestal vine
#

ok

spark pendant
vestal vine
#

this is the way with coding lolol

spark pendant
#

anyways. This is basically what was wrong```
; This starts the block hider
; The difficulty variable holds a counter and the current coordinate
; The counter is used to decide what we're doing based on the mode.
; It uses index("ABCDEFGHIJKLMN", sub(diff, 0, 1), 0) + 1 to count up
; A = 0, B = 1 and O = 15. Thus, I can determine what to do by simply using a contains()
;
; How changing difficulty is determined:
; If we're in mode1, we're always moving to the next difficulty. If we're in mode2, we only move
; to the next difficulty after we've counted up to 15
;
; How changing region is determined:
; If mode1, we only change the region when our counter is at A. If mode2, we always move to the
; next region
;
:const string counting_string "ABCDEFGHIJKLMNO"
;
; We shut off the hider with a </size> block if the script is running
; or if start/cycling/mode were pressed while inside the headquarters/towertesting menu

(it's there now because it's been fixed, but the index() is the original counting string)
#

oh, nvm. I guess I just never learned to count```
; It uses index("ABCDEFGHIJKLMN", sub(hider, 0, 1), 0) + 1 to count up
; A = 0, B = 1 and N = 14. Thus, I can determine what to do by simply using a contains()

vestal vine
#

well thanks for the help

#

I was about to tell you it's not working again, but I just went and redownloaded the one I uploaded lmfao, grabbing the one you sent me with the unmodified cond argument now

sharp echo
#

how do i get the script?

spark pendant
#

It did not recieve an update. I just posted the message again

mental cedar
#

how do i use this script ot farm era 1, 90/90

spark pendant
#

set additional_cond to comparison.double game:era >= 1

mental cedar
#

if i want the code to restart for accelartion for era farming what best way to do that

#

have a 2nd script that starts when a run starst. waits a minute then kills it if accelration is too low?

spark pendant
#

you want auto-restart?

mental cedar
#

Era accelration cause critical wave jump

#

or just afk and ignore that

spark pendant
#

yea, it should be safe to have the other script active

mental cedar
#

will it mess with region orders?

spark pendant
#

nope. If additional_cond is only the 1 era rule, you should be golden

mental cedar
#

Yep got it working

#

2nd script starsrt on new round. Waits a few seconds. And if Wave Accelartion is below sofcap [1e9 from crit jump] it Restarts round.

#

this will get faster as the accealrtion bonus from eras finishes at least

#

but once i get era 1 90/90 i can start getting inf 2 and inf 1 fore MT13

spark pendant
#

ye.
Do you think your current blueprint can survive infinity?

spark pendant
mental cedar
#

no

spark pendant
#

no, you can't live in infinity?

#

oh wait, I'm dumb, you need 90/90 era, not infinity, mb

mental cedar
#

use bluecat blueprint i believe

#

but yeah this works

#

eventually the accelartion bonus will make the crit jump stuff less neceassary

#

so it gets faster and faster to get all 90/90

spark pendant
#

do you think that you can reach era 1 in chaos impossible before achieving 89/90 era?

mental cedar
#

tha tmight fail

#

but still era 1, 89/90 is still good

#

Clear all diffiuclties on each region then go to next. or do all the easy 1 first

#

what you recomend

spark pendant
#

no, do you think it's possible for you to reach era 1 in chimp without it being the last era?

#

I'm asking for a certainty so that you can have a dynamic additional_cond

mental cedar
#

ill just check manually at the end

#

if it gets stuck

#

checking chaos impossible now

#

yeah i think i can surive it

spark pendant
#

oh wait, I can actually get you a dynamic additional cond, think you want that?

#

an additional cond that changes to infinity >= 1 once you reach 90/90 era

mental cedar
#

no

mental cedar
#

Why is script defualting to the hard diffuclty

mental cedar
#

Ok so im set the script to try to autogrind Inf

#

[inf 1]

#

but it DID NOT do them easy

#

????

spark pendant
# mental cedar Why is script defualting to the hard diffuclty

this could mean 1 of 2 things.

  1. User error (which I don't really like as an option)
  2. My script messed up (what I hope happened)

So let's rule out user error. You're not on Region->Difficulty, the difficulty is "Hard" and you just didn't wait for a cycle to complete?

mental cedar
#

i think it i know what happend

#

I pausd script with X and it didnt refresh it

#

when i F4 to reset script it "fixed it"

spark pendant
#

oh, that's because it keeps what stage in the cycle it is in the global variable hider.

spark pendant
mental cedar
#

yep

#

can this script work with Inf Farming

#

where it just moves to next zone after tower dies

spark pendant
#

the script can work with any blueprint if that blueprint works.
Yes, by default if your tower dies it will move by 1 step

spark pendant
#

Updated scripts source to new macro parsing. There should be difference in functionality

pearl forge
#

sorry if it is a stupid question but i dont get how to import your ai when i try i just have a bunch of code on the left and no ai folder on the right

spark pendant
#

what? How?
Can you send a screenshot of your game screen?

pearl forge
tight elkBOT
#

@pearl forge has earned the Spark role!

spark pendant
drifting python
#

where do i get the import code on the github?

spark pendant
drifting python
#

thank you ๐Ÿ™

drifting python
#

does it matter if i rescale the window if i still have ui scale on 100?

spark pendant
#

You just need to have Dynamic UI Scaling off. Messing with the UI scale and the window size is perfectly ok

#

Is this is on. My script can get a stroke, but as long as it's off, you're golden

drifting python
#

okay

#

the game just didnt look that good when i put my ui scale to 100%

tight elkBOT
#

@drifting python has earned the Spark role!

drifting python
#

thanks a lot though

spark pendant
#

happy to help bud

drifting python
#

sorry to keep asking questions but will having dynamic rendering on break things?

spark pendant
#

no. Just the UI scaling.
the thing is kinda resilient. You should, in theory, have a hard time breaking it. (just UI scaling since that's not something we can solve)

drifting python
#

alright ๐Ÿซก ๐Ÿ˜

#

thank you again

spark pendant
#

don't need to appologize for asking questions. I'm happy to help lad :)
Feel free to ping me

#

and if you do find a way to break it, please tell me, cus problems are fun to solve :)

drifting python
#

will do!

warm stream
#

how do you make it cycle through the easy modes of reach region?

spark pendant
warm stream
#

so w changes region cycling but how do you change mode

spark pendant
#

Really? The UI should tell you the key. Do you have global variables off?

spark pendant
warm stream
#

huh it doesn't show that

#

but q doesn't do anything

spark pendant
#

care to send a screenshot of the script in Facility AI?

warm stream
#

sure

#

and these are the onlyl things there

spark pendant
#

Yup, that's the old boy

warm stream
#

oh

warm stream
#

ah yes ty so much

spark pendant
# warm stream

That boy be ancient, Honestly a little surprised it still works just because I had no real clue how to do relative vectors back then

warm stream
#

dam i just pressed on the one at the top message

spark pendant
#

Yea, it's rather confusing. I usually get by it through simply putting the link at the bottom of the post since not many people speak in here, but I should probably restructure by adding the link to the top

#

oh wait, I did?

warm stream
#

huh

spark pendant
#

I did the bare minimum tho, I'm kinda impressed more people didn't ask out of confusion XD

warm stream
#

lol fr

#

ig the only drawback of this is that I can't configure it to stop after reaching era 1

#

or maby i just need a bp that survives only until era 1

spark pendant
#

additional_cond = era() >= 1.0

#

this adds an additional condition that, if met, triggers an exit

warm stream
#

do I add that in an AI somewhere

spark pendant
#

Enter the AI and you should have a condition that reads "click here for line numbers"

warm stream
#

yea

spark pendant
#
; Condition that specifies the line number of the action the user might want to modify
#condition_comment.info={{lua(
  local msg = {
    "</size>",
      "<br>additional_cond adds an additional condition that could be met to exit towertesting",
      "<br>",
      "<br>seconds, minutes and hours represent how much time you want to pass",
          "in real world seconds becore exiting tower testing",
      "<br>Leave all at 0 if you don't want this",
    "</size=0>"
  };
  return table.concat(msg);
)}}
contains(concat("click here for line info!<size=0>", "{condition_comment.info}"), "")

yea, line info

spark pendant
# warm stream yea

you just click that and it should tell you where additional_cond is located

warm stream
#

line + string 16?

spark pendant
#

action 16

warm stream
#

alr

#

then uh

spark pendant
#

you edit the action to be comparison:double game: era >= 1.0

#

not the name, the value

#

Form a scale of 1 to 10, about how confusing is all of this? ๐Ÿ˜…

warm stream
#

101

#

๐Ÿ˜ญ

spark pendant
#

ah crap, sorry lad

warm stream
#

oh wait a minute i found smth

spark pendant
#

Under any other situation, I'd just give you the freebie by just making the pre-configured script, but I don't have access to the editor rn

warm stream
#

oh

spark pendant
#

ey, you did it

warm stream
#

where do i put that tho

#

oh shoot i pressed the tick and i have no idea wher it went

spark pendant
#

heh, care to just send a ss bud?

warm stream
#

oh wait its in conditions

#

should it be <= tho?

manic juniper
#

No, that should not be in the green conditions, there's a variable called additional_cond, you should do that with that variable.

warm stream
#

do that with the variable...

spark pendant
#

aka edit the variables value

#

I'm getting to uni in like 10 mins and I'll give you the pre-configured script

warm stream
#

WAIT A MINUTE

#

is this it

spark pendant
#

eyy, good job

warm stream
#

god dam writing ai kinda hard...

manic juniper
warm stream
#

i dont even know what i was pressing

#

now i swear if this doesn't work...

manic juniper
warm stream
#

that looks harder than the in game editor...

#

its actual code

manic juniper
#

For programmers, this is much better than using the in-game AI editor.

warm stream
#

hmm i only learnt python and some random stuff

#

YOO IT WORKS TY

#

the era thing

spark pendant
#

woop woop, nicely done lad

warm stream
#

now i can actually leave this running

#

now to figure out if i can can get it to press 'r' every like 20 seconds

#

(too ambitious)

manic juniper
#

You don't need that anymore.

warm stream
#

why not

#

it reaches 100b faster

manic juniper
#

After ~10 Era 1s I think it's better to keep it running.

warm stream
#

oh

#

alr alr

spark pendant
warm stream
#

yea you guys are skilled

#

if only...

#

so does this 90/90 era 1 things actually make 100b eras faster

#

coz im already like 30b through

manic juniper
#

Yeah, a lot, because of Wave Horizon.

#

Down to ~30 minutes with optimal kill speed.

warm stream
#

dam

#

it was like 4 hours before

spark pendant
# warm stream why not

It's no longer a feature primarily for my sanity :/

best thing you got is just inside the additional_cond to add something like era() >= 1.0 || game.time() > 20.0 so you exit at the 20 second mark

warm stream
#

o yea

#

thats a good idea actually

#

i will go through the intense laborous process of adding another condition

spark pendant
#

you want me to give ya the preconfig?

manic juniper
#

Pretty sure the AI will move on to the next reg/dif after exiting, not sure if that's a great idea.

warm stream
#

oh

#

yeaaaaaaaa

#

how do you even add another condition it only fits one

spark pendant
#

Like I said, with an ||

manic juniper
#

Instead of Comparison: Double, you use Comparison: Bool, repeat the original condition on one of the 2 new arguments and make a new one on the other.

warm stream
spark pendant
#

I gave you the preconfigured one

warm stream
#

tyty

#

lets see if it skips regions...

spark pendant
#

oop, reminder that you also have to set the globals again

warm stream
#

it does skip regions

spark pendant
#

like you want or?

warm stream
#

preferably stays in the same one

#

but i dont think it makes a difference

#

itll get back to the same region anyway

#

yea it does loop back

spark pendant
#

yup, that's primarily why I didn't do the restart after x seconds thing again, just for the nature of cycling

warm stream
#

yea its alr ill work with it

#

more efficient than me manually pressing it

#

maybe ill change it to like 1 minute to be more efficient

spark pendant
#

If you want to restart, you can make another script, or I can make you one rq

warm stream
#

also any idea what the variable hider is?

spark pendant
#

it's my script, how wouldn't I know XD

It's to not clutter the UI and for you to not have to stare at the ugly internal workings

warm stream
#

alr

#

i can still change stuff with the keybinds yea

#

alr its working really well currently so imma leave it for a little

#

thx for all the help

spark pendant
#

ofc lad, love to help

#

EEP. I messed up

spark pendant
warm stream
#

oh alr

spark pendant
#

I forgot I turned to the old export format to dissect the external editor XD

warm stream
#

oh god i have like 3 copies of the same thing

#

oh no it breaks itself now

#

it lags out alot then just turns off the ai

spark pendant
#

mhm, yea. I did not realise I messed up the AI on my laptop XD

spark pendant
warm stream
#

nah its 80 seconds now

#

coz i felt like it lol

#

it doesn't really matter

#

i can change it myself

spark pendant
warm stream
#

ty

spark pendant
#

wait how in the hell? lmao how did I break it XD

warm stream
#

it seems to be working for me

#

i just deleted the variable hider

#

so i could change stuff

#

but when will it change to medium?

#

does it know when all easy is done

spark pendant
#

you did what?
that breaks a lot more things. The thing I broke is just cosmetic, if you changed the name of the variable hider, a lot of things are now broken

warm stream
#

oh

#

it does?

#

nothing seems to be broken lol

#

alr ill add it back

#

imma leave thisi over dinner be like 30 minutes

spark pendant
#

Yea, if you changed something, just delete it and import this one cus I just fixed the cosmetic problem

spark pendant
# warm stream nothing seems to be broken lol

So, you asked what the variable hider is for. This is how the UI looks like with the variable hider hidden, and this is what it looks like with the variable hider shown

Obviously, the biggest different with having no variable hider is how the UI will no longer hide when the script shuts down

spark pendant
warm stream
#

alr ty

spark pendant
#

@manic juniper care to pin this message pls? ^

#

and to unpin the old one at the top

warm stream
#

yay it works just got about the easy difficulties done

spark pendant
#

thank you

spark pendant
spark pendant
#

The script has been updated. While this is major, nothing in the source is changed, so I haven't bumped the version.

Codrineye's TowerTesting now works even with dynamic UI scale on.

lone arch
#

how would you change the additional_cond if instead of a certain time, you want the tower testing to end after reaching a certain wave||/era||||/infinity||?

spark pendant
#

if you wanted to exit when you reach wave 1, additional cond would be wave() >= 1.0.
Think what condition must be met for the script to exit

lone arch
#

it doesn't seem to work with the zoltraak bp, like it runs then stops running immediately and does absolutely nothing, while the bp continues tower testing like normal

spark pendant
#

ok, what's your goal and what's inside of additional_cond?

lone arch
#

my goal was simply to get my ||infinities|| to 1 million, so i set it to compare double, and the things i wanted to compare being ||game: infinity >= 1000000||

#

unless i should use the bool not before compare double?

spark pendant
#

Ok, so the value of the local variable additional_cond is that comparison double, ye?

lone arch
#

yes

spark pendant
#

ok, welp. When you say like it runs then stops running immediately, what does that mean?
It's gone from the running scripts?

lone arch
#

yes

#

i briefly see it in the top left, then the name vanishes

spark pendant
#

Can you send an mp4?
Or in VC?

lone arch
#

i can use steam video record to make a video, yes

spark pendant
#

can you gimme an mp4 of this happening please?

lone arch
#

as you can see, it's active, and that's the only line i changed

spark pendant
#

Am I blind or does it just stay in the AI editor?

#

oh

lone arch
#

i started in the ai editor, but the video should show me leaving the editor, starting the ai script, then starting tower testing like normal

spark pendant
#

oh gad dangit, wtf did I do XD

lone arch
#

unless i was supped to press a key, which i didn't do (also how do u do that witchcraft of knowing which key you press outside of the impulse)
at which point, it's my own error

#

I do know the zoltraak script does pause the game for the toolkit at the start of every new round

spark pendant
#

Yea, it wasn't active, which idk why the variable hider kept hiding stuff. You're all good, dw. I royally messed up

#

wait what?

#

yea, so I can't actually reproduce it which makes me think that you're using an old version?

lone arch
spark pendant
#

It's preconfigured

lone arch
#

same result

#

the Stop TT is my own script

spark pendant
spark pendant
# lone arch same result

same result with the thing I asked you to import?

hmm, can you gimme the other scripts that are running?

lone arch
#

pics of them in the editor?

spark pendant
#

nono, just export

lone arch
#

why does the exporter not use packages, even if part of the name

#

so a bunch of export strings good (all be in a text file)?

#

anyway, these are the scripts i used that could be used during tower testing (rest were things like the adventure script, autominer, stuff like that)

#

each line is a script outside a package or a package

spark pendant
#

I mean, you could've also just exported all and I would've isolated the ones of importance, but ty lad

#

The thing I find most likely is that you've got some leaking hiding block that covers my ui

lone arch
#

none of my scripts draws anything

#

well, none i designed

spark pendant
#

well, it's not about drawing, it's about the variable names

#

in any case, I'll get back to you in like 30 mins or so

lone arch
#

ok

spark pendant
#

you could test out if turning off some of your scripts fixes it

lone arch
#

when it's the only script enabled, it still doesn't run

spark pendant
#

what?

Ok, well that's... And that's after you refreshed the overlay?

#

So, you press f4 to turn off the overlay, then f4 to turn it back on. This refreshes the AI overlay and removes all global variables

lone arch
#

yeah

spark pendant
#

how?
and there's no double Codrineye's TowerTesting script enabled, right?

#

This is something super weird. Do the logs have something maybe?

#

!logs

robust escarpBOT
#
Logfile location

%userprofile%\appdata\locallow\Fire Sword Studios\The Perfect Tower II
Current log: perfect.log
Previous log: perfect.1.log

lone arch
#

doesn't look like it

spark pendant
#

yup, that's virtually empty

lone arch
#

previous log was yesterday, and i didn't try your script till today

spark pendant
#

You've really stumped me with this. That's.. thank you lad, I didn't expect to get this

lone arch
#

not exactly a lad, but you're welcome

spark pendant
#

Oh, sorry friendo

lone arch
#

-# almost 40 years alive and i still can't spell

lone arch
lone arch
#

unless it was just 1 script

spark pendant
#

Yes my script is indeed the size of just 1

#

alright, so just importing the script you have gives me this
So I can safely say that my script is not failing to show globals

#

And none of the other scripts you gave use a <size=0> block, so... are you willing to give me an export of all your scripts?

lone arch
spark pendant
#

ty

lone arch
#

unless there's a setting i should change?

#

just thought of it

spark pendant
#

Oh, was AllCat ACat active?
blucats script has never played nice with my script

#

even tho, no, that wouldn't make sense

lone arch
#

yeah

#

huh, no it wasnt

#

I'm sorry you had to go through this trouble

spark pendant
#

nono, I love it bud :)

lone arch
#

I'd mention my computer stats, but those are already in the log i posted

spark pendant
#

Wait, is Toolkit:Clear active?

lone arch
#

i don't think so

spark pendant
#

Well, Zoltraak:Main does use an executesync

#

Altho, my script should, in theory, run before that happens, but who knows, maybe it does cause some weirdness? idk

#

Altho, even if the global unset was the culprit, importing Zoltraak and Toolkit still don't let me reproduce it

lone arch
#

in case anyone else is reading this, it's solved, the answer was i didn't push X to start it

#

could it be possible to have it go through just the difficulties in the current region?

spark pendant
#

Yes, that's just turning off region cycling. Region Cycling(W) = false means that you will not cycle through regions

lone arch
#

oh ok

spark pendant
lone arch
#

only thing that bugs me is while using zoltraak, the scripts it used get doubled sometimes for no apparent reason at the start of a run but only while this 1 is running at the same time, usually when switching to another difficulty/region

I think a good fix would be to replace the "wait for next frame" one to be changed to "wait for 0.1 secs" but I'm not sure which line to change, as there's more than 1.

spark pendant
#

zoltraak is just pretty easy to duplicate unfortunately.
And I can't really sacrifice on the timing given the purpose of this script

#

I mean, the goal is relatively simple The scripts goal is to get you in a game of towertesting as fast as possible and to get you out of the game as soon as it can.

I'm pretty sure I looked at zoltraak for like a few seconds and was able to figure out why it's so easy to duplicate, but I forgot what the problem was

lone arch
#

it's just sad that the caster script gets doubled, so the module that multiples damage by a number the closer to 50% health the tower has doesn't really work when both instances of caster ends up putting it somewhere lower than 50%, rather than near 50%

spark pendant
#

wow...
I mean, the script is sensitive enough that just exiting and re-entering manually can duplicate it.
I did not know mp would let it be this way if duplication can actually have negative side effects

lone arch
#

probably cause all the wait lines in mp's scripts don't have a check for if tower testing is still going, is my guess

#

all of em would run out pretty fast if all of em had that check (and the goto at the end be a change to goto-if, with the if being "is tower testing active")

bronze notch
#

I have a work-in-progress updated AI that actually solves this

#

(This being said, I never used auto-switcher scripts, and I'm not accounting for them in my AIs)

spark pendant
bronze notch
#

Yeah, it's 'cos Main is running RakStak in sync, and afterwards starts Caster

#

So if you re-enter before RakStak concluded, old Main is still running

#

New Main tries to clear old Caster, but old Caster is not there yet

#

And eventually both Mains start an instance of Caster

#

Anyway, the new version doesn't run RakStak in sync

spark pendant
#

Yea. Like, thing is, you don't need to take into account towertesting cycling scripts because unless they do something dumb, they can't really create script duplication for a script that prevents duplication

bronze notch
#

Ah, that's good to know

lone arch
#

yeah, just adding a line that kills the script before executing that same script would prevent duplication (if the script isn't already running, the line killing the script does nothing)

bronze notch
#

It does have such a line

#

A bit earlier in the code, but it usually works - if RakStak got to finish

spark pendant
#

well, the problem with mps scripts is that the thing that duplicates is the main script which has the newround() impulse. and the script can't kill itself because then it just can't continue with its responsibilities

lone arch
#

the problem is there is an edgecase where rakstack doesn't finish before it starts again

bronze notch
#

Anyway, moving Caster before RakStak might actually work as a quick fix - I think it only starts doing stuff after Rak should be done anyway

spark pendant
#

there are a lot of problems m8, the timing of rakstack is just one of them, but in theory, mp should've fixed it

bronze notch
#

As I've said, I do have a fix, but it's part of a bigger update and I still need to finish it

spark pendant
#

oh, I see

bronze notch
#

I'll probably do it after I finish clearing the current zone in SpaceChem ๐Ÿ˜„

lone arch
#

Is it possible to use a variable to keep track of difficulties/regions passed, and if the tower test ends via the additional condition, to increase the value, and when the value gets passed a point, stop tower testing (and itself) so the script doesn't endlessly loop starting then quitting tower testing?

I think it can be done

spark pendant
#

w-wut?

First of, you want the script to have a self stop? That's a no-no. The point of the script is literally to blindly go through towertesting for you to idle. It's meant to keep on running, so I see no reason why you'd want it to end without user input.

The other things are, I don't really get why you're keeping track of difficulties/regions

spark pendant
lone arch
#

I'd show a video, but I'm currently pushing for a better highscore

spark pendant
lone arch
#

yes, for the ||infinity stones, specifically, the 400h skip||

spark pendant
#

And your additional_cond is set to your desired highscore, ye?

lone arch
#

yes

spark pendant
#

Ok. And I assume your problem is that, once the script reaches that highscore, you want the highscore to increase, no?

lone arch
#

no, because I can't have the computer running all the time

spark pendant
#

I mean, if the computer isn't running, then neither is TPT2, so my script doesn't change anything?

cus I am trying to figure out why you want the script to have a self stop

spark pendant
manic juniper
#

Workersโ„ข?

lone arch
#

I'm just gonna wait till my current run is over, which may take a couple hours, then get a video

spark pendant
#

What is the video even meant to show?

lone arch
#

I'm terrible with words

spark pendant
#

I mean, how?
how would you show the behaviour you want in a video?
And if you can show the behaviour that you want in a video, what's stopping you from describing the behaviour you want?

spark pendant
# manic juniper Workersโ„ข?

I mean. I'm not adding that without a reason outside of just some people wanting it.
but also, that's at minimum 90 characters. I don't think worker names can hold that much, can they?

manic juniper
#

I am not sure about the max length. Probably can't.

spark pendant
#

yea, we only get 32

lone arch
#

but i guess if it's not doable, then it's fine

spark pendant
spark pendant
lone arch
#

it was meant to be a way of tracking the difficulty when there is no current way to simply get the current difficulty/region when tower testing

#

sorry I didn't say that before

spark pendant
spark pendant
lone arch
#

for the script to stop tower testing, which i said here: #1186247659233751140 message

gets passed a point, stop tower testing (and itself) so the script doesn't

EDIT: bolded the part where it said to stop tower testing

spark pendant
#

ok, so the script stops tower testing?
But why do you want the script to terminate?

bronze notch
spark pendant
#

I fail to see a reason for the script to terminate by itself.
Termination through user input? Yea. But automatic termination? That doesn't make much sense

bronze notch
#

But there is a workaround: make a SuperMain that terminates Main, starts Main, and then ends

#

And move the triggers from Main to that one

spark pendant
bronze notch
#

The parts that were the biggest issues are fixed. Main will still duplicate as seen in the video, but that's not too bad, and there's an easy workaround

spark pendant
lone arch
#

what would the script do when at town? be idle?

What do you gain from that? Convenience?
yes

lone arch
spark pendant
ornate wasp
#

is this script wanted so that the script won't just continue going through regions an instantly leaving after hittting the goal?

spark pendant
#

wut?

ornate wasp
#

from what i know, the script will continue cycling after its supposed to be done with whatever its doing, so itll go somewhere, hit the additional cond instantly, and leave

spark pendant
#

Yes. The point of additional cond is to have that desired ceiling everywhere.

That's why you'd usually set the goal to infinity 1, enable region cycling and it'll be done in like 2 hours.
In this case, tho. I don't really even see the point of using additional_cond

lone arch
# spark pendant the script is literally never idle. You're making it be idle for having region c...

mt15 isn't an MT where it's beneficial to exit the game to get a bigger boost, is it?
I think you're just stuck on that thought, and you are just assuming i have to be thinking the same thing

also what if you wanted to get 100b infinities in all 90, and needed to go on vacation for a few weeks cause someone important to you demanded it, you already had 100b in several of em already. What are you supposed to do, magically teleport home to fix it?

EDIT: reminder that the "what if" part of this message means the rest of the sentence is a hypothetical, it may or may not be true

spark pendant
ornate wasp
#

inf 100b doesnt really take a specific amount of time though

lone arch
#

if you're already doing continuous infinite damage and using a bp like zoltraak, the tower likely won't die once it reaches 100b in any difficulty or region

spark pendant
lone arch
#

and you can nest additional "comparison: bool" if you need to check additional things

spark pendant
spark pendant
lone arch
spark pendant
# lone arch > mt15 isn't an MT where it's beneficial to exit the game to get a bigger boost,...

The reason I brought up the bigger boost is because I was reaching out for any conceivable reason for why additional_cond would be useful in this context. I don't know what blueprints are capable of, and just like this script, I don't need to know. The thing I built around is hypotheticals, the movement being smooth and the user being able to leave the computer and still reach wavegoals.

also, you said you didn't want to keep your computer running. If you're going on vacation, why are you keeping your computer running.
Also also, if the point is for someone important, I'm pretty sure TPT2 can take a back seat

lone arch
#

I feel like you're just continuously trying to ragebait me, somehow

if you don't want to do it, just say it, and I'll accept it

#

I retract my suggestion then

ornate wasp
#

i see the reason why this might be wanted, but this could also be accomplished with another script that just counts to 90 or something, or manually counts every region and difficulty to check how many infs they have

spark pendant
# lone arch I thought it was possible to do it, considering your script runs this line when ...

Yes, that is very easy. It's just this```

; Don't modify the job if we exited because of key.exit
; Otherwise, mention the reason we ended the run
{job.set(if(
contains({job.get}, "Exit caused by") || not({status.get}),
{job.get},
"</size><color=#0AFF00>Exit caused by " . if(
additional_cond,
"additional_cond",
if(isTowerTesting(), "tower death", "an external cause")
) . "</color>"
))}


the problem isn't knowing if additional_cond is true. The hard part is knowing what region and difficulty you're on.
Pokota showed that knowing what region you're on is possible thanks to the era elements, and the script is able to (tho in a rather weak manner) track what difficulty you're on.


The problem isn't of a want/can't. The problem is that I fail to see a reason behind it which benefit the user.
Especially since, 99% of the time, additional_cond is just 1 single comparison: double, and that boolean has a lot more blocks you can use.
The point is to make life easier for everyone involved. And I can't see any possible benefit which is more than what people can already do.
spark pendant
ornate wasp
#

the reason i see is to force the script to not be idleish if youre away for a while, though this isnt really a huge thing i think, unless youre going on vacation for 17 weeks or something

spark pendant
ornate wasp
#

yeah it would get xp and frags, which makes it not do nothing, which would help

spark pendant
#

But it's also like. What value can my script provide?
If you're going on vacation and want to keep TPT2 running, why pick a region cycler script instead of a resource/frag farming script?

ornate wasp
#

to get inf 100b

spark pendant
#

ok. If getting to inf 100b is useful enough for my script to be picked, then idk why you'd go for the script shutdown instead of the game.time() timer

lone arch
#

because not everyone has perfect recall and can just know or remember how long a climb can last

ornate wasp
#

codboy suggested 2 minutes and inf 100b, so the run will always last at least 2 minutes

spark pendant
#

well, that's why you've got the wavegoal guard.

Again. additional_cond can only make the game exit if it becomes true.
That's why you have <timer> && <wavegoal>. If you wanted either the timer or the wavegoal, then you'd use ||, but we want an && here to create a guard

lone arch
#

i made a script that at least stops the current run of CTT

EDIT: this doesn't quite do what i asked for, but it was what I'm willing to make, to do that (what i really wanted), it would use another int variable that adds 1 to itself every time the the difficulty changed, then once it reached enough to have gone through all the difficulties (be it for the 1 region, or all the regions, depending on a certain global bool), it would then force the script "Codrineye's TowerTesting" to end

lone arch
# lone arch i made a script that at least stops the current run of CTT EDIT: this doesn't q...

the export (modified it a bit from the image above, 1st line points to line 7, with lines 6 and 7 changing places):
jVLNTsMwDH6VKRdAQiFlSENoTECvnKAHJDqktPWCtS6pGodqm/bupNnKoa2AiyX7+7HjeM9sXmNFlt1N3vdM5oRGh4SlTggBCjTUmHNlyOAqzXIPk9QU0OsQZyGKQVyp0mSy5JkxJVdAPfFNSs9AcZK8OM0uJ2yosb9qelB0jJ1TFHWTNxLJacIyEKbaBH40VXIDHG1iGqgTsIRaBXE3gtNj/VtpMbe4g3uxiD/ogebpVZsuHv3uvuD87eLkcmpvyVSjLrexKWrUsIUzOxlM0TIEmUbzBnVhGm4/TTPwWVGro6NudCHiH2/q/cOfo4vZq0e8gi09P3OF/1x/MpEQPvX0An+uqCXgpnKlheNVrWHLd0Gn/f59iXVevlTJfC1VqLaps/DUmVPt4LA8fAM=

as it is, it just stops it after the current tower test

spark pendant
#

Well. that is just what key.x does
Oh, and you managed to unset the correct variable? That means your script breakes the hiding block, and using global.unset is already bad even if it didn't break the hiding block

lone arch
#

yeah, but key.x (whatever that is) does it immediately, mine waits for tower testing to end before stopping it

spark pendant
#

Oh, you'd like that?
It's super simple to do, and it doesn't really affect ease of use. If someone wants to exit quickly, they can just press key.x and then key.e

lone arch
#

the point was to wait for it to end, not end IMMEDIATELY

spark pendant
#

yea. I just remove the status check inside the game loop and it should be what you want.
I also have an instance counter, to prevent duplication, which used to be the main benefit of key.x also instantly exiting the game

spark pendant
#

Update to version 2.2.9
Modified the gotoif() inside of the additional_cond loop to no longer check if the script is active. This means that you can no longer exit towertesting by shutting down the script with key.x.

If you want to exit after shutting down, you will have to use key.e

GitHub

A place where I dump random stuff in organized locations - Codrineye/Codrineye-s-TPT2-Compendium

lone arch
plucky moat
#

additional_condition is a local variable, right? not a global?

spark pendant
#

yeppers

#

There is no way I'm making that a global XD

plucky moat
#

i can work around that; just set my own global and set additional cond to test that instead

spark pendant
#

Yeppers. Your global, not mine. if it was my global, I'd need to keep it in the hiding block, and it'd be an unprotected global variable which I'm not a fan of

spark pendant