diff options
Diffstat (limited to 'npc/functions/craft/alchemy.txt')
-rw-r--r-- | npc/functions/craft/alchemy.txt | 44 |
1 files changed, 44 insertions, 0 deletions
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; +} |