Loading...
  OR  Zero-K Name:    Password:   

Post edit history

disable units list doesn't work for the AI

To display differences between versions, select one or more edits in the list using checkboxes and click "diff selected"
Post edit history
Date Editor Before After
4/29/2018 12:34:23 PMUAranklamer before revert after revert
Before After
1 2 types of names: 1 2 types of names:
2 \n 2 \n
3 1) "internal" name - unique string ID of a unit. 3 1) "internal" name - unique string ID of a unit.
4 Ex: factoryspider, striderhub, cloakheavyraid. 4 Ex: factoryspider, striderhub, cloakheavyraid.
5 \n 5 \n
6 2) "human-readable" name - in-game unit title, no unique restriction. 6 2) "human-readable" name - in-game unit title, no unique restriction.
7 Ex: Spider Factory, Strider Hub, Scythe. 7 Ex: Spider Factory, Strider Hub, Scythe.
8 \n 8 \n
9 AI (Circuit) - doesn't care about human-readable strings, it checks and marks units in own memory pool as non-available only by internal name. 9 AI (Circuit) - doesn't care about human-readable strings, it checks and marks units in own memory pool as non-available only by internal name.
10 Game (Zero-K) - knows and cares about both human-readable and internal names. It checks and marks units in own memory pool as non-available by internal name and human-readable. 10 Game (Zero-K) - knows and cares about both human-readable and internal names. It checks and marks units in own memory pool as non-available by internal name and human-readable.
11 \n 11 \n
12 CircuitAI works like a player - sends build,move,attack commands to the game. If ZK-game gets a request to build unit marked in own lua memory as non-available - it rejects the request and does not execute build command. 12 CircuitAI works like a player - sends build,move,attack commands to the game. If ZK-game gets a request to build unit marked in own lua memory as non-available - it rejects the request and does not execute build command.
13 \n 13 \n
14 a) If units are forbidden by internal name -> AI knows that factory is unavailable and sends build command only for those that are available -> ZK checks build-request and allows build command with available unit. 14 a) If units are forbidden by internal name -> AI knows that unit is unavailable and sends build command only for those that are available -> ZK checks build-request and allows build command with available unit.
15 15
16 b) If units are forbidden by human-readable name -> AI tries to build it ( the choice of units marked as available inside AI has a bit of randomness) -> ZK rejects build-request with forbidden name -> AI unit stands idle. 16 b) If units are forbidden by human-readable name -> AI tries to build it ( the choice of units marked as available inside AI has a bit of randomness) -> ZK rejects build-request with forbidden name -> AI builder stands idle.
17 \n 17 \n
18 I still don't want to add filter based on human-readable names inside AI, because of how i think it should be: [url=http://zero-k.info/Forum/Post/183475#183475]in-lobby proper validation requires graphical representation of build-options[/url] 18 I still don't want to add filter based on human-readable names inside AI, because of how i think it should be: [url=http://zero-k.info/Forum/Post/183475#183475]in-lobby proper validation requires graphical representation of build-options[/url]
19 \n 19 \n
20 [q]The following also WORKS (uses in game names): 20 [q]The following also WORKS (uses in game names):
21 \n 21 \n
22 Missile Silo+Antinuke+Big Bertha+Trinity+Zenith+Disco Rave Party+Starlight[/q] 22 Missile Silo+Antinuke+Big Bertha+Trinity+Zenith+Disco Rave Party+Starlight[/q]
23 Nope, it only looks like it works because AI sends command to build those super units only in super late game. But AI will send build-commands and ZK will reject build-requests. 23 Nope, it only looks like it works because AI sends command to build those super units only in super late game. But AI will send build-commands and ZK will reject build-requests.