KingSCR Posted January 29, 2019 Share Posted January 29, 2019 Boa noite meus querido, alguns dias atrás, me cadastrei no fórum a procura de conhecimento.. estava com muita dificuldade para modificar um script simples e vim procurar ajuda no forum. Assim, várias pessoas me ajudaram, até o moderador do fórum português . Muito obrigado pela ajuda para solucionar este script.. vou mostrar o script antes e depois da modificação que me ajudaram a solucionar. Primeiro código antes da modificação! function DAR_XP_AIRNEWSCR ( source, cmd, pname, Quantidade ) if pname and tonumber(Quantidade) then local cliente = getPlayerFromPartialName(pname) if isElement(cliente) then if getElementData ( source, "Console_AirNewSCR" ) == "Sim" then setElementData ( cliente, "Level", Quantidade ) exports.Scripts_Dxmessages:outputDx(source, "Você Setou o Level do(a) Jogador(a) "..getPlayerName(cliente).."#ffffff para "..Quantidade.." com Sucesso!", "success") exports.Scripts_Dxmessages:outputDx(cliente, "O(A) Admin "..getPlayerName(source).."#ffffff Setou seu Level para "..Quantidade.." com Sucesso!", "success") end else exports.Scripts_Dxmessages:outputDx(source, "O Jogador Não Foi Encontrado", "error") end end end addCommandHandler ( "level", DAR_XP_AIRNEWSCR ) Código modificado ficou assim usando o comando /level "nomeDoPlayer" "level" function DAR_XP_AIRNEWSCR ( source, cmd, pname, Quantidade ) if pname and tonumber(Quantidade) and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then local cliente = getPlayerFromPartialName(pname) if isElement(cliente) then setElementData ( cliente, "Level", tonumber(Quantidade) ) exports.Scripts_Dxmessages:outputDx(source, "Você Setou o Level do(a) Jogador(a) "..getPlayerName(cliente).."#ffffff para "..Quantidade.." com Sucesso!", "success") exports.Scripts_Dxmessages:outputDx(cliente, "O(A) Admin "..getPlayerName(source).."#ffffff Setou seu Level para "..Quantidade.." com Sucesso!", "success") else exports.Scripts_Dxmessages:outputDx(source, "O Jogador Não Foi Encontrado", "error") end end end addCommandHandler ( "level", DAR_XP_AIRNEWSCR ) Agora estou com com um novo Script usando o mesmo data "Console_AirNewSCR" e quero saber se tem como eu modificar ele para dar vip usando o comando /ativar "nomeDoPlayer" "tipodovip""dinheiro" e quantos dias irá durar o vip. estou contando com a ajuda desse fórum que tem ótimos scripts que tem um conhecimento um mais avançado que eu . Meu muito obrigado dês de já! Comando_VIP = "ativar" Grupo = "Console" -- Grupo no Painel P ( Manage ACL ) 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 function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro ) if getElementData ( source, "Console_AirNewSCR" ) == "Sim" then if player and VIP then local Jogador = getPlayerFromPartialName ( player ) if Jogador then if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then local Conta = getAccountName ( getPlayerAccount ( Jogador ) ) if VIP == "Alpha" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true ) end elseif VIP == "Epsylon" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true ) end elseif VIP == "Sigma" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Sigma" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Sigma", source, 255, 255, 255, true ) end elseif VIP == "Omega" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Omega" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Omega", source, 255, 255, 255, true ) end end if VIP == "Alpha" or VIP == "Epsylon" or VIP == "Sigma" or VIP == "Omega" then --return outputChatBox ( "* Erro: Esse VIP não existe!", source, 255, 255, 255, true ) --end aclGroupAddObject ( aclGetGroup( VIP ), "user."..Conta ) Musica_Selecionada = math.random ( 1, 3 ) triggerClientEvent ( root, "AirNewSCR_Ativar_VIP", root, Musica_Selecionada, VIP ) if Musica_Selecionada == 1 then --outputChatBox ( "Arquivos/Rae_Sremmurd_Black_Beatles_ft_Gucci_Mane.mp3", source ) Musica_Tocando = "Rae Sremmurd - Black Beatles ft. Gucci Mane" Bonus = 0 elseif Musica_Selecionada == 2 then --outputChatBox ( "Arquivos/Post_Malone_Congratulations_ft_Quavo.mp3", source ) Musica_Tocando = "Post Malone - Congratulations ft. Quavo" Bonus = 50 elseif Musica_Selecionada == 3 then --outputChatBox ( "XXXTENTACION_Look_At_Me.mp3", source ) Musica_Tocando = "XXXTENTACION - Look At Me!" Bonus = 100 end setElementData ( root, "Ultimo_Ativador", getPlayerName(Jogador) ) setElementData ( root, "VIP_do_Ultimo_Ativador", VIP ) outputChatBox ( " ", root ) outputChatBox ( " ", root ) outputChatBox ( "=======================================================", root, 255, 255, 255, true ) outputChatBox ( "* O(A) Jogador(a) "..getPlayerName(Jogador).." #ffffffAtivou um Plano VIP "..VIP, root, 255, 255, 255, true ) if Bonus == 0 then outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, Não foi dessa vez!", root, 255, 255, 255, true ) outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP", root, 255, 255, 255, true ) if Dinheiro ~= false then givePlayerMoney ( Jogador, 1000000 ) givePlayerMoney ( Jogador, 0 ) end elseif Bonus == 50 then outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, +50% de 1kk (1kk500k)", root, 255, 255, 255, true ) outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP (+500k Bonus)", root, 255, 255, 255, true ) if Dinheiro ~= false then givePlayerMoney ( Jogador, 1000000 ) givePlayerMoney ( Jogador, 500000 ) end elseif Bonus == 100 then outputChatBox ( "* Seu Bonus de Ativação foi de "..Bonus.."%, +100% de 1kk (2kk)", root, 255, 255, 255, true ) outputChatBox ( "* O(A) Jogador(a) Recebeu 1kk pela Ativação do VIP (+1kk Bonus)", root, 255, 255, 255, true ) if Dinheiro ~= false then givePlayerMoney ( Jogador, 1000000 ) givePlayerMoney ( Jogador, 1000000 ) end end outputChatBox ( "* Musica Tocando: "..Musica_Tocando, root, 255, 255, 255, true ) outputChatBox ( "=======================================================", root, 255, 255, 255, true ) outputChatBox ( " ", root ) outputChatBox ( " ", root ) outputDebugString ( "[ Ativação ] - O(A) Admin "..getPlayerName(source).." Ativou um VIP para o(a) Jogador(a) "..getPlayerName(Jogador).."!" ) outputDebugString ( "[ Ativação ] - Bonus do VIP Gerado: "..Bonus.."%" ) setTimer ( function() restartResource ( getThisResource ( ) ) -- Reinicia o Mod Automaticamente! outputDebugString ( "[ AirNewSCR ] - Resource 'Scripts_AtivarVIP' Reiniciado Automaticamente! " ) end, 15000, 1 ) end end else outputChatBox ( "* Erro: Jogador não encontrado!", source, 255, 255, 255, true ) end end end end addCommandHandler ( Comando_VIP, Dar_VIP_AirNewSCR ) function Verificar_Emprego_Atual ( ) for i, player in ipairs(getElementsByType("player")) do local acc = getPlayerAccount(player) if acc and not isGuestAccount(acc) then local accName = getAccountName (acc) if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then setElementData ( player, "Console_AirNewSCR", "Sim" ) else setElementData ( player, "Console_AirNewSCR", "Não" ) end end end end setTimer ( Verificar_Emprego_Atual, 1500, 0 ) -- By AirNewSCR Link to comment
DNL291 Posted January 29, 2019 Share Posted January 29, 2019 40 minutes ago, SnoopSCR said: quero saber se tem como eu modificar ele para dar vip usando o comando /ativar "nomeDoPlayer" "tipodovip""dinheiro" e quantos dias irá durar o vip Primeiro passo é aprender calcular o tempo do VIP, recomendo Timestamp pra isso. Aqui vai um tutorial que vai te ajudar nisso: Dominando o assunto do timestamp, é só aplicar o cálculo no código e setar na conta do jogador. Link to comment
KingSCR Posted January 29, 2019 Author Share Posted January 29, 2019 (edited) 10 minutes ago, DNL291 said: Primeiro passo é aprender calcular o tempo do VIP, recomendo Timestamp pra isso. Aqui vai um tutorial que vai te ajudar nisso: Dominando o assunto do timestamp, é só aplicar o cálculo no código e setar na conta do jogador. Ótimo vou estudar. mais eu estou tentando modificar sem usar o timestamp no momento, tentei tirar o data "consoleAirNewSCR e colocando permissão por Acl. Ficou certo? function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro ) if isElement(cliente) then if player and VIP and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then local Jogador = getPlayerFromPartialName ( player ) if Jogador then if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then local Conta = getAccountName ( getPlayerAccount ( Jogador ) ) if VIP == "Alpha" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true ) end elseif VIP == "Epsylon" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true ) end elseif VIP == "Sigma" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Sigma" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Sigma", source, 255, 255, 255, true ) end elseif VIP == "Omega" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Omega" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Omega", source, 255, 255, 255, true ) end end if VIP == "Alpha" or VIP == "Epsylon" or VIP == "Sigma" or VIP == "Omega" then --return outputChatBox ( "* Erro: Esse VIP não existe!", source, 255, 255, 255, true ) --end Estou tentando o comando /ativar login omega 50 e não acontece nada, agora vou fazer um debug com outputChatBox pra ver o que está ocorrendo com o script. Me ajude por favor; Edited January 29, 2019 by SnoopSCR Link to comment
DNL291 Posted January 29, 2019 Share Posted January 29, 2019 (edited) Alguns erros aí. 1 - 'Cliente' não está definido, logo, retornará nil, então a verificação de certa forma está assim: isElement(nil) 2 - Coloque getPlayerFromPartialName depois do escopo da linha 5 e substitua Jogador com player (na linha 5). Edit: Na verdade essa parte tá certa, o que tá impedindo o seu código de executar é o isElement no começo. Edited January 29, 2019 by DNL291 Link to comment
Other Languages Moderators Lord Henry Posted January 29, 2019 Other Languages Moderators Share Posted January 29, 2019 (edited) E tem erro de indentação. Alguns lugares vc fez por tabulações e outros por espaços. Recomendo que faça tudo por tabulação. E caso vc queira criar outro VIP no futuro, sugiro o nome Zeta. (Z) Gostei da ideia desses nomes que vc usou. Edited January 29, 2019 by Lord Henry Link to comment
KingSCR Posted February 1, 2019 Author Share Posted February 1, 2019 On 28/01/2019 at 23:50, DNL291 said: Alguns erros aí. 1 - 'Cliente' não está definido, logo, retornará nil, então a verificação de certa forma está assim: isElement(nil) 2 - Coloque getPlayerFromPartialName depois do escopo da linha 5 e substitua Jogador com player (na linha 5). Edit: Na verdade essa parte tá certa, o que tá impedindo o seu código de executar é o isElement no começo. Eu fiz a seguinte modificação e funcionou! function Dar_VIP_AirNewSCR ( source, cmd, player, VIP, Dinheiro ) if player and VIP and tonumber(Dinheiro) and (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(source)), aclGetGroup("Console"))) then local Jogador = getPlayerFromPartialName ( player ) if Jogador then if not isGuestAccount ( getPlayerAccount ( Jogador ) ) then local Conta = getAccountName ( getPlayerAccount ( Jogador ) ) if VIP == "Alpha" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Alpha" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Alpha", source, 255, 255, 255, true ) end elseif VIP == "Epsylon" then if isObjectInACLGroup ("user."..Conta, aclGetGroup ( "Epsylon" ) ) then return outputChatBox ( "* Erro: Esse Jogador já é VIP Epsylon", source, 255, 255, 255, true ) end Está tudo certo? On 29/01/2019 at 00:38, Lord Henry said: E tem erro de indentação. Alguns lugares vc fez por tabulações e outros por espaços. Recomendo que faça tudo por tabulação. E caso vc queira criar outro VIP no futuro, sugiro o nome Zeta. (Z) Gostei da ideia desses nomes que vc usou. Vou concertar tudo logo mais. Obrigado pela dica, estamos juntos. 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