Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,005
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. @Thalysson não reviva tópicos antigos. Veja as regras do fórum aqui. Sobre aumentar o volume da voz do jogador: setSoundVolume (localPlayer, 1)
  2. Os comandos acima vão resetar de todas as contas. Pra resetar de uma pessoa apenas, vc precisa do login da pessoa. start runcode srun setAccountData (getAccount("loginDaPessoa"), "Bank:Caixa", false) stop runcode Faça isso com a pessoa desconectada.
  3. Exemplo: (client-side) function BloodDamage () local x, y, z = getElementPosition (localPlayer) -- Obtém a posição do jogador. fxAddBlood (x, y, z, 0, 0, 0, math.random (1, 3), 1) -- Cria o sangue na posição do jogador, aleatório de 1 a 3 gotas por vez. end addEventHandler ("onClientRender", root, BloodDamage)
  4. Não há necessidade de math.random se você está usando apenas 1 coordenada para cada teleporte. Faça assim: local posicoes = { ["sf"] = {-1462, 1491.5, 8.26}, ["drift"] = {-300, 1533, 76}, -- ["comando"] = {x, y, z}, -- Adicione outros teles aqui. } local spamTimer = {} function teleporte (thePlayer, cmd) -- cmd = "sf" ou "drift" dependendo do comando utilizado. if (isTimer (spamTimer[thePlayer])) then return outputChatBox ("Aguarde 2 segundos para poder teleportar novamente.", thePlayer, 255, 0, 0) end -- Se o jogador já executou algum teleporte recentemente, manda isso pra ele e cancela a função. if (posicoes[cmd]) then -- Se existe esse comando na lista de posições, então: if (getPedOccupiedVehicle(thePlayer)) then -- Se o jogador que executou o comando estiver dentro de um veículo, então: setElementPosition (getPedOccupiedVehicle(thePlayer), unpack (posicoes[cmd])) -- Teleporta o veículo para a posição x, y, z que estão na posição [cmd] da lista. else -- Se o jogador não estiver em um veículo, então: setElementPosition (thePlayer, unpack (posicoes[cmd])) -- Teleporta o jogador para a posição x, y, z que estão na posição [cmd] da lista. end spamTimer[thePlayer] = setTimer (function () -- Inicia um timer de 2 segundos, enquanto esse timer estiver ativo, nenhum teleporte funcionará para este jogador. spamTimer[thePlayer] = nil -- Depois de 2 segundos, finaliza o timer e anula a variável do spamTimer desse jogador. end, 2000, 1) if (cmd == "sf") then -- Manda uma mensagem diferente no chat dependendo do comando utilizado. outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para O Aeroporto De SF #FFFFFF(#00FF00 /sf #FFFFFF)", root, 255, 255, 255, true) elseif (cmd == "drift") then outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para pista de Drift #FFFFFF(#00FF00 /drift #FFFFFF)", root, 255, 255, 255, true) -- elseif (cmd == "comando") then -- Adicione outras mensagens de teles aqui. -- outputChatBox ("[ #00FF00Tele#FFFFFF ]: " .. getPlayerName(thePlayer) .. " #828282Foi Para algum lugar #FFFFFF(#00FF00 /comando #FFFFFF)", root, 255, 255, 255, true) end end end addCommandHandler ("sf", teleporte) addCommandHandler ("drift", teleporte) -- addCommandHandler ("comando", teleporte) -- Adicione outros teles aqui. function quitTimer () if (isTimer (spamTimer[source])) then -- Se o jogador que saiu do servidor tinha um timer pendente, então: killTimer (spamTimer[source]) -- Cancela o timer de spam dele. spamTimer[source] = nil -- Limpa a variável do timer dele. end end addEventHandler ("onPlayerQuit", root, quitTimer) -- Chama essa função quando um jogador desconecta do servidor.
  5. Tópico movido para a seção de Programação em Lua. Outra coisa: Código ilegível. Deixe-o devidamente indentado.
  6. Script já está errado. GivePlayerMoney não funciona client-side. Só muda o valor na HUD do jogador.
  7. Isso é client-side, amigo. Só vai sumir pra quem apertar o F11.
  8. Exemplo básico de um save-system. Só com a parte do dinheiro: (server-side) function loadData (prevAcc, currAcc) -- currAcc é a conta na qual o jogador logou. prevAcc é a conta que ele estava antes (guest). if (getAccountData (currAcc, "grana")) then -- Se tem alguma grana salva nessa conta, então: local dinheiro = getAccountData (currAcc, "grana") -- Dinheiro recebe o quanto de dinheiro estava salvo na conta que o jogador logou. setPlayerMoney (source, dinheiro) -- Seta essa quantidade de grana no bolso do jogador. outputChatBox ("Dinheiro carregado da sua conta com sucesso.", source, 0, 255, 0) end end addEventHandler ("onPlayerLogin", root, loadData) -- Ativa a função loadData sempre que um jogador logar. function saveData (prevAcc, currAcc) -- prevAcc é a conta na qual o jogador estava logado. currAcc é a conta que ficou depois de deslogar (guest). local dinheiro = getPlayerMoney (source) -- Dinheiro recebe o quanto de dinheiro que o jogador tinha no bolso quando deslogou. setAccountData (prevAcc, "grana", dinheiro) -- Salva na conta do jogador a grana que ele tinha no bolso quando deslogou. Mesmo que seja 0. end addEventHandler ("onPlayerLogout", root, saveData) -- Ativa a função saveData sempre que um jogador deslogar.
  9. Na verdade daria erro. Pois ele vai reclamar dizendo que esperava um argumento do tipo element mas recebeu um número (255). Corrigi para você. ?
  10. setPlayerHudComponentVisible quando inicia o resource. Use também na tecla F11, para alternar entre Hud visível e invisível, pois ao pressionar o F11 para fazer o mapa sumir, a HUD original do GTA volta a aparecer. setPlayerHudComponentVisible bindKey Fiz um exemplo da parte de bind, com F11 function manageHud (state) -- Mostra/oculta o HUD original dependendo do valor de state. setPlayerHudComponentVisible ("clock", state) setPlayerHudComponentVisible ("money", state) setPlayerHudComponentVisible ("health", state) setPlayerHudComponentVisible ("armour", state) setPlayerHudComponentVisible ("weapon", state) setPlayerHudComponentVisible ("ammo", state) setPlayerHudComponentVisible ("wanted", state) setPlayerHudComponentVisible ("breath", state) end function Hud () dxDrawText ("HUD", 0, 0) -- dxDraw functions... (seu HUD aqui) end function HudSome () if isVisible then -- Variável qualquer, na primeira verificação sempre é false pois ela nem existe. addEventHandler("onClientRender", root, Hud) -- Começa a renderizar a HUD. manageHud (false) -- Oculta o HUD original. else -- Se não tem a variável ou ela for igual a false, então: removeEventHandler("onClientRender", root, Hud) -- Para de renderizar a HUD. end isVisible = not isVisible -- Alterna essa variável entre true e false sempre que apertar F11. end bindKey ("F11", "down", HudSome) function startHud () addEventHandler ("onClientRender", root, Hud) -- Começa a renderizar o HUD quando este resource for ligado. manageHud (false) -- Para de mostrar o HUD original quando este resource for ligado. end addEventHandler ("onClientResourceStart", resourceRoot, startHud) function stopHud () manageHud (true) -- Mostra o HUD original quando este resource for desligado. end addEventHandler ("onClientResourceStop", resourceRoot, stopHud)
  11. Não é possível. Aplica em todos os jogadores que forem usar a arma cuja propriedade foi alterada. A função só funciona client-side para armas customizadas.
  12. Ué, vc pode usar a database nativa register.db e editá-la quando lhe convém. Só dar restart no resource que salva as kills e ele vai carregar da database.
  13. @Tommy. Tá bem errado isso aí, hein? Pra quê a verificação do source se você nem está usando vehicle? Creio que a partir da linha 8, era pra usar vehicle. Além disso, pra quê alterar tanta propriedade? O cara só pediu pra alterar a velocidade.
  14. Olha, não recomendo que faça com createColRectangle. Pois não tem como criá-lo com ângulos Z diferentes de 0, 90, 180, 270. Sugiro criar com createColSphere, que funciona com qualquer ângulo.
  15. Opa, valeu maninho. Mas vc pode comentar no vídeo se não quiser criar uma conta aqui.
  16. @Tommy. @Jonas^ Sobre o problema com indentação zoada: Só configurar pra indentar com espaços em vez de tabulações. function name () -- TAB end function name () -- 4 spaces end
  17. Você pode obter o elemento que foi clicado no evento onClientClick. Se o objeto fizer parte do seu script, basta adicionar um addCommandHandler com um detachElements para soltar e attachElements para pegar. setPedAnimation Se for clicar em um painel, use onClientGUIClick. Se for clicar em um elemento do cenário, use onClientClick.
  18. @NeoGM não reviva tópicos resolvidos.
  19. Prender objeto a outro objeto: attachElements Prender objeto a um jogador: funções exportadas pelo resource Bone_Attach.
  20. commands = { -- Lista de comandos. ["coco"] = {} -- Lista de timers que bloqueiam este comando em um jogador específico. } addEventHandler ("onPlayerCommand", root, function (cmd) if (commands[cmd]) then -- Se o comando executado existe na lista de bloqueios, então: if (isTimer (commands[cmd][source])) then -- Se o jogador que executou este comando está com ele bloqueado (existe o timer), então: outputChatBox ("Este comando está desativado para você.", source, 255, 0, 0) cancelEvent() else -- Se não existe o setTimer deste jogador neste comando, significa que o comando não está bloqueado, então: commands[cmd][source] = setTimer (function (theSource) -- Adiciona este timer na lista, depois de 1 minuto ele vai sumir da lista e o jogador poderá usar o comando novamente. commands[cmd][theSource] = nil -- source não existe dentro de uma função setTimer, por isso precisou ser passado via parâmetro. end, 60000, 1, source) outputChatBox ("Comando executado.", source, 0, 255, 0) end end end) addEventHandler ("onPlayerQuit", root, function () -- Ativa quando um jogador desconecta do servidor. for i, v in pairs (commands) do -- Para cada comando da lista, faça: if (isTimer (v[source])) then -- Se existe o timer do jogador que saiu neste comando, então: killTimer (v[source]) -- Cancela o timer. v[source] = nil -- Libera a variável do timer. end end end) Testado e funcionando. (server-side)
  21. function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end ratio = 3.524923 -- Valor qualquer só pra testar. function qualquerCoisa (cmd) outputChatBox (math.round (ratio, 3, "floor"), 255, 255, 0) -- Manda no chat o número com somente 3 decimais. end addCommandHandler ("ratio", qualquerCoisa) Client-side
  22. Postou na seção errada (tutoriais em geral). Dúvidas sobre mapas você posta na seção Mapas para MTA:SA Tópico movido para a seção correta.
  23. Mas qual a sua dúvida em si? Vc está com problemas em calcular a conversão ou apenas em criar um campo de input em DX? Seria útil mostrar o código do seu painel para que possamos lhe ajudar. Eita rapaz, o Tommy ta me seguindo logo abaixo. \/
×
×
  • Create New...