diff options
author | Jesusaves <cpntb1@ymail.com> | 2019-03-13 09:45:01 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2019-03-13 09:45:01 -0300 |
commit | 0e6ee986dccd10a025088711a5bb58756bd70bcc (patch) | |
tree | b0b11ae3efe297943cf5db4ff5d166917cd38b12 /npc | |
parent | 9dd7472d72c318c2b4f30f8c806872fc0ca9b6fe (diff) | |
download | serverdata-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.txt | 9 | ||||
-rw-r--r-- | npc/functions/craft/alchemy.txt | 44 | ||||
-rw-r--r-- | npc/scripts.conf | 4 |
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", |