Seite 14 von 53 ErsteErste ... 410111213141516171824 ... LetzteLetzte
Ergebnis 196 bis 210 von 784

Thema: Bugs

  1. #196
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Zitat Zitat von SMAC-Fan Beitrag anzeigen
    Kann bitte jemand nachschauen, warum das Spiel nach Runde beenden hängen bleibt?
    Bin beim debuggen.

    Code:
    Assert Failed
    
    File:  CvGlobals.cpp
    Line:  3645
    Expression:  strcmp(szType, "NONE")==0 || strcmp(szType, "")==0
    Message:  info type IMPROVEMENT_ORBITAL_STATION not found, Current XML file is: xml\GameInfo/CIV4EspionageMissionInfo.xml
    
    ----------------------------------------------------------
    Wann wird das mal entfernt, Mono? Zu Faul? Du musst doch nur mal alle Pythonaufrufe dafür entfernen. Durchsuche einfach mal die Pythondateien nach IMPROVEMENT_ORBITAL_STATION.

    Da es diese Modernsisierung nicht gibt, kann sie auch nicht gefunden werden. Es gibt nur eine Einheit UNITCLASS_ORBITAL_STATION, aber das ist was ganz anderes.


    Code:
    Assert Failed
    
    File:  CvUnitAI.cpp
    Line:  11612
    Expression:  canDefend()
    Message:  
    
    ----------------------------------------------------------
    Dieser FAssert sagt aus, dass eine Einheit ohne Kampffähigkeit KI-Code für Kampffähige Einheiten ausführt. Sowas führt schon in PAE zu vielen Problemen.

    Es geht genau um UNITAI_ATTACK_CITY als KI. Eine Einheit ist aber auch nicht Angriffsfähig, wenn sie auf den falschen Terrain ist. In dem Fall ist es falsches Terrain. Diese Einheit wird trotz Transport für bestimmten KI-Code ausgewählt.



    Das ist alles noch nicht die Problemursache für den Hänger. Die Ursache konnte ich bisher nur einkreisen.

    Achtung Spoiler:
    Bild


    2 Einheiten auf diesen Feld sind die Ursache.

    edit: Das ist sehr Merkwürdig. Eine der 2 Einheiten will sich in einer Gruppe formieren und weckt damit die andere Einheit auf. Diese war im Interceptionmodus. Wenn der Modus vom Interceptionmodus zu Missionsmodus wechselt, wird die Gruppe wieder in den Idlemopdus versetzt und genau das läuft dann endlos.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von rucivfan (22. Juni 2014 um 11:39 Uhr)

  2. #197
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Habe es noch nicht 100% verstanden, aber ich würde mal sagen, ich verstehe das Problem.

    Welche Einheit verbirgt sich hinter der Type-Nummer 100?

    edit: Die Ursache für das Problem ist im Zusammenhang mit Wasserstädten zu sehen. Eine Einheit will zu einer anderen Wasserstadt als Verteidiger.

    edit: Das ist ein Astreiner CoC-Schrottcode-Fehler.

    Es gibt hier eine Änderung der CvUnitAI::AI_plotValid. Diese ist für den Fehler verantwortlich.

    Code:
    case DOMAIN_LAND:
    		//if (pPlot->getArea() == getArea() || canMoveAllTerrain())
    		if (pPlot->isValidDomainForLocation(*this))
    		{
    			return true;
    		}
    		break;
    Das auskommentierte ist der BTS Code. Was das Problem daran ist? Nun, der Problemcode geht teilweise davon aus, wenn die Funktion plotValid true wieder gibt, dann gibt es auch einen Weg. Den gibt es hier aber nicht.

    Es gibt zwar noch eine zweite Instanz, die den Fehler verhindert, aber ich weiß nicht warum es nicht verhindert wird. Eine Landeinheit kann nun mal nicht über Wasser laufen.

    edit: Können hier Landeinheiten unter bestimmten Gegebenheiten mit Ausnahme Stadtfelder über Wasser laufen? Die Ursache habe ich schon gefunden. In einer wichtigen Funktion wird für Wassereinheiten das laufen auf Plots mit Wasser nicht mehr versperrt. Jedoch wurden alle anderen Funktionen nicht angepasst. Code denkt, man kann über Wasser laufen und die Einheit merkt später, es geht doch nicht.

    Code:
    case DOMAIN_LAND:
    		if (pPlot->isWater() && !canMoveAllTerrain())
    		{
    			if (!pPlot->isCity() || 0 == GC.getDefineINT("LAND_UNITS_CAN_ATTACK_WATER_CITIES"))
    			{
    				/*if (bIgnoreLoad || !isHuman() || plot()->isWater() || !canLoad(pPlot))
    				{
    					return false;
    				}*/
    				if (!bIgnoreLoad && isHuman() && canLoad(pPlot))
    				{
    					break;
    				}
    				if (GET_TEAM(getTeam()).isWaterWork() && pPlot->getBlockadedCount(getTeam()) == 0 && !bAttack && pPlot->getTeam() == getTeam())
    				{
    					break;
    				}
    				if (pPlot->getTeam() == getTeam() && flatMovementCost())
    				{
    					break;
    				}
    
    				return false;
    			}
    		}
    		break;
    Woher stammt die Änderung aus der bool CvUnit::canMoveInto(const CvPlot* pPlot, bool bAttack, bool bDeclareWar, bool bIgnoreLoad) const?

    edit: OK, das ist mal wieder eine typischer KI-Fehler. Die canMoveInto lässt mit den Code oben was zu, was in der bool CvPlot::isValidDomainForAction(const CvUnit& unit) const nicht zugelassen wird. Daher kommt das Problem.

    Lösung: Die Änderung oben rückgängig machen.

    edit: Es wäre Alternativ auch möglich int pathDestValid(int iToX, int iToY, const void* pointer, FAStar* finder) in CvGameCoreUtil.cpp zu ändern, aber die Auswirkungen kann ich nicht beurteilen.

    if ((!(pSelectionGroup->canFight())) || (pSelectionGroup->getDomainType() == DOMAIN_LAND && !pToPlot->isValidDomainForLocation(*pSelectionGroup->getHeadUnit())))

    Das dicke müsste weg.

    edit: Oder man fügt GET_TEAM(getTeam()).isWaterWork() && pPlot->getBlockadedCount(getTeam()) == 0 && pPlot->getTeam() == getTeam() von oben der CvPlot::isValidDomainForAction bei Landeinheiten hinzu. Die Folgen sind aber auch nicht absehbar. Auf jeden Fall würden dann Landeinheiten auf bearbeiten Wasser gegen Schiffe verteidigen.
    Geändert von rucivfan (22. Juni 2014 um 16:24 Uhr)

  3. #198
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650

    Erstmal wieder ein dickes danke das du sich so intensiv mit dem Problem auseinander gesetzt hast!

    Du hast ja nun gleich 3 Lösungsansätze präsentiert, was ist deiner Meinung nach der beste?



    Edit sagt zu deinen Post heute morgen, ja...Mona ist echt zu faul...weil er meint das dieser Fehler schnell zu beseitigen wäre und er es immer aufschiebt...und dann vergisst! Im neuen Update wird es diesen Fehler nicht mehr geben.
    Geändert von Monaldinio (22. Juni 2014 um 20:41 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  4. #199
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Zitat Zitat von Monaldinio Beitrag anzeigen
    Du hast ja nun gleich 3 Lösungsansätze präsentiert, was ist deiner Meinung nach der beste?
    Das kommt drauf an, was if (GET_TEAM(getTeam()).isWaterWork() && pPlot->getBlockadedCount(getTeam()) == 0 && !bAttack && pPlot->getTeam() == getTeam()) oben bezwecken sollte.

    Du hast die dickgedruckte Frage noch nicht beantwortet. Sollen Land-Einheiten über Wasser laufen? Dürfen Landeinheiten über Wasser gegen Seeeinheiten verteidigen? Beides ist nicht BTS-Standard.

  5. #200
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Ab einer bestimmten Technologie ist es soll es möglich mit landeinheiten über bestimmte wasserfelder zu laufen.
    Die Frage möchte ich bejaen.
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  6. #201
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Dann musst du Lösung 3 nehmen, wobei es das Problem gibt, dass sich Landeinheiten dann auf Wasser verteidigen.

    Code:
    bool CvPlot::isValidDomainForAction(const CvUnit& unit) const
    {
    	switch (unit.getDomainType())
    	{
    	case DOMAIN_SEA:
    		return (isWater() || unit.canMoveAllTerrain());
    		break;
    
    	case DOMAIN_AIR:
    		return false;
    		break;
    
    	case DOMAIN_LAND:
    	case DOMAIN_IMMOBILE:
    		return (!isWater() || unit.canMoveAllTerrain() || (unit.getTeam() == getTeam() && (unit.flatMovementCost() || (GET_TEAM(unit.getTeam()).isWaterWork() && getBlockadedCount(unit.getTeam()) == 0))));
    		break;
    
    	default:
    		FAssert(false);
    		break;
    	}
    
    	return false;
    }
    Habe es noch nicht getestet mit den Save.
    Geändert von rucivfan (22. Juni 2014 um 20:57 Uhr)

  7. #202
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Mhmm, ich guck mir das nochmal an wie es momentan ist wenn man die Tech erforscht hat, die das laufen über bedtimmte Wasserfelder erlaubt...
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  8. #203
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Habe es getestet, Runde läuft durch!

    edit:

    Bild
    Angehängte Grafiken Angehängte Grafiken

  9. #204
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Ja prima!

    Edit: Jetzt muss ich den Code aus deinen post #201 nur noch einbauen und neu kompilieren.


    Der Screenshot zeigt den Wiederbelebungsfehler, der in meiner Arbeitsversion schon korrigiert sein sollte, durch deine zusätzliche Abfrage!

    Ich habe dir die Version gegeben die aktuell zum Download zu Verfügung steht.
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  10. #205
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    IST ZUSTAND!

    Also ich habe jetzt nochmal ein bischen genauer getestet, mit der Technologie Cenauri Hydrologie können Einheiten über Wasserfelder im eigenen Gebiet laufen. Sollte so auch bleiben.
    Einheiten die sich auf Wasserfelder befinden und von Seeeinheiten angegriffen werden, verteidigen sich nicht. Grundsätzlich finde ich das gut, da Landeinheiten nun mal Landeinheiten sind.

    WÜNSCHENSWERTER ZUSTAND

    So wie ich dich verstanden habe, würde deine Codekorrektur den Bug beheben...aber auf kosten das sich dann Landeinheiten die sich auf Wasserfeldern im eigenen Gebiet befinden, gegen Seeeinheiten verteidigen können.
    Das finde ich nicht so gut. Am liebsten wäre mir das man das so beibehalten könnte.

    Wenn es aber zu schwierig ist bzw die Codekorrektur unabsehbare Folgen haben könnte, wäre ich auch damit zufrieden wenn sich besagte Einheiten nur mit, sagen wir mal 10-20% ihrer eigentlichen Stärke, auf Wasserfeldern verteidigen.
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  11. #206
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Dann musst du Lösung 2 nehmen. Das hat aber den Nachteil, dass die KI ihr teuren Land-Einheiten einfach mal so verlieren kann und das nicht berücksichtigt. Daher wäre die 20% Stärke-Lösung wohl am sinnvollsten.

  12. #207
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Gut, dann die 20% Stärke Variante auf Wasserfeldern im eigenen Gebiet.

    Edit: wobei mir aber auch zwei Ausnahmen einfallen, schwebepanzer (hovertank) und Rotor!
    Geändert von Monaldinio (23. Juni 2014 um 13:11 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  13. #208
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    rucivfan ich möchte dich nicht hetzten, du hast nicht zufällig den Code mit den 20% auf der Pfanne?!?
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  14. #209
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Nein, aber das ist doch nicht schwer. Ich schreibe vielleich was Dienstag nachmittag, aber nur vielleicht. Base hat erstmal vorrang. Vorher habe ich auch keine Zeit.

  15. #210
    erfreut Avatar von SMAC-Fan
    Registriert seit
    08.05.14
    Ort
    Chiron
    Beiträge
    3.124
    Unterseeboote von der Fraktion Wellen können bis zu 4 Landeinheiten transportieren? Ist das so gewollt?
    Jedenfalls seh ich von ihm nur ein Unterseeboot und er landet mit 4 Armeeeinheiten auf dem Land vor meiner Basis...
    “Noch sitzt ihr da oben, ihr feigen Gestalten,
    vom Feinde bezahlt und dem Volke zum Spott.
    Doch einst wird wieder Gerechtigkeit walten,
    dann richtet das Volk und es gnade euch Gott.”

    C. Th. Körner, 1791-1813

Seite 14 von 53 ErsteErste ... 410111213141516171824 ... LetzteLetzte

Berechtigungen

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