Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 17 von 17

Thema: realistische Städtenamen

  1. #16
    Registrierter Benutzer Avatar von sT0!ka
    Registriert seit
    23.12.08
    Beiträge
    12
    servus,

    hab noch im alten Jahr versucht, möglichst alle relevanten files und scripte aus rhye's mod rauszufiltern und für 'unsere' Belange funktionstüchtig zu machen - ohne viel Erfolg leider; bin ja selbst mod und python-newbie ^^ hab also alles in einen seperaten Mod-Ordner reingepackt und sogar zum Laufen gebracht, wobei die einzige Änderung jene war, dass das Textfenster, welches für gewöhnlich bei einer Stadtgründung aufpopt, nicht mehr erscheint *hurra*

    Zu den Koordinaten:

    ich find, das ist kein Problem, wenn auch eine scheiss Arbeit ^^ jeder plot der Karte ist ja in der map festgelegt (siehe zB "Earth18Civs.Civ4WorldBuilderSave"). Sind ja 'nur' 124 x 68 = 8432 plots (wobei unser Planet zum Glück viiieeel Wasser beherrbergt und somit bei vielen plots keine Stadtnamen eingetragen werden müssen). Und ich will den Spaß ja eh nur für diese map machen; also keinerlei Skalierungen oÄ.

    Bei Rhye wird nun ein dickes array (?!) für jede Civ erstellt, wo die jeweiligen Stadtnamen aufgeführt sind, und mit dem oben aufgeführten script (aus der "CityNameManager.py") wird dann dort, wo keine "-1" steht, der jeweilige Stadtname gleich der variable "cityName" gesetzt, wenn ich's richtig verstanden hab.

    (der iOwner sollte tatsächlich unnötig sein, aber einfach rauslöschen erzeugt nur Fehler)

    Code:
    if (cityName != "-1"):
                 city.setName(cityName, False)
    uuuund
    Code:
    tCityMap = (
    #Egypt
    ((	"-1",	"-1", ....... ,"-1",	"Kadesh",	"Kadesh" ..............,	"-1"))
    Nun müsste halt eine CityMap, die für alle Civs gilt, erstellt werden, also jeder bebaubare plot mit einem Namen (es müssen ja nicht für jeden plot unterschiedliche Namen sein) versehen werden. Geht ja glaub nur manuell: also die "CityNameManager.py" (bzw. hab ich ne "CityNameMap.py" erstellt und alles unnötige schonmal rausgelöscht) aufmachen und parallel dazu den worldeditor aufmachen und plot für plot halt Stadtnamen in die py-datei eintragen *gähn* oder cheatcode aktivieren und ingame mit strg+z die Karte aufdecken usw...
    Sauarbeit!! und damit fang ich erst an, wenn das script läuft.

    Und nun zum script und zu den Datein:

    Zweiteres zuerst:

    Alle Dateien, die ich so finden konnte, welche für eine Stadtgründung möglicher Weise nötig sind und eben für das event, das der eigene Stadtname benutzt wird, hier mal aufgelistet:

    python:
    "CvEventManager.py"
    "CvRFCEventHandler.py"
    "Consts.py" (hier nur start-locations; vllt. unnötig)
    "CityNameManager.py"

    xml:
    "CIV4CivilizationInfos.xml" (hier die 'normalen' Stadtnamen; auch unnötig wohl)
    "CIV4GameText_Cities_BTS.xml" (die 'normalen' Namen in versch. Sprachen; auch unnötig glaub^^)

    mehr Dateien, die direkt was mit Stadtgründung/namen zu tun haben, konnte ich nicht finden.

    Und nun geht's los: Allein das script und die tCityMap aus der "CityNameManager.py" genügen nicht, weil sie erstmal angesteuert werden müssen. Das passiert wohl nur in der "CvRFCEventHandler.py" durch "import CityNameManager.py". Wo genau allerdings diese Datei wiederum angesteuert wird, ist mir auch noch nen Rätsel (hier irgendwie?! "from CvPythonExtensions import *"; hab diese CvPythonExtensions aber bisher nicht gefunden hmhm).

    und noch'n quelltext zur Stadtgründung aus der "CvRFCEventHandler.py", der wichtig erscheint, bissl aus'm Zusammenhang gerissen:

    Code:
    	def __init__(self, eventManager):
    
    ...
    
    		eventManager.addEventHandler("cityBuilt", self.onCityBuilt)
    
    ...
    
    self.cnm = CityNameMap.CityNameMap()
    
    ...
    
            def onCityBuilt(self, argsList):
                    'City Built'
                    city = argsList[0]
                    
                    iOwner = city.getOwner()
                    
                    if (iOwner < con.iNumActivePlayers): 
                            self.cnm.assignName(city)
    ganz unten wird die funktion aus der "CityNameManager.py" dann halt aufgerufen offenbar.


    ... und in der "CvEventManager.py" hab ich das hier entdeckt:

    Code:
    	
    	def onCityBuilt(self, argsList):
    		'City Built'
    		city = argsList[0]
    		#if (city.getOwner() == gc.getGame().getActivePlayer()):
     		#	self.__eventEditCityNameBegin(city, False)	    #Rhye
    		CvUtil.pyPrint('City Built Event: %s' %(city.getName()))
    die beiden kommentar-zeilen (mit dem "#" davor) schalten dieses stadtnamen-Eingabe-Fenster im Game aus ^^

    tjooooo - viel weiter kam ich bisher nicht :/ hab halt rumprobiert, scripte hier rein, definitionen dort rein, alles mal umgerührt, aber nix ging ^^

    irgendwas muss halt irgendwie noch irgendwo wohl importiert werden ...vllt fehlt auch die "CvRFCEventMANAGER.py", auch wenn hier nicht explizit was von Stadtgründung oÄ drin steht.

    Bin derzeit am Ende meines Lateins und hoffe auf weitere Beiträge + das mein Kram hier vllt auch weiter hilft ^^

    Zwei andere Foren hab ich auch kontaktiert, aber die sind dort noch schreibfauler ^^ bald mal Rhye selbst anschreiben, glaub

    grüße - alex
    Geändert von sT0!ka (04. Januar 2009 um 13:37 Uhr)

  2. #17
    Registrierter Benutzer Avatar von sT0!ka
    Registriert seit
    23.12.08
    Beiträge
    12
    in diesem Forum hilft mir offenbar nun Rhye himself Schritt für Schritt, wobei er noch nich so richtig mit der Sprache rausrücken will scheinbar ^^ aber ich nerv solang, bis es läuft! *g*

    http://forums.civfanatics.com/showth...=1#post7639335

    cya

    edit: et läuft!! 8)
    Geändert von sT0!ka (14. Januar 2009 um 19:12 Uhr)

Seite 2 von 2 ErsteErste 12

Berechtigungen

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