Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,008
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Pq não usa seu próprio script corrigido? local skinmarker = createMarker (1565.1999511719, -1690.1999511719, 14.800000190735, 'cylinder', 2.0, 195, 107, 35, 202) function MarkerHit(markerHit,matchingDimension) local account = getAccountName (getPlayerAccount (source)) if isObjectInACLGroup ("user."..account, aclGetGroup ("Policia")) then setElementModel (source, 286) outputChatBox ("[PMERJ] Agora você está uniformizado para o trabalho!", source, 0, 255, 0, false) else outputChatBox ("Você não é um policial", source, 255, 0, 0, false) end end addEventHandler ("onPlayerMarkerHit", getRootElement(), MarkerHit)
  2. @gbmv33 Onde estiver player troque por source @Jonas^ seu código vai ativar em todos os markers do servidor.
  3. Crie outra função para remover, ela deverá ser tipo assim: function retirardavtr (police, _, name) if hasObjectPermissionTo (police, "function.Colocar") then local preso = getPlayerFromPartialName (name) if (preso) then if (preso == police) then return outputChatBox ("Você não pode se remover da viatura.", police, 190, 190, 190) end if (getElementData (preso, 'navtr')) then -- Prefira o uso de aspas duplas para strings com mais de 1 caractere. local px, py, pz = getElementPosition (police) local bx, by, bz = getElementPosition (preso) local dist = getDistanceBetweenPoints3D (px, py, pz, bx, by, bz) if (dist >= 3) then return outputChatBox ("Você precisa chegar mais perto para removê-lo.", police, 190, 190, 190) end setElementData (preso, 'navtr', false) removeEventHandler ('onPlayerCommand', preso, onCommand) local vtr = carros[police] setElementData (vtr, 'compreso', false) detachElements (preso, vtr) setElementFrozen (preso, false) toggleAllControls (preso, true) setPedAnimation (preso) else outputChatBox ("Este jogador não está preso.", police, 190, 190, 190) end else outputChatBox ("Jogador invalido.", police, 190, 190, 190) end end end addCommandHandler ("retirar", retirardavtr) Obs: Não testado. Percebo que vc está com alguns vícios de programação, tente evitá-los: Use aspas duplas " nas strings que possuem mais de um caractere. Aspas simples ' é melhor usado para strings que possuem somente 1 caractere. Evite usar códigos #hex onde for desnecessário. Se o seu outputChatBox usa ao todo somente 1 cor, declare a cor direto nos parâmetros RGB em vez do texto. Assim vc não precisa usar o parâmetro colorcoded. Como fiz acima. Evite condição negativa (If not). Se possível, faça-o como um else. Assim como fiz acima. Espero ter ajudado.
  4. Vc precisa ativar o recurso de voz do servidor e então fazer um script que transmita sua voz somente para determinado jogador, já que por padrão ele transmite a todos que estiverem próximos de vc.
  5. local lvl = getElementData(localPlayer, "player:level" ) if isCursorOnElement(sx/2 - 115, sy/2 + 165, 155, 23, x, y) then local texto = "teste0" if lvl > 10 and currentPanel == 1 then valor = 1 texto = "teste1" elseif lvl > 11 and currentPanel == 2 then valor = 2 texto = "teste2" elseif lvl > 12 and currentPanel == 3 then valor = 3 texto = "teste3" elseif lvl > 13 and currentPanel == 4 then valor = 4 texto = "teste4" elseif lvl > 14 and currentPanel == 4 then valor = 5 texto = "teste5" else outputChatBox("Nivel insuficiente para comprar "..texto, 255, 255, 255) end end
  6. Acho que ele quis dizer isso: if lvl > 10 and Panel == 1 then
  7. Se me permitem, eu faria um upgrade nesse script de congelar, ficaria assim: local m1 = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170) -- Marker do Jonas^ Brothers addEventHandler ("onMarkerHit", m1, function (hitElement, matchingDimension) if hitElement and getElementType (hitElement) == "player" and matchingDimension then setElementFrozen (hitElement, true) toggleAllControls (hitElement, false) setTimer (function () setPedAnimation (hitElement, "int_house", "wash_up", 10000, true, false, false, false) setTimer (function () setElementFrozen (hitElement, false) toggleAllControls (hitElement, true) end, 10000, 1) end, 1000, 1) end end)
  8. Menu principal do MTA >>> Editor de Mapas
  9. Sim, acabei de testar colocando o setElementFrozen após 1 segundo de animação, ele realmente cancela a animação ao ser chamado, no caso, a animação durou só aquele 1 segundo antes do freeze.
  10. Então cara. Eu testei aqui. Solução: Do jeito que está, com setElementFrozen DEPOIS da animação, ele não funciona. Com setElementFrozen ANTES da animação, ele funciona. Aparentemente o setElementFrozen é capaz de cancelar animações. Quando vc anima o personagem na linha anterior, ao dar freeze na linha seguinte, cancela a animação. Trocando as linhas de lugar, corrige o problema. local m1 = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170) -- Marker do Jonas^ substitua pelo seu. addEventHandler ("onMarkerHit", m1, function (hitElement, matchingDimension) setElementFrozen (hitElement, true) setPedAnimation (hitElement, "int_house", "wash_up", 10000, true, false, false, false) setTimer (setElementFrozen, 10000, 1, hitElement, false) end)
  11. Claro que está faltando. Vc não colocou o parâmetro de função para associar o ID do player nele. function ConfiscarArmas (player, commandName, playerid)
  12. Realmente há um bug e ele não funciona se for instantâneo. Criando um pequeno timer irá contornar esse bug. addEventHandler ("onElementModelChange", root, function (oldModel, newModel) if (getElementType (source) == "player") then -- Neste evento, source = elemento que mudou de modelo/skin. if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Console")) then -- Se o jogador que está tentando trocar de skin não for Console, então: if (newModel == 12) then -- Se o jogador está tentando pegar a skin de ID 12, então: outputChatBox ("Esta skin é privada! Você não pode usar ela.", source, 255, 30, 30) setTimer (function (thePlayer) -- source não existe dentro de timers, por isso passa ele por um parâmetro de função. setElementModel (thePlayer, 0) -- Seta skin 0 nele. (não funciona se for instantâneo, por isso o timer) end, 100, 1, source) end end end end)
  13. Coloque você mesmo na ACL A e tente novamente. Não sei se faz diferença, mas coloque o SERVER todo em letra minúscula.
  14. Preste atenção na linha 13. Vc está testando isso que vc está fazendo? Ou está fazendo de qualquer jeito achando que funciona?
  15. Ok, ainda está com erros. Na sua parte server, a função precisa ser chamada em algum lugar ou de um evento ativador, caso contrário ela é uma função inútil. Na sua parte cliente, não existe nenhum lugar chamando aquele elementData que vc definiu no server, vc está apenas mostrando um texto ..Cargo..
  16. Isto é impossível de ser feito. Você não pode colocar funções client-side e funções server-side no mesmo script. Somente se as funções forem both-side.
  17. Você está logado com alguma destas contas? Nutella Jaque Dudus2 Marcelo.S Largaticha queste Douglas
  18. Como está seu arquivo acl.xml? Que fica na pasta deathmatch do seu servidor.
  19. O 7º argumento da animação (interruptable) é um booleano e não nil.
  20. E esse tópico está na seção de Tutoriais, da próxima vez poste na seção adequada de Programação em Lua.
  21. Está dando errado pq vc está usando o parâmetro de função errado. Os parâmetros de função do evento onElementModelChange são oldModel e newModel, basta ler na Wiki. addEventHandler ("onElementModelChange", root, function (oldModel, newModel) if (getElementType (source) == "player") then -- Neste evento, source = elemento que mudou de modelo/skin. if (newModel == 12) then -- Se o jogador está tentando pegar a skin de ID 12, então: if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Console")) then -- Se o jogador que está tentando trocar de skin for Console, então: (acho que vc cometeu erro de lógica, deveria ser quem NÃO FOR Console) setElementModel (source, 0) -- Seta skin 0 nele. end end end end) Também troquei a ordem das condições para a verificação mais leve acontecer primeiro. Motivos de otimização.
×
×
  • Create New...