[Trancado] Combate random com porcentagem?

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

Resolvido [Trancado] Combate random com porcentagem?

Mensagem por Davicvic em Qua 13 Mar 2013, 08:03

Nao sei se isso é considerado uma ideia, mas, eu queria saber se eu posso fazer um combate em random com porcentagem

A ideia é mais ou menos assim:

Eu terei 3 ataques, e o inimigo terá 3 defesas, o ataque1 terá 33% de chance de ser efetuado, ataque2 tambem, e ataque3 tambem. Apos ser efetuado terá 50% de dá certo, e 50% de nao dá certo. Agradeço desde já.


Última edição por Davicvic em Qui 14 Mar 2013, 13:48, editado 1 vez(es)

Davicvic

Número de Mensagens : 64
Data de inscrição : 05/03/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Gonçalves em Qua 13 Mar 2013, 08:28

Você pode usar choose ou random/irandom pra esses casos de escolher qual ataque usar aleatoriamente. Usarei o choose no exemplo:

Código:
ataque = choose(0,1,2)

Será salvo na variável ataque um valor aleatório, que poderá ser 0, 1 ou 2. E aí então fazer a checagem de qual ataque escolheu:

Código:
if ataque = 0
{
    // Código para realizar ataque 1
}

if ataque = 1
{
    // Código para realizar ataque 2
}

if ataque = 2
{
    // Código para realizar ataque 3
}

Dentro desses códigos de ataque, você pode, para checar se acertou ou não, usar o random, assim:

Código:
acerto = random(100)

if acerto < 50
{
    // Código de ataque/dano, etc.
}
else
{
    // Código de erro (Não há necessidade de ter)
}

Será salvo na variável acerto um valor aleatório entre 0 e 100, e logo após será checado se é menor que 50. Se sim, executa o código de dano, se não, o código de erro.

Para ver mais variações de random: http://gmbr.forumeiros.com/t19554-tutorial-randomizar

Espero ter ajudado! Qualquer coisa não deixe de perguntar!

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Isaque Onix em Qua 13 Mar 2013, 09:04

tambem tem o switch

Código:
ataque = choose(0,1,2)
switch (ataque)
{
    case 0: /*codigo do ataque 0*/; break;
        case 1: /*codigo do ataque 1*/; break;
            case 2: /*codigo do ataque 2*/; break;
    default: ;
}
 
off topic, alguem sabe q parada é essa de alerta de flood e gerar codigo??

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Dr.XGB em Qua 13 Mar 2013, 10:14

Você pode usar a ideia levantada pelo Gonçalves, e brincar com as probabilidades. Por exemplo:


Código:
ataque = irandom(100)
if ataque < 20
 {
  // Ele realiza o primeiro ataque
 }
 else if ataque < 30
  {
    /* Realiza o segundo ataque. Neste caso seria um ataque que, raramente ocorreria. Quanto menor a distância              entre os valores, menor é a chance deste golpe e vice-versa.*/
  }
  else
  {
    /* Aqui será o ataque que o IA realizará com mais frequência. Neste caso ele teria uma chance de 70% de                realizá-lo (100-30 = 70)*/
  }

Lembrando que você pode alterar esses valores. Você pode, por exemplo, colocar as chances dos ataques em 30 e 60, 50 e 75, 10 e 90...


MC D_LIRIO escreveu:off topic, alguem sabe q parada é essa de alerta de flood e gerar codigo??
Pelo que eu vi são posts prontos que devem ser usados pelos moderadores com o objetivo de facilitar o controle dos mesmos. Mas parece que houve um "vazamento" que acabou ficando visível para todos os membros (ao menos que seja esta a ideia).
Vou reportar isso a um administrador, às vezes ele quis deixar para todos usarem este recurso.

Dr.XGB

Ranking : Nota B
Número de Mensagens : 54
Idade : 25
Data de inscrição : 22/02/2013
Notas recebidas : B
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Davicvic em Qua 13 Mar 2013, 14:16

Queria saber se isso serve pra fazer oque eu realmente queria:
Ele iria escrever. “gladiador1 da um soco simples.” " E atinge certeiramente gladiador2".
"gladiador1 da um super soco". "Mas o gladiador2 esquiva - se rapidamente". Seria mais ou menos assim. Desculpem por nao ter dito antes. Agradeço.

Davicvic

Número de Mensagens : 64
Data de inscrição : 05/03/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Dr.XGB em Qua 13 Mar 2013, 14:28

Sim, é claro.
Dentro das chaves de cada condição você pode criar uma variável que contenha a string do que vai aparecer na janela. É só fazer as adaptações necessárias como o nome de quem está atacando e de quem está recebendo o golpe.
Agora para esquiva você teria que criar uma outra variável com probabilidades também e, talvez, poderia usar uma fórmula para checar se a velocidade do gladiador2 é maior que a do gladiador1 para que ele realizasse a esquiva.
No entanto, o raciocínio é o mesmo.

Dr.XGB

Ranking : Nota B
Número de Mensagens : 54
Idade : 25
Data de inscrição : 22/02/2013
Notas recebidas : B
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Isaque Onix em Qua 13 Mar 2013, 15:43

dica: você pode criar um objeto que desenhe esse texto pra você:

1: Crie o objeto objEfeito
2: no create event coloque
Código:
myTxt=''
vspeed=-2//almente ou diminua se achar melhor
alarm[0]=10//mude tbm a gosto
3: no alarm[0]
Código:
instance_destroy()
4: no draw:
Código:
draw_text(x,y,myTxt)

e no event que você precisa mostrar esse texto, use assim:

Código:
i=instance_create(x,y,objEfeito)
i.myTxt='gladiador1 da um soco simples.'

com um efeito classico de ir subindo, e vc ainda pode fazer desaparecer antes de sumir, pode mudar a fonte, tamanho, cor etc...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Davicvic em Qua 13 Mar 2013, 22:57

Oque eu quero é exatamente oque o MC D_LIRIO falou:
Mas como eu faço para executar um texto e em seguida o outro, e depois o outro, e assim sucessivamente???

Davicvic

Número de Mensagens : 64
Data de inscrição : 05/03/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por gabrielsch em Qua 13 Mar 2013, 23:35

Pelo que eu entendi, esse seria um ataque básico (soco simples), faça isso para cada tipo de ataque:
Código:
//Ataque1 por exemplo: Soco Simples

if (irandom(100) <= 33) //33% de chances de ele conseguir efetuar esse ataque
{
 show_message('<Gladiador1> da um soco simples!')
 if (irandom(100) <= 50) //50% de chances do inimigo ser atingido
 {
 //Acertou no inimigo;
 show_message('<Gladiador2> foi atingido!')
 }
 else
 {
  //Não acertou no inimigo;
  show_message('<Gladiador2> se esquivou!')
 }
}
else
{
 //Não conseguiu efetuar o ataque!
 show_message('<Gladiador1> não conseguiu efeturar o ataque!')
}

Se tiver alguma duvida é só falar!

Flw! sorrindo2

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Isaque Onix em Qua 13 Mar 2013, 23:36

é só repetir o ultimo processo:
Código:
i=instance_create(x,y,objEfeito)
i.myTxt='gladiador1 da um soco simples.'

esse codigo cria o objEfeito com a variavel myTxt='gladiador1 da um soco simples.', por isso você pode usar quantas veses quiser.

dica? cria um script com o seguinte texto:
Código:
i=instance_create(x,y,objEfeito)
i.myTxt=argument0

assim, quando você precisar mostrar sua mensagem, você só usa isso:
Código:
nome_do_script('TEXTO QUE VOCÊ QUISER');

mais mudando o texto 'gladiador1 da um soco simples.' para o outro texto que você quer, se está criando um jogo rpg eu fiz um tuto bem simples, ta na minha assinatura.

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Davicvic em Qui 14 Mar 2013, 13:46

Pessoal obrigado. Eu vou marcar esse topico como resolvido . Smile muito obrigado...

Davicvic

Número de Mensagens : 64
Data de inscrição : 05/03/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Isaque Onix em Qui 14 Mar 2013, 15:20

por nada...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Trancado] Combate random com porcentagem?

Mensagem por Conteúdo patrocinado Hoje à(s) 18:22


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum