summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/026-1/munro.txt3
-rw-r--r--world/map/npc/items/launcher_ammo.txt18
-rw-r--r--world/map/npc/items/unequipcb.txt8
3 files changed, 13 insertions, 16 deletions
diff --git a/world/map/npc/026-1/munro.txt b/world/map/npc/026-1/munro.txt
index 1151e3b8..ab304091 100644
--- a/world/map/npc/026-1/munro.txt
+++ b/world/map/npc/026-1/munro.txt
@@ -69,6 +69,7 @@ L_disablemunro:
disablenpc "Munro";
L_End:
+ setnpctimer 0;
end;
}
@@ -81,7 +82,7 @@ function|script|CheckMunro|,
if ((gettime(6) == 12 && gettime(5) >= 23) || (gettime(6) == 12 && gettime(5) <= 26))
goto L_Return;
- // unequipbyid @slotId;
+ callfunc "UnequipLater";
L_Return:
return;
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";