i have found a problem with the banking
if you have set 2 objects on a script then this happens
its to do with this bit in MSI_BankMaterials in MainLoop.scar12:44:30 AM: Simbatester: Entering Func: MSI_OpenBank: Successfuly opened Varrock east bank
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Bronze pickaxe in inventory
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Iron pickaxe in inventory
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Steel pickaxe in inventory
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Mithril pickaxe in inventory
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Adamant pickaxe in inventory
12:44:30 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Rune pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_Deposit: Successfully deposited materials
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Bronze pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Iron pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Steel pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Mithril pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Adamant pickaxe in inventory
12:44:31 AM: Simbatester: Entering Func: MSI_FindItemSlots: Found 0 Rune pickaxe in inventory
12:44:42 AM: Simbatester: Player Action: MSI_MainLoop: Failed to bank materials
SCAR Code:with MSI_Players[CurrentPlayer] do
begin
SetLength(itemsDeposited, Length(Items[CurrentScript]));
for i := 0 to High(Items[CurrentScript]) do
begin
intItems := MSI_VarToIntArray(Items[CurrentScript][i]);
itemsDeposited[i] := MSI_Deposit(intItems, []);
end;
end;
for i := 0 to High(itemsDeposited) do
if (not itemsDeposited[i]) then
begin
Result := False;
ProgressReportArray[CurrentPlayer].FalseReason := 'Failed to deposit items';
Exit;
end;
what is happening is in the first bit
it sets the length of itemsDeposited to however many objects there are, then it goes throughSCAR Code:with MSI_Players[CurrentPlayer] do
begin
SetLength(itemsDeposited, Length(Items[CurrentScript]));
for i := 0 to High(Items[CurrentScript]) do
begin
intItems := MSI_VarToIntArray(Items[CurrentScript][i]);
itemsDeposited[i] := MSI_Deposit(intItems, []);
end;
end;
the first time it banks everything because im holding the pickaxe and sets itemsDeposited[0] to true
but because everything is banked when it does it again it sets itemsDeposited[1] to false
then in the second bit of code
it goes through, sees that itemsDeposited[1] is false, and logs the player out saying that it failed to deposit the itemsSCAR Code:for i := 0 to High(itemsDeposited) do
if (not itemsDeposited[i]) then
begin
Result := False;
ProgressReportArray[CurrentPlayer].FalseReason := 'Failed to deposit items';
Exit;
end;
~shut












Reply With Quote








