Jump to content

Iniciante - Pergunta simples


Recommended Posts

Galera, me desculpem pela pergunta "besta"... Mas eu to quebrando a cabeça com isso!!!! 

 

Tem vez que eu faço o código e funciona e tem vez que não... É beeeeem simples, porém tá me dando uma boa dor de cabeça, e juro que não gostaria de abrir um tópico com algo assim...


Tem vezes que adiciono esse comando bem simples mas não funciona: 

function DarDinheiro(player)
    setPlayerMoney(player, 100)
end 
addCommandHandler("dar", DarDinheiro)

Me retorna o seguinte erro: 

expected bool at argument 2

Mas por que o setPlayerMoney está aguardando um valor booleano no 2 argumento? Sendo que os elementos são: String player e Int quantidade? 

 

Obrigado pelo help e desculpem a pergunta boba...

Galera, eu vi que assim funciona: 

function DarDinheiro()
    setPlayerMoney(11, true)
end 
addCommandHandler("dar", DarDinheiro)

Mas por que ele foi sem eu setar o elemento? 

Testei assim também (mas me deu erro dizendo algo sobre converter para string)

function DarDinheiro(player)
    setPlayerMoney(player, 11)
end 
addCommandHandler("dar", DarDinheiro)

E caso eu use essa function(player) o setPlayerMoney não funciona?

Link to comment

essa sua duvida é comum e bem vinda, não se preocupe

na verdade oq acontece é que tanto o addCommandHandler quanto setPlayerMoney usam diferentes sequencias de argumentos, veja na wiki:

https://wiki.multitheftauto.com/wiki/SetPlayerMoney

tem os quadros em 2 cores, o laranja é server, o vermelho é client, o mesmo acontece com https://wiki.multitheftauto.com/wiki/AddCommandHandler

a wiki recomenda que o uso de setPlayerMoney seja feito em server side, e isso significa que vc deve usar os parâmetros de addCommandHandler tbm em server side

veja na wiki do addCommandHandler em Handler function parameters:

  • parametro 1: o player que executou o comando
  • parametro 2: o nome do comando (isso vc vai usar raramente, é pra quando quer usar dois comandos ou mais pra mesma função)
  • parametro 3 em diante: sao argumentos opcionais (isso é o que por exemplo seria o player e quantia para dar o dinheiro /dar Fulano 1000, sendo fulando o argumento 3 e 1000 o 4)

na sua tentativa que funcionou provavel que foi clientside e o dinheiro caiu pra seu proprio player, ja que o primeiro parametro ta direto como quantia.

para clientside vc não poderia dar dinheiro para outros em sincronia com o server, seria efetivo só para o próprio player que deu o comando, entao eu vou deixar um exemplo em server side:

function DarDinheiro(player,cmd,paraquem,quantia)
	setPlayerMoney(getPlayerFromName(paraquem), quantia)
end 
addCommandHandler("dar", DarDinheiro)--use /dar nomedoplayer quantia

note que esse exemplo não faz checagem se o player digitado existe e nao da nenhuma mensagem de sucesso, porem sim testei e funciona, se quiser fazer essas melhorias para praticar blz

 

  • Thanks 1
Link to comment
4 hours ago, _Ace said:

* se quiser somar com o dinheiro que o player ja tem é tudo igual porem use givePlayerMoney

Muitíssimo obrigado! 

Sou muito grato pelo apoio de vocês! 

Sei que vou aprender para futuramente ajudar outras pessoas. 

 

Até lá vou ter bastante dúvidas (sou bem curioso também), conto com vocês! Obrigado a todos da comunidade.

Link to comment

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