Hankc
Warlord
Fletcher and Archery range are two more buildings that don't show up build popup. Well, they do as industry buildings, but only if there are an actual industry building in that field. Weird.
Is it possible to separate it into No Frozen and No Infernal/Mercurian, instead of one general "Broken Compact" option?
In addition to what others have mentioned, Stables.Woops, will take a look at that. Which buildings are they, exactly? Going to be important.![]()
not sure if bug or balance oversight but arcane xp gain is kind of ridicoulus low. i m playing a sheaim game with tebryn abrandi now and taking a closer look at a mage of mine he had
0,7 training xp modifier from potency
0,8 training xp modifier from channelling II
0,25 training xp modifier from mage guild in city
0,25 training xp modifier from alchemy lab in city
... all this ammounted to the whooping xp gain of 0.11 in 1 turn![]()
so you need basically 250~ turns for an archmage unless you send your adepts/mages out hunting wolves/goblins instead of studying at your mage guilds (not very flavourfull imho). oh wait, channelling II is even capped at 20 xp so you need to do the later anyhow.
int iRndCiv = GC.getDefineINT("RANDOM_CIVILIZATION");
if (iRndCiv != -1)
{
int iAlignment = 0;
int iBestLeader = -1;
int iBestCiv = -1;
int iBestValue = -1;
int iValue = 0;
for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; iPlayer++)
{
if ((GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_COMPUTER) || (GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_TAKEN))
{
iAlignment = 0;
if (GC.getInitCore().getCiv((PlayerTypes)iPlayer) == NO_CIVILIZATION)
{
GC.getInitCore().setCiv((PlayerTypes)iPlayer, (CivilizationTypes)iRndCiv);
iAlignment = -1;
}
if (GC.getInitCore().getCiv((PlayerTypes)iPlayer) == iRndCiv)
{
if (iAlignment != -1)
{
iAlignment = GC.getLeaderHeadInfo((LeaderHeadTypes)GC.getInitCore().getLeader((PlayerTypes)iPlayer)).getAlignment();
}
for (int iCiv = 0; iCiv < GC.getNumCivilizationInfos(); iCiv++)
{
/*************************************************************************************************/
/** CivSelector 10/22/08 Xienwolf **/
/** **/
/** Restricts AI Selection and Human Selection seperately **/
/*************************************************************************************************/
/** ---- Start Original Code ---- **
if (GC.getCivilizationInfo((CivilizationTypes)iCiv).isAIPlayable())
/** ---- End Original Code ---- **/
if ((GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_COMPUTER && GC.getCivilizationInfo((CivilizationTypes)iCiv).isAIPlayable()) || (GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_TAKEN && GC.getCivilizationInfo((CivilizationTypes)iCiv).isPlayable()))
/*************************************************************************************************/
/** CivSelector END **/
/*************************************************************************************************/
{
for (int iLeader = 0; iLeader < GC.getNumLeaderHeadInfos(); iLeader++)
{
if (GC.getCivilizationInfo((CivilizationTypes)iCiv).isLeaders(iLeader))
{
if (iAlignment == -1 || GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getAlignment() == iAlignment)
{
iValue = 40000 + GC.getGameINLINE().getSorenRandNum(1000, "Random Leader");
for (int iI = 0; iI < MAX_CIV_PLAYERS; iI++)
{
if (GC.getInitCore().getLeader((PlayerTypes)iI) == iLeader)
{
iValue -= 2000;
}
if (GC.getInitCore().getCiv((PlayerTypes)iI) == iCiv)
{
iValue -= 1000;
}
}
/*************************************************************************************************/
/** LeaderStatus Infos 10/02/09 Valkrionn **/
/** Originally **/
/** Minor Leaders Options Opera 08.06.09 imported by Valkrionn 09.26.09 **/
/*************************************************************************************************/
if (isOption(GAMEOPTION_THE_ACKNOWLEDGEMENT))
{
if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() != MAJOR_STATUS)
{
iValue += 50000;
}
}
if (isOption(GAMEOPTION_WELLKNOWN_FACES))
{
if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() == MAJOR_STATUS)
{
iValue += 50000;
}
if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() == NO_STATUS)
{
iValue += 50000;
}
}
if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getUnique() > 0)
{
for (int jJ = 0; jJ < MAX_CIV_PLAYERS; jJ++)
{
if (GC.getLeaderHeadInfo(GC.getInitCore().getLeader((PlayerTypes)jJ)).getUnique() > 0)
{
if (GC.getLeaderHeadInfo(GC.getInitCore().getLeader((PlayerTypes)jJ)).getUnique() == GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getUnique())
{
iValue -= 50000;
}
}
}
}
/*************************************************************************************************/
/** End **/
/*************************************************************************************************/
if (iValue > iBestValue)
{
iBestCiv = iCiv;
iBestLeader = iLeader;
iBestValue = iValue;
}
}
}
}
}
}
GC.getInitCore().setCiv((PlayerTypes)iPlayer, (CivilizationTypes)iBestCiv);
GC.getInitCore().setLeader((PlayerTypes)iPlayer, (LeaderHeadTypes)iBestLeader);
iBestCiv = -1;
iBestLeader = -1;
iBestValue = -1;
}
}
}
}
Ophelia keeps crashing my games while loading. It has something to do with <iUnique> I think. Disabling it stops the crashes, as well as selection a non-random leader.
Spoiler Probable Broken Code :Code:int iRndCiv = GC.getDefineINT("RANDOM_CIVILIZATION"); if (iRndCiv != -1) { int iAlignment = 0; int iBestLeader = -1; int iBestCiv = -1; int iBestValue = -1; int iValue = 0; for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; iPlayer++) { if ((GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_COMPUTER) || (GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_TAKEN)) { iAlignment = 0; if (GC.getInitCore().getCiv((PlayerTypes)iPlayer) == NO_CIVILIZATION) { GC.getInitCore().setCiv((PlayerTypes)iPlayer, (CivilizationTypes)iRndCiv); iAlignment = -1; } if (GC.getInitCore().getCiv((PlayerTypes)iPlayer) == iRndCiv) { if (iAlignment != -1) { iAlignment = GC.getLeaderHeadInfo((LeaderHeadTypes)GC.getInitCore().getLeader((PlayerTypes)iPlayer)).getAlignment(); } for (int iCiv = 0; iCiv < GC.getNumCivilizationInfos(); iCiv++) { /*************************************************************************************************/ /** CivSelector 10/22/08 Xienwolf **/ /** **/ /** Restricts AI Selection and Human Selection seperately **/ /*************************************************************************************************/ /** ---- Start Original Code ---- ** if (GC.getCivilizationInfo((CivilizationTypes)iCiv).isAIPlayable()) /** ---- End Original Code ---- **/ if ((GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_COMPUTER && GC.getCivilizationInfo((CivilizationTypes)iCiv).isAIPlayable()) || (GC.getInitCore().getSlotStatus((PlayerTypes)iPlayer) == SS_TAKEN && GC.getCivilizationInfo((CivilizationTypes)iCiv).isPlayable())) /*************************************************************************************************/ /** CivSelector END **/ /*************************************************************************************************/ { for (int iLeader = 0; iLeader < GC.getNumLeaderHeadInfos(); iLeader++) { if (GC.getCivilizationInfo((CivilizationTypes)iCiv).isLeaders(iLeader)) { if (iAlignment == -1 || GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getAlignment() == iAlignment) { iValue = 40000 + GC.getGameINLINE().getSorenRandNum(1000, "Random Leader"); for (int iI = 0; iI < MAX_CIV_PLAYERS; iI++) { if (GC.getInitCore().getLeader((PlayerTypes)iI) == iLeader) { iValue -= 2000; } if (GC.getInitCore().getCiv((PlayerTypes)iI) == iCiv) { iValue -= 1000; } } /*************************************************************************************************/ /** LeaderStatus Infos 10/02/09 Valkrionn **/ /** Originally **/ /** Minor Leaders Options Opera 08.06.09 imported by Valkrionn 09.26.09 **/ /*************************************************************************************************/ if (isOption(GAMEOPTION_THE_ACKNOWLEDGEMENT)) { if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() != MAJOR_STATUS) { iValue += 50000; } } if (isOption(GAMEOPTION_WELLKNOWN_FACES)) { if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() == MAJOR_STATUS) { iValue += 50000; } if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getLeaderStatus() == NO_STATUS) { iValue += 50000; } } if (GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getUnique() > 0) { for (int jJ = 0; jJ < MAX_CIV_PLAYERS; jJ++) { if (GC.getLeaderHeadInfo(GC.getInitCore().getLeader((PlayerTypes)jJ)).getUnique() > 0) { if (GC.getLeaderHeadInfo(GC.getInitCore().getLeader((PlayerTypes)jJ)).getUnique() == GC.getLeaderHeadInfo((LeaderHeadTypes)iLeader).getUnique()) { iValue -= 50000; } } } } /*************************************************************************************************/ /** End **/ /*************************************************************************************************/ if (iValue > iBestValue) { iBestCiv = iCiv; iBestLeader = iLeader; iBestValue = iValue; } } } } } } GC.getInitCore().setCiv((PlayerTypes)iPlayer, (CivilizationTypes)iBestCiv); GC.getInitCore().setLeader((PlayerTypes)iPlayer, (LeaderHeadTypes)iBestLeader); iBestCiv = -1; iBestLeader = -1; iBestValue = -1; } } } }
The modifier is (IIRC), 1/(1+current xp)*(modifiers, added together)
This means that a brand new unit with no xp, but a 2x modifier, would get 2xp. Then he would get +.66xp (2/3). Then +.54xp. Etc, etc. Yes, potency and arcane are completely worthless now...
-Colin
Apparently, Mechanos Zepplins (not Lenora, just Zepplins) can be loaded upon other zepplins. I'm pretty sure that that's not supposed to happen.