It appears you have not registered with our community. To register please click here ...
Username
Password
- Fixed Vespene gathering.- Added ChronoBoost (thanks Aeg1s), with some mooded things. (It will cast chronoboost to production buildings, when they produce smt)- Expands faster.- More agresive- Changed the unit production- Completed all the researchs (in late/end game)- Small changes to all parts of the AI, to adapt to the chrono boost.
Working on new version. The new one will be multirace ^^v2.0 eta: 1-2days.PD: Yes it will be reactive (and not only air reactive)
t = 0; while ( t <= 100 ) { if (tech_level>=3) { // 1 transport if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_WarpPrism, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_WarpPrism, 1); } // 2obs if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Observer, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Observer, 1); } } else if (tech_level>=6) { // 2 transport if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_WarpPrism, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_WarpPrism, 1); } // 4obs if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Observer, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Observer, 1); } } if (IAI_AirGround) //Air1 { } else if (!(IAI_AirGround) &&(IAI_Ground == 1)) //Gnd1 { //Tech Level 0 if (tech_level==0) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 16 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } } //Tech Level 1 else if (tech_level==1) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*4)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==2) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 25 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 6 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*6)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==3) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 5 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==4)||(tech_level==5)) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 300, 200) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay , 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==6)||(tech_level==7)) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 200, 150) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay, 1); } if (AIHasRes( player, 400, 300) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 200, 150) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay , 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_Colossus, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Colossus, 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Carrier, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Carrier, 1); } if (AIHasRes( player, 200, 200) && (AITechCount(player, c_PU_DarkTemplar , c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar , 1); } if (AIHasRes( player, 400, 300) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Mothership , c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Mothership , 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } } else if (!(IAI_AirGround) &&(IAI_Ground == 2)) //Gnd2 { //Tech Level 0 if (tech_level==0) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 16 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } } //Tech Level 1 else if (tech_level==1) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*4)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==2) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 25 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 6 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*6)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==3) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 12 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 5 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if(AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter )>=FixedToInt(0.7*5)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==4)||(tech_level==5)) { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar, 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==6)||(tech_level==7)) { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar, 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar , c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar , 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 150, 150) && (AITechCount(player, c_PU_Phoenix , c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Phoenix , 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_Colossus, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Colossus, 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Carrier, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_Carrier, 1); } if (AIHasRes( player, 200, 200) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Mothership , c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Mothership , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } } else if (!(IAI_AirGround) &&(IAI_Ground == 3)) //Gnd3 { } t = t+ 1; }
I love your Ai, it can run Multi task at one and do it on its own. Can I used it to develop my Cheating Ai script ? I let it have double mineral and gas, modified some process to use the resources well. I have some problem in gas minerals, when expand a new town. It just placed a assimilator very far from the expanded town. Some time the Ai stop production, I don't know why yet ? So I just placed a While command for it to continue, it works some how. Code: [Select] t = 0; while ( t <= 100 ) { if (tech_level>=3) { // 1 transport if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_WarpPrism, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_WarpPrism, 1); } // 2obs if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Observer, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Observer, 1); } } else if (tech_level>=6) { // 2 transport if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_WarpPrism, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_WarpPrism, 1); } // 4obs if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Observer, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Observer, 1); } } if (IAI_AirGround) //Air1 { } else if (!(IAI_AirGround) &&(IAI_Ground == 1)) //Gnd1 { //Tech Level 0 if (tech_level==0) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 16 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } } //Tech Level 1 else if (tech_level==1) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*4)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==2) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 25 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 6 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*6)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==3) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 5 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==4)||(tech_level==5)) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 300, 200) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay , 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==6)||(tech_level==7)) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 200, 150) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay, 1); } if (AIHasRes( player, 400, 300) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 200, 150) && (AITechCount(player, c_PU_VoidRay , c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_VoidRay , 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_Colossus, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Colossus, 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Carrier, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Carrier, 1); } if (AIHasRes( player, 200, 200) && (AITechCount(player, c_PU_DarkTemplar , c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar , 1); } if (AIHasRes( player, 400, 300) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Mothership , c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Mothership , 1); } if (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter )>=FixedToInt(0.7*30)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } } else if (!(IAI_AirGround) &&(IAI_Ground == 2)) //Gnd2 { //Tech Level 0 if (tech_level==0) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 16 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } } //Tech Level 1 else if (tech_level==1) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 4 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*4)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==2) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 25 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 6 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 50, 100) && (AITechCount(player, c_PU_Disruptor, c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Disruptor, 1); } if (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter )>=FixedToInt(0.7*6)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if (tech_level==3) { if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 30 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 12 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 5 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if(AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter )>=FixedToInt(0.7*5)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==4)||(tech_level==5)) { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar, 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else if ((tech_level==6)||(tech_level==7)) { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar, 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } else { if (AIHasRes( player, 125, 125) && (AITechCount(player, c_PU_DarkTemplar , c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_DarkTemplar , 1); } if (AIHasRes( player, 100, 0) && (AITechCount(player, c_PU_Zealot, c_techCountQueuedOrBetter ) < 20 )) { AITrain ( player, 1, c_townMain, c_PU_Zealot, 1); } if (AIHasRes( player, 125, 50) && (AITechCount(player, c_PU_Stalker, c_techCountQueuedOrBetter ) < 15 )) { AITrain ( player, 1, c_townMain, c_PU_Stalker, 1); } if (AIHasRes( player, 200, 100) && (AITechCount(player, c_PU_Immortal, c_techCountQueuedOrBetter ) < 10 )) { AITrain ( player, 1, c_townMain, c_PU_Immortal, 1); } if (AIHasRes( player, 150, 150) && (AITechCount(player, c_PU_Phoenix , c_techCountQueuedOrBetter ) < 2 )) { AITrain ( player, 1, c_townMain, c_PU_Phoenix , 1); } if (AIHasRes( player, 400, 400) && (AITechCount(player, c_PU_Colossus, c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Colossus, 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Carrier, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_Carrier, 1); } if (AIHasRes( player, 200, 200) && (AITechCount(player, c_PU_HighTemplar, c_techCountQueuedOrBetter ) < 3 )) { AITrain ( player, 1, c_townMain, c_PU_HighTemplar , 1); } if (AIHasRes( player, 500, 500) && (AITechCount(player, c_PU_Mothership , c_techCountQueuedOrBetter ) < 1 )) { AITrain ( player, 1, c_townMain, c_PU_Mothership , 1); } if (AITechCount(player, c_PU_DarkTemplar, c_techCountQueuedOrBetter )>=FixedToInt(0.7*10)) { AIWaveMerge(player, c_waveMain, c_waveAttack); AISetAttackState(player, e_attackState_Attack); } } } else if (!(IAI_AirGround) &&(IAI_Ground == 3)) //Gnd3 { } t = t+ 1; }