Seite 6 von 9 ErsteErste ... 23456789 LetzteLetzte
Ergebnis 76 bis 90 von 121

Thema: PAE SDK - Kampfsimulation

  1. #76
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    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.


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

  2. #77
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    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?

  3. #78
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Flunky Beitrag anzeigen
    Das ist Pythons Version von null, oder?

  4. #79
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Flunky Beitrag anzeigen
    Ich bin im Debug-Mode, also lösen Asserts aus: Wenn iUnitReligion nicht zw. 0 und GC.getNumReligionInfos() läg, würd die DLL das melden. Was ist hier los?^^
    Orginal sieht der Python-Aufruf in C++ so aus:

    Code:
    CvReligionInfo* CyGlobalContext::getReligionInfo(int i) const
    {
    	return (i>=0 && i<GC.getNumReligionInfos()) ? &GC.getReligionInfo((ReligionTypes) i) : NULL;
    }
    Die asserts in GC::getReligionInfo werden nicht erreicht.

  5. #80
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    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.

  6. #81
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    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
    Code:
    setReligion(GET_PLAYER(getOwnerINLINE()).getStateReligion());
    Das sieht richtig aus

    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.

  7. #82
    Registrierter Benutzer
    Registriert seit
    06.02.14
    Beiträge
    2.243
    Zitat Zitat von Flunky Beitrag anzeigen


    Bild
    Bild:

    Ich nehme mal an das der Reli-Button genau neben dem Nationen-Button erscheinen soll.

    Frage:
    Flunky werden die Kämpfe mit der neuen Kampfsimulation viel schwieriger als jetzt?
    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

  8. #83
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    -1 gibt null zurück, ist schon richtig. In Python erstmal abgesichert:

    Code:
              # 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)
    Und ins Save schreiben wär noch ne Idee, aber ich hatte ja noch nix geladen
    Geändert von Flunky (25. Januar 2016 um 13:21 Uhr)

  9. #84
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    Das Kampfprinzip ist das gleiche. Nur die Flucht/Überlaufen/Sklaverei-Wahrscheinlichkeit ist verändert.

  10. #85
    Registrierter Benutzer
    Registriert seit
    06.02.14
    Beiträge
    2.243
    Zitat Zitat von Flunky Beitrag anzeigen
    Das Kampfprinzip ist das gleiche. Nur die Flucht/Überlaufen/Sklaverei-Wahrscheinlichkeit ist verändert.
    Vielen Dank Flunky für deine Erklärung.
    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

  11. #86
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    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.

  12. #87
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    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?

  13. #88
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Zitat Zitat von Flunky Beitrag anzeigen
    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?
    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.

    Zitat Zitat von Flunky Beitrag anzeigen
    -1 gibt null zurück, ist schon richtig. In Python erstmal abgesichert:

    Code:
              # 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)
    Aber so gehts auch

    Und ins Save schreiben wär noch ne Idee, aber ich hatte ja noch nix geladen
    JA, das wär wichtig.

    Zitat Zitat von Flunky Beitrag anzeigen
    Das Kampfprinzip ist das gleiche. Nur die Flucht/Überlaufen/Sklaverei-Wahrscheinlichkeit ist verändert.
    Ä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.

    Zitat Zitat von Flunky Beitrag anzeigen
    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.
    Tut es doch oder nicht? Ohne Pferdedomi: normaler Kampf: mit Pferdedomi: Gefangennahme

    Zitat Zitat von Flunky Beitrag anzeigen
    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?
    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.


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

  14. #89
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.442
    @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):
    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
    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.

    @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.

  15. #90
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Zitat Zitat von Flunky Beitrag anzeigen
    @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):
    [...]
    Jep, sieht lecker aus.

    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.
    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 vielleicht

    @Fernkämpfer: erstmal soll eine Sache funktionieren.
    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.

    @Pferd: eigentlich schon, aber irgendwie klappt's nemmer.
    Hast du das etwa ins SDK geschoben? Sonst wüsst ich nicht, warums nimma geht. Vielleicht hängts mit deinem Kampfsystem zusammen.
    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.

    @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.
    Bahnhof. Ich sag mal ja.
    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!

Seite 6 von 9 ErsteErste ... 23456789 LetzteLetzte

Berechtigungen

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