Lançamento de dado melhorado

5 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Lançamento de dado melhorado

Mensagem por PepePepi 02.06.21 5:35

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]
, só que este tipo de "rolagem" limita na opção do jogador. Onde este não poderá editar o próprio post, pois isso alteraria as rolagens dos jogadores, além de ser necessário que os jogadores realizem as somas em antecipado, o que para alguns é tedioso.

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:

Lançamento de dado melhorado Prdr6Gm

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,

PepePepi
PepePepi

PepePepi
Novo Membro

Membro desde : 02/06/2021
Mensagens : 10
Pontos : 16

https://testandobnh.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por PepePepi 07.06.21 19:05

up
PepePepi

PepePepi
Novo Membro

Membro desde : 02/06/2021
Mensagens : 10
Pontos : 16

https://testandobnh.forumeiros.com

Ir para o topo Ir para baixo

Principal Contribuidor
  • 0

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por Shek 08.06.21 21:52

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? huh

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.
Shek

Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 18896
Pontos : 22793

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por PepePepi 09.06.21 1:01

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 tanto que admito que não entendi 100% ainda, e como o meu objetivo com os dados é justamente diminuir a complexidade para quem for jogar, só colocar mesmo o número de dados e o valor que soma (que já vai ter na ficha, assim a pessoa não vai nem precisar somar por conta própria), acho melhor não seguir essa linha hahahahaha




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? huh

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) + ' :&nbsp;<select name="post_dice_' + dice_number + '" id="post_dice_' + dice_number + '" value="' + dice + '">' + content + '</select>&nbsp;<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 + '" />&nbsp;<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 :&nbsp;
            <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>
            &nbsp;<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}" />
            &nbsp;<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)
PepePepi

PepePepi
Novo Membro

Membro desde : 02/06/2021
Mensagens : 10
Pontos : 16

https://testandobnh.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por Connor R. 10.06.21 0:25

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.
Connor R.

Connor R.
Super Membro

Membro desde : 06/08/2012
Mensagens : 1253
Pontos : 2021

http://somosmugiwara.forumeiros.com https://www.facebook.com/kadandajr https://twitter.com/SomosMugiwara

Ir para o topo Ir para baixo

Membro Entusiasta
  • 0

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por Luiz 10.06.21 1:48

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/
Luiz

Luiz
Membro Entusiasta
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por PepePepi 10.06.21 5:50

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

Existe outro problema onde o código está alterando todos os posts e não só o do dice específico, mas isso eu vou ter que ver depois, não adianta eu arrumar isso ainda hahahaha
PepePepi

PepePepi
Novo Membro

Membro desde : 02/06/2021
Mensagens : 10
Pontos : 16

https://testandobnh.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por Connor R. 10.06.21 6:18

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.
Connor R.

Connor R.
Super Membro

Membro desde : 06/08/2012
Mensagens : 1253
Pontos : 2021

http://somosmugiwara.forumeiros.com https://www.facebook.com/kadandajr https://twitter.com/SomosMugiwara

Ir para o topo Ir para baixo

Principal Contribuidor
  • 0

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por Shek 10.06.21 22:14

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 "Lançamento de dado melhorado UsrblLM" na resposta adequada, por gentileza. Piscada

Atenciosamente,
Shek King
Shek

Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 18896
Pontos : 22793

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por PepePepi 13.06.21 5:22

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
PepePepi

PepePepi
Novo Membro

Membro desde : 02/06/2021
Mensagens : 10
Pontos : 16

https://testandobnh.forumeiros.com

Ir para o topo Ir para baixo

Admineiro
  • 0

Tópico resolvido Re: Lançamento de dado melhorado

Mensagem por tikky 13.06.21 10:19

Tópico resolvido


Movido para "Questões resolvidas".
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7820
Pontos : 9063

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos