Ailoaderstandard xs ошибка в age of empires 3

Don’t require them researching the tech to stop researching it.

Problem for you use here that you make Every Civilization try and research all the techs, when really they can’t. Only Sioux have those types of Bastions, or Asians this type of Fortified Walls.

A Hint, is that a Shadow Upgrade Monitor, enabling for a certain civ never causes a flaw in the AI script, allowing it to «think» it can really research all those techs you gave it, whereas it really can’t.

You’re code has, in other words, too many requirements. Take a look at FactoryUpgradeMonitor, and you will find the code for Upgrading Heavy Cannons/Great Bombards/Rockets:

rule factoryUpgradeMonitor
inactive
minInterval 45
{
int upgradePlanID = -1;

// Quit if there is no factory around
if (kbUnitCount(cMyID, cUnitTypeFactory, cUnitStateAlive) < 1)
{
return;
}

// Disable rule once all upgrades are available
if ((kbTechGetStatus(cTechFactorySteamPower) == cTechStatusActive) &&
(kbTechGetStatus(cTechFactoryMassProduction) == cTechStatusActive) &&
(kbTechGetStatus(cTechFactoryWaterPower) == cTechStatusActive) &&
(kbTechGetStatus(cTechFactoryCannery) == cTechStatusActive) &&
((kbTechGetStatus(cTechImperialBombard) == cTechStatusActive) ||
(kbTechGetStatus(cTechImperialCannon) == cTechStatusActive) ||
(kbTechGetStatus(cTechImperialRocket) == cTechStatusActive)))
{
xsDisableSelf();
return;
}

// Get upgrades as they become useful
if (kbTechGetStatus(cTechFactorySteamPower) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechFactorySteamPower);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechFactorySteamPower, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 85);
return;
}
if (kbTechGetStatus(cTechFactoryWaterPower) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechFactoryWaterPower);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechFactoryWaterPower, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 85);
return;
}
if (kbTechGetStatus(cTechFactoryCannery) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechFactoryCannery);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechFactoryCannery, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 85);
return;
}
if ((kbTechGetStatus(cTechFactoryMassProduction) == cTechStatusObtainable) && (kbUnitCount(cMyID, cUnitTypeFactory, cUnitStateAlive) > 0))
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechFactoryMassProduction);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechFactoryMassProduction, getUnit(cUnitTypeFactory), cEconomyEscrowID, 85);
return;
}
if ((kbTechGetStatus(cTechImperialBombard) == cTechStatusObtainable) &&
(kbCanAffordTech(cTechImperialBombard, cMilitaryEscrowID) == true) &&
(kbUnitCount(cMyID, cUnitTypeGreatBombard, cUnitStateAlive) >= 4))
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechImperialBombard);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechImperialBombard, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 50);
return;
}
if ((kbTechGetStatus(cTechImperialCannon) == cTechStatusObtainable) &&
(kbCanAffordTech(cTechImperialCannon, cMilitaryEscrowID) == true) &&
(kbUnitCount(cMyID, cUnitTypeCannon, cUnitStateAlive) >= 4))
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechImperialCannon);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechImperialCannon, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 50);
return;
}
if ((kbTechGetStatus(cTechImperialRocket) == cTechStatusObtainable) &&
(kbCanAffordTech(cTechImperialRocket, cMilitaryEscrowID) == true) &&
(kbUnitCount(cMyID, cUnitTypeRocket, cUnitStateAlive) >= 4))
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechImperialRocket);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechImperialRocket, getUnit(cUnitTypeFactory), cMilitaryEscrowID, 50);
return;
}
}

The fact of having && (meaning and) in the requirements and || (meaning OR), means everything in AI coding.

Again, the fact of having && (meaning and) in the requirements and || (meaning OR), means everything in AI coding.

I’ll explain the Shadow Tech:

<Tech name ='fpObservatoryTechsShadow' type ='Normal'>
<DBID>5393</DBID>
<ResearchPoints>0.0000</ResearchPoints>
<Status>obtainable</Status>
<Flag>Shadow</Flag>
<Effects>
<Effect type ='Data' amount ='1.00' subtype ='Enable' relativity ='Absolute'>
<Target type ='ProtoUnit'>Observatory</Target></Effect>
<Effect type ='TechStatus' status ='obtainable'>WealthOfNations</Effect>
<Effect type ='TechStatus' status ='obtainable'>DivisionOfLabour</Effect>
<Effect type ='TechStatus' status ='obtainable'>PackagedMeats</Effect>
<Effect type ='TechStatus' status ='obtainable'>ChurchfpGermanMeats</Effect>
<Effect type ='TechStatus' status ='obtainable'>InternationalBankingGerman</Effect>
<Effect type ='TechStatus' status ='obtainable'>SpinningJenny</Effect>
<Effect type ='TechStatus' status ='obtainable'>MechanicalEngineering</Effect>
<Effect type ='TechStatus' status ='obtainable'>Pasteurization</Effect>
<Effect type ='TechStatus' status ='unobtainable'>TheJungle</Effect>
<Effect type ='TechStatus' status ='obtainable'>DailyNewspaper</Effect>
<Effect type ='TechStatus' status ='obtainable'>Nationalism</Effect>
<Effect type ='TechStatus' status ='obtainable'>Imperialism</Effect>
<Effect type ='TechStatus' status ='obtainable'>HotAirBalloonTechnology</Effect>
<Effect type ='TechStatus' status ='obtainable'>AdvancedHotAirBalloonFrench</Effect>
<Effect type ='TechStatus' status ='obtainable'>FrontierTerritory</Effect>
<Effect type ='TechStatus' status ='obtainable'>TheGreatPioneerWagonTrain</Effect>
<Effect type ='TechStatus' status ='obtainable'>TransContinentalRailroad</Effect>
<Effect type ='TechStatus' status ='obtainable'>LumberMillsEuropean</Effect>
<Effect type ='TechStatus' status ='obtainable'>ScoutCavalryEuropean</Effect>
<Effect type ='TechStatus' status ='obtainable'>BattlefieldSurveyors</Effect>
<Effect type ='TechStatus' status ='obtainable'>Dragooning</Effect>
<Effect type ='TechStatus' status ='obtainable'>DutchFluytBuilding</Effect>
<Effect type ='TechStatus' status ='obtainable'>Admirality</Effect>
<Effect type ='TechStatus' status ='unobtainable'>PiratesOfTheBarbaryCoast</Effect>
<Effect type ='TechStatus' status ='obtainable'>TheRightsOfMan</Effect>
<Effect type ='TechStatus' status ='obtainable'>NativeFrenchAlliances</Effect>
<Effect type ='TechStatus' status ='obtainable'>ExplosiveShells</Effect>
<Effect type ='TechStatus' status ='obtainable'>QuicklimeShells</Effect>
<Effect type ='TechStatus' status ='obtainable'>HeavyArtilleryRegiments</Effect>
<Effect type ='TechStatus' status ='obtainable'>Fusils</Effect>
<Effect type ='TechStatus' status ='obtainable'>Rifles</Effect>
<Effect type ='TechStatus' status ='obtainable'>CanisterShot</Effect>
<Effect type ='TechStatus' status ='obtainable'>GatlingGuns</Effect>
<Effect type ='TechStatus' status ='obtainable'>DutchSpiceTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>DutchTeaTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>OttomanSpiceTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>OttomanCoffeeTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>OttomanEgyptianMarket</Effect>
<Effect type ='TechStatus' status ='obtainable'>OttomanTradeGuilds</Effect>
<Effect type ='TechStatus' status ='obtainable'>OttomanTradeGuilds</Effect>
<Effect type ='TechStatus' status ='unobtainable'>IndustrialRevolutionRussian</Effect>
<Effect type ='TechStatus' status ='unobtainable'>IronandCoalBusiness</Effect>
<Effect type ='TechStatus' status ='obtainable'>TheEncyclopedia</Effect>
<Effect type ='TechStatus' status ='obtainable'>BritishEastIndiaCompany</Effect>
<Effect type ='TechStatus' status ='obtainable'>SlaveTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>BritishHiredPrivateers</Effect>
<Effect type ='TechStatus' status ='obtainable'>SpanishGoldTrade</Effect>
<Effect type ='TechStatus' status ='obtainable'>AbolitionOfSlavery</Effect>
<Effect type ='TechStatus' status ='obtainable'>NaturalPhilosophy</Effect>
<Effect type ='TechStatus' status ='obtainable'>PublicSchooling</Effect>
<Effect type ='TechStatus' status ='obtainable'>SeparationofPowers</Effect>
<Effect type ='TechStatus' status ='obtainable'>ComputerObservatoryTechs1</Effect>
</Effects>
</Tech>

Here is the Code in the AI, no special requirements because many civs have this:

rule ObservatoryUpgradeMonitorIndustrial
inactive
minInterval 10
{
int upgradePlanID = -1;

// Disable rule for native or Asian civs
if ((civIsNative() == true) || (civIsAsian() == true))
{
xsDisableSelf();
return;
}

// Get upgrades one at a time
if (kbTechGetStatus(cTechWealthOfNations) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechWealthOfNations);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechWealthOfNations, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechTheEncyclopedia) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechTheEncyclopedia);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechTheEncyclopedia, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechGermanUniversities) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechGermanUniversities);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechGermanUniversities, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechKritikkderreineVernuft) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechKritikkderreineVernuft);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechKritikkderreineVernuft, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechSpinningJenny) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechSpinningJenny);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechSpinningJenny, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechPasteurization) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechPasteurization);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechPasteurization, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechDailyNewspaper) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechDailyNewspaper);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechDailyNewspaper, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
if (kbTechGetStatus(cTechDivisionOfLabour) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechDivisionOfLabour);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechDivisionOfLabour, getUnit(cUnitTypeObservatory), cEconomyEscrowID, 50);
return;
}
}

For Specific Civs, I have individual Tech Shadows; for instance, Britain does not get Le Encyclopedia (Denis Diderot, Frenchman), nor does Russia get Kritikk der reine Vernuft (By Immanuel Kant, Prussian Philosopher), but each has its own set tree of extra special upgrades which overrule those previous, weaker upgrades.

A Specific AI Monitor is necessary only when a specific civilization has all these techs available, in this case, the Aztecs:

rule AztecTempleUpgradeMonitor
inactive
minInterval 5
{
int upgradePlanID = -1;

if ((kbTechGetStatus(cTechAztecSlaveLabour) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecCoinage) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecTempleOfHuitzilopochtli) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecGarlandWars) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecMacehualtinsVsArmouredCavalry) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecWarhutCombat) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecEagleWarriors) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecImperialTribute) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecShamans) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecPaganism) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecGrainMarket) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecTradeGuilds) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecPublicBaths) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecGold) == cTechStatusActive) &&
(kbTechGetStatus(cTechAztecWoodImports) == cTechStatusActive))
{
xsDisableSelf();
return;
}

// Get upgrades one at a time
if (kbTechGetStatus(cTechAztecSlaveLabour) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecSlaveLabour);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecSlaveLabour, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 99);
return;
}
if (kbTechGetStatus(cTechAztecCoinage) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecCoinage);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecCoinage, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 98);
return;
}
if (kbTechGetStatus(cTechAztecTempleOfHuitzilopochtli) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecTempleOfHuitzilopochtli);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecTempleOfHuitzilopochtli, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 98);
return;
}
if (kbTechGetStatus(cTechAztecGarlandWars) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecGarlandWars);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecGarlandWars, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 97);
return;
}
if (kbTechGetStatus(cTechAztecMacehualtinsVsArmouredCavalry) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecMacehualtinsVsArmouredCavalry);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecMacehualtinsVsArmouredCavalry, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 96);
return;
}
if (kbTechGetStatus(cTechAztecWarhutCombat) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecWarhutCombat);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecWarhutCombat, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 96);
return;
}
if (kbTechGetStatus(cTechAztecEagleWarriors) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecEagleWarriors);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecEagleWarriors, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 95);
return;
}
if (kbTechGetStatus(cTechAztecImperialTribute) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecImperialTribute);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecImperialTribute, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 94);
return;
}
if (kbTechGetStatus(cTechAztecShamans) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecShamans);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecShamans, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 93);
return;
}
if (kbTechGetStatus(cTechAztecPaganism) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecPaganism);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecPaganism, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 92);
return;
}
if (kbTechGetStatus(cTechAztecGrainMarket) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecGrainMarket);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecGrainMarket, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 91);
return;
}
if (kbTechGetStatus(cTechAztecTradeGuilds) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecTradeGuilds);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecTradeGuilds, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 90);
return;
}
if (kbTechGetStatus(cTechAztecPublicBaths) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecPublicBaths);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecPublicBaths, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 89);
return;
}
if (kbTechGetStatus(cTechAztecGold) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecGold);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecGold, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 88);
return;
}
if (kbTechGetStatus(cTechAztecWoodImports) == cTechStatusObtainable)
{
upgradePlanID = aiPlanGetIDByTypeAndVariableType(cPlanResearch, cResearchPlanTechID, cTechAztecWoodImports);
if (upgradePlanID >= 0)
aiPlanDestroy(upgradePlanID);
createSimpleResearchPlan(cTechAztecWoodImports, getUnit(cUnitTypefpAztecTemple), cEconomyEscrowID, 87);
return;
}
}

As you see, even though it may be elemetary — having follow priorities, for instance going down in row, from 99 to 87,
helps the AI play better.

It’s not important to make the AI «save» so many resources as it is to set a low mandatory priority on building a building or researching a tech. With a low priority, say 20, for building, the Computer plays efficiently enough to skip the building if absolutely necessary, but if it has enough resources, and a surplus, it will invest early enough.

Hope this helped some!

regards,

murdilator

Go down

Utter sadness Age of Empires 3 error 0003: Could not compile file ‘aiLoaderStandard.xs’

okay guys the title explain all, everytime i tried to run a skirmish game this message pop up error 0003: Could not compile file ‘aiLoaderStandard.xs’ ,
i follow the instalation instruction corrctly, put the K&B folder on my document , my game folder, and then put all the into programfile to aoe 3 folder.
when i start the game everything seems run correctly and the kingdom of heaven music start in the main menu, until i try creatin a new city profile for skirmish there are seems 2 nation for each i mean like twice byzantine or twice crusader .. is that normal ? and the name in crusader is chinese, but the flag icon is crusader flag is that normal too ? im rly desperate now.. rly want to play the mod, i hope you guys could help

obliviongate
Peasant
Peasant
Posts : 10
Join date : 2013-08-27

Back to top Go down

Utter sadness Re: Age of Empires 3 error 0003: Could not compile file ‘aiLoaderStandard.xs’

Post by AOE_Fan Tue 27 Aug 2013 — 23:41

1. Can you confirm you have a folder called «Knights and Barbarians» in C:UsersYour NameDocumentsMy Games?
2. If yes, delete that folder. Then, paste the «Knights and Barbarians» folder (that is included with the download) to C:UsersYour NameDocumentsMy Games again.
3. Launch the game, does the error still happen?

Having the same civ selectable twice is how it should be, so the files in your Program Files folder should be fine. I’m 99% sure the error is caused by files in the My Documents folder…

Back to top Go down

Utter sadness Re: Age of Empires 3 error 0003: Could not compile file ‘aiLoaderStandard.xs’

Post by obliviongate Tue 27 Aug 2013 — 23:47

i have knights and barbarians folder onmy document/my games folder(i presume its on the same location with age of empire 3 folder)

and about put the program files is it just putin the to programfiles folder on aoe3 folder or replace the inside of it ?

obliviongate
Peasant
Peasant
Posts : 10
Join date : 2013-08-27

Back to top Go down

Utter sadness Re: Age of Empires 3 error 0003: Could not compile file ‘aiLoaderStandard.xs’

Post by AOE_Fan Wed 28 Aug 2013 — 1:06

Hmm, I don’t really know (other people are better with install help)… You could of course try installing Aoe3 to C drive (that’s where it’s usually installed) and try again. Make sure you have TAD patched to 1.03 too.

Also, I have the Complete Collection as well so that shouldn’t be the problem.

Back to top Go down

obliviongate
Peasant
Peasant
Posts : 10
Join date : 2013-08-27

Back to top Go down

Back to top Go down

Back to top

- Similar topics


Permissions in this forum:

You cannot reply to topics in this forum

Age of Empires Forum

Loading

Главная

» 2017 » Апрель » 24 » Ликвидация ошибки 00:00:00 (0): XS: Error 0003: could not compile file !


18:23

Ликвидация ошибки 00:00:00 (0): XS: Error 0003: could not compile file !

xpacklanguage.dll исправляет ошибку с AI (искусственным интеллектом), при которой враг ничего не строит, не управляет юнитами и не развивается. Решает проблему, когда в Age of Mythology The Titans не развиваются противники.

Закинуть в корневую папку игры.

Совет: когда делаете сценарий в редакторе, пишите имена игроков латинскими буквами, иначе AI может не заработать.

Скачать

Скачать

Категория: Прочее |
Просмотров: 2417 |
Дата: 08.06.2023
| Теги: AI, в начале игры, AoM, Age of Mythology, ошибка, ии, не работает, the Titans, решение проблем, error 0003
| Рейтинг: 5.0/2

ADS

Меню

Вход на сайт

Опрос

Статистика


Онлайн всего: 1

Гостей: 1

Пользователей: 0

Новости музыки

Dmitry_Frolov


Онлайн всего: 1

Гостей: 1

Пользователей: 0

Новости музыки

xpacklanguage.dll исправляет ошибку с AI (искусственным интеллектом), при которой враг не развивается.

Решает проблему, когда в Age of Mythology The Titans не развиваются противники.

Положить в корневую папку игры.

Понравилась статья? Поделить с друзьями:
  • Ahls санта фе как убрать ошибку
  • Ah1 ошибка на контроллере элитеч
  • Ah1 ошибка на контроллере eliwell
  • Ah1 ошибка мерседес актрос прицепа
  • Ah ошибка на контроллере контроллер evco