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