Jump to content

math.random e givePlayerMoney


Recommended Posts

EDITADO

Ola, hoje tentarei explicar um pouco sobre a funcão math.random.

O que ela faz?

R: ela sorteia um numero aleatório.

exemplo:

  
function MinhaFuncao(thePlayer) 
 local Numero = math.random(1,2) 
  if (Numero == 1) then 
  givePlayerMoney(thePlayer,200) 
  outputChatBox("Você acerto",thePlayer) 
   else 
   killPed(thePlayer) 
    outputChatBox("Você Errou por isso sera morto!",thePlayer) 
end 
 end 
addCommandHandler("sorte",MinhaFuncao) 

Neste Exemplo quando um jogador digitar /sorte sera gerado uma matematica aleatoria (math.random) dos numeros 1 até 2

ou seja 1 ou 2.

Em seguida armazenamos esse valor na variavel Numero. Então checamos se o numero gerado é 1, se for o jogador (thePlayer) ganhara R$ 200,00 e uma mensagem sera iniciada dizendo que ele acertou! Caso contrario (else) ele sera morto.

Funções usadas:

givePlayerMoney 

adiciona dinheiro a um jogador

o 1° argumento é o jogador que você quer dar dinheiro.

o 2° argumento é a quantidade ( quantos de dinheiro ele vai ganhar?)

outputChatBox 

Cria uma mensagem no chat.

o 1° argumento é a mensagem.

o 2° é (opcional) é para quem você vai mandar a mensagem.

o 3° é (opcional) que representa a quantidade de cor vermelha que a mensagem tera.

o 4° é (opcional) que representa a quantidade de cor verde que a mensagem tera.

o 5° é (opcional) que representa a quantidade de cor azul que a mensagem tera.

killPed 

mata um ped/player

o 1° argumento se refere a quem sera morto!

Bom pessoal foi isso. Qualquer duvida/sugestão/critica fique a vontade para postar. Obrigado!

local numeros = { "Um", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez" } 
  
outputChatBox( numeros[math.random(1, #numeros)] ) 

nesse exemplo que o dnl291 criou, vou tentar explicar algumas coisas (me corrija se tiver errado sou novo com tabelas)

Então primeiro é criado uma tabela (numeros)

então é adicionado uma caixa de xat para exibir o resultado aleatorio.

Então você se pergunta: como vou tirar um numero aleatorio de uma tabela?

então é como se cada elemento da tabela correspondesse a um numero.

então numeros[1] = "Um"

numeros[2] = "Dois"

e assim sucessivamente. numeros[1] é o primeiro elemento da tabela numeros.

De um jeito logico na math.random é enumerado cada item da tabela e cada item é um numero.

Voltando ao script:

para que usar o #?

R: esse simbolo é usado para obter o comprimento de uma tabela ou string.

Como Crio uma tabela?

R: você inicia uma tabela com "{" e termina com "}"

Um pequeno exemplo: (apenas exemplo)

local Semana = {"Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"} 
  
function SemanaFuncao() 
 local S = Semana[math.random(1,#Semana)] 
  if (S == "Sábado") or (S == "Domingo") then 
   outputChatBox("Hoje é final de semana, curta seu tempo livre") 
    else 
outputChatBox("Hoje é dia de trabalhar, o que você esta esperando para começar? um convite?") 
 end 
  end 
 addCommandHandler("Semana",SemanaFuncao) 
  

Novamente agradeço a quem leu esse topico, obrigado dnl291 pela sugestão (e correções)!

Edited by Guest
  • Like 1
Link to comment

Você poderia abordar outras coisas além do comando sorte. como um item aleatório de uma tabela.

Exemplo:

local numeros = { "Um", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez" } 
  
outputChatBox( numeros[math.random(1, #numeros)] ) 
  

No entanto, não sei se você ainda sabe lidar com tabelas.

Apesar de ter faltado mais informações básicas sobre math.random (afinal o tutorial está abordando ela assim como givePlayerMoney), é um bom tutorial que poderá ajudar quem tem dúvidas com essas funções.

Link to comment
  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...