View Full Version : need python codes


FK2006
Mar 30, 2006, 09:37 AM
hello i need python codes 4 event manager :
i'm VERY novice on python

1: when improvment build : 1 warrior(exemple) appears on the improvment

should be : if blah blah improv_X
selfmakeunit : ???????
i tried to see on "reconquista mod" how it works but it's a little bit confused)

2 same but : on city build each 20 turns a unit appears

3 on improvment build (explore temple in fact : 20 gold appears)

4 if (like in reconquista) : x% cities have cathedrales or mosques or X, a mujahdin or knight or X appears on capital city



THANKX!!!!!!!!!!!!!!!!!!!!!!!!!

Locutus
Mar 30, 2006, 11:23 AM
1.

def onImprovementBuilt(self, argsList):
'Improvement Built'
iImprovement, iX, iY = argsList

if iImprovement == gc.getInfoTypeForString("IMPROVEMENT_FARM"):
iPlotOwner = gc.getMap().plot(iX, iY).getOwner()
gc.getPlayer(iPlotOwner).initUnit(gc.getInfoTypeFo rString("UNIT_WARRIOR"), iX, iY, UnitAITypes.NO_UNITAI)

2.

cityList = []

def onCityBuilt(self, argsList):
'City Built'
city = argsList[0]

cityList.append((city.getX(), city.getY(), CyGame().getGameTurn()))

def onBeginGameTurn(self, argsList):
'Called at the beginning of the end of each turn'
iGameTurn = argsList[0]

for iX, iY, iTurns in cityList:
iElapsedTurns = iGameTurn - iTurns
if iElapsedTurns % 20 == 0:
city = gc.getMap().plot(iX, iY).getPlotCity()
if not city.isNone():
gc.getPlayer(city.getOwner()).initUnit(gc.getInfoT ypeForString("UNIT_WARRIOR"), iX, iY, UnitAITypes.NO_UNITAI)

3.

def onImprovementBuilt(self, argsList):
'Improvement Built'
iImprovement, iX, iY = argsList

if iImprovement == gc.getInfoTypeForString("IMPROVEMENT_FARM"):
iPlotOwner = gc.getMap().plot(iX, iY).getOwner()
gc.getPlayer(iPlotOwner).changeGold(20)

4.


iPercentMosqueRequired = 50

def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList

player = gc.getPlayer(iPlayer)
iNumMosques = player.countNumBuildings(gc.getInfoTypeForString("BUILDING_ISLAMIC_CATHEDRAL"))
iNumCities = player.getNumCities()
if (float(iNumMosques) / float(iNumCities)) * 100 > iPercentMosqueRequired:
capitalCity = player.getCapitalCity()
player.initUnit(gc.getInfoTypeForString("UNIT_WARRIOR"), capitalCity.getX(), capitalCity.getY(), UnitAITypes.NO_UNITAI)

Disclaimer: I didn't test any of this, there may be typos or other minor errors.

FK2006
Mar 31, 2006, 05:59 AM
OK THANKS A THOUSAND TIMES!!!!!!!!!!!!!!!!!!!!!!!!

and one thing more: how to put a pop up after these events i tried but couldn't ..
sorry to be asking so much...

Locutus
Mar 31, 2006, 06:09 AM
n/p

import Popup as PyPopup

popup = PyPopup.PyPopup()
popup.setBodyString( localText.getText("TXT_SOME_TEXT", ()) )
popup.launch()

FK2006
Apr 01, 2006, 08:13 AM
hello
i couldn't make your codes work. sounds good but surely some errorslike ")" or that kind of stuff.
thank you anyway