Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Rand


lord320
 Compartilhar

Posts Recomendados

Olá a todos, O título é bem simples e creio que a explicação também.  

O  Termo rand deriva de random que quer dizer aleatório, mas muitas das vezes não entendemos direito como realmente funciona.

Geralmente utilizamos em eventos, funções e itens, nesse caso peguei alguns itens muito conhecidos até mesmo para facilitar a explicação.

 

Nesse caso os itens seriam as Pedras de Mob que nos trás as pedras para a composição do sephiroth

 

É necessário se cadastrar para acessar o conteúdo.

 

Seguindo a tabela me deparei com o erro que é bem chatinho que consiste em vir apenas x item e nesse caso era a pedra da inteligência

então fui a escrita o rand começa do 0 e vai até o limite que você definir geralmente EU inicio ele como:

 

int rd = rand() % 100;

Mas nem sempre é necessário ser até 100 pode ser menos ou mais depende do que você deseja fazer.

Retomando, comecei a escrever tentando entender o porque disso e passei meus logs e etc e percebi que eu estava definindo de maneira errônea o rand

É interessante ressaltar que a utilização de rand individual para funções que utilizam mais de uma vez o rand mesmo é o ideal.

Exemplo:

Errada:

if (dest->sIndex == 1752)//Orc Tropper
                {                
                    if (__rd <= 3) {
                        NextPedra = 1747;//Abismo
                    }
                    else if (__rd > 3 && __rd <= 12) {
                        NextPedra = 1746;//Misericórdia
                    }
                    else if (__rd > 13 && __rd <= 24) {
                        NextPedra = 1745;//Sabedoria
                    }
                    else {
                        NextPedra = 1744;//Inteligencia
                    }
                }

 

 

 

Porque o rand é pra determinar que x coisa pode acontecer caso ele esteja dentro do limite condicionado,

porém se você determina que se rd <= 3 você dize que são 4 chances e não são 3% e sim 4 da mesma forma que se o rd >3 e <=12 não são 12% e sim 8% e assim sucessivamente logo todo o código perde o sentido e o rand fica desproporcional. Segue a forma correta.

 

Correta:

if (dest->sIndex == 1752)//Orc Tropper
                {
                    int __rd = rand() % 94;//Utilizado dessa forma pois eu reconfigurei a minha função pois antes utilizava um rand geral. E como disse não existe a necessidade de ser 100%
                    if (__rd <= 2) {
                        NextPedra = 1747;//Abismo
                    }
                    else if (__rd >= 3 && __rd <= 14) {
                        NextPedra = 1746;//Misericórdia
                    }
                    else if (__rd >= 15 && __rd <= 38) {
                        NextPedra = 1745;//Sabedoria
                    }
                    else {
                        NextPedra = 1744;//Inteligencia
                    }
                }

Aqui podemos ver o seguinte: sendo 3 12 ou 24, determinamos que  isso pode ocorrer em 3, 12 ou 24 diferentes casos. 

 

O estudo para saber qual seria o rand correto.

Pedra Lord Orc
{
0 1 2 //Abismo
3 4 5 6 7 8 9 10 11 12 13 14//Misericórdia
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38//Sabedoria
39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58
59 60 61 62 63 64 65 66 67 68
69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88
89 90 91 92 93 94;//Inteligencia
}
Pedra Esqueleto
{
0 1 2 3  //Abismo
4 5 6 7 8 9 10 11 12 13//Misericórdia
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //Inteligencia
35 36 37 38 39 40 41 42 43 44 
45 46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71 72 73 74
75 76 77 78 79 80 81 82 83 84
85 86 87 88 89//Sabedoria
}
Pedra Dragão Lich{
0 1 2 //Inteligencia
3 4 5 6 7 8 9 10 11//Abismo
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 //Sabedoria
30 31 32 33 34 35 36 37 38 39 
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59 
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84//Misericórdia
}
Pedra do Demonlord{
0 1 2//Inteligencia
3 4 5 6 7 8 9//Sabedoria
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24//Misericórdia
25 26 27 38 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44
45 46 47 48 49 50 51 52 53 54
55 56 57 58 59 60 61 62 63 64
65 66 67 68 69 70 71 72 73 74
75 76 77 78 79//Abismo
}
Pedra da Manticora{
0 1 //Reino
2 3 4 5 6 7//Originalidade
8 9 10 11 12 12 14 15 16 17 18 19//Vitória
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69//Beleza
}

A partir daqui pecebi que os últimos 5 que seriam o rand de 50  seria o último número do 3 +10 e assim sucessivamente então por isso aqui reduziu.
Pedra do Gargula de Fogo{
0 1//Reino
2 3 4 5//Originalidade
6 7 8 9 10 11 12 13 14//Beleza
24 34 44 54 64// Vitória
}
Pedra do Lugefer{
0 1//Beleza
2 3 4 5//Reino
6 7 8 9 10 11// Vitória
21 31 41 51 61//Originalidade
}
Pedra do Rei Demonlord{
0 1//Beleza
2 3 4// Vitória
5 6 7 8 9 //Originalidade
19 29 39 49 59//Reino
}

 

 

Esse tópico tem única e exclusivamente a intenção de ajudar na compreensão do sistema randômico do wyd, se acha que está errado e consegue corrigir assim o faça de maneira que não seja com insultos palavrões ou desdenho, se não consegue corrigir mantenha-se neutro e caso esse tópico não seja interessante a você ou julgue errado, evite quaisquer tipo de comentário desnecessário, Desde já um beijo!

Editado por lord320
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.