Хранитель
| В запасе |
Faction: Предтечи
Join Date: Feb 2013
Location: Нижневартовск
Posts: 51
|
Re: Скрипты ai (папка data::ai)
cpuresearch.lua
Code:
-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================
aitrace("LOADING CPU RESEARCH")
function CpuResearch_Init()
if (s_race == Race_Hiigaran) then
dofilepath("data:ai/hiigaran_upgrades.lua")
DoUpgradeDemand = DoUpgradeDemand_Hiigaran
DoResearchTechDemand = DoResearchTechDemand_Hiigaran
elseif (s_race == Race_Vaygr) then
dofilepath("data:ai/vaygr_upgrades.lua")
DoUpgradeDemand = DoUpgradeDemand_Vaygr
DoResearchTechDemand = DoResearchTechDemand_Vaygr
else
dofilepath("data:ai/tobari_upgrades.lua")
DoUpgradeDemand = DoUpgradeDemand_Tobari
DoResearchTechDemand = DoResearchTechDemand_Tobari
end
sg_lastUpgradeTime = gameTime()
sg_upgradeDelayTime = 180 + Rand(80)
cp_researchDemandRange = 0.5
if (g_LOD == 1) then
cp_researchDemandRange = 1
end
if (g_LOD == 0) then
cp_researchDemandRange = 2
end
if (Override_ResearchInit) then
Override_ResearchInit()
end
end
function CpuResearch_DefaultResearchDemandRules()
local threatlevel = UnderAttackThreat()
if (threatlevel > 100) then
return
end
DoResearchTechDemand()
local curGameTime = gameTime()
local timeSinceLastUpgrade = curGameTime - sg_lastUpgradeTime
local economicValue = 0
local numCollecting = GetNumCollecting();
local numRU = GetRU()
if ((numRU > 2500 and numCollecting > 9) or numRU > 10000) then
economicValue = 2
elseif ((numRU > 1500 and numCollecting > 7) or numRU > 6000) then
economicValue = 1
end
if (sg_doupgrades == 1 and threatlevel < -20 and s_militaryPop > 7 and economicValue > 0 and (timeSinceLastUpgrade > sg_upgradeDelayTime or economicValue > 1)) then
DoUpgradeDemand()
sg_lastUpgradeTime = gameTime();
end
end
function CpuResearch_Process()
if (GetNumCollecting() < sg_minNumCollectors and GetRU() < 2000) then
return 0
end
if (NumResearchSubSystems() == 0) then
return 0
end
if (IsResearchBusy() == 1) then
return 0
end
ResearchDemandClear()
if (Override_ResearchDemand) then
Override_ResearchDemand()
else
CpuResearch_DefaultResearchDemandRules()
end
local bestResearch = FindHighDemandResearch()
if (bestResearch ~= 0) then
Research(bestResearch)
return 1
end
return 0
end
function DoResearchTechDemand_Vaygr()
if (Util_CheckResearch(HYPERSPACEGATETECH)) then
local demand = ShipDemandGet(kShipYard)
if (demand > 0) then
ResearchDemandSet(HYPERSPACEGATETECH, demand + 0.5)
end
end
local numShipyards = NumSquadrons(kShipYard) + NumSquadronsQ(kShipYard)
if (numShipyards > 0 and Util_CheckResearch(BATTLECRUISERIONWEAPONS)) then
local battleCruiserDemand = ShipDemandGet(kBattleCruiser)
if (battleCruiserDemand > 0) then
ResearchDemandSet(BATTLECRUISERIONWEAPONS, battleCruiserDemand)
end
end
if (Util_CheckResearch(DESTROYERGUNS)) then
local demand = ShipDemandGet(VGR_DESTROYER)
if (demand > 0) then
ResearchDemandSet(DESTROYERGUNS, demand)
end
end
if (Util_CheckResearch(LANCEBEAMS)) then
local lancedemand = ShipDemandGet(VGR_LANCEFIGHTER)
if (lancedemand > 0) then
ResearchDemandSet(LANCEBEAMS, lancedemand + 0.5)
end
end
if (Util_CheckResearch(PLASMABOMBS)) then
local bomberdemand = ShipDemandGet(VGR_BOMBER)
if (bomberdemand > 0) then
ResearchDemandSet(PLASMABOMBS, bomberdemand + 1.0)
end
end
if (Util_CheckResearch(CORVETTELASER)) then
local laserdemand = ShipDemandGet(VGR_LASERCORVETTE)
if (laserdemand > 0) then
ResearchDemandSet(CORVETTELASER, laserdemand)
end
end
if (Util_CheckResearch(FRIGATEASSAULT)) then
local demand = ShipDemandGet(VGR_ASSAULTFRIGATE)
if (demand > 0) then
ResearchDemandSet(FRIGATEASSAULT, demand)
end
end
if (Util_CheckResearch(PLATFORMHEAVYMISSILES)) then
local demand = ShipDemandGet(VGR_WEAPONPLATFORM_MISSILE)
if (demand > 0) then
ResearchDemandSet(PLATFORMHEAVYMISSILES, demand)
end
end
if (Util_CheckResearch(BOMBERIMPROVEDBOMBS)) then
local numBombers = NumSquadrons(kBomber)
if (numBombers > 2) then
ResearchDemandSet(BOMBERIMPROVEDBOMBS, numBombers)
end
end
if (Util_CheckResearch(CORVETTETECH)) then
local corvdemand = ShipDemandMaxByClass(eCorvette)
if (corvdemand > 0) then
ResearchDemandSet(CORVETTETECH, corvdemand + 0.5)
end
end
if (Util_CheckResearch(FRIGATETECH)) then
local frigdemand = ShipDemandMaxByClass(eFrigate)
if (frigdemand > 0) then
ResearchDemandSet(FRIGATETECH, frigdemand + 0.5)
end
end
if (s_militaryPop > 15 and GetRU() > 750) then
if (Util_CheckResearch(CORVETTEGRAVITICATTRACTION)) then
local mineLayerDemand = ShipDemandGet(VGR_MINELAYERCORVETTE)
if (mineLayerDemand > 0) then
ResearchDemandSet(CORVETTEGRAVITICATTRACTION, mineLayerDemand)
end
end
if (Util_CheckResearch(CORVETTECOMMAND)) then
local commanddemand = ShipDemandGet(VGR_COMMANDCORVETTE)
if (commanddemand > 0) then
ResearchDemandSet(CORVETTECOMMAND, commanddemand)
end
end
if (Util_CheckResearch(FRIGATEINFILTRATIONTECH)) then
local demand = ShipDemandGet(VGR_INFILTRATORFRIGATE)
if (demand > 0) then
ResearchDemandSet(FRIGATEINFILTRATIONTECH, demand)
end
end
end
end
function DoResearchTechDemand_Tobari()
if (Util_CheckResearch(CORVETTETECH)) then
local corvdemand = ShipDemandMaxByClass(eCorvette)
if (corvdemand > 0) then
ResearchDemandSet(CORVETTETECH, corvdemand + 0.5)
end
end
if (Util_CheckResearch(ASSAULTCORVETTETECH)) then
local demand = ShipDemandGet(TBR_ASSAULTCORVETTE)
if (demand > 0) then
ResearchDemandSet(ASSAULTCORVETTETECH, demand)
end
end
if (Util_CheckResearch(SHIPYARDTECH)) then
local demand = ShipDemandGet(TBR_SHIPYARD)
if (demand > 0) then
ResearchDemandSet(SHIPYARDTECH, demand)
end
end
if (Util_CheckResearch(BATTLECRUISERTECH)) then
local demand = ShipDemandGet(TBR_BATTLECRUISER)
if (demand > 0) then
ResearchDemandSet(BATTLECRUISERTECH, demand)
end
end
if (Util_CheckResearch(DESTROYERTECH)) then
local demand = ShipDemandGet(TBR_DESTROYER)
if (demand > 0) then
ResearchDemandSet(DESTROYERTECH, demand)
end
end
if (Util_CheckResearch(BOMBERTCORVETTETECH)) then
local demand = ShipDemandGet(TBR_BOMBERCORVETTE)
if (demand > 0) then
ResearchDemandSet(BOMBERCORVETTETECH, demand)
end
end
if (Util_CheckResearch(FRIGATETECH)) then
local frigdemand = ShipDemandMaxByClass(eFrigate)
if (frigdemand > 0) then
ResearchDemandSet(FRIGATETECH, frigdemand + 0.5)
end
end
end
function Util_CheckResearch(researchId)
if (IsResearchDone(researchId) == 0 and IsResearchAvailable(researchId) == 1) then
return 1
end
return nil
end
function DoResearchTechDemand_Hiigaran()
local numShipyards = NumSquadrons(kShipYard) + NumSquadronsQ(kShipYard)
if (numShipyards > 0 and Util_CheckResearch(BATTLECRUISERIONWEAPONS)) then
local battleCruiserDemand = ShipDemandGet(kBattleCruiser)
if (battleCruiserDemand > 0) then
ResearchDemandSet(BATTLECRUISERIONWEAPONS, battleCruiserDemand)
end
end
if (Util_CheckResearch(PLATFORMIONWEAPONS)) then
local ionTurretDemand = ShipDemandGet(HGN_IONTURRET)
if (ionTurretDemand > 0) then
ResearchDemandSet(PLATFORMIONWEAPONS, ionTurretDemand)
end
end
if (Util_CheckResearch(DESTROYERTECH)) then
local destroyerDemand = ShipDemandGet(HGN_DESTROYER)
if (destroyerDemand > 0) then
ResearchDemandSet(DESTROYERTECH, destroyerDemand)
end
end
if (Util_CheckResearch(ATTACKBOMBERIMPROVEDBOMBS)) then
local numBombers = NumSquadrons(kBomber)
if (numBombers > 2) then
ResearchDemandSet(ATTACKBOMBERIMPROVEDBOMBS, numBombers)
end
end
if (Util_CheckResearch(IMPROVEDTORPEDO)) then
local numTorpedoFrigs = NumSquadrons(HGN_TORPEDOFRIGATE)
if (numTorpedoFrigs > 2) then
ResearchDemandSet(IMPROVEDTORPEDO, numTorpedoFrigs)
end
end
if (s_militaryPop > 15 and GetRU() > 750) then
if (Util_CheckResearch(DEFENSEFIELDFRIGATESHIELD)) then
local DFFDemand = ShipDemandGet(HGN_DEFENSEFIELDFRIGATE)
if (DFFDemand > 0) then
ResearchDemandSet(DEFENSEFIELDFRIGATESHIELD, DFFDemand)
end
end
if (Util_CheckResearch(ECMPROBE)) then
local ecmProbeDemand = ShipDemandGet(HGN_ECMPROBE)
if (ecmProbeDemand > 0) then
ResearchDemandSet(ECMPROBE, ecmProbeDemand)
end
end
if (Util_CheckResearch(GRAVITICATTRACTIONMINES)) then
local mineLayerDemand = ShipDemandGet(HGN_MINELAYERCORVETTE)
if (mineLayerDemand > 0) then
ResearchDemandSet(GRAVITICATTRACTIONMINES, mineLayerDemand)
end
end
end
end
function DoUpgradeDemand_Hiigaran()
if (s_militaryStrength > 10 or g_LOD == 0) then
inc_upgrade_demand(rt_mothership, 0.5 )
ResearchDemandAdd(MOTHERSHIPBUILDSPEEDUPGRADE1, 0.5)
local numPlatforms = numActiveOfClass(s_playerIndex, ePlatform)
if (numPlatforms > 1) then
local numGunTurret = NumSquadrons(HGN_GUNTURRET)
if (numGunTurret > 1) then
inc_upgrade_demand(rt_platform.gunturret, numGunTurret * 1)
end
local numIonTurret = NumSquadrons(HGN_IONTURRET)
if (numIonTurret > 1) then
inc_upgrade_demand(rt_platform.ionturret, numIonTurret * 1)
end
end
local numCollectors = NumSquadrons(kCollector)
if (numCollectors > 0) then
inc_upgrade_demand(rt_collector, numCollectors * .1)
end
local numRefinery = NumSquadrons(kRefinery)
if (numRefinery > 0) then
inc_upgrade_demand(rt_refinery, numRefinery * 1.5)
end
local numCarrier = NumSquadrons(kCarrier)
if (numCarrier > 0) then
inc_upgrade_demand(rt_carrier, numCarrier * 1)
ResearchDemandAdd(CARRIERBUILDSPEEDUPGRADE1, numCarrier * 1.25)
end
local numShipYards = NumSquadrons(kShipYard)
if (numShipYards > 0) then
inc_upgrade_demand(rt_shipyard, numShipYards * 1.5 )
ResearchDemandAdd(SHIPYARDBUILDSPEEDUPGRADE1, numShipYards * 1.75)
end
end
local numFighter = numActiveOfClass(s_playerIndex, eFighter)
if (numFighter > 1) then
local numInterceptors = NumSquadrons(kInterceptor)
if (numInterceptors > 1) then
inc_upgrade_demand(rt_fighter.interceptor, numInterceptors * 1)
end
local numBombers = NumSquadrons(kBomber)
if (numBombers > 1) then
inc_upgrade_demand(rt_fighter.bomber, numBombers * 1.5)
end
end
local numBattleCruiser = NumSquadrons(kBattleCruiser)
if (numBattleCruiser > 0) then
inc_upgrade_demand(rt_battlecruiser, numBattleCruiser * 2.5 )
end
local numDestroyers = NumSquadrons(kDestroyer)
if (numDestroyers > 0) then
inc_upgrade_demand(rt_destroyer, numDestroyers * 2 )
end
local numCorvette = numActiveOfClass(s_playerIndex, eCorvette)
if (numCorvette > 1) then
local numAssaultCorvette = NumSquadrons(HGN_ASSAULTCORVETTE)
if (numAssaultCorvette > 2) then
inc_upgrade_demand(rt_corvette.assault, numAssaultCorvette * 1.25)
end
local numPulsarCorvette = NumSquadrons(HGN_PULSARCORVETTE)
if (numPulsarCorvette > 2) then
inc_upgrade_demand(rt_corvette.pulsar, numPulsarCorvette * 1.25)
end
end
local numFrigate = numActiveOfClass(s_playerIndex, eFrigate)
if (numFrigate > 2) then
local numTorpedoFrigate = NumSquadrons(HGN_TORPEDOFRIGATE)
if (numTorpedoFrigate > 2) then
inc_upgrade_demand(rt_frigate.torpedo, numTorpedoFrigate * 1.5)
end
local numIonFrigate = NumSquadrons(HGN_IONCANNONFRIGATE)
if (numIonFrigate > 2) then
inc_upgrade_demand(rt_frigate.ioncannon, numIonFrigate * 1.5)
end
local numAssaultFrigate = NumSquadrons(HGN_ASSAULTFRIGATE)
if (numAssaultFrigate > 2) then
inc_upgrade_demand(rt_frigate.assault, numAssaultFrigate * 1.5)
end
end
end
function DoUpgradeDemand_Vaygr()
if (s_militaryStrength > 10 or g_LOD == 0) then
inc_upgrade_demand(rt_mothership, 0.5)
ResearchDemandAdd(MOTHERSHIPBUILDSPEEDUPGRADE1, 0.5)
local numCorvette = numActiveOfClass(s_playerIndex, eCorvette)
if (numCorvette > 2) then
inc_upgrade_demand(rt_corvette, numCorvette)
end
local numFrigate = numActiveOfClass(s_playerIndex, eFrigate)
if (numFrigate > 2) then
inc_upgrade_demand(rt_frigate, numFrigate * 1)
end
local numPlatforms = numActiveOfClass(s_playerIndex, ePlatform)
if (numPlatforms > 0) then
inc_upgrade_demand(rt_platform, numPlatforms * 1)
end
local numCapital = numActiveOfClass(s_playerIndex, eCapital)
if (numCapital > 1) then
inc_upgrade_demand(rt_capital, numCapital * 0.5)
end
local numCarrier = NumSquadrons(kCarrier)
if (numCarrier > 0) then
ResearchDemandAdd(CARRIERBUILDSPEEDUPGRADE1, numCarrier * 1.25)
end
local numShipYards = NumSquadrons(kShipYard)
if (numShipYards > 0) then
ResearchDemandAdd(SHIPYARDBUILDSPEEDUPGRADE1, numShipYards * 1.75)
end
end
end
function inc_research_demand(researchtype, val)
local typeis = typeid(researchtype);
if (typeis == LT_TABLE) then
for i, v in researchtype do
inc_research_demand(v, val);
end
else
if (Util_CheckResearch(researchtype)) then
ResearchDemandAdd(researchtype, val)
end
end
end
function inc_upgrade_demand(upgradetype, val)
inc_research_demand(upgradetype, val)
end
cpuresource.lua
Code:
-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================
aitrace("LOADING CPU RESOURCING")
function CpuResource_Init()
cpResourcersPerPath = 3.5
cpNumCollectorsPerLatchPoint = 2.0
cpMaxThreatAddedDistance = 6000
cpMinThreatAddedDistance = 12000
SetResourceDockFamily("Utility")
sg_minNumCollectors = 5
sg_maxNumCollectors = 30
if (Override_ResourceInit) then
Override_ResourceInit()
end
end
function CalcDesiredNumCollectors()
local baseCollectors = 8
local collectorsToMilitary = 0.8
if(g_LOD == 0) then
baseCollectors = 3
collectorsToMilitary = 0.6
elseif(g_LOD == 1) then
baseCollectors = 6
collectorsToMilitary = 0.7
elseif(g_LOD >= 2) then
baseCollectors = 8
collectorsToMilitary = 0.8
end
local maxCollectorsForMilitary = baseCollectors
if (s_militaryPop > 0) then
maxCollectorsForMilitary = maxCollectorsForMilitary + (s_militaryPop * collectorsToMilitary)
end
sg_desiredNumCollectors = GetActiveCollectorSlots() * cpNumCollectorsPerLatchPoint + 2
local numRU = GetRU()
if (numRU > 1000) then
sg_desiredNumCollectors = sg_desiredNumCollectors - ((numRU-1000) / 1000)
end
if (sg_desiredNumCollectors < baseCollectors) then
sg_desiredNumCollectors = baseCollectors
end
if(sg_desiredNumCollectors >= maxCollectorsForMilitary) then
sg_desiredNumCollectors = maxCollectorsForMilitary
end
local collectorsInSystem = numQueueOfClass( eCollector )
if(collectorsInSystem > 20) then
sg_militaryToBuildPerCollector = 4
elseif(collectorsInSystem > 16) then
sg_militaryToBuildPerCollector = 3
elseif(collectorsInSystem > 12) then
sg_militaryToBuildPerCollector = 2
elseif(collectorsInSystem > 9) then
sg_militaryToBuildPerCollector = 1
else
sg_militaryToBuildPerCollector = 0
end
local threatLevel = UnderAttackThreat();
if (threatLevel > 0) then
if(numRU > 1500) then
sg_desiredNumCollectors = 0
else
sg_militaryToBuildPerCollector = sg_militaryToBuildPerCollector + ((threatLevel / 50) + 1)
end
end
if (sg_desiredNumCollectors > sg_maxNumCollectors) then
sg_desiredNumCollectors = sg_maxNumCollectors
end
end
function DoResourceBuild()
CalcDesiredNumCollectors()
local numCollectors = numQueueOfClass( eCollector )
if (numCollectors < sg_desiredNumCollectors and CanBuild( kCollector ) == 1) then
aitrace("Build collector: desired:"..sg_desiredNumCollectors.." count:"..numCollectors)
Build( kCollector )
return 1
end
if(GetNumberOfIdleRefineries() <= 0) then
local numberOfActiveBlobs = GetActiveBlobCount()
local neededRefineries = 0
local neededSalvageDropOffs = 0
for activeIndex = 0 , (numberOfActiveBlobs-1) do
local blobIndex = GetActiveBlobAt(activeIndex)
local collectors = CollectorsAtBlob(blobIndex)
local refineryCapacity = CollectorCapacityOfRefineriesAtBlob(blobIndex)
if(collectors > refineryCapacity) then
if(IsSalvage(blobIndex) ~= 0) then
neededSalvageDropOffs = neededSalvageDropOffs + 1
else
neededRefineries = neededRefineries + 1
end
end
end
if (UnderAttackThreat() > -75) then
return 0
end
local numRefineriesQueued = numQueueOfClass( eDropOff )-numActiveOfClass( s_playerIndex, eDropOff )
if(neededRefineries > 0 and numRefineriesQueued == 0) then
ShipDemandAddByClass( eRefinery, neededRefineries )
end
local numSalDropsQueued = numQueueOfClass( eSalvageDropOff )-numActiveOfClass( s_playerIndex, eSalvageDropOff )
if(neededSalvageDropOffs > 0 and numSalDropsQueued == 0 and UnderAttackThreat() < -75) then
ShipDemandAddByClass( eSalvageDropOff, neededSalvageDropOffs )
end
end
return 0
end
default.lua
Code:
-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================
aitrace("DEFAULT CPU LOADED")
g_LOD = getLevelOfDifficulty()
dofilepath("data:ai/classdef.lua")
dofilepath("data:ai/cpubuild.lua")
dofilepath("data:ai/cpuresearch.lua")
dofilepath("data:ai/cpumilitary.lua")
old_aitrace = aitrace
rawset(globals(),"aitrace",nil)
aitrace = function() end
function oninit()
s_playerIndex = Player_Self()
s_race = getRace();
sg_dobuild = 1
sg_dosubsystems = 1
sg_doresearch = 1
sg_doupgrades = 1
sg_domilitary = 1
cp_processResource = 1
cp_processMilitary = 1
sg_lastSpendMoneyTime = gameTime()
sg_spendMoneyDelay = 0
if (g_LOD < 2) then
sg_spendMoneyDelay = 4
if (g_LOD < 1) then
sg_spendMoneyDelay = 8
end
end
ClassInitialize()
CpuBuild_Init()
CpuResearch_Init()
CpuMilitary_Init()
sg_kDemandResetValue = 4
if (s_race == Race_Vaygr) then
sg_kDemandResetValue = 2
end
if (Override_Init) then
Override_Init()
end
sg_reseachDemand = -sg_kDemandResetValue
Rule_AddInterval("doai", 2.0 )
end
function CalcOpenBuildChannels()
local numShipsBuildingShips = NumShipsBuildingShips()
local numShipsBuildingSubSystems = NumShipsBuildingSubSystems()
local numShipsBuilding = numShipsBuildingShips + numShipsBuildingSubSystems
local researchItem = IsResearchBusy()
local numItemsBuilding = numShipsBuilding + researchItem
local totalBuildShips = BuildShipCount() * 2
local numCollecting = GetNumCollecting()
local numRUs = GetRU()
sg_allowedBuildChannels = numCollecting / 5;
if (numRUs > 500) then
sg_allowedBuildChannels = sg_allowedBuildChannels + (numRUs-500) / 1000
end
s_numOpenBuildChannels = sg_allowedBuildChannels - numItemsBuilding
s_shipBuildQueuesFull = 0
if (totalBuildShips == numShipsBuilding) then
s_shipBuildQueuesFull = 1
end
if (s_numOpenBuildChannels <= -1.5) then
RemoveLeastNeededItem()
end
end
function CacheCurrentState()
s_numFiSystems = NumSubSystems(FIGHTERPRODUCTION) + NumSubSystemsQ(FIGHTERPRODUCTION)
s_numCoSystems = NumSubSystems(CORVETTEPRODUCTION) + NumSubSystemsQ(CORVETTEPRODUCTION)
s_numFrSystems = NumSubSystems(FRIGATEPRODUCTION) + NumSubSystemsQ(FRIGATEPRODUCTION)
s_totalProdSS = s_numFiSystems + s_numCoSystems + s_numFrSystems
s_militaryPop = PlayersMilitaryPopulation( s_playerIndex, player_total );
s_selfTotalValue = PlayersMilitary_Total( s_playerIndex, player_total );
s_enemyTotalValue = PlayersMilitary_Total( player_enemy, player_max );
s_militaryStrength = PlayersMilitary_Threat( player_enemy, player_min );
s_enemyIndex = GetChosenEnemy()
s_militaryStrengthVersusTarget = 0
if (s_enemyIndex ~= -1) then
s_militaryStrengthVersusTarget = PlayersMilitary_Threat( s_enemyIndex, player_max )
end
end
function SpendMoney()
if (s_numOpenBuildChannels > 0) then
local buildHasBeenDone = 0
if (sg_dobuild == 1 and s_shipBuildQueuesFull == 0 and sg_reseachDemand < 0) then
if (CpuBuild_Process() == 1) then
s_numOpenBuildChannels = s_numOpenBuildChannels-1
sg_reseachDemand = sg_reseachDemand + 1
buildHasBeenDone = 1
end
end
if (s_numOpenBuildChannels > 0) then
if (sg_doresearch == 1) then
local didResearch = CpuResearch_Process();
if (didResearch == 1) then
sg_reseachDemand = -sg_kDemandResetValue
else
if (sg_reseachDemand >= 0 and sg_dobuild == 1 and s_shipBuildQueuesFull == 0 and buildHasBeenDone == 0) then
CpuBuild_Process()
end
end
else
sg_reseachDemand = -sg_kDemandResetValue
end
end
end
end
function doai()
CacheCurrentState();
CalcOpenBuildChannels();
local curTime = gameTime()
local timeSinceLastSubSysDemand = curTime - sg_lastSpendMoneyTime
if (timeSinceLastSubSysDemand >= sg_spendMoneyDelay) then
SpendMoney()
sg_lastSpendMoneyTime = curTime
end
if (sg_domilitary == 1) then
CpuMilitary_Process();
end
end
ну хиигаран и ваигр апгрейдс не буду писать, напишу тобарьский
Tobari_upgrades.lua
Code:
-- =============================================================================
-- Homeworld 2 Clean Data Resource Project
-- By S110
-- Version 1.0
-- 02/06/2010
-- Tools used: EditPad Lite, LuaDC version 0.9.19, and Cold Fusion LUA Decompiler v1.0.0
-- =============================================================================
aitrace("LOADING TOBARI UPGRADE INFO")
rt_mothership = {}
rt_capital = {}
rt_fighter = {}
rt_corvette = {}
rt_frigate = {}
rt_platform = {}
rt_collector = {}
а он почти пустой х_х
Добавлено через 42 секунды
вроде как все
Last edited by Хранитель : 03-24-2014 at 06:41 AM.
|