-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
Tópico movido. Mostre seu código por favor.
-
Try using isPedDead inside the onTimer function or use onPlayerWasted and search for the player being arrested and release him.
-
Basta colocar uma condição verificando a arma antes de executar killPed: if bodypart == 9 and weapon == 34 then if triggerEvent("onPlayerHeadshot", source, attacker, weapon, loss) then killPed(source, attacker, weapon, bodypart) end end Na verdade isso também é aceito em Lua. Seria o mesmo que print "Hello". Claro que usando isso, não vai ser possível colocar os outros argumentos.
-
I don't know if I understood you well, anyway: Firstly, try using this function to create the marker at a specific position of the object: function getPositionFromElementOffset(element,offX,offY,offZ) local m = getElementMatrix ( element ) -- Get the matrix local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1] -- Apply transform local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] return x, y, z -- Return the transformed point end Done that, you can set the player in front the mark that way: local playerRot = 0 -- you'll need to adjust player rotation local playerX = markerX + math.sin( math.rad( playerRot ) ) * .6 local playerY = markerY + math.cos( math.rad( playerRot ) ) * .6 setElementPosition( player, playerX, playerY, markerZ+1 ) setElementRotation( player, 0, 0, ( 360-playerRot ) ) If you change the object rotation, you'll also need to calculate the corresponding player's rotation in the pirate ship.
-
O script de chat do freeroam fica no fr_server.lua em "onPlayerChat".
-
Você tá criando o objeto e chamando a função do outro resource dentro do "onClientRender". Digite /debugscript 3 e veja o que o debug mostra.
-
- 2 replies
-
- hopistal
- hospitales
- (and 12 more)
-
Esqueceram o x da questão O problema é que você usa uma variável pra criar todos retângulos de colisão num loop, mas oque fica, é a última col da tabela. Apenas coloque resourceRoot, no lugar de 'zona' em onColShapeHit/Leave. E sobre a váriável zona, você pode tirar ela. E pRadarArea deixe local.
-
Coloque dentro da função skins: index = tonumber(index)
-
addEventHandler( "onMarkerHit", resourceRoot, function( hitPlayer ) if getElementType(hitPlayer) == "player" then local g_team = getPlayerTeam(hitPlayer) local marker_id = getElementID(source) outputChatBox("@marker_id: "..tostring(marker_id)) if g_team and getTeamName(g_team) == marker_id:sub( 1, #marker_id-2 ) then outputChatBox("@teamName: "..tostring(getTeamName(g_team))) skins( hitPlayer, marker_id:sub( #marker_id ) ) end end end ) function skins(thePlayer, index) local team = getPlayerTeam( thePlayer ) if not team or not index then return end outputChatBox("@index: "..tostring(index)) outputChatBox("@thePlayer: "..tostring(thePlayer)) local table_data = pos[getTeamName(team)] or false outputChatBox("@table_data: "..tostring(table_data)) if table_data and table_data[index] then outputChatBox("@table_data[index]: "..tostring(table_data[index])) local skinID = table_data[index][4] -- skins 276, 234 outputChatBox("@skinID: "..tostring(skinID)) setElementModel(thePlayer, skinID) outputChatBox (getPlayerName(thePlayer).." você trocou sua skin",thePlayer, 0, 255, 0,true) end end Faça um teste usando essas duas funções e mostre aqui todas saídas no chat, por favor.
-
function Nightmare() setTimer(sound, 900,0) end addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),Nightmare) function sound() local hour,minutes = getTime() if hour == 06 and minutes == 0 then playSound("day.mp3") elseif hour == 12 and minutes == 0 then playSound("day.mp3") elseif hour == 15 and minutes == 0 then playSound("night.mp3") elseif hour == 20 and minutes == 0 then playSound("night.mp3") --setSoundVolume(sound,50.0) end end Try it.
-
Substitua id com marker_id (na condição e na função skins).
-
Tente isto: -- criando as marcas function createMarkersSkins () for k, v in pairs(pos) do for i=1, #v do local x, y, z = unpack(pos[k][i]) setElementID( createMarker(x, y, z, "cylinder", 1.5, 200 ,200, 0, 155), k.."-"..tostring(i) ) end end end addEventHandler("onResourceStart", resourceRoot, createMarkersSkins) addEventHandler( "onMarkerHit", resourceRoot, function( hitPlayer ) if getElementType(hitPlayer) == "player" then local g_team = getPlayerTeam(hitPlayer) local marker_id = getElementID(source) if g_team and getTeamName(g_team) == marker_id:sub( 1, #id-2 ) then skins( hitPlayer, marker_id:sub( #id ) ) end end end ) function skins(thePlayer, index) local team = getPlayerTeam( thePlayer ) if not team or not index then return end local table_data = pos[getTeamName(team)] or false if table_data and table_data[index] then local skinID = table_data[index][4] -- skins 276, 234 setElementModel(thePlayer, skinID) outputChatBox (getPlayerName(thePlayer).." você trocou sua skin",thePlayer, 0, 255, 0,true) end end Se não funcionar, digite /debugscript 3 e veja se o debug mostra algum erro.
-
Só colocar dentro da própria tabela das coordenadas: {2346.400390625,-1272.5,26.89999961853, 101}, -- sobre {2339.8999023438,-1272.5,26.89999961853, 102}, {2333.5000000000,-1272.5,26.89999961853, 103}, {2325.400390625,-1272.5,26.89999961853, 104}, -- function skins(thePlayer) local team = getPlayerTeam( thePlayer ) if not team then return outputChatBox( "Você não está em nenhuma equipe", thePlayer ) end local table_data = pos[getTeamName(team)] or false if table_data then local skinID = table_data[1][4] -- skin 101 setElementModel(thePlayer, skinID) outputChatBox (getPlayerName(thePlayer).." você trocou sua skin",thePlayer, 0, 255, 0,true) end end
-
Esses grupos de coordenadas seriam para respectivos times ? Se eu entendi bem, você pode fazer assim: local pos = { ["SOBREVIVENTE"]= { {2346.400390625,-1272.5,26.89999961853}, -- sobre {2339.8999023438,-1272.5,26.89999961853}, {2333.5000000000,-1272.5,26.89999961853}, {2325.400390625,-1272.5,26.89999961853}, teamSkin = 71 }, ["ASSASSINO"]= { {2346.400390625,-1272.5,26.89999961853}, -- assssino {2339.8999023438,-1272.5,26.89999961853}, {2333.5000000000,-1272.5,26.89999961853}, {2325.400390625,-1272.5,26.89999961853}, teamSkin = 73 }, } -- criando as marcas function createMarkersSkins () for k, v in pairs(pos) do for i=1, #v do local x, y, z = unpack(pos[k][i]) setElementID( createMarker(x, y, z, "cylinder", 1.5, 200 ,200, 0, 155), k ) end end end addEventHandler("onResourceStart", resourceRoot, createMarkersSkins) addEventHandler( "onMarkerHit", resourceRoot, function( hitPlayer ) if getElementType(hitPlayer) == "player" then local g_team = getPlayerTeam(hitPlayer) if g_team and getTeamName(g_team) == getElementID(source) then end end end ) function skins(thePlayer) local team = getPlayerTeam( thePlayer ) if not team then return outputChatBox( "Você não está em nenhuma equipe", thePlayer ) end local table_data = pos[getTeamName(team)] or false if table_data then setElementModel(thePlayer, table_data.teamSkin) outputChatBox (getPlayerName(thePlayer).." você trocou sua skin",thePlayer, 0, 255, 0,true) end end Coloquei identificação para as marcas, caso seja necessário obter qual o time que ela pertence.
-
If the "Player" parameter is returning the command name then I assume your script is client-side. Change it to server and it should work.
-
Sobre as kills/deaths você pode salvar os dados na conta do jogador quando: sair do servidor/deslogar da conta/o resource for parado. Para salvar os veículos, você pode usar um banco de dados; também é possível salvar na conta, mas usando a 1º opção acredito ser mais fácil.
-
Try using onPlayerCommand and getCommandHandlers.
-
Try setting 'false' to the player's element-data: function updatePlayersInArena() arenaPlayers = {} setElementData( source, "arenaTag", false ) local players = getElementsByType("player") for i,player in ipairs(players) do if getElementData(player,"arenaTag") then table.insert(arenaPlayers,player) end end if #arenaPlayers <= 0 then outputChatBox("Arena is empty, setting default state") setRaceState("none") end end addEventHandler( "onPlayerQuit", getRootElement(), updatePlayersInArena)
-
From what I understood, if a player is on the arena and he quits the server, his element-data "arenaTag" will still be active until the whole function is executed, and in this case, arenaPlayers wouldn't return 0 players. Although, I'm not sure if getElementsByType function inside "onPlayerQuit" event includes the player who left the server.