Warning: ob_start(): function 'compress_handler' not found or invalid function name in /www/htdocs/xfmantis/core.php on line 18
0001652: Lager verliert Gegenstände bei Transporterankunft - Mantis
Mantis - X-Force
Viewing Issue Advanced Details
1652 Allgemein major always 06.08.07 23:24 08.09.07 03:07
DirkF  
Jim_Raynor  
normal  
closed  
fixed  
none    
none V0.910 - Final  
0001652: Lager verliert Gegenstände bei Transporterankunft
Wenn ein Transporter von einer Mission zurückkommt, dann wird die gefundene Ausrüstung nicht nur nicht immer addiert, sondern manchmal wird im Gegenteil sogar bereits vorhandene Ausrüstung gelöscht.
Dies kann auch keine "Aufmunitionierung" sein, da es in den vorliegenden Beispielen z.B. um eine Differenz von 11 noch nicht erforschten Artefakten (Sensoren) geht.
Auf dem FTP liegen im Verzeichnis "Fehler" eine Speicherdatei sowie zwei Spielsätze (ich weiß nicht welche Version davon die Sav benötigt.

Die Spiele sind jeweils kurz vor Ankunft des Transporter gespeichert, einfach vorher und nachher den Lagerbestand an Alien-Artefakten (sowie die Bestände im Tranporter) vergleichen.

Notes
(0002639)
Natter   
07.08.07 00:37   
Fehler gefunden. In GameFigureManager Zeile 2560 steht:
if lager_api_PutMunition(HomeBase.ID,fRucksack[Dummy2].ID,fRucksack[Dummy2].Schuesse) then

Da Der Sensor aber als Schussanzahl -1 hat, wird hier für jeden Sensor im Rucksack einer in der Basis gelöscht. Hab das testweise mal so abgefangen:

function lager_api_PutMunition(BaseID: Cardinal; ItemID: Cardinal; Schuss: Integer): boolean;
begin
  if Schuss<0 then
  begin
  result:=true;
  exit;
  end;
  result:=g_LagerList.AddMunition(ItemID,BaseID,Schuss);
end;

Ich hab aber nicht so den Überblick über die Verwendung von lager_api_PutMunition - daher bin ich mir nicht sicher, ob das nicht andere Probleme hervorruft. Sollte sich Jim mal ansehen.

Es scheint aber noch ein anderes Problem zu geben (vermutlich am Ende eines Bodeneinsatzes). Angeblich sind im Transporter nur 8 Sensoren - die Soldaten haben aber 11 im Rucksack + 1 Sensor im Transporter - und die verschwinden auch alle. Trotzdem werden im Lager nur 8 hinzugefügt.
(0002640)
Natter   
07.08.07 00:46   
PS: Test-Spielstand + Spielsatz liegen auf dem Inteam-FTP
(0002641)
Jim_Raynor   
07.08.07 07:40   
Na da werd ich wohl mal schauen müssen. Ich habe selbst nicht mehr so den Überblick was da alles passiert ;)
(0002642)
Jim_Raynor   
07.08.07 18:11   
So, ich habe jetzt lager_api_PutMunition geändert.

function lager_api_PutMunition(BaseID: Cardinal; ItemID: Cardinal; Schuss: Integer): boolean;
var
  Item: PLagerItem;
begin
  Item:=lager_api_GetItem(ItemID);

  if Item.TypeID in MunitionTypes then
    result:=g_LagerList.AddMunition(ItemID,BaseID,Schuss)
  else
    Result:=g_LagerList.AddItem(ItemID,BaseID,1)=1;
end;


Wobei MunitionTypes als [ptMunition,ptRMunition] in XForce_Types neu definiert ist. Jetzt sollte es so klappen wie erwartet.

Zu dem hab ich noch TGameFigureManager.AddToRucksack geändert. Dort wird jetzt Schuesse auf 0 gesetzt, wenn es sich nicht um eine Munition handelt.