Zlatko
CIW
I put these codes in CvGameUtils.py and don't work,
and this is my PythonCallbackDefines.xml file:
What i must to do, that this work? I think that i am not something activate in PythonCallbackDefines.xml but i am not sure.
Spoiler :
Code:
def cannotConstruct(self,argsList):
pCity = argsList[0]
eBuilding = argsList[1]
bContinue = argsList[2]
bTestVisible = argsList[3]
bIgnoreCost = argsList[4]
# Slave Cage
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) != gc.getInfoTypeForString('CIVIC_SLAVERY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_SLAVE_CAGE'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) == gc.getInfoTypeForString('CIVIC_COMMON_LAW'):
if eBuilding == gc.getInfoTypeForString('BUILDING_SLAVE_CAGE'):
return True
# End Slave Cage
# Slave Market
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) != gc.getInfoTypeForString('CIVIC_SLAVERY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_SLAVE_MARKET'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) == gc.getInfoTypeForString('CIVIC_COMMON_LAW'):
if eBuilding == gc.getInfoTypeForString('BUILDING_SLAVE_MARKET'):
return True
# End Slave Market
# Slave Auction National Wonder
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) != gc.getInfoTypeForString('CIVIC_SLAVERY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_NATIONAL_SLAVE_AUCTION'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LABOR')) == gc.getInfoTypeForString('CIVIC_COMMON_LAW'):
if eBuilding == gc.getInfoTypeForString('BUILDING_NATIONAL_SLAVE_AUCTION'):
return True
# END Slave Auction National Wonder
# FEUDAL MONARCHY
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LEGAL')) != gc.getInfoTypeForString('CIVIC_ARISTOCRACY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_FEUDAL_MONARCHY'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LEGAL')) == gc.getInfoTypeForString('CIVIC_LIBERTY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_FEUDAL_MONARCHY'):
return True
# End FEUDAL MONARCHY
# ABSOLUTE MONARCHY
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LEGAL')) != gc.getInfoTypeForString('CIVIC_BUREAUCRACY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_ABSOLUTE_MONARCHY'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_LEGAL')) == gc.getInfoTypeForString('CIVIC_LIBERTY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_ABSOLUTE_MONARCHY'):
return True
# End ABSOLUTE MONARCHY
# GHALL
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) != gc.getInfoTypeForString('CIVIC_GUILD'):
if eBuilding == gc.getInfoTypeForString('BUILDING_GHALL'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) == gc.getInfoTypeForString('CIVIC_STATE_PROPERTY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_GHALL'):
return True
# End GHALL
# HANSA
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) != gc.getInfoTypeForString('CIVIC_GUILD'):
if eBuilding == gc.getInfoTypeForString('BUILDING_HANSA'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) == gc.getInfoTypeForString('CIVIC_STATE_PROPERTY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_HANSA'):
return True
# End HANSA
# Import Tariffs
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) != gc.getInfoTypeForString('CIVIC_MERCANTILISM'):
if eBuilding == gc.getInfoTypeForString('BUILDING_TARIFF'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) == gc.getInfoTypeForString('CIVIC_STATE_PROPERTY'):
if eBuilding == gc.getInfoTypeForString('BUILDING_TARIFF'):
return True
# End Import Tariffs
# Grand Arsenal
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) != gc.getInfoTypeForString('CIVIC_MERCHANT_PRINCES'):
if eBuilding == gc.getInfoTypeForString('BUILDING_GRAND_ARSENAL'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_ECONOMY')) == gc.getInfoTypeForString('CIVIC_CORPORATISM'):
if eBuilding == gc.getInfoTypeForString('BUILDING_GRAND_ARSENAL'):
return True
# End Grand Arsenal
# King's Vassal
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_GOVERNMENT')) != gc.getInfoTypeForString('CIVIC_HEREDITARY_RULE'):
if eBuilding == gc.getInfoTypeForString('BUILDING_KINGS_VASSAL'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_GOVERNMENT')) == gc.getInfoTypeForString('CIVIC_REPUBLIC'):
if eBuilding == gc.getInfoTypeForString('BUILDING_KINGS_VASSAL'):
return True
# End King's Vassal
# Royal Bureaucracy
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_GOVERNMENT')) != gc.getInfoTypeForString('CIVIC_HEREDITARY_RULE'):
if eBuilding == gc.getInfoTypeForString('BUILDING_ROYAL_BUREAUCRACY'):
return True
if pPlayer.getCivics(gc.getInfoTypeForString('CIVICOPTION_GOVERNMENT')) == gc.getInfoTypeForString('CIVIC_REPUBLIC'):
if eBuilding == gc.getInfoTypeForString('BUILDING_ROYAL_BUREAUCRACY'):
return True
# End Royal Bureaucracy
# player can't build an arcology if they have shielding or advanced shielding
if eBuilding == gc.getInfoTypeForString("BUILDING_ARCOLOGY"):
if pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ARCOLOGY_SHIELDING")) or pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_DEFLECTOR_SHIELDING")):
return True
# player can't build shielding if they have advanced
if eBuilding == gc.getInfoTypeForString("BUILDING_ARCOLOGY_SHIELDING"):
if pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_DEFLECTOR_SHIELDING")):
return True
return False
Spoiler :
Code:
<?xml version="1.0"?>
<!-- Sid Meier's Civilization 4 -->
<!-- Copyright Firaxis Games 2005 -->
<!-- -->
<!-- Global Defines -->
<Civ4Defines xmlns="x-schema:CIV4GlobalDefinesSchema.xml">
<Define>
<DefineName>USE_CANNOT_FOUND_CITY_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_FOUND_CITIES_ON_WATER_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_IS_PLAYER_RESEARCH_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_RESEARCH_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_DO_CIVIC_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_DO_CIVIC_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_CONSTRUCT_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_CONSTRUCT_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_DECLARE_WAR_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_RESEARCH_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_GET_UNIT_COST_MOD_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_GET_BUILDING_COST_MOD_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_GET_CITY_FOUND_VALUE_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_HANDLE_ACTION_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_BUILD_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_TRAIN_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CAN_TRAIN_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_UNIT_CANNOT_MOVE_INTO_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_CANNOT_SPREAD_RELIGION_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_FINISH_TEXT_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_ON_UNIT_SET_XY_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_ON_UNIT_SELECTED_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_ON_UPDATE_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_ON_UNIT_CREATED_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
<Define>
<DefineName>USE_ON_UNIT_LOST_CALLBACK</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>
</Civ4Defines>