Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Lançamento de dado melhorado
5 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Lançamento de dado melhorado
Detalhes da questão
Endereço do fórum: https://testandobnh.forumeiros.com
Versão do fórum: phpBB3
Descrição
Olá,
Estamos fazendo um fórum de RPG que utilizará diversos dados tanto para o personagem atacar, quanto para defender, entre outras ações.
Os personagens possuem atributos próprios e as rolagens vão possuir modificadores que dependem destes atributos e isso vai escalar com o poder do personagem.
Sendo assim, é possível, por exemplo, no começo um jogador ter que rolar uma vez 1d20 + 4, enquanto jogadores avançados poderão rolar cinco vezes, ou mais, 1d20 + 47. O sistema vai possuir vários modificadores possíveis.
Eu conheço a opção do [rand] do fórum, onde poderíamos pedir para os jogadores rolarem algo como
- Código:
[rand]4,24[/rand]
Com isso em mente, fui olhar a opção de Lançamento de Dados do fórum. O Lançamento de Dados é bom porque os dados são rolados pela conta do usuário 1, sendo impossível para o jogador alterar depois em qualquer edição de post. Porém, esta opção não permite os modificadores dos dados, que não só são vitais para o jogo em si, como são a principal preocupação destes dados, pois se for necessário fazer a soma em separado o povo continuará com dificuldades ou preguiça de jogar.
Tendo essa base bem estabelecida, imaginei 2 possíveis formas de resolver o meu problema.
A primeira solução era com um código javascript onde a pessoa ao postar teria o seu post modificado e assim a rolagem ocorreria. Isso se daria por meio de tags (como a de BBcode) para o meu código verificar quais dados a pessoa quer rolar.
No meio do código tem alguns [ code] com espaço porque iam bugar com o code aqui do tópico, mas na função em si estão sem o espaço.
- Código:
function dice_roll(){
var text = $("#text_editor_textarea").html();
var auxText = [];
var i = 0;
if(text.includes("[dice]")){
while (text.includes("[ code]")){
var comeco = text.indexOf("[ code]");
var final = text.indexOf("[ /code]");
var slice = text.slice(comeco,final+7);
text = text.replace(slice,"auxText[" + i + "]");
auxText[i] = slice;
i = i + 1;
}
while (text.includes("[dice]")){
var comeco = text.indexOf("[dice]");
var final = text.indexOf("[/dice]");
var CompletDice = text.slice(comeco, final+7);
var Dice = text.slice(comeco+6,final);
var auxDado = Dice.indexOf("d");
if (Dice.includes("x")){
var auxMul = Dice.indexOf("x");
var numRolagens = parseInt(Dice.slice(0,auxMul));
var comecoDado = auxMul + 1;
}
else{
var numRolagens = 1;
var comecoDado = 0;
}
if (Dice.includes("+")){
var auxSoma = Dice.indexOf("+");
var numDados = Dice.slice(comecoDado,auxDado);
var numFaces = Dice.slice(auxDado+1,auxSoma);
var soma = parseInt(Dice.slice(auxSoma+1,Dice.length));
}
else{
var numDados = Dice.slice(comecoDado,auxDado);
var numFaces = Dice.slice(auxDado+1,Dice.length);
var soma = 0;
}
var valorRolado = [];
var valorFinal = [];
for (i = 0; i < numRolagens; i++){
if (numDados > 1){
var auxDado = 0;
for (j = 0; j < numDados; j++){
auxDado = auxDado + (Math.floor(Math.random() * parseInt(numFaces)) + 1);
}
valorRolado[i] = auxDado;
}
else{
valorRolado[i] = (Math.floor(Math.random() * parseInt(numFaces)) + 1);
}
valorFinal[i] = valorRolado[i] + soma;
}
if (numRolagens == 1){
text = text.replace(CompletDice, "<span class='dice-rolled'>O jogador rolou " + Dice + " e tirou " + valorRolado + " o que resultou em " + valorFinal + "</span>");
}
else{
var auxReplace = "O jogador rolou " + numRolagens + "x o " + numDados + "d" + numFaces;
if (soma > 0){
auxReplace = auxReplace + " + " + soma + "<br>";
}
else{
auxReplace = auxReplace + "<br>";
}
for (i = 0; i < numRolagens; i++){
auxReplace = auxReplace + "<span class='dice-rolled'>" + (i+1) +"ª rolagem foi: " + valorRolado[i] + " o que resultou em: " + valorFinal[i] + "</span><br>";
}
text = text.replace(CompletDice, auxReplace);
}
}
for (i = 0; i < auxText.length; i++){
text = text.replace("auxText[" + i + "]", auxText[i]);
}
$("#text_editor_textarea").html(text);
}
}
Qual foi o problema dessa solução?
Por causa da forma que o formulário da forumeiros funciona (ou pelo que entendi que funciona), mesmo colocando para chamar o código no onsubmit do template, o texto da postagem só era atualizado após o formulário ser realmente processado, o que faz ser impossível pegar o post no onsubmit para modificá-lo e então postar. Precisava clicar em pré-visualizar uma vez (o que atualizava o HTML e assim fazia ser possível que o código funcionasse, pois o post da pessoa já estava disponível no HTML) e depois clicar em postar por fim.
Ponto negativo dessa solução de qualquer forma:
- Se a pessoa editar o post ela poderá rolar o dado novamente
A segunda solução foi criar algo parecido com o Lançamento de Dados do fórum, porém com os modificadores que eu queria. Onde seria possível a pessoa escrever sobre o que a ação é e assim mandar a rolagem após a sua postagem.
Cheguei a fazer o código no template para isso e o resultado foi esse:
Como podem ver, adicionei campos de input para o jogador determinar a ação que ia realizar, quantas vezes ela seria feita (pois jogadores mais fortes podem atacar mais de uma vez) e o modificador desta ação. No caso eu só vou utilizar dados de 20 faces, e no exemplo criado não adicionei nenhum input do número de faces, porém seria interessante criar também, para não me travar com o sistema já criado no futuro, no entanto essa modificação em si é bem simples, um mero input a mais com o número de faces.
O problema desta solução é que não sei como mandar o usuário 1 realizar as rolagens, pois o sistema de Lançamento de Dados padrão do fórum faz isso com um script ao qual eu não tenho acesso. Essa solução resolve a parte de edição, pois ninguém poderia editar as rolagens, porém acabo travado em como ordenar algo ao usuário 1.
Assim, minhas dúvidas são "duas", mas só uma precisaria ser realmente sanada.
A primeira seria se é possível "pegar" o post da pessoa no onsubmit e alterá-lo? O que permitiria que o meu código funcionasse.
A segunda é como realizar a rolagem pelo usuário 1 para que a segunda solução funcione.
Ou quem sabe até uma outra opção que contemple este meu problema de rolagem de dados com modificadores.
Não tenho problemas em mudar a versão do fórum (se isso fizer alguma diferença) para resolver o problema.
Atenciosamente,
Pepe
Re: Lançamento de dado melhorado
Boa tarde.
Eu li sua postagem algumas vezes para tentar entender como o processo do jogo funcionaria, mas me veio algumas ideias que talvez possam ser "possíveis" soluções para o que enfrenta.
Da primeira situação do script seria possível fazê-lo desde que o usuário tenha "poderes de moderar no fórum". Com isso, talvez fosse possível fazer com que o Pré-visualizar fosse acionado e, na mensagem de confirmação pegássemos o número do tópico ainda naquele fórum, e depois de alterá-lo o mesmo fosse movido para outro setor sem que o usuário tenha poderes lá, entende? Isso seria arriscado para outros tópicos, claro, mas, é uma alternativa. Infelizmente eu levaria muito tempo para imaginar como iniciar um código assim.
A segunda ideia ainda referente ao script é um formulário HTML que faça tal processo tudo em AJAX e depois postasse o BBCode com o dado rolado. Seria isso, mais ou menos?
Enquanto vou tentando entender o segundo ponto, vou dar uma lida novamente na FAQ de rolagens de dados: https://ajuda.forumeiros.com/t829-faq-gerir-as-fichas-de-personagem-e-o-modulo-rpg
Obrigado por aguardar.
Eu li sua postagem algumas vezes para tentar entender como o processo do jogo funcionaria, mas me veio algumas ideias que talvez possam ser "possíveis" soluções para o que enfrenta.
Da primeira situação do script seria possível fazê-lo desde que o usuário tenha "poderes de moderar no fórum". Com isso, talvez fosse possível fazer com que o Pré-visualizar fosse acionado e, na mensagem de confirmação pegássemos o número do tópico ainda naquele fórum, e depois de alterá-lo o mesmo fosse movido para outro setor sem que o usuário tenha poderes lá, entende? Isso seria arriscado para outros tópicos, claro, mas, é uma alternativa. Infelizmente eu levaria muito tempo para imaginar como iniciar um código assim.
A segunda ideia ainda referente ao script é um formulário HTML que faça tal processo tudo em AJAX e depois postasse o BBCode com o dado rolado. Seria isso, mais ou menos?
Enquanto vou tentando entender o segundo ponto, vou dar uma lida novamente na FAQ de rolagens de dados: https://ajuda.forumeiros.com/t829-faq-gerir-as-fichas-de-personagem-e-o-modulo-rpg
Obrigado por aguardar.
Re: Lançamento de dado melhorado
Shek escreveu:Obrigado por aguardar.
O meu problema eu acho complexo, então eu já sabia que iria demorar haha, sem problemas
É aquele tipo de problema que ou é bem complexo, ou tem uma solução idiota que eu não to vendo hahahaha
Shek escreveu:Boa tarde.
Eu li sua postagem algumas vezes para tentar entender como o processo do jogo funcionaria, mas me veio algumas ideias que talvez possam ser "possíveis" soluções para o que enfrenta.
Se alguma coisa do jogo ficou estranha me avisa, tentei explicar da melhor forma que deu sem me estender muito
Shek escreveu:Da primeira situação do script seria possível fazê-lo desde que o usuário tenha "poderes de moderar no fórum". Com isso, talvez fosse possível fazer com que o Pré-visualizar fosse acionado e, na mensagem de confirmação pegássemos o número do tópico ainda naquele fórum, e depois de alterá-lo o mesmo fosse movido para outro setor sem que o usuário tenha poderes lá, entende? Isso seria arriscado para outros tópicos, claro, mas, é uma alternativa. Infelizmente eu levaria muito tempo para imaginar como iniciar um código assim.
Eu achei isso aqui complexo
Shek escreveu:A segunda ideia ainda referente ao script é um formulário HTML que faça tal processo tudo em AJAX e depois postasse o BBCode com o dado rolado. Seria isso, mais ou menos?
Eu não conheço AJAX, mas pelo que vi, ele modifica o HTML de algo que já tá feito... essa foi a minha primeira ideia, tanto que eu fiz um código que funciona para isso... só que ao mesmo tempo não funciona, pois ele não alterava realmente o conteúdo do post, só de maneira superficial, assim sempre que apertamos F5 o valor dos dados mudam, coloquei como o meu código era antes para você ver o resultado final:
https://testandobnh.forumeiros.com/t4-dados-com-mais-alguns-caracteres-pq-os-titulos-do-forum-precisam-ser-longos#49
Sempre que apertar F5 o valor vai mudar, o que eu postei ali na linha foi:
[dice]4x1d20[/dice]
Se o AJAX conseguir mudar de forma permanente isso de alguma forma era a solução quase ideal, o jogador não poderia editar depois para ficar perfeito, mas já teria o código que funciona como eu idealizei pela primeira vez.
EDIT: o javascript está mudando só o que nós vemos, mas não a postagem em si e por isso a cada F5 o conteúdo altera. E se eu excluir o javascript volta a mostrar que é [dice]4x1d20[/dice]... tanto que foi por isso que eu parti para a mudança no formulário da postagem em si
EDIT 2: Uma pessoa havia postado, até sei o nick, mas apagou, porém achei a dúvida que ele mandou aqui pertinente, então vou editar de novo para explicar:
O código no primeiro post estava sendo chamado no formulário de postar e por isso estava com problema já que o $("#text_editor_textarea").html(); só pegava o que já havia sido processado e assim só pegava após clicar em pré-visualizar. Fazendo ser necessário a pessoa dar pré-visualizar e depois postar sem mudar mais nada ou o código iria simplesmente pegar o que já estava no pré-visualizar...
Exemplificando melhor:
- A pessoa coloca no post: "Olá, isso é um teste [dice]1d20[/dice]" e clica em pré-visualizar
- No primeiro pré-visualizar ia aparecer: "Olá, isso é um teste [dice]1d20[/dice]" mesmo já tendo o onsubmit, pois o que tá no campo lá é nada
- Quando clicasse de novo iria para: "Olá, isso é um teste e o valor do dado"
- Se a pessoa alterasse antes de clicar de novo e mandasse um "Olá, isso é um teste", sem o dado, ainda mudaria o valor colocando o que tem no dado, pois ele executa o código no onsubmit e o que tá no edit só muda quando a pessoa pré-visualiza por alguma mecânica da forumeiros que ainda não entendi muito bem.
Por isso as mudanças no segundo pré-visualizar seriam inválidas, a pessoa precisaria clicar pré-visualizar e já em seguida apertar no postar, pois só precisa que o fórum "processe" e coloque o [dice][/dice] onde era para já estar
Além disso, para o código funcionar no post como está no link acima, eu mudo o começo do código:
- Código:
jQuery(document).ready(dice_roll);
function dice_roll(){
var text = $(".postbody").html();
Porque agora preciso ter certeza que a página tá pronta e preciso ver se tem [dice][/dice] nos posts. Só que alterar no postbody altera só o que a pessoa tá vendo, como se fosse o sistema de censura do fórum... a partir do segundo que você exclui o javascript os dados voltam... da para arrumar esse código se ao invés de pegar o postbody eu pegar alguma propriedade que alteraria o "cerne" do post, e aí modificasse para sempre, porque na mudança eu excluo o [dice][/dice]
Shek escreveu:Enquanto vou tentando entender o segundo ponto, vou dar uma lida novamente na FAQ de rolagens de dados: https://ajuda.forumeiros.com/t829-faq-gerir-as-fichas-de-personagem-e-o-modulo-rpg
Esse aí não é muito o que eu te recomendaria, recomendo esse aqui: https://ajuda.forumeiros.com/t16946-faq-gerir-a-funcao-lancar-dados#101474
A segunda opção que eu "criei" é parecido com isso e por isso perguntei se teria como fazer o mesmo.
No template posting_body tem o seguinte trecho:
- Código:
<!-- BEGIN switch_roll_dice -->
<div class="h3">{ROLL_DICE_TITLE}</div>
<div class="panel row3">
<div class="inner"><span class="corners-top"><span></span></span>
<script type="text/javascript">
function add_dice(dice_number,dice,number) {
var content = document.getElementById('post_dice').innerHTML;
document.getElementById('dice_to_del').innerHTML = '';
document.getElementById('dice_to_del').id = '';
var new_tr = document.createElement('tr');
new_tr.appendChild(document.createElement('td'));
new_tr.firstChild.innerHTML = '{ROLL_DICE_TITLE_LOW} #' + (dice_number + 1) + ' : <select name="post_dice_' + dice_number + '" id="post_dice_' + dice_number + '" value="' + dice + '">' + content + '</select> <label for="nb_rolls">{switch_roll_dice.L_DICE_ROLLS} : </label><input type="text" size="2" maxlength="3" name="nb_rolls_' + dice_number + '" id="nb_rolls" value="' + number + '" /> <span id="dice_to_del"><a href="javascript:add_dice(' + (dice_number + 1) + ',\'\',1)"><img src="{PATH_IMG_FA}tabs_more.gif" alt="plus" /></a></span>';
document.getElementById('list_dice').lastChild.appendChild(new_tr);
var select_dice = document.getElementById('post_dice_' + dice_number);
if ( dice == '' ) {
select_dice.selectedIndex=0;
}
for ( var i = 1; select_dice.options[i]; i++ ) {
select_dice.options[i].selected = ( select_dice.options[i].value == dice );
}
}
</script>
<table style="width:100%" id="list_dice"><tr><td>
{ROLL_DICE_TITLE_LOW} #1 :
<select name="post_dice_0" id="post_dice">
<option value="">-</option>
<!-- BEGIN row_replace -->
<option value="{switch_roll_dice.row_replace.DICE_ID}"{switch_roll_dice.row_replace.DICE_SELECTED}>{switch_roll_dice.row_replace.DICE_NAME}</option>
<!-- END row_replace -->
</select>
<label for="nb_rolls">{switch_roll_dice.L_DICE_ROLLS} : </label><input type="text" size="2" maxlength="3" name="nb_rolls_0" id="nb_rolls" value="{switch_roll_dice.S_DICE_ROLLS_VALUE}" />
<span id="dice_to_del"><a href="javascript:add_dice(1,'',1)"><img src="{PATH_IMG_FA}tabs_more.gif" alt="plus" /></a></span>
</td></tr>
</table>
{switch_roll_dice.DICE_SCRIPT}
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- END switch_roll_dice -->
Enquanto o javascript é algo bem simples para adicionar mais dados (que foi o que eu até melhorei para o meu, porque adicionei um simples botão de menos), o único outro script que vejo é o: {switch_roll_dice.DICE_SCRIPT} e por isso que falei que não tenho acesso a como fazer o usuário número 1 rolar o dado e se alguém saberia como fazer
Última edição por PepePepi em 09.06.21 3:59, editado 5 vez(es) (Motivo da edição : acrescentando informações para ficar potencialmente mais claro)
Re: Lançamento de dado melhorado
Olá, eu que tinha postado. Mas exclui meu post, pois está bem complicado de entender o que desejas. Vamos ao que eu entendi.
1- player, por meio de uma página html vai rolar os dados e neste caso, uma postagem em um tópico é enviada com as informações do dado?
2 - no caso acima, o player poderia editar o post, sendo possível assim alterar os valores dos dados. Isso seria um problema.
A minha recomendação é, crie uma página html com os inputs e não permita a edição da mensagem, pra mim é a única maneira de dá certo. Não vejo outra forma.
1- player, por meio de uma página html vai rolar os dados e neste caso, uma postagem em um tópico é enviada com as informações do dado?
2 - no caso acima, o player poderia editar o post, sendo possível assim alterar os valores dos dados. Isso seria um problema.
A minha recomendação é, crie uma página html com os inputs e não permita a edição da mensagem, pra mim é a única maneira de dá certo. Não vejo outra forma.
Re: Lançamento de dado melhorado
Já adianto que qualquer solução que você tentar implementar será passível de acesso potencialmente não autorizado, tal uma edição posterior.
Isso acontece porque todo código implementado no lado do cliente é passível de inspeção, o que inclui modificação e até desativação temporária do script para a sessão do usuário.
O ideal seria implementar esse tipo de coisa no lado do servidor (tal como é feito nativamente pela Forumeiros, embora seja bem limitado, tanto é que você procura estender o mecanismo padrão). Infelizmente, contudo, fóruns da Forumeiros só permitem que você crie extensões com código JavaScript que será executado no cliente.
Você diz que o formulário é a limitação, mas eu ouso afirmar que há uma limitação maior ainda: o fato de você não poder implementar códigos a serem executados no (seguro) contexto de execução do servidor. O formulário é o menor dos problemas, já que se pode desenvolver um mecanismo de submissão assíncrono ("AJAX") que faz a postagem para você (tal como esse recurso que você vê no Fórum dos Fóruns ao responder um tópico na seção "Resposta rápida"). O problema disso, claro, é que nada garante que a nova resposta não será posteriormente editada pelo usuário ou que ele poste uma mensagem com um valor "sorteado" curiosamente escolhido pelo próprio usuário. ¯\_(ツ)_/¯
Portanto, eu diria ser impossível implementar, com os recursos que você tem à disposição, o que você quer; pelo menos se quiser garantir o mínimo de segurança no que tange a autorização para modificações. E, tratando-se de um sorteio, diria que esse tipo de garantia é o mínimo.
o/
Isso acontece porque todo código implementado no lado do cliente é passível de inspeção, o que inclui modificação e até desativação temporária do script para a sessão do usuário.
O ideal seria implementar esse tipo de coisa no lado do servidor (tal como é feito nativamente pela Forumeiros, embora seja bem limitado, tanto é que você procura estender o mecanismo padrão). Infelizmente, contudo, fóruns da Forumeiros só permitem que você crie extensões com código JavaScript que será executado no cliente.
Você diz que o formulário é a limitação, mas eu ouso afirmar que há uma limitação maior ainda: o fato de você não poder implementar códigos a serem executados no (seguro) contexto de execução do servidor. O formulário é o menor dos problemas, já que se pode desenvolver um mecanismo de submissão assíncrono ("AJAX") que faz a postagem para você (tal como esse recurso que você vê no Fórum dos Fóruns ao responder um tópico na seção "Resposta rápida"). O problema disso, claro, é que nada garante que a nova resposta não será posteriormente editada pelo usuário ou que ele poste uma mensagem com um valor "sorteado" curiosamente escolhido pelo próprio usuário. ¯\_(ツ)_/¯
Portanto, eu diria ser impossível implementar, com os recursos que você tem à disposição, o que você quer; pelo menos se quiser garantir o mínimo de segurança no que tange a autorização para modificações. E, tratando-se de um sorteio, diria que esse tipo de garantia é o mínimo.
o/
Re: Lançamento de dado melhorado
Connor R. escreveu:Olá, eu que tinha postado. Mas exclui meu post, pois está bem complicado de entender o que desejas. Vamos ao que eu entendi.
1- player, por meio de uma página html vai rolar os dados e neste caso, uma postagem em um tópico é enviada com as informações do dado?
2 - no caso acima, o player poderia editar o post, sendo possível assim alterar os valores dos dados. Isso seria um problema.
A minha recomendação é, crie uma página html com os inputs e não permita a edição da mensagem, pra mim é a única maneira de dá certo. Não vejo outra forma.
Como falei lá no começo, o fórum é de RPG, ou seja, terá jogadores e narradores em uma aventura. Os dados são para as situações de combate, então serão rolados em diversos tópicos diferentes ao mesmo tempo com diferentes valores para somar.
Com isso em mente que pensei nas duas soluções, onde a qualquer postagem já mudaria o [dice][/dice] que as pessoas colocariam no próprio post ou no outro que faria algo próximo do Lançar Dados nativo do fórum... mas aparentemente com a resposta do Luiz eu não posso fazer a segunda solução.
A sua sugestão não permitiria muito o sistema de RPG eu acho, ficaria uma confusão bem absurda se eu criasse uma página só para isso, pois imagino que seria uma página para cada aventura?
Luiz escreveu:Já adianto que qualquer solução que você tentar implementar será passível de acesso potencialmente não autorizado, tal uma edição posterior.
Isso acontece porque todo código implementado no lado do cliente é passível de inspeção, o que inclui modificação e até desativação temporária do script para a sessão do usuário.
O ideal seria implementar esse tipo de coisa no lado do servidor (tal como é feito nativamente pela Forumeiros, embora seja bem limitado, tanto é que você procura estender o mecanismo padrão). Infelizmente, contudo, fóruns da Forumeiros só permitem que você crie extensões com código JavaScript que será executado no cliente.
Você diz que o formulário é a limitação, mas eu ouso afirmar que há uma limitação maior ainda: o fato de você não poder implementar códigos a serem executados no (seguro) contexto de execução do servidor. O formulário é o menor dos problemas, já que se pode desenvolver um mecanismo de submissão assíncrono ("AJAX") que faz a postagem para você (tal como esse recurso que você vê no Fórum dos Fóruns ao responder um tópico na seção "Resposta rápida"). O problema disso, claro, é que nada garante que a nova resposta não será posteriormente editada pelo usuário ou que ele poste uma mensagem com um valor "sorteado" curiosamente escolhido pelo próprio usuário. ¯\_(ツ)_/¯
Portanto, eu diria ser impossível implementar, com os recursos que você tem à disposição, o que você quer; pelo menos se quiser garantir o mínimo de segurança no que tange a autorização para modificações. E, tratando-se de um sorteio, diria que esse tipo de garantia é o mínimo.
o/
Pelo que entendi por causa do terceiro parágrafo a segunda solução então é totalmente impossível, onde faria o meu próprio script para o usuário X (geralmente o u1) rodar os dados
Poderia me explicar melhor a parte do segundo parágrafo? Pois no inspecionar pelo que eu sei altera temporariamente para a pessoa que está lendo o post, mas isso não seria um problema já que todos os outros estariam vendo o que o código original está fazendo. E pelo que sei também, a forumeiros bloqueia javascript em um tópico mesmo se a pessoa estiver usando HTML, então ela não poderia criar o dado específico dele
E como você falou, pelo visto não tem solução onde não permita edição. Assim sendo, existe alguma opção onde eu possa falar para sempre mostrar que teve edição? Mesmo que a pessoa tenha sido a última pessoa a postar?
Além disso, sabendo que essa é a única solução, eu "só" preciso descobrir alguma forma de editar o post de verdade com o script, pois como está atualmente não modifica de verdade o post.
Atualmente se eu posto:
[dice]1d20[/dice]
A pessoa no post vai ver alguma coisa como:
O jogador rolou 1d20 e tirou não sei quanto o que resultou em não sei quanto
E quando eu clicasse em editar estiver realmente o "O jogador rolou 1d20 e tirou não sei quanto o que resultou em não sei quanto" e não o "[dice]1d20[/dice]" que é o que aparece atualmente, pois como eu falei, o código está mudando só o que vemos e não o post em si. Tanto que é por isso que o valor sempre muda do dado no F5
Tanto que no post lá que eu mandei de exemplo nas postagens anteriores, ao clicar em editar eu vejo:
Dados funcionam em criação de tópico?
[dice]4x1d20[/dice]
E não os valores rolados
Re: Lançamento de dado melhorado
Na realidade não seria, pois é possível customizar a página de envio. Já fiz algo parecido em uma página html. Mas no meu caso, são realizadas buscas nas fichas dos players e posteriormente os testes são feitos. No fim o resultado é postado na aventura em questão. No meu sistema apenas os narradores possuem acesso, diferente do seu onde cada player poderia rolar os dados para os testes. Faz muito tempo que vi um sistema assim, no caso, era um rpg medieval e os testes eram feitos pelos player através de um botão na resposta rápida. Infelizmente este fórum não existe mais, era de um membro ativo no fórum de ajuda do finado Jscritpt. Abaixo deixo o meu sistema, visto que você possui um certo conhecimento.
https://somosmugiwara.forumeiros.com/h116-
Você pode utilizar a ficha abaixo para ver o sistema em funcionamento, note que no fim existe o input para escolher em qual tópico postar. Logo seria necessário apenas uma página html. No geral o js é feito por fórmulas, bem fácil de entender. Também uso o onchange para observar mudanças nos valores e ajax para buscar as informações nas fichas. Talvez lhe ajude a buscar uma solução, mas creio que uma adição de botão no resposta rápida seria o ideal pra você, o que complica a implementação é o player poder realizar os testes, ou seja, a rolagem dos dados.
https://somosmugiwara.forumeiros.com/t2794-ficha-aceita-de-nyarlathotep#13782
EDIT: esqueci de umas coisas, a ficha acima deve ser inserida no player atacante e defensor. E mais importante, note a parte de importação de log, veja como é possível implementar informações na área de texto com um click, estas informações poderiam ser os valores do dado, no seu caso.
https://somosmugiwara.forumeiros.com/h116-
Você pode utilizar a ficha abaixo para ver o sistema em funcionamento, note que no fim existe o input para escolher em qual tópico postar. Logo seria necessário apenas uma página html. No geral o js é feito por fórmulas, bem fácil de entender. Também uso o onchange para observar mudanças nos valores e ajax para buscar as informações nas fichas. Talvez lhe ajude a buscar uma solução, mas creio que uma adição de botão no resposta rápida seria o ideal pra você, o que complica a implementação é o player poder realizar os testes, ou seja, a rolagem dos dados.
https://somosmugiwara.forumeiros.com/t2794-ficha-aceita-de-nyarlathotep#13782
EDIT: esqueci de umas coisas, a ficha acima deve ser inserida no player atacante e defensor. E mais importante, note a parte de importação de log, veja como é possível implementar informações na área de texto com um click, estas informações poderiam ser os valores do dado, no seu caso.
Re: Lançamento de dado melhorado
Boa noite.
Obrigado @Luiz, pela participação e principalmente por sua resposta. Pedro me encaminhou sua MP, perdoe-me por não poder recebê-la diretamente. Porém, sua opinião ajuda muito nossa dúvida.
Connor, obrigado por compartilhar também sua experiência. Afinal, nem todos tem a humildade que tens, e isso demonstra que faltam pessoas como você no mundo.
Autor, com base na resposta de Luiz nós temos que concluir que qualquer ação por parte do servidor é proveniente de um recurso criado pela equipe de técnicos. Logo, imagino que possa sugerir no setor adequado, caso queira: https://ajuda.forumeiros.com/c6-sugestoes-e-melhorias
Obrigado por sua paciência, e se a resposta de sua pergunta foi dada, deixe seu "" na resposta adequada, por gentileza.
Atenciosamente,
Shek
Obrigado @Luiz, pela participação e principalmente por sua resposta. Pedro me encaminhou sua MP, perdoe-me por não poder recebê-la diretamente. Porém, sua opinião ajuda muito nossa dúvida.
Connor, obrigado por compartilhar também sua experiência. Afinal, nem todos tem a humildade que tens, e isso demonstra que faltam pessoas como você no mundo.
Autor, com base na resposta de Luiz nós temos que concluir que qualquer ação por parte do servidor é proveniente de um recurso criado pela equipe de técnicos. Logo, imagino que possa sugerir no setor adequado, caso queira: https://ajuda.forumeiros.com/c6-sugestoes-e-melhorias
Obrigado por sua paciência, e se a resposta de sua pergunta foi dada, deixe seu "" na resposta adequada, por gentileza.
Atenciosamente,
Shek
Re: Lançamento de dado melhorado
Bem, pode fechar então haha
Não acho que aceitariam como sugestão, então vou tentar algumas outras coisas, incluindo a ideia do Connor que ainda preciso ver direitinho
Não acho que aceitariam como sugestão, então vou tentar algumas outras coisas, incluindo a ideia do Connor que ainda preciso ver direitinho
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217
Tópicos semelhantes
» Função do dado de rpg
» Problemas com imagens do dado
» Colocar quantidade de sorteio no dado
» Próprio usuário remover um dado de seu perfil
» Lançamento de Dados
» Problemas com imagens do dado
» Colocar quantidade de sorteio no dado
» Próprio usuário remover um dado de seu perfil
» Lançamento de Dados
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos