MatheusNs Posted April 23, 2020 Share Posted April 23, 2020 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
_Ace Posted April 23, 2020 Share Posted April 23, 2020 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 1 Link to comment
_Ace Posted April 23, 2020 Share Posted April 23, 2020 * se quiser somar com o dinheiro que o player ja tem é tudo igual porem use givePlayerMoney 1 Link to comment
MatheusNs Posted April 24, 2020 Author Share Posted April 24, 2020 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now