-
Posts
68 -
Joined
-
Last visited
Everything posted by #Gubiani
-
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Ah Beleza, entendi, então esse sistema ai está bugando no sistema de quando e saio de veiculo e ele respawna e não espera o tempo total setado, por exemplo eu setei para quando o jogador saísse do veiculo respawnar em 1 minuto e ele ta respawnado por esse motivo, de quando o veiculo é empurrado ou quando ele explode e ai ta respawnando antes do tempo setado: for i, vehicle in ipairs (carros) do -- Para cada veículo da table 'carros', faça: toggleVehicleRespawn (vehicle, true) -- Permite que eles respawnem automaticamente. setVehicleIdleRespawnDelay (vehicle, 10000) -- Respawnar após 10 segundos sem ninguém no veículo. (Ex: jogador morre e não sai do veículo, ou alguém empurra o veículo de sua posição sem entrar nele) setVehicleRespawnDelay (vehicle, 5000) -- Respawnar após 5 segundos que explodiu. (Ex: Veículo explode sem ninguém sair dele.) e não está funcionando este: EDIT ignora a função cancelRespawn! if not meuCarro then return end -- Se o veículo que o jogador saiu não está na lista acima (não faz parte deste script), então nada acontece. if not isTimer (globalTimer[meuCarro]) then -- Verifica se o veículo já possui um timer ativo. if (#getVehicleOccupants(meuCarro) > 0) then return end -- Não faz nada se ainda houver alguém dentro do veículo e não inicia o timer. --outputChatBox ("Esse veiculo será respawnado em 10 segundos! Entre nele novamente!", thePlayer) -- Mensagem de aviso para o player. globalTimer[meuCarro] = setTimer (function() -- Conta 10 segundos respawnVehicle (meuCarro) -- Respawna o veículo. setVehicleEngineState (meuCarro, false) -- Desliga o motor do veículo. end, 60000, 1) -- Tempo e repetições do timer. else resetTimer (globalTimer[meuCarro]) -- Se já existe o timer do veículo, reinicia ele. end end addEventHandler ("onVehicleExit", root, startRespawn) -- Executa essa função quando qualquer um sair de qualquer veículo. function cancelRespawn (thePlayer) local meuCarro = false -- Variável local, que será preenchida pelo veículo que o jogador entrou se ele estiver na tabela carros. for i, vehicle in ipairs (carros) do -- Para cada veículo da table 'carros', faça: if source == vehicle then -- Se o veículo que o jogador entrou for um veículo deste script, então: meuCarro = vehicle break -- (Break = sair deste FOR) Para de verificar os outros carros, pois o veículo já foi encontrado. end end if not meuCarro then return end -- Se o veículo que o jogador entrou não está na lista acima (não faz parte deste script), então nada acontece. if isTimer (globalTimer[meuCarro]) then -- Se existe o timer deste veículo, então: killTimer (globalTimer[meuCarro]) -- Cancela o timer deste veículo e ele não vai mais respawnar até que o último jogador saia de novo do veículo. -- outputChatBox ("Esse veiculo não será mais respawnado.", thePlayer) -- Mensagem de aviso para o player. end end addEventHandler ("onVehicleEnter", root, cancelRespawn) -- Executa essa função quando qualquer um entrar em qualquer veículo. -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
@Lord Henry Eu não entendi muito algumas funções ali das linhas: 11, 12, e 13 -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
@MaligNos Como que na linha 9, o script entende que ele explodiu ? -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Como vou fazer para o script reconhecer quando o veiculo explode ou cair na agua por exemplo e executar o respawn tenho que fazer uma função para cada evento? -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Opa, muito obrigado, à todos vou estudar o script de vocês, se eu tiver alguma dúvida posso por aqui nesse mesmo tópico ? -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Entendi -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
E quando eu quiser criar varios veiculos e todos terem um ponto de respawn e localidade diferentes e quiser que todos eles quando o player desocupar ele conte o respawn? Por que eu quero fazer meio que um lugar de veiculos livres para os novatos usar @Lord Henry -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Eu testei o script do @MaligNos e respawna mesmo estando dentro do veículo... E achei muito confuso o o tipo e as sequencias das funções dele, não tem como deixar mais organizado ? -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Humm, então eu colocando a tabela ele verifica quantos jogadores estão dentro do veículo ? eu testei teu script @Lord Henry deu certinho como você deixou nos comentários Me surgiu uma dúvida Lord, na linha 9 do teu código, por que tu colocou uma função dentro do setTimer, e uma função sem nome ? -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
@MaligNos Pode me explicar passo a passo teu código, para que serve as hashtag, enfim, me explique para eu entender melhor -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Bom eu abri a tabela, mas sou leigo, o que eu posso por dentro das chaves, e como eu chamo o setTimer? carro = createVehicle (411, 2475, -1657, 14, 0, 0, 0) -- modelo e as coordenadas do veiculo criado. setVehicleRespawnPosition (carro, 2475, -1657, 14, 0, 0, 0) -- ponto de respawn do veiculo. setTimer { } function foraVeh(ThePlayer) local vehicle = getPedOccupiedVehicle (ThePlayer) -- verifica se o jogador está no veiculo. if not vehicle then -- se o jogador não estiver no veiculo então... outputChatBox("Seu veiculo será respawnado em 10 segundos! Entre nele novamente", ThePlayer, 255, 255, 255, true) -- mensagem de aviso para o player. else end end addEventHandler("onVehicleExit", root, foraVeh) function dentroVeh(ThePlayer) local vehicle = getPedOccupiedVehicle (ThePlayer) if vehicle then else end end addEventHandler ("onVehicleEnter", root, dentroVeh) -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Hummm, beleza vou tentar fazer algo aqui Tem que ser uma variável global ? EDIT -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Fiz isso aqui, porém, ainda não está funcionando.. carro = createVehicle (411, 2475, -1657, 14, 0, 0, 0) -- modelo e as coordenadas do veiculo criado. setVehicleRespawnPosition (carro, 2475, -1657, 14, 0, 0, 0) -- ponto de respawn do veiculo. function foraVeh(ThePlayer) local vehicle = getPedOccupiedVehicle (ThePlayer) -- verifica se o jogador está no veiculo. if not vehicle then -- se o jogador não estiver no veiculo então... setTimer (respawnVehicle, 10000, 1, carro) -- conta 10 segundos para respawnar o veiculo. setTimer (setVehicleEngineState, 10000, 1, carro, false) -- conta 10 segundos para desligar o motor do veiculo. outputChatBox("Seu veiculo será respawnado em 10 segundos! Entre nele novamente", ThePlayer, 255, 255, 255, true) -- mensagem de aviso para o player. else cancelEvent() -- estou com dúvida aqui, quando eu entro no veiculo ele mesmo assim respawna... end end addEventHandler("onVehicleExit", root, foraVeh) function dentroVeh(ThePlayer) local vehicle = getPedOccupiedVehicle (ThePlayer) if vehicle then else end end addEventHandler ("onVehicleEnter", root, dentroVeh) -
Respawn de veículo por tempo (precisando de ajuda)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Mas dai tenho que criar outra função que ative na hora que o player estiver dentro do veiculo? -
carro = createVehicle (411, 2475, -1657, 14, 0, 0, 0) -- modelo e as coordenadas do veiculo criado. setVehicleRespawnPosition (carro, 2475, -1657, 14, 0, 0, 0) -- ponto de respawn do veiculo. function Veh(ThePlayer) local vehicle = getPedOccupiedVehicle (ThePlayer) -- verifica se o jogador está no veiculo. if not vehicle then -- se o jogador não estiver no veiculo então... setTimer (respawnVehicle, 10000, 1, carro) -- conta 10 segundos para respawnar o veiculo. setTimer (setVehicleEngineState, 10000, 1, carro, false) -- conta 10 segundos para desligar o motor do veiculo. outputChatBox("Seu veiculo será respawnado em 10 segundos! Entre nele novamente") -- mensagem de aviso para o player. else cancelEvent() -- estou com dúvida aqui, quando eu entro no veiculo ele mesmo assim respawna... end end addEventHandler("onVehicleExit", root, Veh) Boas pessoal, estou com dúvida nesse script que escrevi, quando eu entro nele novamente não para a contagem e acaba respawnando o que eu posso fazer para arrumar isso? Obrigado.
-
Muito obrigado, @Lord Henry vou estudar seu script.
-
E ai gurizada! Bom eu to fazendo marker de teleporte para as prefeituras em: LS, SF e LV, porém estou enfrentando um problema... Quando eu entro na prefeitura de LS e quero sair de dentro dela, ela me teleporta pra frente da prefeitura de SF , mesma coisa funciona para o de LV me teleporta para SF, também já mexi nos argumentos e nada, eu fiquei em dúvida para bloquear o teleporte com o veiculo usando a função "isPedInVehicle" mas também não consegui se poder me ajudar com algum exemplo, ficarei grato. Obs: debugscript 3 sem erros -- Prefeitura de Los Santos mEnCenLS = createMarker (1481.12158, -1771.80811, 17.79576, "cylinder", 1.5, 255, 0, 0) mSaiCenLS = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0) mEmpLS = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos setElementInterior (mEmpLS, 3) setElementDimension (mEmpLS, 1) setElementInterior (mSaiCenLS, 3) setElementDimension (mSaiCenLS, 1) createBlipAttachedTo (mEnCenLS, 40, 2, 255, 0, 0, 255, 0, 2000) function entradaCenLS (ThePlayer) if source == mEnCenLS then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 3) setTimer (setElementDimension, 1000, 1, ThePlayer, 1) setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 90) end end addEventHandler ("onMarkerHit", root, entradaCenLS) function saidaCenLS (ThePlayer) if source == mSaiCenLS then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 0) setTimer (setElementDimension, 1000, 1, ThePlayer, 0) setTimer (setElementPosition, 1000, 1, ThePlayer, 1480.92151, -1769.21472, 18.79576, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 0) end end addEventHandler ("onMarkerHit", root, saidaCenLS) -- Prefeitura de San Fierro mEnCenSF = createMarker (-2765.90918, 375.61075, 5.33468, "cylinder", 1.5, 255, 0, 0) mSaiCenSF = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0) mEmpSF = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos setElementInterior (mEmpSF, 3) setElementDimension (mEmpSF, 2) setElementInterior (mSaiCenSF, 3) setElementDimension (mSaiCenSF, 2) createBlipAttachedTo (mEnCenSF, 40, 2, 255, 0, 0, 255, 0, 2000) function entradaCenSF (ThePlayer) if source == mEnCenSF then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 3) setTimer (setElementDimension, 1000, 1, ThePlayer, 2) setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 90) end end addEventHandler ("onMarkerHit", root, entradaCenSF) function saidaCenSF (ThePlayer) if source == mSaiCenSF then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 0) setTimer (setElementDimension, 1000, 1, ThePlayer, 0) setTimer (setElementPosition, 1000, 1, ThePlayer, -2758.36792, 375.67731, 4.33452, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 265) end end addEventHandler ("onMarkerHit", root, saidaCenSF) -- Prefeitura de Las Venturas mEnCenLV = createMarker (2375.59912, 2307.55103, 7.14063, "cylinder", 1.5, 255, 0, 0) mSaiCenLV = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0) mEmpLV = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos setElementInterior (mEmpLV, 3) setElementDimension (mEmpLV, 3) setElementInterior (mSaiCenLV, 3) setElementDimension (mSaiCenLV, 3) createBlipAttachedTo (mEnCenLV, 40, 2, 255, 0, 0, 255, 0, 2000) function entradaCenLV (ThePlayer) if source == mEnCenLV then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 3) setTimer (setElementDimension, 1000, 1, ThePlayer, 3) setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 90) end end addEventHandler ("onMarkerHit", root, entradaCenLV) function saidaCenLV (ThePlayer) if source == mSaiCenLV then fadeCamera (ThePlayer, false) setTimer (fadeCamera, 1000, 1, ThePlayer, true) setTimer (setElementInterior, 1000, 1, ThePlayer, 0) setTimer (setElementDimension, 1000, 1, ThePlayer, 0) setTimer (setElementPosition, 1000, 1, ThePlayer, 2375.73682, 2311.94019, 8.14063, true) setTimer (setPedRotation, 1000, 1, ThePlayer, 0) end end addEventHandler ("onMarkerHit", root, saidaCenLV)
-
Olá boa tarde pessoal, eu peguei uma loja de veículos aqui na comunidade, e gostaria de por um limite de 10 dias o carro do jogador ser destruído do mapa em quanto ele fica offline, pois bem eu peguei a variavel do setTimer e implantei na função aonde o player da quit no servidor porém quando o jogador da quit no servidor em vez de contar 10 segundos que eu coloquei para testa o veiculo é destruido na hora se poderem me ajudar fico muito grato: Segue o script abaixo vou por o código por inteiro para vocês não perderem o fio da meada então esta função está nas ultimas linhas. ( Eu quero deixar esse sistema de destruir por tempo por que eu retirei a opção do carro se destruir automaticamente, então quando o player deslogar o carro fica no mapa, e ai eu quero evitar os players ausentes de mais de 10 dias e os carros deles serem deletados do mapa, para não causar muito lag no servidor e nos próprios players) function getFreeID() local result = dbPoll(dbQuery(db, "SELECT ID FROM VehicleList ORDER BY ID ASC"), -1) newID = false for i, id in pairs (result) do if id["ID"] ~= i then newID = i break end end if newID then return newID else return #result + 1 end end function getVehicleByID(id) v = false for i, veh in ipairs (getElementsByType("vehicle")) do if getElementData(veh, "ID") == id then v = veh break end end return v end function updateVehicleInfo(player) if isElement(player) then local result = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ?", getAccountName(getPlayerAccount(player))), -1) if type(result) == "table" then setElementData(player, "VehicleInfo", result) end end end addEventHandler("onResourceStart", resourceRoot, function() db = dbConnect("sqlite", "database.db") dbExec(db, "CREATE TABLE IF NOT EXISTS VehicleList (ID, Account, Model, X, Y, Z, RotZ, Colors, Upgrades, Paintjob, Cost, HP)") for i, player in ipairs(getElementsByType("player")) do updateVehicleInfo(player) end end) addEvent("onOpenGui", true) addEventHandler("onOpenGui", root, function() updateVehicleInfo(source) end) function destroyVehicles(theVehicle) if isElement(theVehicle) then local Owner = getElementData(theVehicle, "Owner") if Owner then local x, y, z = getElementPosition(theVehicle) local _, _, rz = getElementRotation(theVehicle) local r1, g1, b1, r2, g2, b2 = getVehicleColor(theVehicle, true) local color = r1..","..g1..","..b1..","..r2..","..g2..","..b2 upgrade = "" for _, upgradee in ipairs (getVehicleUpgrades(theVehicle)) do if upgrade == "" then upgrade = upgradee else upgrade = upgrade..","..upgradee end end local Paintjob = getVehiclePaintjob(theVehicle) or 3 local id = getElementData(theVehicle, "ID") dbExec(db, "UPDATE VehicleList SET X = ?, Y = ?, Z = ?, RotZ = ?, HP = ?, Colors = ?, Upgrades = ?, Paintjob = ? WHERE Account = ? AND ID = ?", x, y, z, rz, getElementHealth(theVehicle), color, upgrade, Paintjob, getAccountName(getPlayerAccount(Owner)), id) updateVehicleInfo(Owner) local attached = getAttachedElements(theVehicle) if (attached) then for k,element in ipairs(attached) do if getElementType(element) == "blip" then destroyElement(element) end end end end destroyElement(theVehicle) end end addEvent("onBuyNewVehicle", true) addEventHandler("onBuyNewVehicle", root, function(Model, cost, r1, g1, b1, r2, g2, b2) abc = false local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ?", getAccountName(getPlayerAccount(source))), -1) for i, data in ipairs (data) do if data["Model"] == Model then abc = true break end end if #data >= 50 then outputChatBox("#FFFFFFDesculpe, mas você só pode ter apenas 50 veículos.", source, 38, 122, 216, true) return end if abc then outputChatBox("#FFFFFFVocê já comprou este veículo antes.", source, 38, 122, 216, true) return end if getPlayerMoney(source) >= tonumber(cost) then takePlayerMoney ( source, cost ) local x, y, z = getElementPosition(source) local _, _, rz = getElementRotation(source) local color = r1..","..g1..","..b1..","..r2..","..g2..","..b2 vehicle = createVehicle(Model, x-5, y+5, z, 0, 0, rz) setVehicleColor(vehicle, r1, g1, b1, r2, g2, b2) setElementData(vehicle, "Owner", source) local NewID = getFreeID() setElementData(vehicle, "ID", NewID) dbExec(db, "INSERT INTO VehicleList VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", NewID, getAccountName(getPlayerAccount(source)), Model, x-5, y+5, z, rz, color, "", 3, cost, 1000) outputChatBox("#FFFFFFVocê comprou um: #FF0000"..getVehicleNameFromModel(Model), source, 38, 122, 216, true) outputChatBox("#FFFFFFPreço: #00FF00R$"..cost, source, 38, 122, 216, true) updateVehicleInfo(source) vv[vehicle] = setTimer(function(source) if not isElement(source) then killTimer(vv[source]) vv[source] = nil end if isElement(source) and getElementHealth(source) <= 255 then setElementHealth(source, 255.5) setVehicleDamageProof(source, true) setVehicleEngineState(source, false) end end, 50, 0, vehicle) addEventHandler("onVehicleDamage", vehicle, function(loss) local account = getAccountName(getPlayerAccount(getElementData(source, "Owner"))) setTimer(function(source) if isElement(source) then dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND Model = ?", getElementHealth(source), account, getElementModel(source)) updateVehicleInfo(getElementData(source, "Owner")) end end, 100, 1, source) end) addEventHandler("onVehicleEnter", vehicle, function(player) if getElementHealth(source) <= 255.5 then setVehicleEngineState(source, false) else if isVehicleDamageProof(source) then setVehicleDamageProof(source, true) end end end) else outputChatBox("#FFFFFFVocê não tem dinheiro suficiente.", source, 38, 122, 216, true) end end) vv = {} addEvent("SpawnMyVehicle", true) addEventHandler("SpawnMyVehicle", root, function(id) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then if getVehicleByID(id) then outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(data[1]["Model"]).." #FFFFFFfoi spawnado.", source, 38, 122, 216, true) else local color = split(data[1]["Colors"], ',') r1 = color[1] or 255 g1 = color[2] or 255 b1 = color[3] or 255 r2 = color[4] or 255 g2 = color[5] or 255 b2 = color[6] or 255 vehicle = createVehicle(data[1]["Model"], data[1]["X"], data[1]["Y"], data[1]["Z"], 0, 0, data[1]["RotZ"]) setElementData(vehicle, "ID", id) local upd = split(tostring(data[1]["Upgrades"]), ',') for i, upgrade in ipairs(upd) do addVehicleUpgrade(vehicle, upgrade) end local Paintjob = data[1]["Paintjob"] or 3 setVehiclePaintjob(vehicle, Paintjob) setVehicleColor(vehicle, r1, g1, b1, r2, g2, b2) if data[1]["HP"] <= 255.5 then data[1]["HP"] = 255 end setElementHealth(vehicle, data[1]["HP"]) setElementData(vehicle, "Owner", source) vv[vehicle] = setTimer(function(source) if not isElement(source) then killTimer(vv[source]) vv[source] = nil end if isElement(source) and getElementHealth(source) <= 255 then setElementHealth(source, 255.5) setVehicleDamageProof(source, true) setVehicleEngineState(source, false) end end, 50, 0, vehicle) addEventHandler("onVehicleDamage", vehicle, function(loss) local account = getAccountName(getPlayerAccount(getElementData(source, "Owner"))) setTimer(function(source) if isElement(source) then dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND Model = ?", getElementHealth(source), account, getElementModel(source)) updateVehicleInfo(getElementData(source, "Owner")) end end, 100, 1, source) end) addEventHandler("onVehicleEnter", vehicle, function(player) if getElementHealth(source) <= 255.5 then setVehicleEngineState(source, false) else if isVehicleDamageProof(source) then setVehicleDamageProof(source, false) end end end) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(data[1]["Model"]).." #FFFFFFfoi spawnado.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFPode haver problema com este veículo, por favor peça ajuda para um administrador.", source, 38, 122, 216, true) end end) addEvent("DestroyMyVehicle", true) addEventHandler("DestroyMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then destroyVehicle(vehicle) outputChatBox ("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(data[1]["Model"]).." #FFFFFFfoi destruído.", source, 38, 122, 216, true) else outputChatBox("#FFFFFFEscolha o veículo que você quer destruir.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFO seu veículo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("LightsMyVehicle", true) addEventHandler("LightsMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then local Vehicle = getPedOccupiedVehicle(source) if Vehicle == vehicle then if getVehicleOverrideLights(vehicle) ~= 2 then setVehicleOverrideLights(vehicle, 2) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFacendeu as luzes.", source, 38, 122, 216, true) elseif getVehicleOverrideLights(vehicle) ~= 1 then setVehicleOverrideLights(vehicle, 1) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FF0000apagou as luzes.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFVocê não está no veículo!", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFSeu Veículo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("LockMyVehicle", true) addEventHandler("LockMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then if not isVehicleLocked(vehicle) then setVehicleLocked(vehicle, true) setVehicleDoorsUndamageable(vehicle, true) setVehicleDoorState(vehicle, 0, 0) setVehicleDoorState(vehicle, 1, 0) setVehicleDoorState(vehicle, 2, 0) setVehicleDoorState(vehicle, 3, 0) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFfoi trancado.", source, 38, 122, 216, true) elseif isVehicleLocked(vehicle) then setVehicleLocked(vehicle, false) setVehicleDoorsUndamageable(vehicle, false) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFfoi destrancado.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFSeu veículo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("BlipMyVehicle", true) addEventHandler("BlipMyVehicle", root, function(id) local vehicle = getVehicleByID(id) if isElement(vehicle) then if not getElementData(vehicle, "ABlip") then setElementData(vehicle, "ABlip", true) createBlipAttachedTo(vehicle, 41, 2, 255, 0, 0, 255, 0, 65535, source) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFestá marcado no mapa, use F11 para encontrá-lo.", source, 38, 122, 216, true) else local attached = getAttachedElements(vehicle) if (attached) then for k,element in ipairs(attached) do if getElementType(element) == "blip" then destroyElement(element) end end end setElementData(vehicle, "ABlip", false) outputChatBox("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFfoi desmarcado do mapa.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFSeu Veículo não foi spawnado.", source, 38, 122, 216, true) end end) addEvent("FixMyVehicle", true) addEventHandler("FixMyVehicle", root, function(id) if getPlayerMoney(source) >= tonumber(0) then takePlayerMoney ( source, 0 ) local vehicle = getVehicleByID(id) if isElement(vehicle) then fixVehicle(vehicle) setVehicleEngineState(vehicle, true) if isVehicleDamageProof(vehicle) then setVehicleDamageProof(vehicle, false) end end dbExec(db, "UPDATE VehicleList SET HP = ? WHERE Account = ? AND ID = ?", 1000, getAccountName(getPlayerAccount(source)), id) updateVehicleInfo(source) outputChatBox ("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFteve o motor ligado e reparado.", source, 38, 122, 216, true) else outputChatBox("#FFFFFFVocê não tem dinheiro para reparar o seu veiculo.", source, 38, 122, 216, true) end end) addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(0) then local vehicle = getVehicleByID(id) if isElement(vehicle) then takePlayerMoney ( source, 5000 ) local x, y, z = getElementPosition(source) setElementPosition(vehicle, x+3, y+2, z+1.5) outputChatBox ("#FFFFFFSeu veículo #FF0000"..getVehicleNameFromModel(getElementModel(vehicle)).." #FFFFFFfoi trazido para você.", source, 38, 122, 216, true) else outputChatBox("#FFFFFFSeu veículo não foi spawnado.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFVocê não tem dinheiro suficiente para trazer seu veículo.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFVocê não pode trazer o seu veículo enquanto você dentro de interiores.", source, 38, 122, 216, true) end else outputChatBox("#FFFFFFVocê não pode trazer o seu veículo, enquanto estiver dentro de um veículo.", source, 38, 122, 216, true) end end) addEvent("SellMyVehicle", true) addEventHandler("SellMyVehicle", root, function(id) local vehicle = getVehicleByID(id) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id), -1) if type(data) == "table" and #data ~= 0 then local Money = math.ceil((data[1]["Cost"]*.9)*math.floor(data[1]["HP"])/100/10) givePlayerMoney (source, Money) if isElement(vehicle) then destroyElement(vehicle) end dbExec(db, "DELETE FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), id) updateVehicleInfo(source) outputChatBox("#FFFFFFVocê vendeu seu veículo por #00FF00R$"..Money, source, 38, 122, 216, true) end end) function getDataOnLogin(_, account) updateVehicleInfo(source) end addEventHandler("onPlayerLogin", root, getDataOnLogin) function SaveVehicleDataOnQuit() for i, veh in ipairs (getElementsByType("vehicle")) do if getElementData(veh, "Owner") == source then setTimer (destroyVehicle(veh), 10000) end end end addEventHandler("onPlayerQuit", root,SaveVehicleDataOnQuit)
-
Olá, Bom dia galera, eu estou querendo montar um servidor RPG, porém com script criados por mim, nada pego da internet, e tipo não sei muito ainda de script sou novato consigo criar coisas simples. Exemplo do servidor rpg, criar uma central de trabalhos como se fosse no SA-MP e trabalhos por nível do jogador, para ser lixeiro precisa ter nível 5 se tu for nível abaixo de 5 não consegue pegar o emprego, e ai quando tu pega o emprego tu sempre spawna na empresa e com a skin etc... Como se fosse SA-MP só que no MTA, alguém poderia me apoiar? Me ajudar fazer scripts mais avançados e por esse projeto para frente? Obrigado.
-
Olha testei aqui digitando o comando desativado pelo console e por bind, e realmente está desativada.
-
O script do KaR0n! deu certo, Lord Henry essa trapaça que eu falei, o player fica multiplicando o dinheiro com alguma modificação de banco ele registra outra conta e fica tranferindo para a outra conta usando os comandos... lá no admin_server.lua só tem apenas /register e /unregister e eu estava precisando bloquear todos, então usei o script do colega ali que me ajudou mais... Obrigado pela ajuda de todos estou grato.
-
Obrigado, vou testar aqui, já lhe trago a resposta!
-
Olá, boa noite, bom estou tendo alguns problemas com os comandos: /register /login & /logout, com players tendo uma certa vantagem em cima dos outros players e ainda repassando essa "trapaça" simplesmente eles bugam o banco usando os mesmos. - Quando o player digitar o comando, uma mensagem aparece dizendo que o comando foi desativado. (outputChatBox). Agradeço desde já...
-
Boa noite, bom o portão não está abrindo, segue abaixo... objeto = createObject ( 980, 2001.9000244141, -1445.0999755859, 15.300000190735, 0, 0,314 ) x,y,z = getElementPosition (objeto) Zona = createColCircle ( x,y, 6, 6 ) --portao aberto-- function Funcion (thePlayer) local nomeAcc = getAccountName (getPlayerAccount (thePlayer)) if isObejectInACLGroup ("user."..nomeAcc, aclGetGroup("VAGOS")) then moveObject ( objeto, 2300, 2001.9000244141, -1445.0999755859, 9.1000003814697) else end end addEventHandler ( "onColShapeHit", Zona, Funcion ) --portao fechado-- function Funcion2 (thePlayer) local nomeAcc2 = getAccountName (getPlayerAccount (thePlayer)) if isObejectInACLGroup ("user."..nomeAcc2, aclGetGroup("VAGOS")) then moveObject ( objeto, 2300, 2001.9000244141, -1445.0999755859, 15.300000190735) else end end addEventHandler ( "onColShapeLeave", Zona, Funcion2 ) O que está faltando, ou errado?
-
pt-br Preciso de ajuda neste script (sou novato)
#Gubiani replied to #Gubiani's topic in Programação em Lua
Nossa cara que estranho... Mesmo assim não funcionou. Esse aqui esta funcionando: addEventHandler( "onResourceStart", resourceRoot, function() resetMapInfo() for _,player in ipairs( getElementsByType 'player' ) do spawn( player ) end end ) function spawn( player ) if not isElement( player ) then return end showChat( player, true ) local acc = getPlayerAccount( player ) if acc then if isObjectInACLGroup ( "user.".. getAccountName( acc ), aclGetGroup ( "YKZ" ) ) then spawnPlayer ( player, 2340.81323, 553.25513, 18.75537, 90, 120) elseif isObjectInACLGroup ( "user.".. getAccountName( acc ), aclGetGroup ( "EB" ) ) then spawnPlayer ( player, 205.75940, 1866.97839, 13.14063, 90, 287) elseif isObjectInACLGroup ( "user.".. getAccountName( acc ), aclGetGroup ( "Everyone" ) ) then spawnPlayer ( player, 1177.12634, -1327.09448, 14.05530, 90, 0) elseif isGuestAccount (getPlayerAccount (player)) then spawnPlayer (player, 1177.12634, -1327.09448, 14.05530, 90, 0) end end fadeCamera( player, true ) setCameraTarget( player, player ) end addEventHandler( "onPlayerJoin", root, function( ) spawn( source ) end) addEventHandler( "onPlayerWasted", root, function( ) setTimer( spawn, 3000, 1, source ) end)