Code:
[proc,disarm_trapped_chest](dbrow $data, loc $loc, coord $loc_coord, int $loc_angle, locshape $loc_shape)
// https://www.youtube.com/watch?v=5SxYEdRdiPU
mes("You find a trap on the chest,");
p_delay(1);
mes("You disable the trap.");
sound_synth(locked, 0, 0);
p_delay(1);
mes("You open the chest.");
sound_synth(chest_open, 0, 0);
p_delay(1);
mes("You find treasure inside!");
anim(seq_536, 0);
~trapped_chest_check_for_reward($data);
def_int $experience = db_getfield($data, trapped_chest:experience, 0);
givexp(thieving, $experience);
def_int $respawn_ticks = db_getfield($data, trapped_chest:respawn_ticks, 0);
loc_del($respawn_ticks);
loc_add($loc_coord, loc_2574, $loc_angle, $loc_shape, $respawn_ticks);
Code:
[inv_button1,bank_deposit:inv] ~bank_deposit(last_slot, 1);
[inv_button2,bank_deposit:inv] ~bank_deposit(last_slot, 5);
[inv_button3,bank_deposit:inv] ~bank_deposit(last_slot, 10);
[inv_button4,bank_deposit:inv] ~bank_deposit(last_slot, ^max_32bit_int);
[inv_button5,bank_deposit:inv] ~bank_deposit(last_slot, null);
[inv_buttond,bank_deposit:inv]
def_int $slot = last_slot;
// check if the slot is valid.
if ($slot < 0 | $slot >= inv_size(inv)) return;
// check if the slot was empty.
def_namedobj $obj = inv_getobj(inv, $slot);
if ($obj = null) return;
// TODO inv_buttond does not set a last_verifyobj. Maybe it should?
def_int $slot2 = last_useslot;
// check if the slot is valid.
if ($slot2 < 0 | $slot2 >= inv_size(inv)) return;
inv_swap(inv, $slot, $slot2);
[proc,bank_deposit](int $slot, int $requested_number)
// Check the slot was valid.
if ($slot < 0 | $slot >= inv_size(inv)) return;
// Check if the slot was empty.
def_namedobj $item = inv_getobj(inv, $slot);
if ($item = null) return;
if (objectverify($item, last_verifyobj) = false) {
inv_resendslot(inv, 0);
return;
}
// How many did they want to deposit?
if ($requested_number <= 0) {
p_countdialog;
if (last_int <= 0) return;
$requested_number = last_int;
}
// How many have they got?
def_int $number = inv_total(inv, $item);
// How many should we deposit?
if ($requested_number < $number) $number = $requested_number;
// Is it actually bankable?
if (~bank_check_nobreak($item) = true) {
// the current bank checks are jumps.
// custom handling here if needed.
return;
}
// Okay, deposit it into the bank.
~bank_deposit_request(inv, $item, $number, $slot);