Yes. When the AI can't research anything at all because the tech tree has been truncated, that's when it'll crash.
Ok so the game will crash if it runs out of techs to research, but it won't crash until the AI researches the last available tech (FT not being researchable). Meaning that one could still play with FT as non-researchable so long as there is always something to research.
So to keep with the example: as long as one enables the next Age's techs
before the AI researches the last of the previous Age's techs, there's no problem.
See I was concerned that merely cutting off the path to FT, regardless of whether the AI had run out of techs to research was sufficient to cause a crash (i.e. that the AI would scan the tree, find no path to FT and crash the game immediately).
(I know I should have known the answer to that but I have to admit, I don't really experiment with techs that much--more of an implied, 'will test the tech stuff when I actually make a scenario.')
Correct. The zero value mentioned in the quote is actually a reference to the @LEADERS2 table. The value for Future Technology in @CIVILIZE2 can be anything from 0 to 7; the values it cross-references in @LEADERS2 must be zero (see the attached example where I've given FT a value of 6 in @CIVILIZE2). Really Civ2Tech would also need to check any SCN/SAV file, as the @LEADERS2 table is written there once the game file has been created. When a scenario or saved game is loaded, the game ignores the table in the rules.txt file and reads the one from the SCN/SAV file instead. The EnableTechnology action rewrites @LEADERS2 data in memory; this is then saved in the SAV file when you save your game. Technology restrictions, as per @CIVILIZE2 and @LEADERS2, are buggy. Restricted (group 2) techs can be stolen by spies and diplomats (see
this article).
Yep thanks, copied that info from your site a while ago.
The bug is a real bummer; you can get around it though (sort of): since 'no,no' techs can't be stolen, make the non-researchable tech 'no,no' and give it to player via events once x tech (the supposed prerequisite) is researched; only trigger the event if players meant to research it do so (i.e. if banned player researches the trigger tech, they aren't given the 'no,no' tech).
Example:
@IF
RECEIVEDTECHNOLOGY
receiver=Romans ['allowed' civ]
technology=3 ['prerequisite' tech]
@THEN
JUSTONCE
TEXT
No Broadcast
^
^^Your scientists discover (non-researchable tech).
^
ENDTEXT
GIVETECHNOLOGY
technology=4 [non-researchable tech]
receiver=TriggerReceiver
@ENDIF
Repeat this for each 'allowed' civ. I'm sure there's a more efficient way of doing this (i.e. where you could set the receiver as 'Anybody' and using flags) but I can't think of it at the moment.