summaryrefslogtreecommitdiff
path: root/world/map/npc/items
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/items')
-rw-r--r--world/map/npc/items/max_stat.txt23
-rw-r--r--world/map/npc/items/nobow_item.txt29
2 files changed, 52 insertions, 0 deletions
diff --git a/world/map/npc/items/max_stat.txt b/world/map/npc/items/max_stat.txt
new file mode 100644
index 00000000..a8c72190
--- /dev/null
+++ b/world/map/npc/items/max_stat.txt
@@ -0,0 +1,23 @@
+// ------------------------------------------------------------
+// Variables passed to this script:
+// @slotId The slot in which the item would have been equipped in.
+// This is passed automagically when called in an equip script.
+// @bStat The stat to check against.
+// Usually one of: bStr, bAgi, bVit, bInt, bDex, bLuk;
+// but can be anything that works with .
+// @maxbStatVal The minimum stat value to accept this item.
+// ------------------------------------------------------------
+
+function|script|RequireMaxStat
+{
+ set @bStatVal, @bStat;
+ // If the requirement isn't met, we set an unequip trigger.
+ // The item is now removed.
+ if (@bStat > @maxbStatVal)
+ goto L_Unequip;
+ return;
+
+L_Unequip:
+ callfunc "UnequipLater";
+ return;
+}
diff --git a/world/map/npc/items/nobow_item.txt b/world/map/npc/items/nobow_item.txt
new file mode 100644
index 00000000..a518fdf4
--- /dev/null
+++ b/world/map/npc/items/nobow_item.txt
@@ -0,0 +1,29 @@
+// Cannot have a (power) bow in inventory to equip
+// Variables passed to this script:
+// @slotId The slot in which the item would have been equipped in. This is passed automagically when called in an equip script.
+
+function|script|NoBowItem
+{
+ // Developers are always allowed to use this item
+ if (getgmlevel() >= G_DEV)
+ goto L_Return;
+
+ // Bows which are not allowed
+ if (countitem("BansheeBow") > 0)
+ goto L_Abort;
+ if (countitem("DesertBow") > 0)
+ goto L_Abort;
+ if (countitem("ForestBow") > 0)
+ goto L_Abort;
+ // Don't care with Bow/ShortBow/slings and darts
+
+ goto L_Return;
+
+L_Abort:
+ message strcharinfo(0), "This item is too cumbersome to use and could potentially break your valuable bow by accident. So you give up.";
+ callfunc "UnequipLater";
+ goto L_Return;
+
+L_Return:
+ return;
+}