Seite 5 von 6 ErsteErste 123456 LetzteLetzte
Ergebnis 61 bis 75 von 89

Thema: Caesium für BtS 3.17 Vorschau

  1. #61
    Caesiums Betatester Avatar von Opferlamm
    Registriert seit
    04.04.06
    Ort
    Oldenburg i.O.
    Beiträge
    2.422
    Dschungelrodung gibt im Mod man wird den also erst roden und dann pflanzen, die Umwandlung dürfte keine geben, dann wäre es ok

  2. #62
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Thomas Pi Beitrag anzeigen
    ca. 30 sind doch ein gutes Argument (und ein Problem). Insbesondere da man phasenweise reichlich unbeschäftigte BTs hat.
    Was ich persönlich für einen zu starken Bonus halte. Eher sollte man für einen vermehrten Kreislauf choppen <-> aufforsten Abzüge bekommen Dass es ein Problem sein kann, da stimmen wir, so verstehe ich dich jetzt einfach mal, überein.

    Zitat Zitat von Thomas Pi Beitrag anzeigen
    Und hast du das richtig gelesen?

    [...]

    Naja, macht was ihr wollt.
    Ja, habe ich, die Frage ist, ob du auch gelesen hast, was ich geschrieben habe, oder überhaupt weißt, wie es bisher, also in der WL-Version, geregelt war, nämlich in der Form, dass ein Imp gebaut wurde, welches dann nach einer gewissen Anzahl von Runden in Wald umgewandelt wurde.
    Jetzt erklär mir bitte den logischen Unterschied.

    Zitat Zitat von Thomas Pi Beitrag anzeigen
    Aber wie zum Geier habt ihr das rundenabhängige Wachstum nur mit Python geregelt?
    Beim Bau des entsprechenden Gebäudes wird ein Counter gestartet.
    Achtung Spoiler:
    Code:
    from CvPythonExtensions import *
    import CvUtil
    import PyHelpers
    import Popup as PyPopup
    #import CvCustomEventManager
    
    PyInfo = PyHelpers.PyInfo
    
    # globals
    gc = CyGlobalContext()
    
    class CvTerraformEventManager:
    	def __init__(self, eventManager):
    		eventManager.addEventHandler("improvementBuilt", self.onImprovementBuilt)
    		eventManager.addEventHandler("BeginPlayerTurn", self.onBeginPlayerTurn)
    		self.list = []
    		self.pPlot = CyMap().plot(0,0)
    		self.iCounter = 0
    		self.pPlot_remembered = [-1,""]
    		
    	def setVars(self):
    		self.grass = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_GRASS")
    		self.plains = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_PLAINS")
    		self.desert = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_DESERT")
    		self.snow =  gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_SNOW")
    		self.raiseelev = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_RAISE")
    		self.lowerelev = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_LOWER")
    		self.land = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_MAKE_LAND")
    		self.jungle = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_MAKE_JUNGLE")
    		self.forest = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_PLANT_FOREST")
    		#self.forest2 = gc.getInfoTypeForString("IMPROVEMENT_TERRAFORM_PLANT_FORESTW")
    		self.iCOASTID = gc.getInfoTypeForString('TERRAIN_COAST')
    		self.iOCEANID = gc.getInfoTypeForString('TERRAIN_OCEAN')
    		self.iHARBOURID = gc.getInfoTypeForString('BUILDING_HARBOR')
    		self.iDOCKID = gc.getInfoTypeForString('BUILDING_DRYDOCK')
    		self.iLIGHTHOUSEID = gc.getInfoTypeForString('BUILDING_LIGHTHOUSE')
    		self.iPEAKID = gc.getInfoTypeForString("TERRAIN_PEAK")
    		self.iGRASSID = gc.getInfoTypeForString("TERRAIN_GRASS")
    		self.iPLAINSID = gc.getInfoTypeForString("TERRAIN_PLAINS")
    		self.iFLOODPLAINSID = gc.getInfoTypeForString("FEATURE_FLOOD_PLAINS")
    		self.iTUNDRAID = gc.getInfoTypeForString("TERRAIN_TUNDRA")
    		self.iSNOWID = gc.getInfoTypeForString("TERRAIN_SNOW")
    		self.iDESERTID = gc.getInfoTypeForString("TERRAIN_DESERT")
    		self.iFORESTID = gc.getInfoTypeForString("FEATURE_FOREST")
    		self.iJUNGLEID = gc.getInfoTypeForString("FEATURE_JUNGLE")
    		self.iWaterlandID = gc.getInfoTypeForString('IMPROVEMENT_TERRAFORM_MAKE_LAND')
    		self.iCounter = 1
    
    	def onBeginPlayerTurn(self, argsList):
    		iGameTurn, iPlayer = argsList
    		# ForestMod Sevo's Worker Fix - is checking all tiles whether some of them had the forest planted in last turn and then removes improvement
    		if (self.pPlot_remembered[0] != -1):
    			self.pPlot_remembered[0] += 1
    			if (self.pPlot_remembered[0] > 3):
    				self.pPlot_remembered[1].setImprovementType(-1)
    				self.pPlot_remembered = [-1,""]
    
    	def onImprovementBuilt(self, argsList):
    		if self.iCounter != 1:
    			self.setVars()
    		iImprovement, iX, iY = argsList
    		pPlot = CyMap().plot(iX,iY)
    		if(iImprovement==self.grass):
    			pPlot.setTerrainType(self.iGRASSID, true, true)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.plains):
    			if(pPlot.getTerrainType()==self.iSNOWID):
    				pPlot.setTerrainType(self.iTUNDRAID, true, true)
    			else:
    				pPlot.setTerrainType(self.iPLAINSID, true, true)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.desert):
    			pPlot.setTerrainType(self.iDESERTID, true, true)
    			if((pPlot.isRiverSide()==1) and (pPlot.getPlotType()==PlotTypes.PLOT_LAND)):
    				pPlot.setFeatureType(self.iFLOODPLAINSID, 0)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.snow):
    			if(pPlot.getTerrainType()==self.iTUNDRAID):
    				pPlot.setTerrainType(self.iSNOWID, true, true)
    			else:
    				pPlot.setTerrainType(self.iTUNDRAID, true, true)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.raiseelev):
    			if(pPlot.getPlotType()==PlotTypes.PLOT_LAND):
    				pPlot.setPlotType(PlotTypes.PLOT_HILLS, true, true)
    				if(pPlot.getFeatureType()==self.iFLOODPLAINSID):
    					pPlot.setFeatureType(-1,0)
    			else:
    				self.RescueMoveUnits(pPlot)
    				pPlot.setPlotType(PlotTypes.PLOT_PEAK, true, true)
    				pPlot.setFeatureType(-1,0)
    				pPlot.setRouteType(-1)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.lowerelev):
    			if(pPlot.getPlotType()==PlotTypes.PLOT_LAND):
    				self.RescueMoveUnits(pPlot)
    				pPlot.setPlotType(PlotTypes.PLOT_OCEAN, true, true)
    				#pPlot.setPlotType(PlotTypes.PLOT_COAST, true, true)
    			elif(pPlot.getPlotType()==PlotTypes.PLOT_PEAK):
    				pPlot.setPlotType(PlotTypes.PLOT_HILLS, true, true)
    			else:
    				pPlot.setPlotType(PlotTypes.PLOT_LAND, true, true)
    				if(pPlot.getTerrainType()==self.iDESERTID and pPlot.isRiver()):
    					pPlot.setFeatureType(self.iFLOODPLAINSID, 0)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.land):
    			self.RescueMoveUnits(pPlot)
    			pPlot.setTerrainType(self.iPLAINSID, true, true)
    			pPlot.setImprovementType(-1)
    		elif(iImprovement==self.jungle):
    			pPlot.setFeatureType(self.iJUNGLEID, 1)
    			#pPlot.setImprovementType(-1)
    			#CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'A new djungle has been planted!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),iX,iY,True,True)
    			self.pPlot_remembered = [1,pPlot]
    	#	elif(iImprovement==self.forest):
    	#		pPlot.setFeatureType(self.iFORESTID, 0)
    	#		#pPlot.setImprovementType(-1)
    	#		#CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'A new forest has been planted!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),iX,iY,True,True)
    	#		self.pPlot_remembered = [1,pPlot]
    		elif(iImprovement==self.forest): # self.forest2
    			pPlot.setFeatureType(self.iFORESTID, 1)
    			#pPlot.setImprovementType(-1)
    			#CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'A new forest has been planted!','AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),iX,iY,True,True)
    			self.pPlot_remembered = [1,pPlot]
    
    		#Kontrolle, ob Hafen abgerissen werden muss
    		bCityCheck = 0
    		if iImprovement == self.iWaterlandID:
    			for x in [-1,0,1]:
    				for y in [-1,0,1]:
    					if CyMap().plot(iX +x, iY +y).isCity() == 1:
    						iCityX = iX +x
    						iCityY = iY +y
    						pCity = CyMap().plot(iX +x, iY +y).getPlotCity()
    						bCityCheck = 1
    			bCoastNear = 0
    			if bCityCheck == 1:
    				for x in [-1,0,1]:
    					for y in [-1,0,1]:
    						iTerrain = CyMap().plot(iCityX +x, iCityY +y).getTerrainType()
    						if (iTerrain == self.iOCEANID or iTerrain == self.iCOASTID):
    							bCoastNear = 1
    				#reset or remove harbor and drydock if no coast near
    				if bCoastNear == 0:
    					if pCity.isHasRealBuilding(self.iDOCKID):
    						pCity.setHasRealBuilding(self.iDOCKID, false)
    					if pCity.isHasRealBuilding(self.iHARBOURID):
    						pCity.setHasRealBuilding(self.iHARBOURID, false)
    					if pCity.isHasRealBuilding(self.iLIGHTHOUSEID):
    						pCity.setHasRealBuilding(self.iLIGHTHOUSEID, false)
    
    	def RescueMoveUnits(self, pPlot):
    		numberofunits = pPlot.getNumUnits()
    		while(numberofunits > 0):
    			pPlot.getUnit(0).jumpToNearestValidPlot()
    			numberofunits = pPlot.getNumUnits()

    So jedenfalls war die Abfrage in der WL-Version. Wie schon etwas weiter oben geschrieben, ist Terraforming, was das Umsetzen der durch XML festgelegten Baufähigkeiten angeht, ja noch gar nicht eingebaut und, selbst wenn es das wäre, gäbe es keinen Grund, es nicht zu ändern.

    Zitat Zitat von Thomas Pi Beitrag anzeigen
    Ich hab dafür das SDK bemüht. Da wäre das mit der Abfrage für das Feature übrigens auch kein Problem. Baue die Abfrage einfach in canBuild in der CvUnit.cpp ein.
    So wurde das bisher gelöst, bzw., so sollte/müsste es eig. auch funktionieren:
    Achtung Spoiler:
    PHP-Code:
                <FeatureMakesValids>
                    <
    FeatureMakesValid>
                        <
    FeatureType>FEATURE_JUNGLE</FeatureType>
                        <
    bMakesValid>0</bMakesValid>
                    </
    FeatureMakesValid>
                    <
    FeatureMakesValid>
                        <
    FeatureType>FEATURE_FOREST</FeatureType>
                        <
    bMakesValid>0</bMakesValid>
                    </
    FeatureMakesValid>
                </
    FeatureMakesValids

    Dass das suboptimal ist (und leider, wie bereits erwähnt, auch nicht funktioniert), ist mir klar, aber es ist ja auch noch gar nicht alles für BtS geändert worden.
    Terraforming - jetzt mal sagen, ne - steht auf meiner to-do-Liste sehr weit hinten.
    Gegen das SDK wehre ich mich in keinster Weise.
    So z.B. wurden ehem. .py-Modkomponenten mittlerweile ins SDK überführt, damit die KI diese auch (einigermaßen) sinnvoll nutzen kann, so z.B. die Inquisition oder der Karawanenbestandteil.

    Zitat Zitat von Thomas Pi Beitrag anzeigen
    Und was ist an Dschungel roden und (Sekundär-)Wald anpflanzen so unrealistisch? Eigentlich muß man doch nur das menschliche Dauerchoppen unterbinden. Na, mir ist es gleich...
    Eben, mir geht es eben genau um das Dauerchoppen. Dass es unrealistisch ist, habe ich, wimre, nie gesagt, lediglich, dass ich es für unsinnig und unnötig halte, wobei ich in dem Post leider nicht darauf hingewiesen habe, dass es mir um das Dauerchoppen geht. Mea culpa.

  3. #63
    Freiland-Emu
    Registriert seit
    14.06.08
    Ort
    Hessen
    Beiträge
    41
    also gut... vorweg erstmal: ich habe keine noch nicht viel erfahrung in python und habe keine ahnung wie civ4 intern programmiert ist, aber habe genug ahnung von programmierung in diversen anderen sprachen um ggf aushelfen zu können.

    inwiefern wird wald und dschungel denn im py bzw sdk unterschiedlich behandelt? gibt es eine art superclass für beide oder werden sie einfach als "feldtyp" gekennzeichnet, wie alle anderen typen eben auch?
    ich meine es ist ja nicht möglich, dass sich wald und dschungel auf dem selben feld befinden (durch das natürliche wachstum im spiel). also muss es eine überprüfung geben: kein wald auf wald oder dschungel usw. könnte man sich nicht das zunutze machen? also anstatt direkt einen wald zu "erschaffen", einfach nach dem ablaufen des timers an dieser stelle einen wald "wachsen" lassen, nach den vorhandenen funktionen des spiels. befindet sich dort schon wald, funktioniert das nicht, da sich ja dort schon ein wald befindet. die überprüfung sollte natürlich vor dem timer stattfinden.
    die überprüfung müsste ja vorhanden sein und ich denke man spart ne menge code, wenn man auch noch die funktionen des natürlichen wachstums übernimmt.

    dann die nächste frage: wird die anzahl von beim roden eines waldes oder dschungels bei der aktion "roden" festgelegt, oder beim eigentlichen entfernen des waldes?
    oder anders: wenn man auf einen wald eine erweiterung, wie bauernhof baut, dann wird der wald ja zuerst gerodet. ist dies, weil vorher die aktion "roden" aufgerufen wird, oder verlängert sich die aktion "bauernhof bauen" nur etwas und der wald wird dann direkt entfernt? wenn letzteres der fall ist, dann MUSS der wald ja beim "erschaffen" des waldes nicht unbedingt gerodet werden, bze muss keine geben, sofern man das nicht festlegt, oder?
    wer einen wald auf einem vorherigen waldfeld neu anpflanzt verbraucht dabei so viel , dass er nichts mehr beim roden herausbekommt, sozusagen. so kann man dschungel mit wald ersetzen, ohne zu verdienen.
    sofern aber direkt vor der aktion, noch die aktion "roden" automatisch aufgerufen wird, wird das ganze natürlich etwas schwerer.

    naja ich vermute ich kann nicht viel beitragen, wenn ich den code nicht kenne. ich glaube ich sehe mir bei gelegenheit mal die ganzen py-dateien und sdk-sachen an.

    ich hoffe ihr versteht dennoch ein wenig, worauf ich hinauswill ^^

  4. #64
    Caesiums Betatester Avatar von Opferlamm
    Registriert seit
    04.04.06
    Ort
    Oldenburg i.O.
    Beiträge
    2.422
    hatte heute nen link zu einer prä-beta von Caesium bekommen, die ist leider noch nicht bereit zum testen, da u.a. die Ereignisse total hinüber sind, da bringt betatesten nix, sry

    hier aber mal 2 Bilder vom neuem Interface:

    Bild


    Bild
    Angehängte Grafiken Angehängte Grafiken

  5. #65
    Freiland-Emu
    Registriert seit
    14.06.08
    Ort
    Hessen
    Beiträge
    41
    sieht weiterhin super aus! schade, dass es noch keine testgeeignete fassung gibt. aber lasst euch zeit! gut ding will weile haben, nicht wahr?

  6. #66
    Registrierter Benutzer Avatar von Akropolis
    Registriert seit
    14.09.08
    Ort
    Naturschutzgebiet Mark Brandenburg
    Beiträge
    4.430
    Ich hab bei mir diesen Mod installiert: Extra3.17e.rar.

    Funktioniert das auch mit dem Caesium-Mod? Ich mag die Idee mit den vielen Religionen und den zusätzlichen Civs, Weltwundern.

  7. #67
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    caesium mod ist so etwas wie der extra mod. die frage erübrigt sich also. einfach kombinieren kann man die nicht.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  8. #68
    Registrierter Benutzer
    Registriert seit
    11.07.01
    Ort
    Rietheim-Weilheim
    Beiträge
    6.578
    Genauer, es ist eine Sammlung diverser Mods.
    An deiner Stelle würde ich abwarten, was Caesium-Mod so alles bringen wird (sprich, die Beta abgeschlossen ist) und erst dann würde ich schauen, was man noch an Mods dazufügen kann. Meist ist das nicht mehr nötig.

  9. #69
    Registrierter Benutzer
    Registriert seit
    28.08.08
    Beiträge
    2
    vielleicht wärs ja nicht schlecht wenn man eine übersicht über die features bekommen könnte. sprich was für mods sind enthalten, was gibt es neues (grafiken), etc.

    würde mich z.b. brennend interessieren...

    gruß

  10. #70
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    die erste seite mal angeschaut?
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  11. #71
    Freiland-Emu
    Registriert seit
    14.06.08
    Ort
    Hessen
    Beiträge
    41
    mal ne frage nebenbei (vielleicht hab ich es auch überlesen und im Testing bin ich noch nicht so weit mit der Technologie):
    Erhöhen Nuklearwaffen mit der Caesium-Mod die Planetentemperatur noch immer oder ist dies abgeschaltet (durch die MAD-Nukes zB)?
    Würde mich mal interessieren, ob ich ohne Probleme meine letzten Gegner wegbomben kann, oder ob ich damit den Weltuntergang einleite.

  12. #72
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Ist zwar schon ein paar Tage her, aber: Nein, es wurde derzeit nichts geändert, es kursieren aber genügend Mods, die Ähnliches anbieten und ggf. hinzugefügt werden könnten.

  13. #73
    Registrierter Benutzer
    Registriert seit
    05.08.08
    Beiträge
    88
    Ich hab mal ne Frage

    Was denkt ihr, bzw. wielange wird es noch dauern bis man den Caesium zocken kann ? ^^

  14. #74
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Ich hoffe, nicht mehr allzulange. Derzeit warte ich auf Feedbacks, seien es positive oder negative, von den Testern, ohne die ich kein grünes Licht geben möchte.
    Opferlamm hat als einer der wenigen jüngst neue Fehlermeldungen gepostet, welche ich heute in die entsprechenden Entwicklerforen geben werde, damit es eben nicht nur in der Cs-Mod gefixt wird.

  15. #75
    Freiland-Emu
    Registriert seit
    14.06.08
    Ort
    Hessen
    Beiträge
    41
    Derzeit warte ich auf Feedbacks, seien es positive oder negative, von den Testern, ohne die ich kein grünes Licht geben möchte.
    es tut mir sehr leid, aber die letzten wochen waren auf meiner seite recht stressig. ab heute werde ich allerdings wieder vermehrt testen und feedbacks abgeben.

Seite 5 von 6 ErsteErste 123456 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •