Fazer uma ficha enviar rolagens para a mesa¶
Fazer uma ficha enviar rolagens para a mesa¶
- Adicione uma tag button ao Lua Form
- Manipule o evento "onClick" da tag button
- Utilize o código abaixo:
| \<button> \<event name="onClick"> local rolagem = rrpg.interpretarRolagem(sheet.ataqueDoPersonagem); if not rolagem.possuiAlgumDado then -- se o usuario não tiver preenchido qual dado rolar, -- vamos adicionar um 1d20 + na "fórmula da rolagem" rolagem = rrpg.interpretarRolagem("1d20"):concatenar(rolagem); end; local mesaDoPersonagem = rrpg.getMesaDe(sheet); if mesaDoPersonagem ~= nil then mesaDoPersonagem.chat:rolarDados(rolagem, "Ataque do personagem"); end; \</event> \</button> |
|---|
- Altere o código conforme a necessidade
O que o código acima faz?¶
- Utiliza a função interpretarRolagem da biblioteca "rrpg" para interpretar o campo "ataqueDoPersonagem" como uma rolagem de dados.
- Verifica se a rolagem utiliza algum dado (d4, d6, d8, etc..)... Se não possuir dado na rolagem (Exemplos: "+5", ou "-2"), faz:
- Interpreta uma nova rolagem "1d20" e a concatena/junta ao inicio (Para ficar, por exemplo, "1d20 + 5" ou "1d20 - 2").
- Usando a ficha atual (sheet), tenta localizar o objeto mesa à qual a ficha pertence. É usado a função getMesaDe da biblioteca rrpg para isso.
- Se conseguiu localizar o objeto mesa à qual a ficha atual pertence:
- invoca o método rolarDados do chat da mesa, passando a rolagem que queremos e um texto adicional "Ataque do personagem".
Mudanças que você pode querer fazer no código acima¶
- O código acima usa o texto da rolagem contido no campo chamado "ataqueDoPersonagem". Talvez a rolagem de sua ficha esteja em outro campo.
- Quando a rolagem não usar nenhum dado (d4, d6, d8, etc..) o código adiciona "1d20" ao inicio dela. Talvez o sistema da sua ficha não utiliza 1d20 nesta rolagem!
- Que tal alterar o texto "Ataque do personagem"?
- Talvez você queira que somente o mestre e o jogador dono da ficha possam rolar dados desta ficha.
- Você pode utilizar a função getPersonagemDe da biblioteca rrpg e verificar se sua propriedade dono é igual à propriedade meuJogador da variável mesaDoPersonagem. Se for igual, é porque a ficha pertence ao usuário.
- Você pode utilizar a propriedade isMestre do objeto meuJogador para verificar se o usuário é mestre da mesa.
- O código que faz esta verificação seria parecido com:
| local personagem = rrpg.getPersonagemDe(sheet); if (personagem ~= nil) then local mesa = personagem.mesa; if ((personagem.dono == mesa.meuJogador) or (mesa.meuJogador.isMestre)) then -- permitir enviar a rolagem end; end; |
|---|
Veja também:¶
- Orientações ao usar código LUA em um Lua Form
- Lua Form e NodeDatabase
- Biblioteca rrpg
- Objeto Mesa
- Objeto Rolagem
- Objeto Chat
Created with the Personal Edition of HelpNDoc: Leave the tedious WinHelp HLP to CHM conversion process behind with HelpNDoc