summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-03-13 09:45:01 -0300
committerJesusaves <cpntb1@ymail.com>2019-03-13 09:45:01 -0300
commit0e6ee986dccd10a025088711a5bb58756bd70bcc (patch)
treeb0b11ae3efe297943cf5db4ff5d166917cd38b12 /npc
parent9dd7472d72c318c2b4f30f8c806872fc0ca9b6fe (diff)
downloadserverdata-0e6ee986dccd10a025088711a5bb58756bd70bcc.tar.gz
serverdata-0e6ee986dccd10a025088711a5bb58756bd70bcc.tar.bz2
serverdata-0e6ee986dccd10a025088711a5bb58756bd70bcc.tar.xz
serverdata-0e6ee986dccd10a025088711a5bb58756bd70bcc.zip
Implement Alchemy System for Xanthem's House.
Now he only needs to buy--err, find the recipes :>
Diffstat (limited to 'npc')
-rw-r--r--npc/012-8/utils.txt9
-rw-r--r--npc/functions/craft/alchemy.txt44
-rw-r--r--npc/scripts.conf4
3 files changed, 55 insertions, 2 deletions
diff --git a/npc/012-8/utils.txt b/npc/012-8/utils.txt
index e8c5ceb9a..c1f3a9c51 100644
--- a/npc/012-8/utils.txt
+++ b/npc/012-8/utils.txt
@@ -83,8 +83,13 @@ OnInit:
012-8,29,24,0 script Cauldron#RES_0128 NPC_NO_SPRITE,{
- npctalk l("Alchemy system Not Yet Implemented - Blame Jesusalva");
- end;
+ //npctalk l("Alchemy system Not Yet Implemented - Blame Jesusalva");
+ mesc l("What will you brew today?");
+ if (AlchemySystem(CRAFT_PLAYER))
+ mesc l("Success!"), 3;
+ else
+ mesc l("That didn't work!"), 1;
+ close;
OnInit:
.distance=3;
diff --git a/npc/functions/craft/alchemy.txt b/npc/functions/craft/alchemy.txt
new file mode 100644
index 000000000..d0b8efa01
--- /dev/null
+++ b/npc/functions/craft/alchemy.txt
@@ -0,0 +1,44 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Alchemy System (Player, Guild, NPC)
+// Notes:
+// Base for Evol MR
+
+// Usage: AlchemySystem ({scope})
+// Scopes: CRAFT_NPC, CRAFT_PLAYER, CRAFT_GUILD
+// If an invalid scope is passed, .knowledge won't be set but will be required
+// Returns true on success, false on failure
+function script AlchemySystem {
+ // Set .scope, .knowledge and .success
+ .scope=getarg(0, CRAFT_PLAYER);
+ if (.scope == CRAFT_PLAYER)
+ copyarray(.knowledge,RECIPES_ALCHEMY,getarraysize(RECIPES_ALCHEMY));
+ else if (.scope == CRAFT_GUILD)
+ copyarray(.knowledge,$@RECIPES_ALCHEMY[getcharid(2)],getarraysize($@RECIPES_ALCHEMY[getcharid(2)]));
+ .success=false;
+
+ setskin "craft2";
+ .@var$ = requestcraft(2);
+ .@craft = initcraft(.@var$);
+ .@entry = findcraftentry(.@craft, CRAFT_ALCHEMY);
+ if (debug || $@GM_OVERRIDE) mes "found craft entry: " + .@entry;
+ if (debug || $@GM_OVERRIDE) mes "knowledge value: " + .knowledge[.@entry];
+ if (.@entry < 0) {
+ .success=false;
+ } else {
+ // Check against COOKING_RECIPES
+ // using CraftCarpCocktail for example (Craft ID)
+ // Checking somehow if you know it (array_find?)
+ if (.scope == CRAFT_NPC || .knowledge[.@entry]) {
+ usecraft .@craft;
+ .success=true;
+ } else {
+ .success=false;
+ }
+ }
+ deletecraft .@craft;
+ setskin "";
+ return .success;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index ad0e2113a..51f620e56 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -67,6 +67,10 @@
"npc/items/shovel.txt",
"npc/items/teleporter.txt",
+// Crafting System
+"npc/functions/craft/alchemy.txt",
+
+
// custom atcommands
"npc/commands/music.txt",
"npc/commands/exp.txt",