From 14b0731f8a74aad602e004fa726c53584bb72029 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Sun, 24 Nov 2013 14:44:15 -0800 Subject: Fix style and logic of UnequipCB --- world/map/npc/items/launcher_ammo.txt | 18 +++++++----------- world/map/npc/items/unequipcb.txt | 8 ++++---- 2 files changed, 11 insertions(+), 15 deletions(-) (limited to 'world/map/npc/items') 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"; -- cgit v1.2.3-60-g2f50