Craftmenu
De Mystical Tales
Craftmenu é uma ferramenta exclusiva da Staff para criar e regenciar menus de criação de itens para as skills de fabricação como Blacksmithing ou Carpentry.
Com Craftmenu podemos criar menus dinâmicos com sub-mebus, itens ou funções colocando restrições e materiais necessários para um dado item ou sub-menu aparecer.
Aliando este sistema ao Itemforge e com um pouco de conhecimento sobre Sphere Scripting podemos criar virtualmente qualquer menu de criação de itens de skill dando uma aparência nova a uma skill ou ainda criando uma nova em poucos minutos.
Pode ser acessado através do comando .craftmenu por qualquer GM que tenha PLEVEL maior que 1.
Conteúdo |
Raiz
A raiz do craftmenu funciona como o seu drive C no computador: Lá se encontra cada skillmenu diferente.
É lá que você vai achar os menus de Tinkering, Blacksmithing, menus especiais de itens e etc. A grosso modo, quando você dá um duplo click numa ferramenta aparecerá um destes skillmenus.
A função da raiz é criar e gerenciar novos skillmenus e os jogadores não tem acesso a ele.
Os números ao lado dos nomes são o número de referência (id) daquele menu e só estarão visíveis para os GMs.
Um novo menu pode ser criado utilizando o botão Add (que será discutido abaixo).
Aqui está a página inicial do menu de Tinkering, que poderá ser acessado dando um duplo click nas ferramentas de artesão (Tinkertools).
Nela encontramos as principais sub-divisões de categorias de itens para esta skill.
Atravez do brotão Add poderemos inserir um novo sub-menu, um item ou uma função.
Um menu pode ser misto, contendo sub-menus, itens e funções, todos na mesma tela.
Como exemplo, acessemos o menu de joias do artesão:
Aqui podemos ver mais quatro sub-menus em amarelo e uma função em laranja.
Sub-menus sempre aparecerão em amarelo.
Funções sempre aparecerão em laranja.
Itens sempre aparecerão em branco.
Um Craftmenu pode ter tantos sub-menus encadeados quantos forem necessários separando os itens por tipo, modelo, material e até escondendo sub-menus restringindo raca ou ferramenta especial.
A função (em laranja na figura à cima) não chamará um novo Craftmenu e nem uma subcessão (apesar de poder) mas chamará um comando de script puro destinado a selecionar e lapidar uma pedra bruta coletada por Mining. Isso também é possivel de se fazer.
Para criar um novo craftmenu, simplesmente vá até a raiz e adicione um novo sub-menu.
Ao acessar seu novo Craftmenu, ele está vazio:
Você pode então popular seu Craftmenu adicionando novos menus, itens ou funções.
Para que ele seja acessado por um duplo click por um determinado item podemos fazer o seguinte:
- Com auxilio do Itemforge, crie uma ferramenta apropriada.
- No lugar destinado a TEvents no Itemforge adicione o evento t_crafting_tool.
- No lugar destinado ao TDATA1 no Itemforge, coloque o número de identificação do menu. (por exemplo, 4 para o conjunto de flechas, conforme a primeira figura).
- Salve o item, digite .itemforge export e então .serv.resync.
Agora sua nova ferramenta foi criada e você já pode acessar o novo menu através de sua nova ferramenta.
Podemos adicionar um novo sub-menu, um item ou função a um craftmenu pelo botão Add. A seguinte tela deve aparecer:
Ao pressionar o botão Novo Sub-menu aqui poderemos colocar um sub-menu através do seguinte painel:
Preencha convenientemente o nome do submenu.
Quando seu craftmenu for acessado, os sub-menus aparecerão em ordem alfabética.
As Condições de teste serão discutidas adiante.
Adicionando um item
Similar à adição de um sub-menu porém desta vez você deverá especificar um ITEMDEF válido (criado por script ou Itemforge).
Você também poderá especificar em que condições o item aparecerá no menu com as Condições de teste que serão discutidas adiante.
Para aumentar a produção, dois botões existem alí:
- Procurar no Itemforge: Permite que você navegue nas categorias e sub-seções do Axis para selecionar um item criado pelo Itemforge. Ideal para um item que ainda não foi exportado ou carregado pelo Resync.
- Selecionar no world: Abre um alvo para que você selecione um item do world, na sua mochila por exemplo.
A ordem que os itens aparecerão no menus será alfabética. Mas ordem alfabética do defname e não do name!
Adicionando uma função
Uma função poderá executar uma linha pura de script como CAST s_firedarts, NAME=NovoNome ou qualquer coisa que seja necessária.
É necessário dar um nome para esta função, que nem sempre corresponderá ao que ela faz.
Restrições: Nunca use variáveis na função. Isso quer dizer nunca utilizar tags, vars ou outras funções e sobretudo, nunca utilize caracteres < e >.
Condições de teste
Você pode especificar condições de teste para que os menus ou itens só apareçam para os jogadores em determinadas situações.
Você pode adicionar até 4 condições de teste diferente. O item somente irá aparecer se todas as condições de teste forem positivas.
No exemplo da figura, o item só aparecerá no menu se o jogador tiver mais do que 12.3 em Inscription E tiver 4 fibras vegetais E for um Elfo.
Testar skill
Testa se o jogador tem mais do que um determinado número de pontos de uma determinada skill.
Aparecerá um quadro no qual você poderá escolher a skill de uma lista e depois um painel para você escrever a quantidade de pontos como 50.0 ou 12.3.
Testar item
Testa se o jogador tem a determinada quantidade de um determinado item.
No primeiro quadro, você deverá escrever qual é o ITEMDEF do item a ser testado, como i_fibra_vegetal, i_coin_copper ou i_log. Adicionalmente, você poderá escrever a letra t e então precionar Okay. Isso fará com que um alvo apareça para você selecionar um item do world, como por exemplo na sua mochila.
O segundo quadro se destina a dizer a quantidade deste material necessário. Como 4 i_fibra_vegetal, como no exemplo da figura a cima.
Receita
Para o sistema de projetos. Não disponível ainda pois ainda não discutimos o sistema de projetos.
Personalizado
Permite que você descreva uma função de script que retorne VERDADEIRO ou FALSO e que não se encaixe nas anteriores.
Bons exemplos disso são:
- IsAnao: Testa se o jogador é um anão
- IsElfo: Testa se o jogador é um elfo
- IsDrow: Testa se o jogador é um drow
- IsHumano: Testa se o jogador é um humano
- IsOrc: Testa se o jogador é um orc
- IsNight: Testa se está de noite
- IsEvent.e_event_aqui: Seta se o jogador tem um determinado evento