carlos eduardo Posted January 6, 2018 Share Posted January 6, 2018 (edited) function darDinheiro(player, cmd, thePlayer) local nomeacc = gatAccountName(getPlayerAccount(thePlayer)) if not isObjectInACLGroup("user."..nomeAcc, aclGetGroup(admin)) then outputChatBox("#0077ffVocê não é um admin para usar esse comando", 255, 255, 255, true) else givePlayerMoney(player, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), player, 255,255,255, true) end addCommandHandler("dinheiro", darDinheiro) Alguem poderia me ajudar? Estou querendo fazer esse mini script para dar dinheiro só q,eu queria q quem estivesse fora do grupo da acl não conseguisse acessar o codigo, só q quem estivesse nele podesse executar o codigo obs:Sei que estou pedindo muita ajuda só que isso é para eu aprender e poder fazer scripts publicos também <3 Edited January 6, 2018 by carlos eduardo ja aprendi a do dinheiro Link to comment
KaMi Posted January 7, 2018 Share Posted January 7, 2018 function darDinheiro( player ) local acc = getAccountName(getPlayerAccount(player)) if not isObjectInACLGroup("user."..acc, aclGetGroup("Admin")) then outputChatBox("#0077ffVocê não é um admin para usar esse comando", 255, 255, 255, true) else givePlayerMoney(player, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), player, 255,255,255, true) end end addCommandHandler("dinheiro", darDinheiro) 1 Link to comment
carlos eduardo Posted January 7, 2018 Author Share Posted January 7, 2018 5 minutes ago, <~KaMiKaZe~> said: function darDinheiro( player ) local acc = getAccountName(getPlayerAccount(player)) if not isObjectInACLGroup("user."..acc, aclGetGroup("Admin")) then outputChatBox("#0077ffVocê não é um admin para usar esse comando", 255, 255, 255, true) else givePlayerMoney(player, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), player, 255,255,255, true) end end addCommandHandler("dinheiro", darDinheiro) muito obrigado vou testar agora para ver se deu certo 14 minutes ago, <~KaMiKaZe~> said: function darDinheiro( player ) local acc = getAccountName(getPlayerAccount(player)) if not isObjectInACLGroup("user."..acc, aclGetGroup("Admin")) then outputChatBox("#0077ffVocê não é um admin para usar esse comando", 255, 255, 255, true) else givePlayerMoney(player, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), player, 255,255,255, true) end end addCommandHandler("dinheiro", darDinheiro) esta dando o mesmo erro de antes, ele n mostra nada no chat n sei nem se ta dando o dinheiro Link to comment
DNL291 Posted January 7, 2018 Share Posted January 7, 2018 Tente: function darDinheiro(player, cmd, playerName) if playerName and getPlayerFromPartialName( playerName ) then local playerTarget = getPlayerFromPartialName( playerTarget ) local nomeacc = getAccountName(getPlayerAccount(player)) if isObjectInACLGroup("user."..nomeacc, aclGetGroup("admin")) then givePlayerMoney(playerTarget, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), playerTarget, 255,255,255, true) outputChatBox("#0077ffVocê deu $1000 para o jogador " .. getPlayerName(playerTarget), player, 255,255,255, true) else outputChatBox("#0077ffVocê não é um admin para usar esse comando", player, 255, 255, 255, true) end else outputChatBox( "Jogador não encontrado!", player, 230, 0, 0 ) end end addCommandHandler("dinheiro", darDinheiro) function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Da próxima vez, use o comando /debugscript 3 pra ver no debug os erros do seu código. 1 Link to comment
carlos eduardo Posted January 7, 2018 Author Share Posted January 7, 2018 4 minutes ago, DNL291 said: Tente: function darDinheiro(player, cmd, playerName) if playerName and getPlayerFromPartialName( playerName ) then local playerTarget = getPlayerFromPartialName( playerTarget ) local nomeacc = getAccountName(getPlayerAccount(player)) if isObjectInACLGroup("user."..nomeacc, aclGetGroup("admin")) then givePlayerMoney(playerTarget, 1000) outputChatBox("#0077ffVocê recebeu dinheiro de " .. getPlayerName(player), playerTarget, 255,255,255, true) outputChatBox("#0077ffVocê deu $1000 para o jogador " .. getPlayerName(playerTarget), player, 255,255,255, true) else outputChatBox("#0077ffVocê não é um admin para usar esse comando", player, 255, 255, 255, true) end else outputChatBox( "Jogador não encontrado!", player, 230, 0, 0 ) end end addCommandHandler("dinheiro", darDinheiro) function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Da próxima vez, use o comando /debugscript 3 pra ver no debug os erros do seu código. obrigado pela dica e por fazer o script, eu só não entendi o playerTarget(tipo o id ou nome) Link to comment
DNL291 Posted January 7, 2018 Share Posted January 7, 2018 playerTarget Vai retornar o jogador que vai receber o dinheiro; E a função getPlayerFromPartialName obtém o jogador pelo nick. Então a sintaxe será: /dinheiro [nome_do_jogador] 1 Link to comment
carlos eduardo Posted January 7, 2018 Author Share Posted January 7, 2018 3 minutes ago, DNL291 said: playerTarget Vai retornar o jogador que vai receber o dinheiro; E a função getPlayerFromPartialName obtém o jogador pelo nick. Então a sintaxe será: /dinheiro [nome_do_jogador] hm, muito obrigado, não precisava ter gastado o seu tempo para ter feito um script 8 minutes ago, DNL291 said: playerTarget Vai retornar o jogador que vai receber o dinheiro; E a função getPlayerFromPartialName obtém o jogador pelo nick. Então a sintaxe será: /dinheiro [nome_do_jogador] sei que vc deve estar de saco cheio comigo só que o /debugscript 3 mostrou isso: attempt to concatenate a boolean value Link to comment
carlos eduardo Posted January 7, 2018 Author Share Posted January 7, 2018 50 minutes ago, DNL291 said: playerTarget Vai retornar o jogador que vai receber o dinheiro; E a função getPlayerFromPartialName obtém o jogador pelo nick. Então a sintaxe será: /dinheiro [nome_do_jogador] e aparecendo bad argument no getPlayerName e no givePlayerMoney Link to comment
DNL291 Posted January 7, 2018 Share Posted January 7, 2018 Como você não digitou a mensagem do debug toda, não sei exatamente o que tem errado no código, pra mim não parece ter nenhum erro. Será que não foi o nick do jogador inválido?Agora percebi o erro, na linha 4, troque playerTarget por playerName, deixe assim: local playerTarget = getPlayerFromPartialName( playerName ) 1 hour ago, carlos eduardo said: hm, muito obrigado, não precisava ter gastado o seu tempo para ter feito um script Nem esquenta, não leva muito tempo pra fazer código assim e sempre gostei mais de ajudar do que de fazer scripts pra mim mesmo. 1 Link to comment
carlos eduardo Posted January 7, 2018 Author Share Posted January 7, 2018 44 minutes ago, DNL291 said: Como você não digitou a mensagem do debug toda, não sei exatamente o que tem errado no código, pra mim não parece ter nenhum erro. Será que não foi o nick do jogador inválido?Agora percebi o erro, na linha 4, troque playerTarget por playerName, deixe assim: local playerTarget = getPlayerFromPartialName( playerName ) Nem esquenta, não leva muito tempo pra fazer código assim e sempre gostei mais de ajudar do que de fazer scripts pra mim mesmo. Bom que fazendo posts assim ajuda outras pessoas também 47 minutes ago, DNL291 said: Como você não digitou a mensagem do debug toda, não sei exatamente o que tem errado no código, pra mim não parece ter nenhum erro. Será que não foi o nick do jogador inválido?Agora percebi o erro, na linha 4, troque playerTarget por playerName, deixe assim: local playerTarget = getPlayerFromPartialName( playerName ) Nem esquenta, não leva muito tempo pra fazer código assim e sempre gostei mais de ajudar do que de fazer scripts pra mim mesmo. esse é o nome do erro: [testes]\dardinheiro\dinheiro.lua:9: attempt to concatenate a boolean value Que mesmo fazendo oq vc mandou ta dando m mesmo erro Link to comment
Other Languages Moderators Lord Henry Posted January 7, 2018 Other Languages Moderators Share Posted January 7, 2018 Por acaso esse seu script é pra dar sempre exatamente $1000? Ou vc quer informar o valor da grana junto com o comando? Se vc quer dar sempre $1000, tente isso: function darDinheiro (theStaff, cmd, thePlayer) local accName = getAccountName (getPlayerAccount (theStaff)) -- recebe o seu login. local theTarget = getPlayerFromName (thePlayer) -- recebe o jogador cujo nick vc informou no comando. (o nick precisa ser exato incluindo as cores) if isObjectInACLGroup ("user."..accName, aclGetGroup ("Admin")) or isObjectInACLGroup ("user."..accName, aclGetGroup ("Console")) then if theTarget then -- Se foi encontrado um jogador com o nick informado, então: givePlayerMoney (theTarget, 1000) -- da $1000 ao jogador. outputChatBox ("Você deu $1000 ao jogador "..thePlayer, theStaff, 255, 255, 255, true) else outputChatBox ("Jogador inválido.", theStaff, 255, 0, 0) end else outputChatBox ("Acesso negado a este comando.", theStaff, 255, 0, 0) end end addCommandHandler ("dinheiro", darDinheiro) -- /dinheiro meuNick123 Se vc quer informar o valor do dinheiro junto com o comando, tente isso: function darDinheiro (theStaff, cmd, thePlayer, valor) local accName = getAccountName (getPlayerAccount (theStaff)) -- recebe o seu login. local theTarget = getPlayerFromName (thePlayer) -- recebe o jogador cujo nick vc informou no comando. (o nick precisa ser exato incluindo as cores) if isObjectInACLGroup ("user."..accName, aclGetGroup ("Admin")) or isObjectInACLGroup ("user."..accName, aclGetGroup ("Console")) then if theTarget then -- Se foi encontrado um jogador com o nick informado, então: if valor then giveMoney (theTarget, tonumber(valor)) -- da o valor ao jogador convertido em número. outputChatBox ("Você deu $"..valor.." ao jogador "..thePlayer, theStaff, 255, 255, 255, true) else outputChatBox ("Valor inválido.", theStaff, 255, 0, 0) end else outputChatBox ("Jogador inválido.", theStaff, 255, 0, 0) end else outputChatBox ("Acesso negado a este comando.", theStaff, 255, 0, 0) end end addCommandHandler ("dinheiro", darDinheiro) -- /dinheiro meuNick123 1000 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