Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,971
  • Joined

  • Last visited

  • Days Won

    179

Everything posted by Lord Henry

  1. Defina a dimensão e interior do jogador que logou como 0. setElementDimension setElementInterior
  2. Mostre a parte do código que vc está usando para criar a minigun e também a parte que seta a propriedade.
  3. @Sr. BruxoMostre o que vc já tentou fazer.
  4. Você precisa criar a versão LOD desse objeto e substituir o LOD original também.
  5. setElementHealth (player, 100) setPedArmor (player, 100)
  6. Ban appeals must be in English. Revisões de banimentos precisam ser feitos em inglês.
  7. Interessante e bem detalhado. Porém faltou a informação mais importante para os candidatos à vaga: Ganhos e benefícios. Se esperam que as pessoas trabalhem de graça, então estão completamente fora da realidade ou precisam diminuir muito os requisitos.
  8. @Paulo Mikhael Gomes S. Favor não reviver tópicos antigos.
  9. Desculpe, esqueci de mencionar que a função split retorna uma tabela em vez dos valores separados. Dai você precisa acessar os valores da tabela pelos índices. function SetarCor (playerSource, getMsg) local uVehicle = getPedOccupiedVehicle (playerSource) if (uVehicle) then local cores = split (getMsg, ',') local r = cores[1] or 0 local g = cores[2] or 0 local b = cores[3] or 0 setVehicleColor (uVehicle, r, g, b) iprint (r, g, b) end end addEvent ("SetarCor", true) addEventHandler ("SetarCor", root, SetarCor)
  10. vehTimers = {} -- Tabela de timers anexados aos veículos. addEventHandler ("onVehicleExit", root, function (thePed, seat) -- Função ativada quando alguém sair de algum veículo. if (seat == 0) then -- Se quem saiu do veículo era o motorista, então: for i,v in pairs (Carro) do -- Para cada veículo da tabela Carro, faça: if not (isElement(v)) then -- Se um veículo da tabela Carro não existe mais, então limpa ele da tabela. Carro[i] = nil end if (theSource == v) then -- Se o veículo que o jogador saiu é o mesmo que este veículo específico da tabela, então: vehTimers[source] = setTimer (function (theSource) -- Inicia um timer de 10 segundos, vinculado ao veículo da tabela. (theSource = source) vehTimers[theSource] = nil -- Limpa a variável deste timer. if not (isElement(theSource)) then return end -- Se o veículo que o player saiu já não existe mais, então cancela essa função e nada acontece. destroyElement (v) -- Destrói o veículo. Carro[i] = nil -- Limpa ele da tabela Carro. end, 10000, 1, source) -- Passa o source por parâmetro para dentro do setTimer, pois dentro do setTimer o source original não existe. break -- Encerra o looping para não precisar verificar os demais veículos, pois ele já foi encontrado. end end end end) addEventHandler ("onVehicleEnter", root, function (thePed, seat) -- Função ativada quando alguém entrar em algum veículo. if (seat == 0) then if (isTimer(vehTimers[source])) then killTimer (vehTimers[source]) -- Cancela o timer caso alguém entre de motorista no veículo antes do tempo acabar. vehTimers[source] = nil end end end) Obs: Tenha um sistema que impeça que outros players entrem no veículo que não é deles.
  11. @DaddyMTAvocê não pode converter um texto único em 3 números usando apenas o tonumber. Se o texto possuir algum símbolo entre os números, dará erro. Você pode fazer de 2 formas: Mais recomendada: criar 3 editboxes. Um para a cor Red, outro pra cor Green e outro pra cor Blue. E depois use tonumber em cada valor. Opcional: Limite o número de caracteres deles em no máximo 3. Bloqueie qualquer caractere que não seja número de ser digitado nos campos. Considere campos vazios como 0. Evitando erros. Mais fácil: pegue o texto digitado nos campos e separe-o em 3 sub-textos usando a função split. Para isso ser possível, é necessário que o texto tenha algum caractere separando os valores, por exemplo uma vírgula. Então é só dar tonumber em cada uma delas. Opcional: Verifique sempre se o split retornou 3 valores. Se só encontrar 2 strings, considere o terceiro como 0. Se encontrar só 1 string, considere o segundo e terceiro como 0.
  12. Basta adicionar isso no início das suas funções: if not (matchingDimension) then return end -- Se o elemento que colidiu não estiver na mesma dimensão que o marker, então cancela esta função e nada acontece.
  13. Primeiramente você precisa prestar atenção que thePlayer nem sempre será um jogador quando a função foi ativada pelo onMarkerHit. Ele pode ser qualquer elemento que colidiu no marker. Sendo assim, você precisa verificar se thePlayer é mesmo um player. Depois disso, aí sim você verifica se thePlayer está em um veículo. Pois se ele não for um player ou ped, dará erro. function PortaoDoor1Loja (thePlayer) if (getElementType(thePlayer) == "player") then -- Se o elemento thePlayer for um jogador, então: if not (getPedOccupiedVehicle(thePlayer)) then -- Se o thePlayer não está em um veículo, então: moveObject (Gate10, 200, 954.4, -1720.7, 12.6) -- Não é necessário utilizar números com tantos decimais para este objetivo. moveObject (Gate11, 200, 954.4, -1726.1, 12.6) else -- Se o thePlayer está em um veículo, então: outputChatBox ("Não é possível passar enquanto estiver em um veículo.", thePlayer, 255, 0, 0) end end end addCommandHandler ("open", PortaoDoor1Loja) addEventHandler ("onMarkerHit", markerlojacarros, PortaoDoor1Loja)
  14. Utilize GetAllElementData em um elemento para saber todas as elementDatas e seus valores que estão nele.
  15. local screen = Vector2 (guiGetScreenSize ()) -- Isso é igual a duas variáveis: screen.x, screen.y local resW, resH = 1280, 720 local x, y = (screen.x/resW), (screen.y/resH) -- Serve para fazer as posições dos DX serem responsivas. addEventHandler ("onClientRender", root, function () dxSetAspectRatioAdjustmentEnabled (true, 4/3) -- Corrige problemas de proporção. local size = screen.x/1280 -- Obtém o tamanho de acordo com a resolução X da tela. Resoluções maiores terão o size maior. dxDrawText("Teste Maroto", x*1095, y*40, x*1213, y*70, tocolor(255, 255, 255, 255), 0.9*size) -- Você pode mudar a posição, cor e também o valor antes do size para se adequar ao seu sistema. end)
  16. Textos não são responsivos, portanto a escala não funciona neles. Ou você cria uma HUD com tamanho fixo ou então fique testando cada resolução e mudando o tamanho da fonte em cada uma.
  17. Olá. Não tem como, o máximo que você consegue é anexar outro player dentro do hydra usando attachElements. Mas não vai ter animação de entrada no hydra, e ele não vai poder fazer nada.
  18. local scrollPos = guiScrollBarGetScrollPosition (source) -- Vai de 0 até 100 local volume1 = (scrollPos*4) + 200 -- Vai de 200 até 600 --[[ Se scrollPos for igual a 0: (0*4) + 200 (0) + 200 200 Se scrollPos for igual a 100: (100*4) + 200 (400) + 200 600 ]] guiSetText(distH,tostring(volume1))
  19. Olá. Utilize setAccountData e getAccountData.
  20. Mande uma print com a mensagem completa do erro.
  21. Assim que um grupo for aceito, use return para não verificar outros grupos, evitando spam. function setarTUDO (thePlayer, commandName, id, SetFomeSede) for _, group in ipairs(settudoacl) do if (isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(group))) then if (id) then if (tonumber(SetFomeSede)) then local playerID = tonumber(id) if (playerID) then local targetPlayer, targetPlayerName = getPlayerID(playerID) local fomesede = tonumber(SetFomeSede) if (targetPlayer) then if (commandName == settudo) then end -- exports["Script_Dxinfo"]:addBox(thePlayer, "success", "#ffffffFome e Sede de #25C740"..getPlayerName(targetPlayer).." #ffffffsetado para #25C740"..fomesede.."%") exports["Script_Dxinfo"]:addBox(targetPlayer, "info", "#ffffffO STAFF #25C740"..getPlayerName(thePlayer).." #ffffffalterou sua Fome e Sede para #25C740"..fomesede.."%") setElementData(targetPlayer, "hunger", fomesede) setElementData(targetPlayer, "sede", fomesede) return else exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffO jogador não foi encontrado!") return end else exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]") return end else exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]") return end else exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]") return end end end exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffPermissão Negada!") end addCommandHandler(settudo, setarTUDO)
  22. Em vez de um evento, utilize um timer de 20 segundos. setTimer(function() db = dbConnect('sqlite', 'prisao.db') dbExec(db, 'Create table if not exists presos(login, tempo)') setTimer(function() for _, player in ipairs(getElementsByType('player')) do if getPlayerPreso(player) then local result = dbPoll(dbQuery(db, 'Select * from presos Where login = ?', getAccountName(getPlayerAccount(player))), - 1) if #result ~= 0 then setTimer(function(player) setPlayerPreso(player, result[1]['tempo']) end, 500, 1, player) end end end end, 500, 1) end, 20000, 0)
×
×
  • Create New...