Seite 27 von 30 ErsteErste ... 172324252627282930 LetzteLetzte
Ergebnis 391 bis 405 von 445

Thema: [Werewolves] Brainstorming und "Kleine Fragen"

  1. #391
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Ronnar Beitrag anzeigen
    Gibt es Pythonprogrammierungen, die die Werwölfe betreffen, z.B. alle paar Runden neue oder stärkere Werwölfe in Siedlungen plazieren? Wenn ja, würde ich den Fehler dort suchen. Eventuell fehlt dort eine Prüfung, ob die Werwolfsiedlung noch existiert bevor versucht wird, Einheiten zu setzen.
    Ja, darüber habe ich gerade auch schon nachgedacht. Ich habe das mal auf einer anderen Karte überprüft. Anscheinend ist es so, dass die Vernichtung mancher Werwolfstädte kurz darauf zu einem CtD führt, die Vernichtung anderer WW-Städte dagegen nicht.

    Auch ich frage mich, ob das vielleicht mit den py-Events zusammenhängt, die WW-Einheiten in Siedlungen generieren. Diese Events gab es zwar in der vorigen WW-Version auch schon. Allerdings wurden in der Version 1.1 in der Praxis keine WW-Städte erobert, weil die Verteidigungsstacks dort zu groß waren. Das heißt: Sollte es den Fehler da schon gegeben haben, konnte er nicht auffallen.

    Ein Ansatzpunkt wäre vielleicht: Jede Zivilisation hat ja eine technische Hauptstadt. Im Spiel merkt man davon nichts, aber im Programm ist jeweils einer der Städte jeder Zivilisation der Status Hauptstadt automatisch zugewiesen. Das ist noch ein Relikt aus Civ4-Zeiten. Könnte es sein, dass das jetzt dazu führt, dass die Vernichtung mancher Städte (nämlich der Hauptstadt) zum CtD führt?

    Ein anderer Ansatzpunkt: In 1.2 gibt es erstmals bei den Werwölfen eine immobile Einheit, die durch ein py-Event erzeugt wird. Das ist der Werwolf-Älteste ("UNIT_ELDERWEREWOLF"). Könnte es bei der Platzierung einer solchen Einheit durch ein py-Event Probleme geben, wenn eine Stadt zerstört wurde?

    Diese py-Events finden sich in der CvEventManager.py. Ich hänge die Datei aus 1.2 mal an. So sieht die Codestelle aus, in der die allgemeine Mechanik des Events programmiert ist:

    Achtung Spoiler:
    PHP-Code:
                    # +++++ Werewolves - Werewolves bekommen gratis Einheiten --------------
                    
    if pPlayer.getCivilizationType() == iCivWerewolves:
                      
    iCitiesWerewolves pPlayer.getNumCities()

                      
    # -- Plot herausfinden --
                      
    NewPlot4Werewolves = []
                      
    # Verfuegbare Staedte durchgehen
                      
    if iCitiesWerewolves 0:
                        for 
    i in range (iCitiesWerewolves):
                          
    loopPlot gc.getMap().plot(pPlayer.getCity(i).getX(), pPlayer.getCity(i).getY())
                          
    NewPlot4Werewolves.append(loopPlot)
                      else:
                        
    # Wenn keine Werewolf-Stadt existiert, dann verfuegbare Felder durchgehen
                        
    for i in range(gc.getMAX_PLAYERS()):
                          if 
    gc.getPlayer(i).getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_ENGLAND"): iPlayer1 i
                          
    if gc.getPlayer(i).getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_ALGONQUIN"): iPlayer2 i

                        iTeam1 
    gc.getPlayer(iPlayer1).getTeam()
                        
    iTeam2 gc.getPlayer(iPlayer2).getTeam()
                        
    iMapW gc.getMap().getGridWidth()
                        
    iMapH gc.getMap().getGridHeight()

                        for 
    x in range(iMapW):
                          for 
    y in range(iMapH):
                            
    loopPlot gc.getMap().plot(x,y)
                            if 
    loopPlot != None and not loopPlot.isNone():
                              
    # Wenn das Feld kein See/Meer und passierbar ist
                              
    if not (loopPlot.isWater() or loopPlot.isImpassable()):
                                
    # Wenn das Feld nicht fuer England und Algonquin sichtbar ist
                                
    if not (loopPlot.isVisible(iTeam1,0) or loopPlot.isVisible(iTeam2,0)):
                                  
    # Wenn keine Einheiten auf dem Feld steht
                                  
    if loopPlot.getNumUnits() == 0:
                                    
    NewPlot4Werewolves.append(loopPlot)
                      
    # -- Plot herausfinden Ende -- 


    Und so sieht beispielhaft ein Event für den Werwolf-Ältesten aus:
    Achtung Spoiler:
    PHP-Code:
                      # ----------------------------------------------------
                      # Userspezifische Daten - Ab hier pro Einheit kopieren
                      
    iUnitType gc.getInfoTypeForString("UNIT_ELDERWEREWOLF")
                      
    iUnitAnzahl 1  # Anzahl erstellter Einheiten
                      
    iRunde 50      # Ab dieser Runde
                      
    iChance 100    # 1000 = 100%

                      # Wenn ein Plot gefunden wurde
                      
    if len(NewPlot4Werewolves):
                        
    # Ab einer gewissen Runde
                        
    if iGameTurn iRunde:
                          
    # Chancenberechnung
                          
    if iChance CyGame().getSorenRandNum(1000"Random number of turn based werewolf creation"):
                            
    iPlot gc.getGame().getSorenRandNum(len(NewPlot4Werewolves), "Unit placement")
                            for 
    i in range(iUnitAnzahl):
                              
    # Befehl-Info: pPlayer.initUit ( iUnitType , iProfession , x , y , UnitAIType , Direction , 0 )
                              
    NewUnit gc.getPlayer(iPlayer).initUnit(iUnitType, -1NewPlot4Werewolves[iPlot].getX(), NewPlot4Werewolves[iPlot].getY(), UnitAITypes.UNITAI_OFFENSIVEDirectionTypes.DIRECTION_SOUTH0)
                              
    #NewUnit.finishMoves()
                      # ---------------------------------------------------- 
    Angehängte Dateien Angehängte Dateien

  2. #392
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Hmm.Nicht weiter schlimm fang ich halt neu an.
    Der Anfang ist eh immer das Beste!
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  3. #393
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Zur Sicherheit könntest du ein if loopPlot != None vor das erste NewPlot4Werewolves.append(loopPlot) einfügen (das du dann einrücken musst)

    Noch sicherer wäre vermutlich ein "not pPlayer.getCity(i).isNone()" vor der loopPlot = gc.getMap().plot(pPlayer.getCity(i).getX(), pPlayer.getCity(i).getY())

    Eine von beiden sollte ausreichen, beide Prüfungen auf einmal sind vermutlich nicht nötig, aber in meinem Beispiel enthalten:
    PHP-Code:
                    # +++++ Werewolves - Werewolves bekommen gratis Einheiten --------------
                    
    if pPlayer.getCivilizationType() == iCivWerewolves:
                      
    iCitiesWerewolves pPlayer.getNumCities()
                      
    # -- Plot herausfinden --
                      
    NewPlot4Werewolves = []
                      
    # Verfuegbare Staedte durchgehen
                      
    if iCitiesWerewolves 0:
                        for 
    i in range (iCitiesWerewolves):
                          if 
    not pPlayer.getCity(i).isNone():
                            
    loopPlot gc.getMap().plot(pPlayer.getCity(i).getX(), pPlayer.getCity(i).getY())
                            if 
    loopPlot != None and not loopPlot.isNone(): 
                              
    NewPlot4Werewolves.append(loopPlot)
                      else: 
    Ich habe das nicht getestet, da ich die neue Werewolves-Version noch gar nicht installiert habe.

  4. #394
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Stimmt. ODer man überprüft auch zur Sicherheit den derzeitigen Besitzer der Stadt.
    Die Pythonänderungen sind übrigens Save-kompatibel. Also könnte man es gleich wieder testen...

    wer ist denn jetzt eigentlich für den python eventmanager zuständig? ich hab da ja schon lang nix mehr gemacht.
    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.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  5. #395
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Ronnar? Ronnar! Ronnar !!! Emoticon: hoch

    Ronnar hat die Lösung gefunden. Ich mache mal schnell einen Hotfix fertig!

  6. #396
    hat den Blues Avatar von Elwood
    Registriert seit
    05.11.07
    Beiträge
    4.352
    07:27 --- 19:59
    Problem --- Lösung

    ... ich habe nicht einen Anbieter diverser kostenpflichtiger Leistungen mit ihrem "Service" in meinem RL-Umfeld, der deratiges bewerkstelligt, wie es Modenthusiasten hier für ihre Community tun


    Geschichten zum Lesen ...

    Der seltsame Fall des William Penn | Col II --- TaC-Mod | abgebrochen
    Wahnsinn mit Methode? | Col II --- TaC-Mod | beendet | SdM April 2012
    Visiting Vvardenfell | TES III Morrowind | pausiert
    Es war einmal (noch) kein Portugal | Civ IV --- PAE-Mod | beendet
    Pack die Thermohose ein ... | Icewind Dale --- Trials of the Luremaster | läuft
    NEU: [RL] ... wie Gott nach Frankreich - Elwoods ??? | Modellbaubericht | läuft

  7. #397
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Und das an einem Faschingssonntag
    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.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  8. #398
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Oh, ich bin erkältet zu Hause und die Lösung hat ja nun wirklich nur 5 Minuten meiner Zeit gekostet. Die Bugbeschreibung hat ja recht klar aufgezeigt woran es vermutlich liegt. Da musste ich nicht mal Werewolves selber installieren und testen

  9. #399
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Ja, das ist schon heftig. Logan als Tester & Ronnar als Bugkiller haben einen super Job gemacht!

    Der Hotfix ist jetzt raus.

    Pie, du hattest mich eben per PN gefragt, welche der beiden Änderungen von Ronnar Abhilfe geschaffen haben. Ich antworte dir mal hier, weil das auch andere interessieren wird. Ähem ... hier die spannende und hochinteressante Antwort ... (Trommelwirbel) ... ... (Kunstpause) ... ... Ich weiß es nicht!

    Ich habe beide Änderungen von Ronnar umgesetzt und dann sowohl an Logans Save getestet als auch an einer anderen Karte, bei der ich heute vormittag Logans Bug reproduzieren konnte. Der Fehler ist jetzt weg. Warum, wieso, weshalb? Das müsst ihr jetzt bekakeln, ich kann da nichts Kluges zu beitragen.

  10. #400
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Soviel mir bekannt wird bei der Zerstörung einer Stadt nicht der Zähler verringert, d.h. "for i in range (iCitiesWerewolves):" würde auch noch als Schleife über Indexnummern bereits zerstörter Städte laufen.

    Daher sollte schon die erste Prüfung (if not pPlayer.getCity(i).isNone():) mögliche Fehler abfangen. Die zweite auf plot isnone sollte dann eigentlich überflüssig sein, schadet aber auch nicht.

  11. #401
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Hm.
    Ich bin untröstlich.
    Das klingt nämlich verdammt unlogisch, wenn 2(!) Runden später die Städteliste neu abgerufen wird mit iCitiesWerewolves = pPlayer.getNumCities()
    Dass der Index einer "ungültigen" Stadt bestehen bleibt, hätt ich nie erraten. Sowas kann sich ja nur firaxis ausdenken. Das hab ich sicher bei PAE auch so drin....
    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.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  12. #402
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Heißt das ich mit dem Fix mein Spiel weiterspielen kann?
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  13. #403
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von Logan Beitrag anzeigen
    Heißt das ich kann mit dem Fix weiterspielen?
    Zitat Zitat von Writing Bull Beitrag anzeigen
    KOMPATIBILITÄT
    Ihr könnt Spielstände, die ihr mit Werewolves 1.2 angelegt habt, nach der Installation des Hotfix problemlos fortsetzen.
    - Schön, nicht?

  14. #404
    Registrierter Benutzer Avatar von Logan
    Registriert seit
    09.08.12
    Ort
    Niedersachsen
    Beiträge
    1.020
    Boah ich liebe euch !
    Wie geil !
    Nun dann zieht euch warm an ihr Wölfe
    Eine kleine Geschichte in der Geschichte des Werewolves Mod
    http://http://civforum.de/showthread.php?81723-CivCol-TAC-Werewolves-Mod

    [TAC] Klein-Venedig - Ergänzungspaket zur Mod TAC 2.03_final
    http://www.civforum.de/showthread.ph...TAC-2-03_final

  15. #405
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896

    Absturz bei Stadtverlust?

    Ist zwar eine peinliche Situation ^^, aber in diesem Save stürtzt das Spiel ab, wenn ich auf Runde beenden klicke. Danach sehe ich noch, wie der erste Werewolf bei Boston angreift. Hoffe, das hilft weiter.
    Angehängte Dateien Angehängte Dateien

Seite 27 von 30 ErsteErste ... 172324252627282930 LetzteLetzte

Berechtigungen

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