Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,010
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Com um loop que passa entre todos os jogadores, vai verificando a distância do seu personagem com os demais jogadores. Para obter todos os jogadores, use getElementsByType.
  2. Desliga o resource reload.
  3. No parâmetro de bindKey, coloque o keyState como "both". Dessa forma ela ativa tanto ao pressionar, quanto ao soltar. Com isso você consegue fazer alternância de comando. Apertar: Começa a mirar Soltar: Para de mirar
  4. Está vendo que setPedControlState está em vermelho? Significa que ela só funciona client-side.
  5. playSound3D Vai precisar verificar a distância dos jogadores server-side e depois ativar essa função acima client-side somente para os que estiverem próximos. Você pode verificar a distância dos jogadores com getDistanceBetweenPoints3D
  6. Ah, vc quer animação de revistar... E a animação vai num NPC e não no jogador. Entendi.
  7. Sim há limitações. GTA SA é um jogo bem antigo. Algumas coisas específicas são impossíveis de fazer nele. No entanto a maioria das limitações vc consegue evitar com gambiarras.
  8. "ped" é o grupo ao qual a animação pertence. Toda animação faz parte de um grupo de animações. No caso do médico, eu usaria do bloco "medic" e a única animação que ele tem: "cpr" Quanto a questão de loop, leia os demais parâmetros do setPedAnimation.
  9. Scripts client-side usam localPlayer. Remova o parâmetro de função e troque todos os thePlayer por localPlayer. Se você ler a wiki do bindKey, vai perceber que no client-side, o primeiro parâmetro não é o jogador e sim o nome da tecla/controle.
  10. Tá. Mas cadê o addCommandHandler? Sobre sua animação, ela está errada. "coptraf_stop" não faz parte do bloco "ped" e sim do bloco "police" Você pode conferir todas as animações na Wiki de Animations.
  11. Linha 12 deveria ser bindKey. Você está bindando a função ao soltar a tecla, é isso mesmo? Ou deveria ocorrer ao pressionar a tecla?
  12. Sim, só tem que colocar o ID da arma certinho ali.
  13. Você precisa anexar manualmente as luzes no veículo. Crie uma table com os IDs das viaturas que possuem Giroflex, cada ID terá suas posições. Para criar as luzes, recomendo fazer com coronas, visto que luzes nem aparecem de dia. attachElements createMarker getElementModel
  14. setWeaponProperty (ID DA ARMA, "pro", "flags", 0x000001)
  15. getAttachedElements setElementAlpha
  16. Utilize o botão <> para postar códigos. Não cole direto no texto. E na próxima vez, poste na seção correta de Programação em Lua.
  17. Qual erro aparece no /debugscript 3?
  18. Ah, verdade. Faltou converter o id para número. Pois depois de comando ele é uma string.
  19. Adicione isso no script de prender, fora da função: function getPlayerByID (id) for i, player in ipairs (getElementsByType("player")) do if getElementData(player, "ID") == id then return player end end end E na função que vc quer que seja por ID, troque o getPlayerFromPartialName (name) por getPlayerByID (id). Não se esqueça de substituir o parâmetro de função name por id. function colocanavtr (police, _, id) if hasObjectPermissionTo (police, "function.Prender") then local preso = getPlayerByID (id) local px, py, pz = getElementPosition (police) local bx, by, bz = getElementPosition (preso) local dist = getDistanceBetweenPoints3D (px, py, pz, bx, by, bz) if not preso then return outputChatBox ("Jogador invalido.", police, 190, 190, 190, true) end if preso == police then return outputChatBox ("Você não pode prender a si mesmo.", police, 190, 190, 190, true) end if getPlayerWantedLevel (preso) == 0 then return outputChatBox ("Este jogador não está sendo procurado.", police, 190, 190, 190, true) end if getPedOccupiedVehicle (police) then return outputChatBox ("Você não pode prender de dentro da viatura.", police, 190, 190, 190, true) end if getPedOccupiedVehicle (preso) then return outputChatBox ("Você não pode prender um bandido enquanto ele estiver dentro de um veículo.", police, 190, 190, 190, true) end if dist >= 2 then return outputChatBox ("Você precisa chegar mais perto para prender.", police, 190, 190, 190, true) end setElementData (preso, "navtr", true) addEventHandler ("onPlayerCommand", preso, onCommand) local vtr = carros[police] setElementData (vtr, "compreso", true) attachElements (preso, vtr, 0.2, -1.5, 0, 0, 0, 90) setElementFrozen (preso, true) toggleAllControls (preso, false) takeAllWeapons (preso) setPedAnimation (preso, "ped", "CAR_dead_LHS") vrx, vry, vrz = getElementRotation (vtr) setElementRotation (preso, vrx, vry, vrz+83) warpPedIntoVehicle (police, vtr) outputChatBox ("Leve o preso para a delegacia mais próxima #00ffff(sirenes azuis).", police, 190, 190, 190, true) end end addCommandHandler ("prender", colocanavtr)
  20. Não use source como parâmetro de função. function MarkerVisible (prevAcc, currAcc) -- Parâmetros do evento onPlayerLogin, vc descobre isso lendo a Wiki dele. if not getAccountData (currAcc, "FirstTime") then setElementVisibleTo (MarkerTeste, source, true) -- Source também muda dependendo do evento. Neste caso source = jogador que logou. else setElementVisibleTo (MarkerTeste, source, false) end end addEventHandler ("onPlayerLogin", root, MarkerVisible)
  21. Linhas 17 e 18 são comentários. Coloque dois traços na frente dessas linhas. Ou nem coloque elas no script.
  22. Da próxima vez, utilize a formatação adequada do fórum.
×
×
  • Create New...