iBonus = pPlot.getBonusType(-1)
da bedarf es eines -1 (oder anderem INT, entspricht der Spieler-ID)
und rucivfan hat auch recht. das gehört auch noch behoben.
iBonus = pPlot.getBonusType(-1)
da bedarf es eines -1 (oder anderem INT, entspricht der Spieler-ID)
und rucivfan hat auch recht. das gehört auch noch behoben.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.
- Pie's Ancient Europe (letztes Update: 22.12.2022)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Kann gelöscht werden, versehentlich falschen Thread erwischt
"Wir brauchen keine Opposition. Wir sind schon Demokraten." - Franz-Josef Strauss
"Alles was du sagst, sollte wahr sein. Aber nicht alles was wahr ist, solltest du auch sagen." - Voltaire
"Das erste Opfer des Krieges ist die Wahrheit." - Aischylos
"Gestern war der Teufel hier, genau hier. Und es riecht hier noch immer nach Schwefel" - Chávez
Die EU-Verfassung und die Verfassung der Bolivarischen Republik Venezuela
Frage...
Das hier...
...hätte ich gerne um zwei bedingungen erweitert, das bei Civ A Gebäude A gesetzt wird...und bei Civ B Gebäude B...PHP-Code:
city.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_SEA_BASE'), 1)
Vielleich so in der art...
PHP-Code:
city.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_SEA_BASE'), 1)
if pPlayer.getCivilizationType() != iCivA:
city.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_A), 1)
Geändert von Monaldinio (18. Februar 2013 um 20:29 Uhr)
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Sind die Gebäude A und B von der selben Buildingclass (wie Kornspeicher und Inkaterasse), oder zwei ganz verschieden (wie Theater und Kolosseum)? Ich glaube, im ersten Fall wäre das Code einfacher.
Und wie darf ich das verstehen "Bedingung... Gebäude gesetzt wird". Bei einer Bedingung wird ein Zustand abgefragt, das Gebäude ist vorhanden. Oder du willst eine Aktion auslösen, dass nämlich das Gebäude gebaut wird. Ich bin sicher, dass dir klar ist, was du willst, aber die Formulierung ist nicht eindeutig - und für den Code müsste ich wissen, was du brauchst.
Edit: Ich glaube, ich habe verstanden. Du meinst, aus deinem Code soll werden "if Civ ist Typ A, setze Gebäude A, else setze Gebäude B"? Also der bestehende Code soll komplett geändert werden und nicht erweitert werden?
Dann würde ich das entweder so machen:
Für den Fall, dass alle Civs außer A das Gebäude B bekommen sollenPHP-Code:
if pCityOwner.getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_A"):
pCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_A"),1)
else:
pCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_B"),1)
Oder, wenn beide Gebäude von der selben Buildingclass sind und immer diese Buildingclass gebraucht wird:
In diesem Fall bekommt jede Civ das jeweilige Gebäude in dieser Buildingclass, wenn also A als Unique Building "BUILDING_A" hat und alle anderen BUILDING_B mit der selben Buildingclass, dann immer das zur Civ dazugehörige.PHP-Code:
setNumRealBuilding(gc.getCivilizationInfo(pCityOwner.getCivilizationType()).getCivilizationBuildings(gc.getInfoTypeForString("BUILDINGCLASS_AB")),1)
Geändert von Kathy (18. Februar 2013 um 20:38 Uhr)
Ja, gebäude a und B sind von der Selbnen Bildingclass...sozusagen Unique gebäude.
Das Problem ist das, diese beiden Gebäude sollen die allgemeine Wasserbasengrafik (siehe Zustandsabfrage) für die jewalige Civ ersetzen...
Also ja, das Gebäude soll gebaut werden anstatt des standartgebäudes...
Ich glaube das müsste der betreffende originalcode sein.
PHP-Code:
def onCityBuilt(self, argsList):
'City Built'
self.parent.onCityBuilt(self, argsList)
city = argsList[0]
pPlot = city.plot()
pPlayer = gc.getPlayer(city.getOwner())
pTeam = gc.getTeam(pPlayer.getTeam())
pCapitalCity = pPlayer.getCapitalCity()
pStartEra = gc.getGame().getStartEra()
iRockyPolar = gc.getInfoTypeForString('TERRAIN_ROCKY_POLAR')
iRockyArid = gc.getInfoTypeForString('TERRAIN_ROCKY_ARID')
iRockyMoist = gc.getInfoTypeForString('TERRAIN_ROCKY_MOIST')
iRockyRainy = gc.getInfoTypeForString('TERRAIN_ROCKY_RAINY')
iFlatPolar = gc.getInfoTypeForString('TERRAIN_FLAT_POLAR')
iFlatArid = gc.getInfoTypeForString('TERRAIN_FLAT_ARID')
iFlatMoist = gc.getInfoTypeForString('TERRAIN_FLAT_MOIST')
iFlatRainy = gc.getInfoTypeForString('TERRAIN_FLAT_RAINY')
iHive = gc.getInfoTypeForString('CIVILIZATION_HIVE')
if pPlot.isWater():
city.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_SEA_BASE'), 1)
if pPlayer.isHuman() == False:
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
In diesem Fall müsste die zweite Version, die ich in meinen Beitrag reineditiert habe, zutreffen. Die Wirkung ist, dass, wenn z.B. CIVILIZATION_A und CIVILZATION_B ein Unique Building für diese Gebäudeklasse haben, dass sie eben dieses Unique Building bekommen und alle anderen das Standardgebäude dieser Buildingclass. pCityOwner müsstest du dann natürlich noch durch pPlayer aus deinem Code ersetzen.
Ich glaube das kommt dem am nächsten, es fehlt aber noch eine kleinigkeit..
Für den Fall, dass alle Civs außer A das Gebäude B bekommen sollen
Für den Fall, dass alle Civs, außer Civ a (bekommt gebäude A) und Civ B (bekommt Gebäude B) das gebäude C (standartgebäude) bekommen...PHP-Code:
if pCityOwner.getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_A"):
pCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_A"),1)
else:
pCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_B"),1)
müsste da dann nicht nur noch eine zweite if schleife rein`, von der selebn art?!?
Ich glaube die Buildingclass wird nicht immer gebraucht, da unique Buildings doch nur ein bestehendes Gebäude erstetzen, die buildingclass wird doch beibehalten...nur building ändert sich...so mache ich das jedenfalls.
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Lies noch einmal genau: Wenn alle die selbe Buildingclass haben, nimmst du:
Dann bekommt jeder das Gebäude aus dieser Buildingclass, das zu ihm gehört: CIV_A das BUILDING_UNIQUE_A, CIV_B das BUILDING_UNIQUE_B und alle anderen das Standardbuilding. Der andere Code ist nur dann interessant, wenn es um unterscheidliche Buildingclasses gehen würde.PHP-Code:
setNumRealBuilding(gc.getCivilizationInfo(pCityOwner.getCivilizationType()).getCivilizationBuildings(gc.getInfoTypeForString("BUILDINGCLASS_AB")),1)
Ahhhaa...ich versuchs mal...dein AB würde ich durch die entsprechende Buildinclass ersetzen richtig?!? Bei mir SEA_BASE...
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Genau. Der Befehl sucht für "BUILDINGCLASS_SEABASE" das passende Gebäude für die jeweilige Zivilisation. Damit ersparst du dir alle If-Schleifen.
Ne, klappt nicht...
Denn genau das sollte ja im Prinzip das ganz normale Austauschen von Gebüden auch machen (über die CivilizationInfo), was áber auf dem Wasser irgenwie nicht funzt...
Ich hatte vorhin rein probehalber mal das building_sea_Base in das Gebäude geändert was eingesetzt werden sollte building_wellen_sea_Base...das hat gefuntz...
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Diese Fehlermeldung habe ich bekommen...
Ist genau die Zeile die ich eingesetzt habe...
Offensichtlich möchte er, das ich noch etwas in den Definitionskopf definiere...
Edit: Ich merke gerade das ich im falschen Thread bin...sorry Kathy!
Geändert von Monaldinio (18. Februar 2013 um 21:18 Uhr)
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
Hast du auch pCity (oder wie sie heißt) davor?
Und jetzt, wo du's sagst, ab mit dem Thema in den Pythonfaden.
nein hatte ich nicht, im kopf der Def ist aber auch kein pcity definiert...nur ein city...
ich würde es jetzt so machen..PHP-Code:
def onCityBuilt(self, argsList):
'City Built'
self.parent.onCityBuilt(self, argsList)
city = argsList[0]
###new argslist argument vvvvvvvvvvvv
bOrbital = argsList[1]
###neu orbitalcheck REMOVE!
##CyInterface().addImmediateMessage(str(bOrbital), "")
pPlot = city.plot()
pPlayer = gc.getPlayer(city.getOwner())
pTeam = gc.getTeam(pPlayer.getTeam())
pCapitalCity = pPlayer.getCapitalCity()
pStartEra = gc.getGame().getStartEra()
iRockyPolar = gc.getInfoTypeForString('TERRAIN_ROCKY_POLAR')
iRockyArid = gc.getInfoTypeForString('TERRAIN_ROCKY_ARID')
iRockyMoist = gc.getInfoTypeForString('TERRAIN_ROCKY_MOIST')
iRockyRainy = gc.getInfoTypeForString('TERRAIN_ROCKY_RAINY')
iFlatPolar = gc.getInfoTypeForString('TERRAIN_FLAT_POLAR')
iFlatArid = gc.getInfoTypeForString('TERRAIN_FLAT_ARID')
iFlatMoist = gc.getInfoTypeForString('TERRAIN_FLAT_MOIST')
iFlatRainy = gc.getInfoTypeForString('TERRAIN_FLAT_RAINY')
iHive = gc.getInfoTypeForString('CIVILIZATION_HIVE')
nächste fehlermeldung...PHP-Code:
city.setNumRealBuilding(gc.getCivilizationInfo(pCityOwner.getCivilizationType()).getCivilizationBuildings(gc.getInfoTypeForString("BUILDINGCLASS_SEA_BASE")),1)
pCityOwner muss wohl auch noch in den Kopf der Definition...aber wie würde das aussehen..
pCityOwner = argsList[1] ?????
Edit: Hab es jetzt mal so eingefügt...wieder fehlermeldung (Screenshot 568)...
ich höre lieber auf mit meinen experimenten...
Mein Aktueller Code
Achtung Spoiler:
Geändert von Monaldinio (18. Februar 2013 um 23:07 Uhr)
Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!
Neu Version Conflict on Chiron v3.4 BETA - 16.01.16
Patch1 - 07.04.16
Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
Ihr könnt sofort loslegen.
Über Feedback würde ich mich freuen...
im setNumRealBuilding-Befehl musst du statt pCityOwner "pPlayer" einsetzen. Das war von Kathy bestimmt nur generell definiert, weil es sich eben um den Besitzer der Stadt handelt.
argsList[1] und [2]: ich bezweifle, dass das richtig ist. würd ich weglassen. im sdk steht, wieviel variablen die funktion onCityBuilt mitschickt. Vielleicht ja nur [0]?!
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.
- Pie's Ancient Europe (letztes Update: 22.12.2022)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!