OSI SKILL MENU REQUEST - Printable Version +- SphereCommunity (https://forum.spherecommunity.net) +-- Forum: Sphere X (/Forum-Sphere-X) +--- Forum: Script Requests (/Forum-Script-Requests--60) +--- Thread: OSI SKILL MENU REQUEST (/Thread-OSI-SKILL-MENU-REQUEST) |
OSI SKILL MENU REQUEST - jexnico - 07-30-2021 12:46 AM Hello people I looked on the forum but I couldn't find it, that's why I made this post I'm looking for the osi skillmenu script, would anyone have it? if yes, could you teach me how to configure? I will leave a representative image fixed thanks like this: RE: OSI SKILL MENU REQUEST - golfin - 07-30-2021 12:29 PM Why are you looking for him when you already have him? Download SphereX-Scriptpack:https://github.com/cbnolok/SphereX-Scriptpack I was more interested in the font type that is used in the picture. RE: OSI SKILL MENU REQUEST - jexnico - 08-06-2021 11:20 PM (07-30-2021 12:29 PM)golfin Wrote: Why are you looking for him when you already have him? Download SphereX-Scriptpack:https://github.com/cbnolok/SphereX-Scriptpack sphereX is a stable version? RE: OSI SKILL MENU REQUEST - jexnico - 08-07-2021 04:17 AM I found the script but I don't know how to configure it... can someone help me? //**************************************************************************** // SphereServer ©1997-2009 // This script is part from the Sphere Community Script Pack. // You can download the full pack from: http://www.sphereserver.net //**************************************************************************** // FILE LAST UPDATED: VERSION=0.56b // // SCRIPT CREDITS // -------------- // ShiryuX - All the script // // SCRIPT DOCUMENTATION // -------------------- // This is a basic script that generates all your colored crafting files. // By default, only a few comes scripted, so I did this to save time. // Before using this, you need to define the colored materials to generate. // Along with the items, it will generate a table for each color. // // Now, how this baby works... // Mainly, it loops through all the items in all the categories of all skills // For each item, it will do the following proccess: // 1. a. This will read the options defined in each skill per each item. // b. If option colored is 1, proceed to step 2. // 2. It creates a base item with MAX properties. // 3. Apply all the RES* and DAM* tags, apply the function defined for the color. // 4. Open/Creates a file in "scripts/items/crafting/" // Name of the file is: "sphere_crafting_SKILL_COLOR.scp" // // After the main proccess of creating the item scripts per each color: // 1. Reads all the entries in crafting skillmenues // 2. Open/Creates a file in "scripts/add-on/skillmenu/" // Name of the file is: "sphere_skillmenu_SKILL_colored.scp" // // To start the whole proccess, just write "ScriptCrafting" in the console // Good luck and enjoy it. [function ScriptCrafting] f_crafting_generate blacksmithing f_crafting_generate bowcraft f_crafting_generate carpentry f_crafting_generate tailoring [function f_crafting_generate] local.skill = <args> serv.log @CraftingGenerator :: Starting generation of <local.skill>. for 1 10 if <isempty <def.<local.skill>_material_<dlocal._for>>> serv.log @CraftingGenerator :: Finished generation of <local.skill>. return 1 endif f_make_craftinglist <local.skill>,<local._for> for u 1 20 if !<isempty <def.<local.skill>_category_<dlocal.u>_1>> for y 1 100 if !<isempty <def.<local.skill>_category_<dlocal.u>_<dlocal.y>>> if <isempty <def.<local.skill>_category_<dlocal.u>_<dlocal.y>_opt>> local.colored = <getargv 2 <def.<local.skill>_options_default>> else local.colored = <getargv 2 <def.<local.skill>_category_<dlocal.u>_<dlocal.y>_opt>> endif if <local.colored> == 1 f_craft_item <def.<local.skill>_category_<dlocal.u>_<dlocal.y>>,<local.skill>,<local._for> endif endif endfor endif endfor endfor [function f_make_craftinglist] local.skill = <argv[0]> local.material = <argv[1]> local.topen = "scripts/add-on/skillmenu/sphere_skillmenu_<local.skill>_colored.scp" // _<def.<local.skill>_material_<dlocal.material>> file.mode.append = 1 if <file.open <local.topen>> file.writeline "[defname sphere_crafting_blacksmithing_<def.<local.skill>_material_<dlocal.material>>]" for y 1 20 if !<isempty <def.<local.skill>_category_<dlocal.y>_1>> local.items = 1 for z 1 100 if !<isempty <def.<local.skill>_category_<dlocal.y>_<dlocal.z>>> if <isempty <def.<local.skill>_category_<dlocal.y>_<dlocal.z>_opt>> local.colored = <getargv 2 <def.<local.skill>_options_default>> else local.colored = <getargv 2 <def.<local.skill>_category_<dlocal.y>_<dlocal.z>_opt>> endif if <local.colored> == 1 file.writeline <local.skill>_<dlocal.material>_category_<dlocal.y>_<dlocal.items> "<def.<local.skill>_category_<dlocal.y>_<dlocal.z>>_<def.<local.skill>_material_<dlocal.material>>" local.items ++ endif endif endfor if <local.items> file.writeline " " endif endif endfor file.writeline " " file.close endif // f_craft_item $item,$skill,$resource [function f_craft_item] local.item = <argv[0]> local.skill = <argv[1]> local.material = <argv[2]> serv.newitem <local.item> new.name = <def.<local.skill>_material_<dlocal.material>_name> <new.name> new.color = <def.<local.skill>_material_<dlocal.material>_color> if <new.isweapon> new.hitpoints = 48 args = <def.<local.skill>_material_<dlocal.material>_weaps_dam> new.tag0.DamPhysical = <eval <new.tag0.DamPhysical> + <argv[0]>> new.tag0.DamFire = <eval <new.tag0.DamPhysical> + <argv[1]>> new.tag0.DamCold = <eval <new.tag0.DamPhysical> + <argv[2]>> new.tag0.DamPoison = <eval <new.tag0.DamPhysical> + <argv[3]>> new.tag0.DamEnergy = <eval <new.tag0.DamPhysical> + <argv[4]>> if !<isempty <argv[5]>> if (strmatch("<def.<local.skill>_material_<dlocal.material>_name>","heartwood")) local.tocall = <argv[5]> else new.<argv[5]> endif endif elif <new.isarmor> new.hitpoints = 48 args = <def.<local.skill>_material_<dlocal.material>_armor_res> new.tag0.ResPhysical = <eval <new.tag0.ResPhysical> + <argv[0]>> new.tag0.ResFire = <eval <new.tag0.ResFire> + <argv[1]>> new.tag0.ResCold = <eval <new.tag0.ResCold> + <argv[2]>> new.tag0.ResPoison = <eval <new.tag0.ResPoison> + <argv[3]>> new.tag0.ResEnergy = <eval <new.tag0.ResEnergy> + <argv[4]>> if !<isempty <argv[5]>> if (strmatch("<def.<local.skill>_material_<dlocal.material>_name>","heartwood")) local.tocall = <argv[5]> else new.<argv[5]> endif endif endif call f_script_item <new.uid> new.remove [function f_script_item] ref1 = <args> file.close file.mode.append = 1 local.topen = scripts/items/crafting/sphere_crafting_<local.skill>_<def.<local.skill>_material_<dlocal.material>>.scp if <file.open <local.topen>> file.writeline "[ITEMDEF <ref1.baseid>_<def.<local.skill>_material_<dlocal.material>>]" file.writeline "ID=<ref1.id>" file.writeline "NAME=<ref1.name>" file.writeline "TYPE=<ref1.type>" args = <serv.itemdef.<ref1.baseid>.resources> if <serv.itemdef.<local.item>.resources.1.key> == <def.<local.skill>_resourceid> local.resources = "<eval <serv.itemdef.<local.item>.resources.1.val>> <def.<local.skill>_material_<dlocal.material>_resourceid>" if <argv> > 1 for j 1 <eval <argv>-1> local.resources .= ", <argv[<local.j>]>" endfor endif else local.resources = <argv[0]> if <argv> > 1 for j 1 <eval <argv>-1> if <serv.itemdef.<local.item>.resources.<dlocal.j>.key> == <def.<local.skill>_resourceid> local.resources .= ", <serv.itemdef.<local.item>.resources.<dlocal.j>.val> <def.<local.skill>_material_<dlocal.material>_resourceid>" else local.resources = ", <serv.itemdef.<local.item>.resources.<dlocal.j>.val> <strtrim <serv.itemdef.<local.item>.resources.<dlocal.j>.key>>" endif endfor endif endif file.writeline "RESOURCES=<local.resources>" file.writeline "SKILLMAKE=<serv.itemdef.<ref1.baseid>.skillmake>" file.writeline "WEIGHT=<fval <ref1.weight>>" if <ref1.tag.LowerRequeriments> file.writeline "REQSTR=<muldiv <ref1.reqstr>,<ref1.tag.lowerrequeriments>,100>" endif if <ref1.istevent.t_iprop> file.writeline "TEVENTS=t_iprop" for 1 <def.itemprops> if !<isempty <ref1.tag.<getargv 5 <def.itemprop_<local.x>>>>> file.writeline "TAG.<getargv 5 <def.itemprop_<local.x>>=<ref1.tag0.<getargv 5 <def.itemprop_<local.x>>>>" endif endfor endif if <ref1.isweapon> local.category = "Provisions - Weapons" local.subsection = <qval <ref1.baseid> == <ref1.id> ? "<ref1.typedef.name>" : "<serv.itemdef.<ref1.id>.name>"> elif <ref1.isarmor> local.category = "Provisions - Armor" if (<ref1.id> > 02773) && (<ref1.id> < 027e9) local.subsection = "<strarg <ref1.typedef.name>> Samurai Armor" else local.subsection = "<strarg <ref1.typedef.name>> Armor" endif if <ref1.layer> == layer_helm local.subsection = "Helmets" elif <ref1.layer> == layer_hand2 local.subsection = "Shields" endif elif <ref1.type> == t_weapon_arrow local.category = "Provisions - Weapons" local.subsection = "Ammunition" else serv.log @CraftingGenerator :: Cannot recognize type <ref1.type> of <ref1.typedef.name> (<ref1.baseid>) endif file.writeline "CATEGORY=<local.category> - Colored" file.writeline "SUBSECTION=<def.<local.skill>_material_<dlocal.material>_name> <local.subsection>" file.writeline "DESCRIPTION=<ref1.name>" if <ref1.tag0.Penalty.Meditation> file.writeline "TAG.Penalty.Meditation=1" endif if <ref1.tag0.Penalty.Stealth> file.writeline "TAG.Penalty.Stealth=<ref1.dtag0.Penalty.Stealth>" endif if <ref1.tag0.DamPhysical> file.writeline "TAG.DamPhysical=<ref1.dtag0.DamPhysical>" endif if <ref1.tag0.DamFire> file.writeline "TAG.DamFire=<ref1.dtag0.DamFire>" endif if <ref1.tag0.DamCold> file.writeline "TAG.DamCold=<ref1.dtag0.DamCold>" endif if <ref1.tag0.DamPoison> file.writeline "TAG.DamPoison=<ref1.dtag0.DamPoison>" endif if <ref1.tag0.DamEnergy> file.writeline "TAG.DamEnergy=<ref1.dtag0.DamEnergy>" endif if <ref1.tag0.ResPhysical> file.writeline "TAG.ResPhysical=<ref1.dtag0.ResPhysical>" endif if <ref1.tag0.ResFire> file.writeline "TAG.ResFire=<ref1.dtag0.ResFire>" endif if <ref1.tag0.ResCold> file.writeline "TAG.ResCold=<ref1.dtag0.ResCold>" endif if <ref1.tag0.ResPoison> file.writeline "TAG.ResPoison=<ref1.dtag0.ResPoison>" endif if <ref1.tag0.ResEnergy> file.writeline "TAG.ResEnergy=<ref1.dtag0.ResEnergy>" endif file.writeline " " file.writeline "ON=@Create" if !(strmatch("<local.tocall>","0")) file.writeline "<local.tocall>" endif file.writeline "HITPOINTS={<eval <ref1.hitpoints>-12> <ref1.hitpoints>}" file.writeline "COLOR=<ref1.color>" file.writeline " " file.close endif [eof] RE: OSI SKILL MENU REQUEST - golfin - 08-07-2021 01:36 PM I don't really understand why you want to replace the older version from 56b to the X version. It is implemented there. You just enter event e_player_crafting_event in spehere.ini. And of course you then edit the products in the crafting def files. Go to discord, there you will find out more and sooner. RE: OSI SKILL MENU REQUEST - Jhobean - 08-26-2021 03:25 AM Ask your specific question here or Feel free to come talk in private in discord if you need help. |