Dann is der Wert NONE. is pHeadSelectedUnit.getReligion() eh ein INT? bzw. ich habs jetzt nur schnell mal getReligion(). Ich weiß ja nicht, wie du es fürs Python freigegeben hast. mit getUnitReligion()?
Dann is der Wert NONE. is pHeadSelectedUnit.getReligion() eh ein INT? bzw. ich habs jetzt nur schnell mal getReligion(). Ich weiß ja nicht, wie du es fürs Python freigegeben hast. mit getUnitReligion()?
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!
Nene, getReligion passt. Das funktioniert auch und das richtige Reli-Icon wird angezeigt. Nur manchmal verschluckt es sich dabei. Reproduzierbar wenn man im Stadtbildschirm ist und auf eine der stationierten Einheiten klickt. Dann verschwindet der Stadtbildschirm kurz und taucht als Geist wieder auf; und es gibt einen neuen solchen Fehlereintrag im Pythondebuglog.
pHeadSelectedUnit.getReligion() ist ein int Bzw. in C++ ein ReligionTypes-Enum-Wert, was ja nix anderes als Int mit Namen ist.
gc.getReligionInfo(int index) sollte aber nicht NONE werden. Das ist Pythons Version von null, oder?
Warum fangen die da einmal was ab im Interface-Part? Sonst passiert das nie... Und natürlich lösen so die Asserts in GC.getReligionInfo nicht aus.
... Also nicht nie, aber selten. Danke fürs finden.
Ich habe in deine Git-Version von CvUnit.cpp geschaut um mögliche Werte von getReligion() abzuschätzen.
Der Religionswert (und der andere neue) werden noch nicht im Save gespeichert, aber in der reset()-Methode auf -1 gesetzt.
Einzige Stelle an der CvUnit::setReligion(X) mit X != -1 aufgerufen wird ist
Das sieht richtig ausCode:setReligion(GET_PLAYER(getOwnerINLINE()).getStateReligion());
Bleibt eigentlich nur noch der Fall, das reset() in seltenen Fällen nicht aufgerufen wird und der Wert undefiniert ist (Werte bei CvUnit werden ja nicht im Konstruktor definiert.)
Kann ich mir eigentlich auch nicht vorstellen, weil dass einem dann schon früher um die Ohren geflogen wäre.
=> Brainstorming brachte nix aber vllt. hilft es dir weiter.
Markus1978
PAE-Neuling
Storys:
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg
-1 gibt null zurück, ist schon richtig. In Python erstmal abgesichert:
Und ins Save schreiben wär noch ne Idee, aber ich hatte ja noch nix geladenCode:# PAE Unit Ethnic und Religion if pHeadSelectedUnit.getEthnic() != -1: iUnitEthnic = pHeadSelectedUnit.getEthnic() if iUnitEthnic > -1 and iUnitEthnic < gc.getNumCivilizationInfos(): screen.setImageButton("SelectedUnitEthnic", gc.getCivilizationInfo(iUnitEthnic).getButton(), 80, yResolution - 36, 24, 24, WidgetTypes.WIDGET_PEDIA_JUMP_TO_CIV, iUnitEthnic, -1) if pHeadSelectedUnit.getReligion() != -1: iUnitReligion = pHeadSelectedUnit.getReligion() if iUnitReligion > -1 and iUnitReligion < gc.getNumReligionInfos(): screen.setImageButton("SelectedUnitReligion", gc.getReligionInfo(iUnitReligion).getButton(), 104, yResolution - 36, 24, 24, WidgetTypes.WIDGET_PEDIA_JUMP_TO_RELIGION, iUnitReligion, -1)
Geändert von Flunky (25. Januar 2016 um 13:21 Uhr)
Das Kampfprinzip ist das gleiche. Nur die Flucht/Überlaufen/Sklaverei-Wahrscheinlichkeit ist verändert.
Markus1978
PAE-Neuling
Storys:
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg
Notiz für mich oder wer sich damit beschäftigen will:
Warum kann das Wildpferd als Pferd gefangen genommen werden? Tiere (bAnimal) sind vom Überlaufen ausgeschlossen und im Eventmanager sollte eigentlich auf Pferdedomestizierung geprüft werden. BT-mäßiges Überlaufen klappt iirc nicht mit Einheiten, die sich wehren.
Testumgebung: Wildpferd in eigener Kultur, mit Jäger angreifen.
Sollen die Flucht/Überlauf/Sklaverei-Wahrscheinlichkeiten eigentlich normiert werden?
Die normale Tabelle:
gl.K+gl.R. gl.K+u.R u.K+gl.R u.K+u.R läuft über: 50% 30% 10% 0% Sklave 10% 20% 40% 50% Flucht 20% 20% 10% 0% tot (normal): 20% 30% 40% 50%
sieht ja z.B. für den Kampf gegen ein Tier so aus (unnormiert/normiert):
gl.K+gl.R. gl.K+u.R u.K+gl.R u.K+u.R läuft über: 0% 0% 0% 0% Sklave 0% 0% 0% 0% Flucht 20%/50% 20%/40% 10%/20% 0% tot (normal): 20%/50% 30%/60% 40%/80% 50%/100%
da Tiere eher keine Sklaven oder Überläufer nehmen oder umgekehrt dazu taugen.
Oder sollen die Prozentpunkte, die bei Überlaufen und Sklaverei frei werden komplett der Flucht zugeschrieben werden? Oder Überlaufen->Flucht und Sklaverei->Tod?
Wenn ich ne Einheit in ner aktiven Stadt anklicke, dann wechselt er zur Karte und verlässt die Stadt. Bei mir gehts also problemlos. Im errorlog steht auch nix.
Aber so gehts auch
JA, das wär wichtig.Und ins Save schreiben wär noch ne Idee, aber ich hatte ja noch nix geladen
Ähm vergisst du mir eh nicht: Wenn ein Stack von einer Einheit angegriffen wird, dass kontrolliert wird, ob noch ein freier Fernkämpfer im verteidigenden Stack ist, der vorher auf den Angreifer ballert. Da sollte eigentlich ne Log-Meldung reichen, wenn es grafisch schon nicht funkt. Wär aber ein Hit. So wie in Civ3.
Tut es doch oder nicht? Ohne Pferdedomi: normaler Kampf: mit Pferdedomi: Gefangennahme
Achja: eigentlich reicht : bei Flucht.
Gegen Tiere brauchst aber keine Ehtnic/Reli Prüfung.
Und lustig wärs aber bei gl. R + gl. Eth: dass man vorm Kampf schon ne Chance hat: dass die Einheit kampflos überläuft. Vielleicht da 25% dafür einbauen?
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!
@gl.R.+gl.Eth.: Ich würd gern am Ende noch die Kampfchancen richtig berechnen können^^
Die Anzeige müsste momentan lauten (für gl.+gl., gleich starke Einheiten):
Ich könnte mir aber vorstellen, dass ein Teil der Kampfverweigerern zu Überläufern wird. Und zwar unter einer von 2 Bedingungen: die Civ der gegnerischen Einheit ist unsere Heimat; die Civ der gegnerischen Einheit hat unsere Reli zur Staatsreli.60% wir kämpfen nicht gegen unsere Brüder
20% Sieg
- 10% gegnerische Einheit läuft über
- 2% gegnerische Einheit wird versklavt
- 4% gegnerische Einheit flieht
- 4% gegnerische Einheit stirbt
20% Niederlage
- 10% unsere Einheit läuft über
- 2% unsere Einheit wird versklavt
- 4% unsere Einheit flieht
- 4% unsere Einheit stirbt
@Fernkämpfer: erstmal soll eine Sache funktionieren.
@Pferd: eigentlich schon, aber irgendwie klappt's nemmer.
@Tiere: Ich hab die Reli/Ethnic-Prüfung in den Berechnungsfunktionen für Renegade/Flight/Slavery-Chance integriert. Aber ich hab schon ne Idee, wie das klappen sollte. Also schieb ich einfach von oben durch: wenn überlaufen nicht möglich ist (weil Loyal), steigt die Sklavereiwahrscheinlichkeit; wenn Sklaverei nicht möglich ist (weil der Gegner keine Sklaven nimmt), steigt die Fluchtwahrscheinlichkeit (unsere Truppen wissen halt, dass die Barbaren keine Gefangenen machen). Flucht ist prinzipiell immer möglich, wenn kein passendes Feld in der Nähe ist, stirbt die Einheit trotzdem.
Jep, sieht lecker aus.
Ja, sag ich ja die ganze Zeit. Ich möcht was, wo es gar nicht erst zum Kampf kommt (wie bei FFH2 die Angst: Einheit hat zuviel Angst und kämpft deswegen nicht gegen den Drachen). Und hierbei würde eben gl+gl ja passen: Entweder: Verweigerung, Überlauf oder Kampf. Ne weitere Möglichkeit gibts eh nicht. Oder doch? Vergraben vielleichtIch könnte mir aber vorstellen, dass ein Teil der Kampfverweigerern zu Überläufern wird. Und zwar unter einer von 2 Bedingungen: die Civ der gegnerischen Einheit ist unsere Heimat; die Civ der gegnerischen Einheit hat unsere Reli zur Staatsreli.
Na da bin ich mal sehr, sehr gespannt! Das Feature alleine hat schon sehr hohen Qualitätswert! Find ich. Haste Katapulte und vor allem bewegungslose Onager eh nicht vergessen? Also alle SIEGE Einheiten. Für HUNK muss ich dann auch noch irgendwann mal den Scorpion auch reintun.@Fernkämpfer: erstmal soll eine Sache funktionieren.
Hast du das etwa ins SDK geschoben? Sonst wüsst ich nicht, warums nimma geht. Vielleicht hängts mit deinem Kampfsystem zusammen.@Pferd: eigentlich schon, aber irgendwie klappt's nemmer.
Bei mir isses ja so, dass sie erst bei onCombatResult gefangen wird, wenn sie verliert und dabei nicht flüchtet und wenn die TECH erforscht ist.
Bahnhof. Ich sag mal ja.@Tiere: Ich hab die Reli/Ethnic-Prüfung in den Berechnungsfunktionen für Renegade/Flight/Slavery-Chance integriert. Aber ich hab schon ne Idee, wie das klappen sollte. Also schieb ich einfach von oben durch: wenn überlaufen nicht möglich ist (weil Loyal), steigt die Sklavereiwahrscheinlichkeit; wenn Sklaverei nicht möglich ist (weil der Gegner keine Sklaven nimmt), steigt die Fluchtwahrscheinlichkeit (unsere Truppen wissen halt, dass die Barbaren keine Gefangenen machen). Flucht ist prinzipiell immer möglich, wenn kein passendes Feld in der Nähe ist, stirbt die Einheit trotzdem.
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!