Jump to content

SidneiJR

Members
  • Posts

    31
  • Joined

  • Last visited

Everything posted by SidneiJR

  1. Com uma gridList é possível obter todos os jogadores online do servidor. Qual função posso utilizar para obter jogadores que estão perto?
  2. Tentei as 2 maneiras, o @DNL291 me ajudou na segunda forma, mas não obtive sucesso. Decidi por deixar essa ideia de lado, obrigado @Lord Henry pela ajuda.
  3. Tentei da primeira forma, mas não obtive exito. O texto é independente do marker: function texto() if ( getDistanceBetweenPoints3D ( 2454.69, -913.07, 115.17, getElementPosition ( localPlayer ) ) ) < 20 then local coords = { getScreenFromWorldPosition ( 2454.69, -913.07, 115.17 ) } if coords[1] and coords[2] then dxDrawText("Area dominada por: N/A", coords[1], coords[2], coords[1], coords[2], tocolor(255, 255, 255, 255), x*1.20, "default-bold", "center", "center", false, false, false, true, false) end end end addEventHandler("onClientRender", root, texto)
  4. O marker se encontra do lado Server, qual a melhor forma de fazer essa verificação? Ou seria melhor passar o script para o lado Client?
  5. Estou desenvolvendo um script de dominação de territórios, nele gostaria de adicionar um texto contendo quem dominou aquele território. Exemplo: Imagem Sei que tenho que utilizar (setElementData, getElementData e setTimer), porém não achei uma forma de encaixar o getElementData no dxDrawText para mostrar o nick do jogador.
  6. Tente: --Server function solicitaPay (thePlayer, cmd, user) local accName = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup ("user."..accName, aclGetGroup ("MEC") ) then if cmd == "consertar" then if not user then outputChatBox ("Erro de sintaxe, use /consertar <nick>", thePlayer, 255, 255, 0) elseif not getPlayerFromPartialName (user) then outputChatBox ("Jogador não encontrado.", thePlayer, 255, 255, 0) else local theUser = getPlayerFromPartialName (user) if getElementData (theUser, "mecanico.solicitation") then outputChatBox ("Alguém já está solicitando pagamento mecânico a este jogador.", thePlayer, 255, 255, 0) else setElementData (theUser, "mecanico.solicitation", thePlayer) outputChatBox ("Você solicitou pagamento para consertar o veículo de "..user, thePlayer, 0, 255, 0, true) outputChatBox (getPlayerName (thePlayer).."#FFFF00 está pedindo $800 para consertar seu veículo. Use /aceitar ou /recusar", theUser, 255, 255, 255, true) setTimer (function () if getElementData (theUser, "mecanico.solicitation") then setElementData (theUser, "mecanico.solicitation", false) outputChatBox ("O pedido de pagamento de "..getPlayerName (thePlayer).."#FFFF00 expirou.", theUser, 255, 255, 0, true) end end, 10000, 1) end end end else outputChatBox("#FF0000Você não tem permissão para executar este comando!", thePlayer, 255, 255, 255, true ) end end addCommandHandler ("consertar", solicitaPay)
  7. Nós testes que eu fiz GiveWeapon funcionou no server-side, mas eu tive que utilizar o timer, ficando assim: --Server setTimer(function() giveWeapon(thePed, 9, 500, true) end, 1000, 1)
  8. Tente: --Client setTimer(function() givePedWeapon(thePed, 9, 500, true) end, 1000, 1) ou --Client function Armar_ped() givePedWeapon(thePed, 9, 500, true) end addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()), Armar_ped) Em thePed, substitua pelo nome que você deu ao criar o ped. Lembrando que GivePedWeapon é do lado client-side, caso esteja utilizando no lado server-side, utilize GiveWeapon.
  9. O evento a ser utilizado nesse caso é onMarkerHit (Server-side) ou onClientMarkerHit (Client-Side). Em CreateMarker está faltando alguns argumentos. Retirei de um script de roubo a lojas, onde é necessário o player entrar no marker. Sempre busque informações na wiki, ou se caso tente reproduzir algo que já tenha sido feito, procure scripts similares que será de grande ajuda. --Server local Entrar_Loja = createMarker(1315.5, -897.8, 40.5, "arrow", 1.5, 255, 255, 0, 255) --Marker createBlipAttachedTo(Entrar_Loja, 17, 2, 0, 255, 0, 0, 0, 350) --Cria um icone no marker que será visto no radar function Entrar (player) if source == Entrar_Loja and getElementType(player) == "player" then setElementInterior(player, 6, -27.32, -56.87, 1003.7) --Interior e posição para onde o jogador será teleportado (Caso deseje apenas a posição, utilize setElementPosition ) setElementDimension(player, 1) --Dimensão para onde o jogador será teleportado end end addEventHandler("onMarkerHit", getRootElement(), Entrar)
  10. Como esse script será de assalto a lojas, irei utilizar bastante, alguma dica de como melhorar?
  11. --Client addEventHandler( "onClientPlayerTarget", root, function (targetElem) if ( targetElem and getElementType(targetElem) == ("ped") )then local px, py, pz = getElementPosition(targetElem) local bx, by, bz = getElementPosition(localPlayer) local d = getDistanceBetweenPoints3D(px, py, pz, bx, by, bz) local task = getPedTask ( localPlayer, "secondary", 3 ) if task then if (d > 2) then return exports["notices"]:addNotification("Chegue mais perto",'info') end return exports["notices"]:addNotification("Sucess",'info') end end end ) Ficou assim. Obrigado @Lord Henry
  12. --Client addEventHandler( "onClientPlayerTarget", root, function (targetElem) if (targetElem and getElementType(targetElem) == ("ped") ) then local px, py, pz = getElementPosition(targetElem) local bx, by, bz = getElementPosition(localPlayer) local d = getDistanceBetweenPoints3D(px, py, pz, bx, by, bz) if (d > 2) then return exports["notices"]:addNotification("Chegue mais perto",'info') end return exports["notices"]:addNotification("Sucess",'info') end end ) Tentei dessa forma e deu certo. Agora preciso verificar se o player está mirando corretamente. Alguma dica de como posso fazer isso? Forma correta: print Forma incorreta: print A forma incorreta seria apenas apontar a arma sem algum tipo de mira e executar a função.
  13. Não quero que o ped mire ou faça algo do tipo, o que eu quero é que quando um jogador mirar no ped execute uma função.
  14. Jogador X mira com uma M4 em jogador Y e executa C função, para isso seria utilizado o onPlayerTarget. Quais argumentos devo utilizar para fazer o mesmo com ped? (Seria o jogador X mirando em ped Y)
  15. Não sei o que seria esse loop. Devo retirar de qual lado? @Resolvido --Server function AddStar() local wanted = getPlayerWantedLevel(source) if wanted < 6 then setPlayerWantedLevel(source, wanted +1) end end addEvent("AddStar", true) addEventHandler("AddStar", root, AddStar) Retirei o loop e funcionou. Irei organizar o dinheiro.
  16. --Server function AddStar(Jogador) for _, Jogador in pairs(getElementsByType("player")) do local wanted = getPlayerWantedLevel(Jogador) if wanted < 6 then setPlayerWantedLevel(Jogador, wanted +1) end end end addEvent("AddStar", true) addEventHandler("AddStar", root, AddStar) --Client function Loja(localplayer, matchingDimension) if assalta == true and ativo == true and passivo == false then setTimer( MensagemCorre, 10000, 1) setTimer( DxAssaltar, 120000, 1) mny = getPlayerMoney() randomMoney = Money[math.random(#Money)] if isElementWithinMarker (localPlayer, Marker_Loja1) then triggerServerEvent("AddStar", localPlayer) exports["notices"]:addNotification("Você está assaltando a loja, aguarde alguns segundos para sair",'info') setElementFrozen ( localPlayer, true ) setTimer(setElementFrozen,10000, 1,localPlayer, false) setElementPosition ( localPlayer, 369.29598999023,-6.4505863189697,1001.8515625 ) setElementRotation( localPlayer,-0, 0, 0.57838475704193) setPedAnimation ( Ped_Loja1, "shop", "SHP_Rob_HandsUp", -1, true, false, false ) setPedAnimation ( localPlayer, "ped", "gang_gunstand", -1, true, false, false ) setTimer(setPedAnimation, 30000, 1, Ped_Loja1 ) setTimer(setPedAnimation, 10000, 1, localPlayer ) setTimer(setPlayerMoney,10000,1, mny +randomMoney ) assalta = false end else end end addCommandHandler("roubar", Loja) Estou querendo adicionar 1 estrela cada vez que o jogador digita /roubar dentro do marker, porém todos os jogadores online recebem, em qual parte eu errei? Nenhum erro é gerado no debug.
  17. --Client function speedometrs () local veh = getPedOccupiedVehicle(getLocalPlayer()) if not veh or getVehicleOccupant ( veh , 0 ) ~= localPlayer then return true end local Speed = getVehicleSpeed() local car = getPedOccupiedVehicle(localPlayer) local vehs = getElementSpeed(getPedOccupiedVehicle(getLocalPlayer()), "kmh") local nitro = getVehicleNitroLevel(car) or 0 local Count = getVehicleNitroCount(car) or 0 local fuel = getElementData(getPedOccupiedVehicle ( localPlayer ), "fuel" ) or 0 if Speed > 243 then Speed = 243 end if Speed < -243 then Speed = -243 end if Count >= 1 then nos = (math.floor(nitro/1*10)) else nos = 0 end dxDrawImage(SizeX - 250,SizeY - 250, 230, 230, "img/panel.png", 0,0,0 ) dxDrawImage(SizeX - 390,SizeY - 250, 230, 230, "img/benz.png", 0,0,0 ) dxDrawImage(SizeX - 447,SizeY - 220, 170, 170, "img/nospan.png", 0,0,0 ) dxDrawImage(SizeX - 250,SizeY - 250, 230, 230, "img/arrow.png", Speed,0,0 ) dxDrawImage(SizeX - 370,SizeY - 250, 230, 230, "img/arrow_nitro_benz.png", fuel * 3.12,0,0 ) dxDrawImage(SizeX - 430,SizeY - 220, 170, 170, "img/arrow_nitro_benz.png", nitro/1*155,0,0 ) dxDrawImage(SizeX - 143,SizeY - 57, 20, 19, lignths, 0,0,0 ) dxDrawImage(SizeX - 198,SizeY - 73, 20, 19, l_p, 0,0,0 ) dxDrawImage(SizeX - 90,SizeY - 73, 20, 19, p_p, 0,0,0 ) dxDrawText(""..nos.." Nit. ".. Count .." Nos.",SizeX,SizeY - 130, SizeX - 315,SizeY, tocolor(255,255,255,255), 0.4,0.4, font,"right","center") dxDrawText(tostring ( getFormatSpeed ( vehs )),SizeX,SizeY - 265, SizeX - 110,SizeY, tocolor(255,255,255,255), 0.8,0.8, font,"right","center") dxDrawText(tostring (math.round (fuel)).." Gas.",SizeX,SizeY - 145, SizeX - 240,SizeY, tocolor(255,255,255,255), 0.4,0.4, font,"right","center") end addEventHandler("onClientRender", root, speedometrs) O velocímetro só aparece para quem está no assento do motorista, caso eu altere para 1, somente quem estiver no assento 1 conseguirá ver. O que eu posso utilizar para que todos dentro do veiculo possam ver o velocímetro?
  18. O script precisa ser do lado client por conta de algumas informações, no caso eu posso utilizar triggerServerEvent somente para setar a dimensão/interior? @Resolvido, Server: function coordenada1() setElementPosition(source, 364.90844726563,-11.365772247314+2,1001.8515625 ) setElementInterior(source, 9, 364.90844726563,-11.365772247314+2,1001.8515625) setElementDimension(source, 4) end addEvent("coordenada1", true) addEventHandler("coordenada1", root, coordenada1) function coordenada2() setElementPosition (source, 2420.4567871094,-1508.8905029297+3,24) setElementInterior (source, 0, 2420.4567871094,-1508.8905029297+3,24) setElementDimension(source, 0) end addEvent("coordenada2", true) addEventHandler("coordenada2", root, coordenada2) Client: local Ped_Loja1 = createPed( 120, 369.34680175781,-4.4927525520325,1001.8515625 ) setElementInterior(Ped_Loja1, 9 ) setElementDimension(Ped_Loja1, 4) setElementRotation(Ped_Loja1,-0, 0, 178.03739929199) local Entrar_Loja1 = createMarker(2420.4567871094,-1508.8905029297,24+1, "arrow", 1.5, 255, 255, 0, 255) createBlipAttachedTo(Entrar_Loja1, 17 ) local Sair_Loja1 = createMarker(364.90844726563,-11.365772247314,1001.8515625+1, "arrow", 1.5, 255, 255, 0, 255) setElementInterior(Sair_Loja1, 9) setElementDimension(Sair_Loja1, 4) local Marker_Loja1 = createMarker(369.40029907227,-6.3861293792725,1001.8515625-1, "cylinder", 1.5, 255, 0, 0, 255) setElementInterior(Marker_Loja1, 9) setElementDimension(Marker_Loja1, 4) addEventHandler( "onClientMarkerHit", root, function ( Marker1 ) if Marker1 == localPlayer then if source == Entrar_Loja1 and assalta == true and ativo == true and passivo == false then triggerServerEvent ("coordenada1", localPlayer) exports["notices"]:addNotification("Digite /roubar dentro do marker para assaltar a loja",'info') elseif source == Sair_Loja1 then triggerServerEvent ("coordenada2", localPlayer) end end end )
  19. Client: local Ped_Loja1 = createPed( 120, 369.34680175781,-4.4927525520325,1001.8515625 ) setElementInterior(Ped_Loja1, 9 ) setElementDimension(Ped_Loja1, 4) setElementRotation(Ped_Loja1,-0, 0, 178.03739929199) local Entrar_Loja1 = createMarker(2420.4567871094,-1508.8905029297,24+1, "arrow", 1.5, 255, 255, 0, 255) createBlipAttachedTo(Entrar_Loja1, 17 ) local Sair_Loja1 = createMarker(364.90844726563,-11.365772247314,1001.8515625+1, "arrow", 1.5, 255, 255, 0, 255) setElementInterior(Sair_Loja1, 9) setElementDimension(Sair_Loja1, 4) local Marker_Loja1 = createMarker(369.40029907227,-6.3861293792725,1001.8515625-1, "cylinder", 1.5, 255, 0, 0, 255) setElementInterior(Marker_Loja1, 9) setElementDimension(Marker_Loja1, 4) addEventHandler( "onClientMarkerHit", root, function ( Marker1 ) if Marker1 == localPlayer then if source == Entrar_Loja1 and assalta == true and ativo == true and passivo == false then setElementPosition(localPlayer, 364.90844726563,-11.365772247314+2,1001.8515625 ) setElementInterior(localPlayer, 9, 364.90844726563,-11.365772247314+2,1001.8515625) setElementDimension(localPlayer, 4) exports["notices"]:addNotification("Digite /roubar dentro do marker para assaltar a loja",'info') elseif source == Sair_Loja1 then setElementPosition (localPlayer, 2420.4567871094,-1508.8905029297+3,24) setElementInterior (localPlayer, 0, 2420.4567871094,-1508.8905029297+3,24) setElementDimension(localPlayer, 0) end end end ) Em um servidor local com 2 computadores, o computador principal entra no marker Entrar_Loja1 e é movido com sucesso para dimensão 4 interior 9. Já o computador secundário ao entrar no marker Entrar_Loja1 é movido, porém sua dimensão e interior continuam 0. Em um servidor publico com 3 jogadores, o computador principal continua se movendo com sucesso para dimensão e interior. Já os demais jogadores continuam com o problema do computador secundário. O computador principal a que me refiro é o meu. Nenhum erro é gerado no debugscript.
  20. Testei o mod e funcionou normalmente, porém, é possível comprar veículos sem estar logado. Como pode ver nesta print ficou salvo o veículo que eu comprei como guest.
  21. Acabei vendo que é possível. Ele salva no server.log o JOIN(IP) e CONNECT(IP - SERIAL). O objetivo é punir jogadores que atrapalham o andamento do servidor e acabam mudando o nick porém o serial e ip são os mesmos.
  22. Sabemos que toda vez que um player da /login no servidor automaticamente é salvo no server_auth.log e server.log o login, serial e ip do mesmo. É possível salvar o serial e o ip a parti do momento que ele se conecta no servidor?
  23. Eu queria saber se nessa print se trata de um objeto. Ele faz parte de um script de casas, pretendo adicionar acima dele informações da casa, porém como não sei como é criado não consigo identificar no script.
  24. Sem erros agora. Obrigado mais uma vez.
  25. Não consegui identificar o problema, mas por algum motivo no debug aparece erro no setElementFrozen. O teste que eu tinha feito foi em servidor local, já no servidor com players apresentou esse problema, que aparece de forma aleatória. Fora isso sem problemas no script.
×
×
  • Create New...