Questions & Answers

When I start playing the game, it gives a "You're civilization has been defeated" message. How do I fix this?
 
How did you do when you did so mountains gave 2 food and 1 hammer? Is this possible in world builder?
And.. How can I name a city before it is built. (like name the plot so the city have the same name. ex: Luleå is where it should be.
 
Well.. That wasn´t the answer i were looking for. I want to know how. If you dont know you shouldn´t answer.

Many of the wonders of RFC are in the Python code. Take a look at the code and learn (so get a python compiler and look at it). If it isn't in there, it's in the dll and you'll need C++.

I tried to be a bit funny, as this forum is more then just a Q&A forum, it's a rael community, but it seems it wasn't funny at all, sorry.


Rhye,

An other MOD to follow is the Saints and Sinners MOD
http://forums.civfanatics.com/showthread.php?t=247762
It has some nice features like:
-a "Srew the people" victory, where you leader steals money from teh civ and runes away with it (not for FRC but a nice idea)
-Blamed Civics: a civ can blame a civic (= evil civic), can be used for cold war simulations (not fully in current build, but isau, the MODer is testing it)
-Reworked espionage with secret societies (= spying agencies)
-vices for leaders: realy like the idea, but not as implemented in the MOD, but with some good ideas
 
How did you do when you did so mountains gave 2 food and 1 hammer? Is this possible in world builder?
And.. How can I name a city before it is built. (like name the plot so the city have the same name. ex: Luleå is where it should be.

1- It's a tweak in the SDK, in CvPlot::calculateNatureYield()

2- Have a look at CityNameManager.py
 
Rhye,

An other MOD to follow is the Saints and Sinners MOD
http://forums.civfanatics.com/showthread.php?t=247762
It has some nice features like:
-a "Srew the people" victory, where you leader steals money from teh civ and runes away with it (not for FRC but a nice idea)
-Blamed Civics: a civ can blame a civic (= evil civic), can be used for cold war simulations (not fully in current build, but isau, the MODer is testing it)
-Reworked espionage with secret societies (= spying agencies)
-vices for leaders: realy like the idea, but not as implemented in the MOD, but with some good ideas

I'm a little outdated about the current features of that mod. I remember it was very original.
I guess I'll have to add it to the list of the to-do things.
 
Hello all - long time reader, only just got an account.

I'm trying to Monarch UHV every civ, and I have a question about Mongolia:

How exactly does the UP work, as far as how size of razed city, size of surronding cities, and plot radius interact? Can I find this somewhere?
 
Hello all - long time reader, only just got an account.

I'm trying to Monarch UHV every civ, and I have a question about Mongolia:

How exactly does the UP work, as far as how size of razed city, size of surronding cities, and plot radius interact? Can I find this somewhere?

From this link: http://wikirhye.wikidot.com/civ-powers#toc24

Mongolia
Horde - Any razed city makes nearby enemy cities surrender if approached
When a city is razed, any old owner’s city (smaller or equal to the city razed) in a 4x4 area fears the same fate and surrenders if approached within the following turn by a Mongol unit.

Here is the code:

Spoiler :
#------------------MONGOLIAN U.P.-------------------

def setMongolAI(self):
pCity = gc.getMap().plot( self.getLatestRazeData(3), self.getLatestRazeData(4) )
city = pCity.getPlotCity()
iOldOwner = self.getLatestRazeData(1)
print ("Mongol AI", iOldOwner)

if (pCity.getNumUnits() > 0):
for i in range(pCity.getNumUnits()):
unit = pCity.getUnit(i)
if (unit.getOwner() == iMongolia):
if (unit.baseMoves() == 2):
unit.setMoves(2)
if (unit.baseMoves() == 1):
unit.setMoves(1)

## targetCity = -1
## if (not pMongolia.isHuman()):
## for x in range(self.getLatestRazeData(3) -3, self.getLatestRazeData(3) +1 +3):
## for y in range(self.getLatestRazeData(4) -3, self.getLatestRazeData(4) +1 +3):
## pCurrent = gc.getMap().plot( x, y )
## if ( pCurrent.isCity()):
## cityNear = pCurrent.getPlotCity()
## iOwnerNear = cityNear.getOwner()
## if (cityNear.getName() != city.getName()):
## print ("iOwnerNear", iOwnerNear, "citynear", cityNear.getName())
## if (iOwnerNear == iOldOwner):
## if (cityNear != city):
## if (cityNear.getPopulation() <= self.getLatestRazeData(2)):
## targetCity = cityNear
## print ("targetCity", targetCity)
## break
## break
## if (targetCity != -1):
## targetPlot = -1
## for j in range(targetCity.getX() -1, targetCity.getX() +1 +2):
## for k in range(targetCity.getY() -1, targetCity.getY() +1 +2):
## pCurrentTarget = gc.getMap().plot( j, k )
## if (pCurrentTarget.getNumUnits() == 0):
## iDistance = gc.getMap().calculatePathDistance(pCurrentTarget, pCity)
## if (iDistance <= 2):
## targetPlot = pCurrentTarget
## print ("pCurrentTarget", pCurrentTarget)
## break
## break
## for m in range(city.getX() -1, city.getX() +1 +2):
## for n in range(city.getY() -1, city.getY() +1 +2):
## pMongol = gc.getMap().plot( m, n )
## if (pMongol.getNumUnits() > 0):
## print ("numunits>0")
## for i in range(pCity.getNumUnits()):
## unit = pCity.getUnit(i)
## if (unit.getOwner() == iMongolia):
## #if (unit.getMoves() >= 2):
## print ("unit", unit)
## unit.setXY(targetPlot.getX(), targetPlot.getY())
## break
## break
## break



def useMongolUP(self):
iOldOwner = self.getLatestRazeData(1)
pCity = gc.getMap().plot( self.getLatestRazeData(3), self.getLatestRazeData(4) )
city = pCity.getPlotCity()
print ("Mongol UP", iOldOwner)
for x in range(self.getLatestRazeData(3) -iMongolianRadius, self.getLatestRazeData(3) +1 +iMongolianRadius):
for y in range(self.getLatestRazeData(4) -iMongolianRadius, self.getLatestRazeData(4) +1 +iMongolianRadius):
pCurrent = gc.getMap().plot( x, y )
if ( pCurrent.isCity()):
cityNear = pCurrent.getPlotCity()
iOwnerNear = cityNear.getOwner()
if (cityNear.getName() != city.getName()):
print ("iOwnerNear", iOwnerNear, "citynear", cityNear.getName())
if (iOwnerNear == iOldOwner):
print ("citynear", cityNear.getName(), "passed")
if (cityNear.getPopulation() <= self.getLatestRazeData(2) and not cityNear.isCapital()):
print ("citynear", cityNear.getName(), "passed")
iApproachingUnits = 0
for j in range(cityNear.getX() -1, cityNear.getX() +2):
for k in range(cityNear.getY() -1, cityNear.getY() +2):
pNear = gc.getMap().plot( j, k )
if (pNear.getNumUnits() > 0):
for l in range(pNear.getNumUnits()):
if(pNear.getUnit(l).getOwner() == iMongolia):
iApproachingUnits += 1
break
break
break
if (iApproachingUnits > 0):
utils.flipUnitsInCityBefore((x,y), iMongolia, iOwnerNear)
self.setTempFlippingCity((x,y))
utils.flipCity((x,y), 0, 0, iMongolia, [iOwnerNear])
utils.flipUnitsInCityAfter(self.getTempFlippingCity(), iMongolia)
utils.cultureManager(self.getTempFlippingCity(), 50, iOwnerNear, iMongolia, False, False, False)
CyInterface().addMessage(iOwnerNear, False, con.iDuration, CyTranslator().getText("TXT_KEY_UP_TERROR1", ()) + " " + cityNear.getName() + " " + CyTranslator().getText("TXT_KEY_UP_TERROR2", ()), "", 0, "", ColorTypes(con.iWhite), -1, -1, True, True)
CyInterface().addMessage(iMongolia, False, con.iDuration, CyTranslator().getText("TXT_KEY_UP_TERROR1", ()) + " " + cityNear.getName() + " " + CyTranslator().getText("TXT_KEY_UP_TERROR2", ()), "", 0, "", ColorTypes(con.iWhite), -1, -1, True, True)
 
I thought that capitals could not flip, or declare independence? As the Maya, I moved my capital to Tenochtitlan, and then killed off the Aztec when they spawned. I purposely put no other cities in the Aztec flip area, yet the Aztec declared independence from me, taking Tenochtitlan and a city in Texas (not listed as part of the flip area on the atlas) moving my capital up to Denver.
 
From this link: http://wikirhye.wikidot.com/civ-powers#toc24

Mongolia
Horde - Any razed city makes nearby enemy cities surrender if approached
When a city is razed, any old owner&#8217;s city (smaller or equal to the city razed) in a 4x4 area fears the same fate and surrenders if approached within the following turn by a Mongol unit.

Here is the code:

Spoiler :
#------------------MONGOLIAN U.P.-------------------

def setMongolAI(self):
pCity = gc.getMap().plot( self.getLatestRazeData(3), self.getLatestRazeData(4) )
city = pCity.getPlotCity()
iOldOwner = self.getLatestRazeData(1)
print ("Mongol AI", iOldOwner)

if (pCity.getNumUnits() > 0):
for i in range(pCity.getNumUnits()):
unit = pCity.getUnit(i)
if (unit.getOwner() == iMongolia):
if (unit.baseMoves() == 2):
unit.setMoves(2)
if (unit.baseMoves() == 1):
unit.setMoves(1)

## targetCity = -1
## if (not pMongolia.isHuman()):
## for x in range(self.getLatestRazeData(3) -3, self.getLatestRazeData(3) +1 +3):
## for y in range(self.getLatestRazeData(4) -3, self.getLatestRazeData(4) +1 +3):
## pCurrent = gc.getMap().plot( x, y )
## if ( pCurrent.isCity()):
## cityNear = pCurrent.getPlotCity()
## iOwnerNear = cityNear.getOwner()
## if (cityNear.getName() != city.getName()):
## print ("iOwnerNear", iOwnerNear, "citynear", cityNear.getName())
## if (iOwnerNear == iOldOwner):
## if (cityNear != city):
## if (cityNear.getPopulation() <= self.getLatestRazeData(2)):
## targetCity = cityNear
## print ("targetCity", targetCity)
## break
## break
## if (targetCity != -1):
## targetPlot = -1
## for j in range(targetCity.getX() -1, targetCity.getX() +1 +2):
## for k in range(targetCity.getY() -1, targetCity.getY() +1 +2):
## pCurrentTarget = gc.getMap().plot( j, k )
## if (pCurrentTarget.getNumUnits() == 0):
## iDistance = gc.getMap().calculatePathDistance(pCurrentTarget, pCity)
## if (iDistance <= 2):
## targetPlot = pCurrentTarget
## print ("pCurrentTarget", pCurrentTarget)
## break
## break
## for m in range(city.getX() -1, city.getX() +1 +2):
## for n in range(city.getY() -1, city.getY() +1 +2):
## pMongol = gc.getMap().plot( m, n )
## if (pMongol.getNumUnits() > 0):
## print ("numunits>0")
## for i in range(pCity.getNumUnits()):
## unit = pCity.getUnit(i)
## if (unit.getOwner() == iMongolia):
## #if (unit.getMoves() >= 2):
## print ("unit", unit)
## unit.setXY(targetPlot.getX(), targetPlot.getY())
## break
## break
## break



def useMongolUP(self):
iOldOwner = self.getLatestRazeData(1)
pCity = gc.getMap().plot( self.getLatestRazeData(3), self.getLatestRazeData(4) )
city = pCity.getPlotCity()
print ("Mongol UP", iOldOwner)
for x in range(self.getLatestRazeData(3) -iMongolianRadius, self.getLatestRazeData(3) +1 +iMongolianRadius):
for y in range(self.getLatestRazeData(4) -iMongolianRadius, self.getLatestRazeData(4) +1 +iMongolianRadius):
pCurrent = gc.getMap().plot( x, y )
if ( pCurrent.isCity()):
cityNear = pCurrent.getPlotCity()
iOwnerNear = cityNear.getOwner()
if (cityNear.getName() != city.getName()):
print ("iOwnerNear", iOwnerNear, "citynear", cityNear.getName())
if (iOwnerNear == iOldOwner):
print ("citynear", cityNear.getName(), "passed")
if (cityNear.getPopulation() <= self.getLatestRazeData(2) and not cityNear.isCapital()):
print ("citynear", cityNear.getName(), "passed")
iApproachingUnits = 0
for j in range(cityNear.getX() -1, cityNear.getX() +2):
for k in range(cityNear.getY() -1, cityNear.getY() +2):
pNear = gc.getMap().plot( j, k )
if (pNear.getNumUnits() > 0):
for l in range(pNear.getNumUnits()):
if(pNear.getUnit(l).getOwner() == iMongolia):
iApproachingUnits += 1
break
break
break
if (iApproachingUnits > 0):
utils.flipUnitsInCityBefore((x,y), iMongolia, iOwnerNear)
self.setTempFlippingCity((x,y))
utils.flipCity((x,y), 0, 0, iMongolia, [iOwnerNear])
utils.flipUnitsInCityAfter(self.getTempFlippingCity(), iMongolia)
utils.cultureManager(self.getTempFlippingCity(), 50, iOwnerNear, iMongolia, False, False, False)
CyInterface().addMessage(iOwnerNear, False, con.iDuration, CyTranslator().getText("TXT_KEY_UP_TERROR1", ()) + " " + cityNear.getName() + " " + CyTranslator().getText("TXT_KEY_UP_TERROR2", ()), "", 0, "", ColorTypes(con.iWhite), -1, -1, True, True)
CyInterface().addMessage(iMongolia, False, con.iDuration, CyTranslator().getText("TXT_KEY_UP_TERROR1", ()) + " " + cityNear.getName() + " " + CyTranslator().getText("TXT_KEY_UP_TERROR2", ()), "", 0, "", ColorTypes(con.iWhite), -1, -1, True, True)

Thanks, blizzrd
 
I just got BtS and started playing the RFC 600AD scenario. Looks really good! This probably has been answered before, but why is Byzantium a minor civ? It's really annoying I can't talk to them. A big powerful friendly neighbour would always be good.
 
He's asking why they are minor (ie. not playable, can't interact with them diplomatically).

AFAIK it's because of hard-coded civ limits or something?
 
This is slightly off topic, but what does AFAIK mean?

And I know what they meant.

I meant it makes no sense, making them a minor civ, since there's all the code needed in there all ready for them to be major.
 
This is slightly off topic, but what does AFAIK mean?

And I know what they meant.

I meant it makes no sense, making them a minor civ, since there's all the code needed in there all ready for them to be major.

AFAIK = As Far As I Know

After playing a bit more, I'm starting to think that this is probably due to game balance issues - so that this big powerful Byzantium doesn't dominate the game.
 
astrognash said:
I meant it makes no sense, making them a minor civ, since there's all the code needed in there all ready for them to be major.
No, no, that's entirely untrue. Rhye would have to add lots of code, like stability, maps, and UP, etc.
 
Back
Top Bottom