I've been taking a good look at the Terran Custom Script, as I've been mucking about with a lot of TvP lately I'm thinking my first try will to be make a Quick mod to make the Script more Protoss focused, so maybe more Goliaths and Firebats, cut down on the BCs try to provide a little better air-cover for the ground army.
So I would like to bounce a few Questions off you all. Please feel free to Answer or Iggy; I'm not looking for super detailed answers here, Y/N will likely do alot of the time, just seeing if my intuition is on point here or not.
Ok I've noticed Multiple blocks that look like this,
--TMCu 0115--
wait(1500)
goto(TMCu 0115)
Now to my mind that should loop indefinitely; so I am thinking that
TMCu X Code goto(TMCu X) acts as a JSR/Return Structure;
So --TMCu 0115
Wait(1500)
Return(TMCu 0115)
while other blocks clearly goto a different block of code.* Which is a little confusing to me.
But I've never touched Python, (almost conversant in VB).
This is much less obvious to me,
--TMCu 0002--
define_max(255, Terran Siege Tank<0>Tank Mode)
define_max(255, Terran Vulture)
define_max(24, Terran Marine)
... Seriously clipped.
define_max(30, Terran SCV)
define_max(6, Terran Battlecruiser)
define_max(4, Terran Science Vessel)
define_max(10, Terran Goliath)
define_max(2, Nuclear Missile)
defenseuse_gg(1, Terran Siege Tank<0>Tank Mode)
defenseuse_gg(3, Terran Marine)
defenseuse_gg(1, Terran Goliath)
defenseuse_gg(1, Terran Vulture)
--TMCu 0088--
define_max(16, Terran Marine)
define_max(4, Terran Firebat)
define_max(12, Terran Ghost)
define_max(30, Terran SCV)
define_max(12, Terran Goliath)
define_max(4, Terran Dropship)
define_max(3, Terran Siege Tank<0>Tank Mode)
define_max(3, Terran Science Vessel)
Ok so TMCu seems to be declaring an Array with with 255 Object holders for Siege Tanks
Vultures, (Which I find odd as Supply cap is 200;) 30 Marines, ... So if I am right thats the Max the AI can have in play at any one time; but then once I've done that what is TMCu 0088 doing? It appears to be redefining existing Variables? but I suppose it could be done; say at Gametime 60Sec you want a Different Army composition than when you start. Not sure I quite see the need to redefine these variables. I could see it if we have 200 slots to fill, but 255 Siege tanks would blow right through any normal supply cap.
NextQ: Ok seems we have some multitasking going on here,
attack_do()
attack_clear()
rush(7, TMCu 0008)
attack_add(12, Terran Marine)
attack_add(3, Terran Siege Tank<0>Tank Mode)
attack_prepare()
--TMCu 0008--
build(1, Terran Starport, 80)
wait_buildstart(1, Terran Starport)
multirun(TMCu 0009)
train(4, Terran Siege Tank<0>Tank Mode)
build(1, Terran Control Tower, 80)attack_do()
.... Clipped.
race_jump(TMCu 0011, TMCu 0012, TMCu 0011)
while the AI is gathering 12 Marines, 3 Tanks, et all. It is also performing all these Base/Army building tasks under Label TMCu 0008 but instead of returning it has this race_Jump(X, Y, X) Command?
--TMCu 0011--
tech(Lockdown, 80)
--TMCu 0012--
expand(2, TMCu 0007)
race_jump(TMCu 0013, TMCu 0013, TMCu 0014)
--TMCu 0014--
tech(EMP Shockwave, 80)
goto(TMCu 0015)
But once Lockdown is researched there seems to be no reason to return to it; and these don't appear to be functions so their output could be used as a value/variable? This Race_Jump Thing is just very odd looking to me; If what I read is correct it might have something to do with Mulithread programming and "Race" trapping so the 3 Labels would apply to different threads, but still why include TMCu 0011 Twice. Quite sure I am not groking that one.
Ok thats a lot for one day, Still here? I probably owe you a beer; Thanks for your time, and in advance for any replies.
BB.
----------------
*(I thought goto was banned from all programming Languages; your program was brilliant, it worked beautifully, but you used 5 Goto Statements -1 Letter grade each your Lab score for the course is an F. )
It is better to live one day as a Lion,
than 100 Years as a Lamb.
than 100 Years as a Lamb.