
joao2235
Members-
Posts
140 -
Joined
-
Last visited
Everything posted by joao2235
-
local vehicleElements = {} allVeh = {510} local pickupTable = { {1086.1798095703,-1801.6898193359,13.601690292358}, } function createPickupOnServerStart () for i, cor in ipairs (pickupTable) do local pickup = createPickup(cor[1], cor[2], cor[3], 3, 1274, 0) setElementData(pickup, "pickupArenda", true) end end addEventHandler("onResourceStart", getResourceRootElement( getThisResource() ), createPickupOnServerStart) function onResourceStop (veh) if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end --vehicleElements[veh] = destroyElement(veh) end addEventHandler("onResourceStop", getResourceRootElement( getThisResource() ), onResourceStop) function onPickupHit (hit) if not getElementData(source, "pickupArenda") or getElementType(hit) ~= "player" and not isPedInVehicle(hit) then return end triggerClientEvent(hit, "changeArendaMenuState", hit) end addEventHandler("onPickupHit", getRootElement(), onPickupHit) function onPlayerUseCustomPickup() if getPlayerMoney(source) >= 500 then local x, y, z = getElementPosition(source) local veh = createVehicle(allVeh[math.random(1,#allVeh)], x, y, z) setElementData(veh, "starter_pack", true) setElementData(veh, "owner", source) warpPedIntoVehicle(source, veh) takePlayerMoney(source, 500) outputChatBox("Bicicleta alugada, bom uso!.", source, 0, 255, 0) else outputChatBox("Para alugar uma bicicleta você precisa de >> 500 $$ <<.", source, 255, 0, 0) end end addEvent("onPlayerUseCustomPickup", true) addEventHandler("onPlayerUseCustomPickup", getRootElement(), onPlayerUseCustomPickup) function onPlayerVehicleEnter (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), onPlayerVehicleEnter) function onPlayerVehicleExit (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end vehicleElements[veh] = setTimer(destroyElement, 300000, 1, veh) end end addEventHandler("onPlayerVehicleExit", getRootElement(), onPlayerVehicleExit) function onVehicleStartEnter (player, seat) if getElementData(source, "starter_pack") == true and seat == 0 then local owner = getElementData(source, "owner") if owner ~= player then cancelEvent() outputChatBox("Você não é dono desta bicicleta, alugue sua bike para poder usá-la.", player, 255, 0, 0) end end end addEventHandler("onVehicleStartEnter", getRootElement(), onVehicleStartEnter) This is the script to rent bike to a player. The bike is destroyed after 5 minutes, it's ok. But i need to do something that when player is arrasted, die, logout, exit of game the bike be destroyed too. function DestroyVeiculo (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end --vehicleElements[veh] = setTimer(destroyElement, 300000, 1, veh) vehicleElements[veh] = destroyElement(veh) end end addEventHandler ("onPlayerLogout", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerQuit", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerWasted", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerBan", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerDie", getRootElement(), DestroyVeiculo) I tried to do it the way above, but not sucess. Someone can help me ? Thanks!
-
I did it: function getPedWeapons(ped) local playerWeapons = {} if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then for i=2,9 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 function SaberArmas (player) qtdArmas = 0 for i,wep in ipairs(getPedWeapons(player)) do qtdArmas = i end if qtdArmas > 0 then outputChatBox("Você tem: " ..qtdArmas.. " armas") else outputChatBox("Você não tem nenhum armamento!") end end addEventHandler("onMarkerHit", MarkerInfo, SaberArmas) 100% Working. I did not tested it, but thanks!^^
-
local vehicleElements = {} allVeh = {510} local pickupTable = { {1086.1798095703,-1801.6898193359,13.601690292358}, } function createPickupOnServerStart () for i, cor in ipairs (pickupTable) do local pickup = createPickup(cor[1], cor[2], cor[3], 3, 1274, 0) setElementData(pickup, "pickupArenda", true) end end addEventHandler("onResourceStart", getResourceRootElement( getThisResource() ), createPickupOnServerStart) function onResourceStop (veh) if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end --vehicleElements[veh] = destroyElement(veh) end addEventHandler("onResourceStop", getResourceRootElement( getThisResource() ), onResourceStop) function onPickupHit (hit) if not getElementData(source, "pickupArenda") or getElementType(hit) ~= "player" and not isPedInVehicle(hit) then return end triggerClientEvent(hit, "changeArendaMenuState", hit) end addEventHandler("onPickupHit", getRootElement(), onPickupHit) function onPlayerUseCustomPickup() if getPlayerMoney(source) >= 500 then local x, y, z = getElementPosition(source) local veh = createVehicle(allVeh[math.random(1,#allVeh)], x, y, z) setElementData(veh, "starter_pack", true) setElementData(veh, "owner", source) warpPedIntoVehicle(source, veh) takePlayerMoney(source, 500) outputChatBox("Bicicleta alugada, bom uso!.", source, 0, 255, 0) else outputChatBox("Para alugar uma bicicleta você precisa de >> 500 $$ <<.", source, 255, 0, 0) end end addEvent("onPlayerUseCustomPickup", true) addEventHandler("onPlayerUseCustomPickup", getRootElement(), onPlayerUseCustomPickup) function onPlayerVehicleEnter (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), onPlayerVehicleEnter) function onPlayerVehicleExit (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end vehicleElements[veh] = setTimer(destroyElement, 300000, 1, veh) end end addEventHandler("onPlayerVehicleExit", getRootElement(), onPlayerVehicleExit) function onVehicleStartEnter (player, seat) if getElementData(source, "starter_pack") == true and seat == 0 then local owner = getElementData(source, "owner") if owner ~= player then cancelEvent() outputChatBox("Você não é dono desta bicicleta, alugue sua bike para poder usá-la.", player, 255, 0, 0) end end end addEventHandler("onVehicleStartEnter", getRootElement(), onVehicleStartEnter) Esse é o script de alugar bicicleta, a bike some após 5 minutos do player estando fora dela, até aí sem problemas. Gostaria de saber como faço para que ela suma instantaneamente se o player morrer, sair do game, for preso, etc. Segue abaixo o que tentei: function DestroyVeiculo (veh, seat) if getElementData(veh, "starter_pack") == true and seat == 0 then if isTimer(vehicleElements[veh]) then killTimer(vehicleElements[veh]) end --vehicleElements[veh] = setTimer(destroyElement, 300000, 1, veh) vehicleElements[veh] = destroyElement(veh) end end addEventHandler ("onPlayerLogout", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerQuit", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerWasted", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerBan", getRootElement(), DestroyVeiculo) addEventHandler ("onPlayerDie", getRootElement(), DestroyVeiculo) Dessa forma acima não consegui. Se alguém puder me ajudar, agradeço!
-
Valeu irmão, segue print aí pra quem quiser ver!
-
[AJUDA] Obter o valor inteiro do número de armas do Player.
joao2235 replied to joao2235's topic in Programação em Lua
Funcionou mestre. Obrigado! -
Estou tentando obter o valor inteiro do número de armas que o jogador possuí em mãos. Acabei encontrando alguns scripts na internet que informar no chat quais são as armas que o jogador tem, mas preciso obter o valor inteiro e não a lista de armas. Segue abaixo o script: function getPedWeapons(ped) local playerWeapons = {} if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then for i=2,9 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 function SaberArmas (player) outputChatBox("Armas (Caso tenha armas elas serão listadas abaixo!)",player,255,0,0) for i,wep in ipairs(getPedWeapons(player)) do outputChatBox("Você tem: " .. getWeaponNameFromID(wep),player,0,255,0) end end addEventHandler("onMarkerHit", MarkerInfo, SaberArmas) Preciso obter o valor inteiro, se alguém puder me ajudar. Desde já agradeço!
-
Sorry by my english. I need to get a value with the whole number of weapons the player has. (Whole Number from player's weapon). I'm trying to do this, but with no sucess: function getPedWeapons(ped) local playerWeapons = {} if ped and isElement(ped) and getElementType(ped) == "ped" or getElementType(ped) == "player" then for i=2,9 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 function SaberArmas (player) outputChatBox("Armas (Caso tenha armas elas serão listadas abaixo!)",player,255,0,0) for i,wep in ipairs(getPedWeapons(player)) do outputChatBox("Você tem: " .. getWeaponNameFromID(wep),player,0,255,0) end end addEventHandler("onMarkerHit", MarkerInfo, SaberArmas) The script is making a list not a Whole Number. Someone can help me ?
-
Estou com uma dúvida um tanto quanto pertinente. Quando faço um teleporte por maker por exemplo para um interior, quando o player é teleportado a câmera ao invés de ficar nas costas dele fica ao lado. Como faço para resolver ? PS: Já tentei o "setCameraTarget". Segue print abaixo para maiores detalhes: https://i.imgur.com/ClGFMrq.png
-
local sx,sy = guiGetScreenSize() local px,py = 1366,768 local x,y = (sx/px), (sy/py) function gas() local vehicle = getPedOccupiedVehicle( getLocalPlayer() ) local gasosa = math.floor(getElementData(vehicle,"fuel") or 11) if ( vehicle ) then if (getVehicleType (vehicle) ~= "BMX") then -- Se o veículo não for uma bicicleta, então: dxDrawRectangle(x*1125 - 2, y*718 - 2, x*100 + 4, y*27 + 4, tocolor(0, 0, 0, 140), false) dxDrawRectangle(x*1125, y*718, x*100, y*27, tocolor(0, 0, 0, 30), false) if gasosa <= 100 then dxDrawRectangle(x*1125, y*718, x*100/100*gasosa, y*27, tocolor(243, 0, 0, 255), false) else dxDrawRectangle(x*1125, y*718, x*100, y*27, tocolor(243, 0, 0, 255), false) end end end end addEventHandler("onClientRender", root, gas) Ficaria dessa forma ?
-
Certo, coloquei isso no lado do servidor e funcionou. Mas a minha dúvida é como faço para não aparecer a barra da gasolina (client-side) quando o player entra na bike por exemplo.
-
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Fiquei fora por um tempo devido a alguns problemas pessoais, peço desculpas pela demora. O que você desenvolveu acima é basicamente o que quero fazer, a única diferença é que o player consiga guardar qualquer uma das armas que tem em mãos e pegá-la quando quiser, pelo que entendi no script acima ele terá de guardar todas as armas que carrega. -
Server-Side possui 2 arquivos. 1: factor = 0.03 function createVehicles(player) for i,v in ipairs(getElementsByType("vehicle")) do fuel = math.random(70,80) setElementData(v, "fuel", fuel) end end function processFuel(player) for i,v in ipairs(getElementsByType("vehicle")) do local fuel = getElementData(v, "fuel") or math.random(70,80) if (getVehicleEngineState(v) and fuel > 0 ) then fuel = fuel - factor end if (fuel <= 0.99) then fuel = 0 setVehicleEngineState(v, false) end setElementData(v, "fuel", fuel) end end createVehicles() setTimer(processFuel, 1000, 0) 2: local addingFuel = {} addEvent("onVehicleRefulling", true) function vehicleRefulling(v) if (getPlayerMoney(source) < 5) then outputChatBox("#000000[ #FF0000GASOLINA #000000] #ffffffVocê não tem dinheiro $10", source, 255, 255, 255, true) else setElementData(v, "fuel", getElementData(v, "fuel") + 1) takePlayerMoney(source, 5) end end addEventHandler("onVehicleRefulling", root, vehicleRefulling) addEvent("onVehicleRefullingFull", true) function vehicleRefullingf(v) gabas = 100 - getElementData(v, "fuel") if (getPlayerMoney(source) < tonumber(gabas*5)) then outputChatBox("#000000[ #FF0000GASOLINA #000000] #ffffffVocê não tem dinheiro $"..convertNumber (gabas*5).."", source, 255, 255, 255, true) else setElementData(v, "fuel", getElementData(v, "fuel")+gabas+1) takePlayerMoney(source, tonumber(gabas*5)) end end addEventHandler("onVehicleRefullingFull", root, vehicleRefullingf) function convertNumber ( number ) local formatted = number while true do formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2') if ( k==0 ) then break end end return formatted end Client-Side: local sx,sy = guiGetScreenSize() local px,py = 1366,768 local x,y = (sx/px), (sy/py) function gas() local vehicle = getPedOccupiedVehicle( getLocalPlayer() ) local gasosa = math.floor(getElementData(vehicle,"fuel") or 11) if ( vehicle ) then dxDrawRectangle(x*1125 - 2, y*718 - 2, x*100 + 4, y*27 + 4, tocolor(0, 0, 0, 140), false) dxDrawRectangle(x*1125, y*718, x*100, y*27, tocolor(0, 0, 0, 30), false) if gasosa <= 100 then dxDrawRectangle(x*1125, y*718, x*100/100*gasosa, y*27, tocolor(243, 0, 0, 255), false) else dxDrawRectangle(x*1125, y*718, x*100, y*27, tocolor(243, 0, 0, 255), false) end end end addEventHandler("onClientRender", root, gas) Como posso fazer para que veículos que não possuam motor, como por exemplo a bike não apareça o indicador de Gasolina ? PS: O lado do server-side não foi eu quem fiz.
-
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Sei como fazer um trigger, mas o que gostaria de saber é como faria para conseguir setar a data das armas que o Player tem e conseguir deixar salva até que ele retorne. Sei sobre a função setElementData e getElementData, só não sei como usaria dentro de uma função no client. Por isso perguntei se precisaria criar no server-side e então puxar com o trigger server para uma função no client. Espero que me entenda, peço desculpas por não saber muito, estou buscando aprender. Ficaria grato demais se pudesse me ajudar. -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Mestre, estou estudando esses vídeos que por sinal são bons demais! Sinceramente, não sei como começar, porque nunca mexi com Client-Side, me entende ? Não sei se crio um evento no server-side e puxo no client-side, se puder me dar esse norte me ajuda demais! -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Mestre, o que quero fazer é que o player tenha a opção de pagar para guardar as armas dele e mesmo que ele morra, pode voltar lá depois e pegar essas armas. No caso é no marker e no painel acima que vocês me ajudaram à corrigi-lo. Queria saber mais ou menos por cima o que teria que utilizar. Se puder me ajudar, agradeço! -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Quais os princípios que precisaria usar para conseguir fazer tipo um cofre de armas junto à esse script ? -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Top mestre, deu certo! Você me recomendaria algum curso ou vídeo-aula para estudar sobre script MTA avançado ? -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Exato, essa é minha imagem. -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Ainda não estudei o client-side, parece que existem algumas diferenças. Sei bastante quanto ao server-side, peço desculpas por não saber ainda. -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Exatamente, percebi isso agora. Como faria para resolver isso ? -
[AJUDA] Meu painel GUI não mostra a gridlist.
joao2235 replied to joao2235's topic in Programação em Lua
Mesmo que estivesse apenas no client-side, ele não me mostra as armas que carrego.