Warning: ob_start(): function 'compress_handler' not found or invalid function name in /www/htdocs/xfmantis/core.php on line 18
0002101: Autospie-Zeit 0 -> keine Autopsie (Übergangslösung) - Mantis
Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002101 [X-Force] Forschung crash have not tried 18.05.09 13:37 24.06.09 03:00
Reporter LennStar View Status public  
Assigned To Natter
Priority normal Resolution fixed  
Status closed   Product Version V0.915a05
Summary 0002101: Autospie-Zeit 0 -> keine Autopsie (Übergangslösung)
Description Hab den wilden Bären im Galwar erforschen wollen (Autopsie). Absturz.
Ich denke mal wegen den 0 Forschungsstunden.
Additional Information Fehlermeldung: Index des laufenden Projektes konnte nicht ermittelt werden 24377300 (C:\XFQuellcode\v0915\game\source\components\ForschList.pas, Zeile 1516)

procedure TForschList.NextRound(Minuten: Integer);
var
  Dummy : Integer;
  DummyFortschrittStatus1 : Single;
  DummyFortschrittStatus2 : Single;
  DummyFortschrittIndex1 : Integer;
  DummyFortschrittIndex2 : Integer;
  DummyProjektIndex : Integer;

  function ForschrittIndex(Rest: Single): Integer;
  begin
    if Trunc(Rest)>20 then //Wenn noch nicht über 80%, dann 0% Chance
      Result := -1
    else if Rest<=0 then //Wenn über 100% -> Maximale Chance
      Result := 10
    else
    begin
      Result := ((20-Trunc(Rest)) div 2);
    end;
  end;
  
begin
  // Forschungsprojekte
  for Dummy:=0 to ForscherCount-1 do
  begin
    DummyProjektIndex := GetIndexOfRunningProjectId(fForscher[Dummy].ID);
    // Forschung
    if DummyProjektIndex >= 0 then
    begin
      //Dies stimmt nicht ganz, da die Runde länger dauern kann, als Projektrestzeit
      Inc(fForscher[Dummy].ForschTime, Minuten);

      //Wie viel Prozent blieb übrig? // division durch Null möglich
      DummyFortschrittStatus1 := Projekte[DummyProjektIndex].Hour/Projekte[DummyProjektIndex].Gesamt*100;

      // Ein Forscher schafft mit Faehigkeit 80 eine Forscher Stunde
      Projekte[DummyProjektIndex].Hour:=Projekte[DummyProjektIndex].Hour-((fForscher[Dummy].Sience/80)*(Minuten/60));

      //Wie viel Prozent bleiben jetzt übrig?
      DummyFortschrittStatus2 := Projekte[DummyProjektIndex].Hour/Projekte[DummyProjektIndex].Gesamt*100;

      //80 Prozent schon erreicht?
      if DummyFortschrittStatus2<=20 then
      begin
        DummyFortschrittIndex1 := ForschrittIndex(DummyFortschrittStatus1);
        DummyFortschrittIndex2 := ForschrittIndex(DummyFortschrittStatus2);
        //Bei überschritten von 80%, bei allen 2% mal würfeln und gucken, ob Durchbruch kommt
        while ((DummyFortschrittIndex1<10) and (DummyFortschrittIndex1<>DummyFortschrittIndex2)) or (DummyFortschrittIndex1=10) do
        begin
          Inc(DummyFortschrittIndex1);
          if (Random(100)+1)<=5+(DummyFortschrittIndex1*8.5) then //1..100 < als 5 + (8,5 * Index) (also 5..90)
          begin
            ProjektEnd(DummyProjektIndex);
// if ProjektCount=0 then exit; //Jim: Ist dies noch richtig? z.B. wegen Patente da unten
            if ProjektCount=0 then
              break; // break ist besser
            DummyFortschrittIndex1 := DummyFortschrittIndex2;
          end;
        end;
      end;
    end
Attached Files  error-18-05-2009-13-30.txt [^] (7,544 bytes) 18.05.09 13:37

- Relationships
related to 0002163closed Natter Alle Forschungen werden nacheinander sofort fertiggestellt 

- Notes
(0003767)
DirkF
20.05.09 13:37

0=automatisch erforscht funktioniert anscheinent nicht bei autopsien.

ich werde das erstmal im spielsatz abfangen, indem ich dem Baer eine Forschungszeit=1 gebe.

eine Korrektur zur 915beta halte ich (noch) nicht fuer sinnvoll, da sich dies eventuell mit einer anderen planung in einer zukuenftigen version automatisch erledigt.
 
(0003768)
Natter
20.05.09 13:58

Ich glaube nicht, dass es daran liegt. Der Fehler ist nämlich nicht reproduzierbar.
 
(0003769)
Natter
20.05.09 14:13

Hast du den Spielsatz geändert? Die ID gibt es im GalWar glaube garnicht. Und die ID des Spielsatzes ist bei deiner error.txt auch anders als bei mir (letzteres könnte aber auch daran liegen, dass ich den bei mir geändert habe, da bin ich mir nicht mehr ganz sicher).
 
(0003771)
LennStar
20.05.09 17:20

Ich bin mir ziemlich sicher, dass ich nichts geändert habe. Und wenn man vom Zeitstempel ausgeht, ist das auch sehr unwahrscheinlich. (Allerdings auch nicht logisch?)
GalWar: 13.5. 8:40Uhr
Da stand DirkFs Post schon, ich habe da aber definitiv noch nichts runtergeladen, habs ja erst am Abend gesehen.
Hast du zufällig das hochgeladen und in DirkFs Post den Link hingesetzt und dann deine Ergänung gepostet? Dann würde der Zeitstempel hinhauen. Und damit ist die Version von dir. Du warst doch der Kompilierer, stimmts?
 
(0003772)
Natter
20.05.09 17:47

Wenn du nichts geändert hast, dann war ich das vermutlich (hab die Spielsatz-IDs aus der error.txt verglichen). Das Datum des Posts im Forum stimmt nicht. DirkF hatte den Text Teamintern gepostet, und ich habe ihn später einfach ins Spielsatzerstellerforum verschoben.

Trtzdem ist die ID des Forschungsprojektes merkwürdig, da sie ja im GalWar eigentlich nicht vorkommt.
 
(0003774)
LennStar
20.05.09 18:08

Also falls das die ID ist: 24377300 ist sie bei mir beim Bären auch nicht. 2658443849 ist meine Bär-ID


Vielleicht war ja was korrupt und weil ich neu installiert (und auch runtergeladen habe) stimmts jetzt auch bei mir.
Werd beim GalWar noch mal nachsehen, obs wieder auftritt. Hörst dann aber wahrscheinlich erst Montag von mir.
 
(0003781)
Natter
22.05.09 18:19

Also eventuell hängt es doch mit der 0 zusammen. Die Autopsien werden ja nicht automatisch erforscht, wenn die Zeit 0 ist, sondern erst, wenn sie in der Forschungsseite dran sind.

Das ist aber ein Problem - denn dort wird nicht mit einer Forschungszeit 0 gerechnet (würde normalerweise schon vorher abgefangen, da solche Forschungen nicht im Labor landen sollten). Es gibt eine Division durch 0. Bei mir hat das gerade dazu geführt, dass alle ausstehenden Forschungsprojekte in der gleichen Runde erforscht wurden.

DummyFortschrittStatus1 := Projekte[DummyProjektIndex].Hour/Projekte[DummyProjektIndex].Gesamt*100;
DummyFortschrittStatus2 := Projekte[DummyProjektIndex].Hour/Projekte[DummyProjektIndex].Gesamt*100;
 
(0003798)
DirkF
23.05.09 18:44

Ich habe die Zeit für den Bären jetzt angehoben.

Ansonsten würde ich vorschlagen das im Editor abzufangen (Ticket-Titel entsprechend geändert), da sich das Thema mit einigen Planungen für die nächsten Versionen irgendwann automatisch erledigt, und Änderungen an der Forschungsliste bis dahin problematisch werden könnten...
 
(0003799)
Natter
23.05.09 19:00

Ich hab jetzt noch eine andere Variante gewählt. Bei ForschTime=0 wird garkeine Autopsie verfügbar (damit auch kein Eintrag in die UFOPädie). Das ist erstmal eine Übergangslösung, und kann sich nach Überarbeitung der ForschList nochmal ändern.
 

- Issue History
Date Modified Username Field Change
18.05.09 13:37 LennStar New Issue
18.05.09 13:37 LennStar File Added: error-18-05-2009-13-30.txt
20.05.09 13:37 DirkF Note Added: 0003767
20.05.09 13:58 Natter Note Added: 0003768
20.05.09 14:13 Natter Note Added: 0003769
20.05.09 17:20 LennStar Note Added: 0003771
20.05.09 17:47 Natter Note Added: 0003772
20.05.09 18:08 LennStar Note Added: 0003774
22.05.09 18:19 Natter Note Added: 0003781
22.05.09 18:20 Natter Additional Information Updated
23.05.09 18:44 DirkF Note Added: 0003798
23.05.09 18:44 DirkF Summary vermutlich Nullfehler bei Forschungszeit Autopsien => Editor-Begrenzung: Keine 0 bei Autospie-Zeit erlauben
23.05.09 19:00 Natter Status new => resolved
23.05.09 19:00 Natter Fixed in Version  => V0.915b01
23.05.09 19:00 Natter Resolution open => fixed
23.05.09 19:00 Natter Assigned To  => Natter
23.05.09 19:00 Natter Note Added: 0003799
23.05.09 19:03 Natter Summary Editor-Begrenzung: Keine 0 bei Autospie-Zeit erlauben => Autospie-Zeit 0 -> keine Autopsie (Übergangslösung)
01.06.09 19:20 Natter Relationship added related to 0002163
24.06.09 03:00 Gast Status resolved => closed


Mantis 1.0.7[^]
Copyright © 2000 - 2007 Mantis Group
Powered by Mantis Bugtracker