diff options
Diffstat (limited to 'world/map/npc/items')
-rw-r--r-- | world/map/npc/items/launcher_ammo.txt | 18 | ||||
-rw-r--r-- | world/map/npc/items/unequipcb.txt | 8 |
2 files changed, 11 insertions, 15 deletions
diff --git a/world/map/npc/items/launcher_ammo.txt b/world/map/npc/items/launcher_ammo.txt index 3b0b21f8..79cf057b 100644 --- a/world/map/npc/items/launcher_ammo.txt +++ b/world/map/npc/items/launcher_ammo.txt @@ -2,9 +2,10 @@ // Ammo Needs to know Launcher and vice versa. // // Behavior: -// Ammo is always unequipped +// - If only one is equipped, do nothing +// - If incompatible launcher and ammo are equipped, unequip the ammo // -// Variables passed to this script: +// Variables passed to these scripts: // // @LauncherType, @AmmoType // @@ -12,14 +13,8 @@ function|script|CheckLauncher|, { - set @AmmoEquip, (getequipid(equip_arrow) + 1); - if (@AmmoEquip) - goto L_Return; - -L_NoAmmoEquip: - set @LauncherType, 0; - -L_Return: + if (getequipid(equip_arrow) == -1) + set @LauncherType, 0; return; } @@ -28,9 +23,10 @@ function|script|CheckAmmo|, if ((@LauncherType == @AmmoType) || (!@LauncherType)) goto L_Return; -L_Unequip: callfunc "UnequipLater"; L_Return: + set @LauncherType, 0; + set @AmmoType, 0; return; } diff --git a/world/map/npc/items/unequipcb.txt b/world/map/npc/items/unequipcb.txt index ec185f02..62dc7715 100644 --- a/world/map/npc/items/unequipcb.txt +++ b/world/map/npc/items/unequipcb.txt @@ -6,7 +6,7 @@ botcheck.gat,0,0,0|script|UnequipCB|-1,-1,-1 { OnUnequip: - unequipbyid (@unequip_slot -1); + unequipbyid (@unequip_slot - 1); set @unequip_slot, 0; end; } @@ -14,11 +14,11 @@ OnUnequip: // Paired with unequipcb function|script|UnequipLater|, { - if(@unequip_slot) + // if there are multiple items that want to be removed, + // only schedule one timer - scripts will be called again + if (@unequip_slot) goto L_Return; - goto L_ReturnTimer; -L_ReturnTimer: set @unequip_slot, (@slotId + 1); addtimer 0, "UnequipCB::OnUnequip"; |