Jump to content

#DeltaSCR

Members
  • Posts

    395
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by #DeltaSCR

  1. Olá, tô com uma dúvida aqui, quando eu tento adicionar as armas de um jogador no Discord, meio que o player especificado não existe, pois não aparece arma nenhuma, podem me ajudar? function DeltaAbrir(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement) if button == "left" then if state == "down" then if clickedElement then if (getElementType(clickedElement) == "player") then local x, y, z = getElementPosition(localPlayer) local px, py, pz = getElementPosition(clickedElement) local distance = getDistanceBetweenPoints3D(x, y, z, px, py, pz) if not isEventHandlerAdded("onClientRender", root, DeltaDX) then if (distance <= 3) then playerName = getPlayerName(clickedElement):gsub("#%x%x%x%x%x%x", "") addEventHandler("onClientRender", root, DeltaDX) DX = true end end end end if isCursorShowing() then if DX == true then if isCursorOnElement(screenW * 0.8281, screenH * 0.9167, screenW * 0.1563, screenH * 0.0333) then --// FECHAR removeEventHandler("onClientRender", root, DeltaDX) DX = false showCursor(false) elseif isCursorOnElement(screenW * 0.8281, screenH * 0.5167, screenW * 0.1563, screenH * 0.0333) then --// REVISTAR setPedAnimation(localPlayer, "POLICE", "plc_drgbst_01", 3000, false, false, false, false) setTimer(function() removeEventHandler("onClientRender", root, DeltaDX) DX = false addEventHandler("onClientRender", root, DeltaDXArmas) if isElement(clickedElement) then --// A partir daqui eu ja tento começar as verificações... for _, weapon in ipairs(getPedWeapons(clickedElement)) do if getPedTotalAmmo(clickedElement, getSlotFromWeapon(weapon)) > 0 then local theRow = guiGridListAddRow(gridWeapons) guiGridListSetItemText(gridWeapons, theRow, 1, getWeaponNameFromID(weapon), false, false) guiGridListSetItemText(gridWeapons, theRow, 2, getPedTotalAmmo(clickedElement, getSlotFromWeapon(weapon)), false, false) end end end guiSetVisible(gridWeapons, true) DXArmas = true end, 3500, 1) end elseif DXArmas == true then if isCursorOnElement(screenW * 0.8281, screenH * 0.9167, screenW * 0.1563, screenH * 0.0333) then --// FECHAR removeEventHandler("onClientRender", root, DeltaDXArmas) guiSetVisible(gridWeapons, false) DXArmas = false showCursor(false) end end end end end end addEventHandler("onClientClick", root, DeltaAbrir) --// FUNÇÃO UTIL function getPedWeapons(ped) local playerWeapons = {} if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then for i = 0, 12 do local wep = getPedWeapon(ped,i) if wep and wep ~= 0 then table.insert(playerWeapons,wep) end end else return false end return playerWeapons end
  2. Aliás, você está falando da linha 11 certo?
  3. Isso é server-side ou client-side?
  4. Ah sim, claro, que egoísmo da minha parte ?. Vamos lá: Eu estava usando setCameraMatrix, então você( @DNL291 ) me recomendou trocar por getCamera - e assim eu fiz, criei uma variável com a função anterior. local cam = getCamera() Logo em seguida, com setElementPosition, eu setei a posição da câmera, utilizando da variável criada anteriormente para as coordenadas que eu estava utilizando com setCameraMatrix. Resolveu o problema do player ir para o limbo? Sim, porém quando estava de carro, ele continuava ;-; Creio eu que seja bug do próprio MTA:SA, então no meu server-side, eu verifiquei se o jogador estava em um veículo, com getPedOccupiedVehicle, caso estivesse, entraria em condição else e não executaria o resto do código. P.S.: Desculpe se tiver algum erro aí rs
  5. Ok, aparentemente funcionou, porém infelizmente o player não pode estar dentro de um veículo.
  6. Bom, setar as coordenadas do player eu tentei, não deu certo; O bug acontece mesmo estando fora de qualquer interior, e dimensão 0.
  7. Olá, gostaria de compartilhar aqui a minha dúvida - em um código produzido por mim, me deparei com a seguinte situação: Ao usar setCameraMatrix e alguns instantes depois retornar a câmera ao localPlayer, o player é levado ao "limbo" retornando após a uma posição um pouco distante de onde ele se encontrava. Tentei de diversas maneiras resolver, porém falhei miseravelmente. function closePainel(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedWorld) if painelDirectX == true then if button == "left" and state == "down" then if not isCursorOnElement(screenW * 0.2813, screenH * 0.1500, screenW * 0.4375, screenH * 0.7000) then DeltaA() elseif isCursorOnElement(screenW * 0.2891, screenH * 0.2083, screenW * 0.1172, screenH * 0.4917) then local idSkin = getElementModel(selectedP) local pedSkin = createPed(idSkin, 1224.888, -1632.233, 27.375, 180) DeltaA() showChat(false) local x, y, z = getElementPosition(localPlayer) local rx, ry, rz = getElementRotation(localPlayer) setCameraMatrix(1224.888, -1636.233, 27.375, 1250, 0, 0) setTimer(function() setCameraTarget(localPlayer) setTimer(function() setElementPosition(localPlayer, x, y, z + 1) setElementRotation(localPlayer, rx, ry, rz) end, 1, 1) setElementFrozen(localPlayer, false) destroyElement(pedSkin) pedSkin = nil DeltaA() end, 5000, 1) end end end end addEventHandler("onClientClick", root, closePainel)
  8. Deveria estar olhando o debugscript ;-; Note que na sua linha 2 você começou a criar uma variável chamada thePickup e não terminou a mesma, uma vez que essa nova variável, é desnecessária, pois o pickup já está sendo criado dentro do evento onResourceStart.
  9. Aí você usa o evento onMarkerHit, alterando parâmetros e elementos.
  10. Você tem que especificar quando e como é o acionamento dessa função; Aqui eu usei um comando somente para testar. motoAuto = {} function criarVeiculo(thePlayer, cmd) motoAuto[thePlayer] = createVehicle(410, 1090.815, -1769.211, 13.352) warpPedIntoVehicle (thePlayer, motoAuto[thePlayer]) end addCommandHandler("cmoto", criarVeiculo)
  11. @murilo2929 é como o DNL citou, você vai usar o createVehicle para spawnar esse veículo, e também o warpPedIntoVehicle para "teleportar" o player pra dentro desse veículo criado. Se ainda estiver com dúvidas, mostre o que você tentou fazer.
  12. Então, como citado anteriormente, você pode excluí-los de seu código, ou então usar guiSetVisible / guSetAlpha.
  13. isCursorOnElement é apenas uma função útil, que verifica se o cursor está em um determinado local. Ele pode ser usado com onClientClick.
  14. Negativo, para mostrar o cursor é showCursor.
  15. Aí você configura o spawn de veículos, pra quando spawnar, setar a data do veículo(Data da Gasolina) no valor que você quiser.
  16. Troque sua linha 746 por isso: local fuel = math.floor(getElementData(veh,"DNL:Combustivel") or 11) OBS: Não testei
  17. Ok, se der certo, não esqueça de avaliar minha resposta
  18. Sim, você vai copiar o código e colar onde eu te falei.
  19. function curar_jogador(thePlayer, cmd, nick) local accName = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user."..accName, aclGetGroup("Samu")) then --// Verificando se quem deu o comando está na ACL. local player_a_ser_curado = getPlayerFromPartialName(nick) --// Obtendo a parte do nick do player_a_ser_curado. -- local pName = getPlayerName(player_a_ser_curado) --// Obtendo o nick do player através de somente uma parte. local samux, samuy, samuz = getElementPosition(thePlayer) --// Obtendo a posição do Socorrista. local curadox, curadoy, curadoz = getElementPosition(player_a_ser_curado) local dist = getDistanceBetweenPoints3D (samux, samuy, samuz, curadox, curadoy, curadoz) --// Obtendo a distancia entre eles. if player_a_ser_curado == thePlayer then --// Se o player o player a ser curado for o médico, então retorno. return outputChatBox("Você não pode se curar!", thePlayer, 190 , 190, 190) --// Evite usar código HEX. end if (dist > 3) then --// Se a distancia entre eles for maior que 3, então: outputChatBox("Chegue mais perto do jogador!", thePlayer, 190, 190, 190) --// Evite usar código HEX. else --// Senão setPedAnimation(thePlayer, "MEDIC", "CPR", 4500, true, false, false, false) --// Seta a animação do médico. setTimer (function() setElementHealth(player_a_ser_curado, 20) exports.Scripts_Dxmessages:outputDx(player_a_ser_curado, "Você Foi Curado Va Para O Medico Ou Podera Morrer Novamente", "success") setPedAnimation(player_a_ser_curado, false) setElementFrozen(player_a_ser_curado, false) setElementData(player_a_ser_curado, "PlayerCaido", false) end, 4500, 1) --// 4500ms após setar a animação no médico, executa a função acima. setTimer (function() if hosp then setElementHealth (player_a_ser_curado, 15) exports.Scripts_Dxmessages:outputDx (player_a_ser_curado, "Você Caiu Novamente Va Para O Medico", "success") end end, 300000, 1) end end end addCommandHandler("curar", curar_jogador) --// P.S.: Estavam faltando vários "ends" fechando seus escopos. Edit1: Correção
  20. Tem erros, poste o código aqui: Copie e cole-o ai
  21. Poste o código diretamente aqui no fórum, fica melhor
×
×
  • Create New...