Jump to content

SherlocK

Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by SherlocK

  1. sim, tem o banco de dados, eh um script de concessionária 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
  2. https://youtu.be/jTH8lL5T7Fo ta ae o vídeo, então parece q a parte do recover não existe, ele n faz nenhuma leitura
  3. ah ok, desculpe nunca tinha feito depuração antes, assim que eu fizer eu posto aqui addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) outputChatBox ("01") if not isPedInVehicle (source) then outputChatBox ("02") if getElementInterior(source) == 0 then outputChatBox ("03") if getPlayerMoney(source) >= tonumber(1000) then outputChatBox ("04") local vehicle = getVehicleByID(id) outputChatBox ("05") if isElement(vehicle) then outputChatBox ("06") for i, vaga in ipairs (detran) do -- Para cada vaga, faça: outputChatBox ("07") local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. outputChatBox ("08") if not status then -- Se a vaga está desocupada, então: vaga[4] = vehicle takePlayerMoney (source, 1000) setElementPosition (vehicle, x, y, z) outputChatBox ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 38, 122, 216, true) return end end else outputChatBox ("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end) addEvent("RecoverMyVehicle", true) addEventHandler("RecoverMyVehicle", root, function(id) outputChatBox ("1") if not isPedInVehicle (source) then outputChatBox ("2") if getElementInterior(source) == 0 then outputChatBox ("3") if getPlayerMoney(source) >= tonumber(1000) then outputChatBox ("4") local vehicle = getVehicleByID(id) outputChatBox ("5") if isElement(vehicle) then outputChatBox ("6") for i, vaga in ipairs (detran) do -- Para cada vaga, faça: outputChatBox ("7") local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. outputChatBox ("8") if status then -- Se a vaga está ocupada, então: outputChatBox ("9") if (status == vehicle) then -- Se a vaga está ocupada pelo veículo correto, então: vaga[4] = false takePlayerMoney (source, 1000) warpPedIntoVehicle (source, vehicle) outputChatBox ("#c1c1c1O você recuperou seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))), source, 38, 122, 216, true) return end end end else outputChatBox ("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputChatBox ("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end) está certo agr?
  4. addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then for i, vaga in ipairs (detran) do -- Para cada vaga, faça: local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. if not status then -- Se a vaga está desocupada, então: vaga[4] = vehicle takePlayerMoney (source, 1000) setElementPosition (vehicle, x, y, z) outputChatBox ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 38, 122, 216, true) return outputChatBox ("teste01", source, 38, 122, 216, true) end outputChatBox ("teste02", source, 38, 122, 216, true) end outputChatBox ("teste03", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end outputChatBox ("teste04", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end outputChatBox ("teste05", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end outputChatBox ("teste06", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end) addEvent("RecoverMyVehicle", true) addEventHandler("RecoverMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then for i, vaga in ipairs (detran) do -- Para cada vaga, faça: local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. if status then -- Se a vaga está ocupada, então: if (status == vehicle) then -- Se a vaga está ocupada pelo veículo correto, então: vaga[4] = false takePlayerMoney (source, 1000) warpPedIntoVehicle (source, vehicle) outputChatBox ("#c1c1c1O você recuperou seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))), source, 38, 122, 216, true) return outputChatBox ("teste1", source, 38, 122, 216, true) end outputChatBox ("teste2", source, 38, 122, 216, true) end outputChatBox ("teste3", source, 38, 122, 216, true) end outputChatBox ("teste4", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end outputChatBox ("teste5", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end outputChatBox ("teste6", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end outputChatBox ("teste7", source, 38, 122, 216, true) else outputChatBox ("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end) Veja oq acontece no vídeo. basicamente é como se a parte do recover n estivesse escrita.
  5. eaí man, tentei fazer funcionar mas n consegui identificar aonde esta o erro, mas não ta indo, ele n reconhece q a vaga ficou livre
  6. Na vdd n aparece erro, mas não está funcionando, está da msm forma como se n tivesse a parte de recovery
  7. Não deu certo. Esta parte está certa? Vi que teve alteração nesta parte e outras, mas fiquei confuso se ta correto esta parte. if status then -- Se a vaga está ocupada, então: if (status == vehicle) then -- Se a vaga está ocupada pelo veículo correto, então: vaga[4] = false
  8. que? buguei, tem ts ou algum discord pra podermos conversar? me adc la Sherlock#7949
  9. ah sim, entendi, mas agr pra ele reconhecer q a vaga está desocupada eu tenho q trabalhar com esse false/true isso? tentei imaginar uma forma de escrever onde se o status do veiculo não for vaga, aplica se vaga livre. mas n faço menor ideia de como escrever o código e mt menos se esta certo a linha de raciocínio
  10. ta ok, esse "vaga[4] = true". qual é a função dele? no caso eh o numero da vaga q ele vai ler e aplicar o comando? tipo daí eu tenho q fazer o msm com tds as outras vagas? isso?
  11. voce tem discord? me adc la Sherlock#7949, me ajude a entender, eu estou começando a mexer com scripts a pouco tempo e quero aprender a programar, mas estou tendo algumas dificuldades, se puder me ajudar ficarei mt agradecido. Obs: O script está funcionando em partes, ele está igual ao meu, esta mandando para um local e esta amontoando os carros um em cima do outro. Se puder, tiver tempo de me ajudar a escrever o script eu fico mais agradecido doq me dar ele de bandeja.
  12. Entao estou tentando adaptar isso ao meu script, pois ele é da concessionária, isto que eu mandei eh uma parte dele, do jeito q vc mandou ele n reconhece, ateh msm corrompeu o script, se puder adaptar ele no modelo que mandei eu agradeço. Estou tentando fazer isso agr, se eu tiver sucesso escrevo novamente
  13. Irei fazer em torno de 15 coordenadas para que isto não venha acontecer, mas se acontecer aparece uma msg dizendo que não como levar seu carro ao Detran no momento, tente mais tarde, ou algo assim
  14. Modifiquei um Script onde ao clicar em Recuperar, o seu veículo vai para o pátio do detran, porém eu quero que ele jogue pra mais de 1 coordenada. Ex: Se tiver um carro no local A, o carro vai para B, se tiver no A e B, ele vai pra C e assim sucessivamente. Porém não estou conseguindo, desta forma ele vai para um local especifico bugando um carro em cima do outro. Tentei de algumas formas diferentes mas não consegui fazer desta forma. addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then takePlayerMoney ( source, 1000 ) local x, y, z = getElementPosition(source) setElementPosition(vehicle, 746.41412353516, -1334.8160400391, 13.539707183838) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 38, 122, 216, true) else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end)
  15. Eu dei uma olhada e não estou conseguindo, coloquei o comando de várias formas diferente e não deu certo. Vou mandar o o script server.Lua customCarNames = -- Car names { } shopsVehSpawns = { [1] = { 2131, -1133, 25.6, 0,0,359 }, [2] = { 555, -1278, 18, 0,0,100 }, [3] = { 1941, 2097, 10.8, 0,0,350 }, [4] = { -1988, 272, 36, 0,0,259 }, [5] = { -1642, 1213, 7.17, 0,0, 227 }, } 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, new_hydr)") for i, player in ipairs(getElementsByType("player")) do updateVehicleInfo(player) end end) addEvent("onOpenGui", true) addEventHandler("onOpenGui", root, function() updateVehicleInfo(source) end) function destroyVehicle(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 = ?, new_hydr = ? WHERE Account = ? AND ID = ?", x, y, z, rz, getElementHealth(theVehicle), color, upgrade, Paintjob, getElementData ( theVehicle, "NewHydr") and 1 or 0, 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 >= 7 then outputMessage("#c1c1c1Desculpe, mas você só pode comprar #00FF663#FFFFFF veiculos.", source, 38, 122, 216, true) return end if abc then outputMessage("#c1c1c1Você já tem este veiculo.", 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 shopID = getElementData ( source, "atVehShop") local color = r1..","..g1..","..b1..","..r2..","..g2..","..b2 if shopID and shopsVehSpawns[shopID] then vehicle = createVehicle(Model, shopsVehSpawns[shopID][1], shopsVehSpawns[shopID][2], shopsVehSpawns[shopID][3], shopsVehSpawns[shopID][4], shopsVehSpawns[shopID][5], shopsVehSpawns[shopID][6]) else vehicle = createVehicle(Model, x-5, y+5, z, 0, 0, rz) end 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, 0) outputMessage("#c1c1c1Por: #00FF66$"..cost, source, 38, 122, 216, true) updateVehicleInfo(source) setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) warpPedIntoVehicle ( source, vehicle ) vv[vehicle] = setTimer(function(source) if not isElement(source) then killTimer(vv[source]) vv[source] = nil end if isElement(source) and getElementHealth(source) <= 0 then setElementHealth(source, 0) --damage end end, 150, 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) else outputMessage("#c1c1c1Você não tem grana para comprar este veiculo.", 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 outputMessage("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1já está 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 tonumber(data[1]["HP"]) <= 255.5 then data[1]["HP"] = 255 end if data[1]["new_hydr"] and data[1]["new_hydr"] == 1 then setElementData(vehicle, "NewHydr", true) else setElementData(vehicle, "NewHydr", false) end setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) 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) outputMessage("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1foi spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Há um problema com o veiculo, notifique o 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) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[data[1]["Model"]] or getVehicleNameFromModel(data[1]["Model"])).." #c1c1c1foi removido.", source, 38, 122, 216, true) else outputMessage("#c1c1c1Selecione um veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo 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) outputMessage("#c1c1c1Seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1teve as luzes acesas.", source, 38, 122, 216, true) elseif getVehicleOverrideLights(vehicle) ~= 1 then setVehicleOverrideLights(vehicle, 1) outputMessage("#c1c1c1Seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1teve as luzes apagadas.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não está no veiculo!", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não está 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) outputMessage("#c1c1c1O seu transporte #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi #00FF66fechado.", source, 38, 122, 216, true) elseif isVehicleLocked(vehicle) then setVehicleLocked(vehicle, false) setVehicleDoorsUndamageable(vehicle, false) outputMessage("#c1c1c1O seu transporte #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi #00FF66aberto.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo 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) outputMessage("#c1c1c1O Seu Automovel #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1Foi Rastreado Olhe O Minimap Ou F11", 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) outputMessage("#c1c1c1O Seu Automovel #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1Parou De Ser Rastreado", source, 38, 122, 216, true) end else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end end) addEvent("FixMyVehicle", true) addEventHandler("FixMyVehicle", root, function(id) if getPlayerMoney(source) >= tonumber(500) then takePlayerMoney ( source, 500 ) 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) outputMessage ("#c1c1c1O seu transporte foi reparado.", source, 38, 122, 216, true) else outputMessage("#c1c1c1Você não tem dinheiro suficiente para reparar.", source, 38, 122, 216, true) outputMessage("#c1c1c1Preço: #00FF66$500.", 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(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then takePlayerMoney ( source, 1000 ) local x, y, z = getElementPosition(source) setElementPosition(vehicle, 746.41412353516, -1334.8160400391, 13.539707183838) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 38, 122, 216, true) else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", 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) outputMessage("#c1c1c1Você vendeu o seu veiculo por #00FF66$"..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 end end end addEventHandler("onPlayerQuit", root,SaveVehicleDataOnQuit) addEvent("inviteToBuyCarSended", true) addEventHandler("inviteToBuyCarSended", root, function(player, price, veh_name, veh_id) if player and price and veh_name and veh_id then local pl = getPlayerFromName ( player ) if pl then triggerClientEvent ( pl, "recieveInviteToBuyCar", pl, getPlayerName (source), getAccountName(getPlayerAccount(source)), price, veh_name, veh_id ) else outputMessage ( "#c1c1c1O jogador não foi encontrado, a venda foi cancelada", source, 250, 10, 10, true) triggerClientEvent ( source, "cleanCarInvitations", source ) end end end) addEvent("invitationBuyCarNotAccepted", true) addEventHandler("invitationBuyCarNotAccepted", root, function(player, acc, price, veh_name, veh_id) local pl = getPlayerFromName ( player ) if pl then triggerClientEvent ( pl, "cleanCarInvitations", pl ) outputMessage ( "#c1c1c1O jogador recusou-se a comprar o seu carro", pl, 250, 10, 10,true) end end) addEvent("invitationBuyCarAccepted", true) addEventHandler("invitationBuyCarAccepted", root, function(player, acc, price, veh_name, veh_id) local pl = getPlayerFromName ( player ) local avail = false if pl and getAccountName ( getPlayerAccount (pl)) == acc then avail = true triggerClientEvent ( pl, "cleanCarInvitations", pl ) --outputMessage ( "Игрок отказался покупать ваше авто", pl, 250, 10, 10) else for i, v in ipairs( getElementsByType ( 'player' ) ) do if getAccountName(getPlayerAccount ( v )) == acc then avail = true pl = v break end end end price = tonumber(price) or 0 if avail then if isGuestAccount ( getPlayerAccount ( source ) ) then triggerClientEvent ( pl, "cleanCarInvitations", pl ) outputMessage ( "#c1c1c1Você não está logado em sua conta, a transação foi cancelada", source, 250, 10, 10,true ) outputMessage ( "#c1c1c1O jogador não entrou na conta, a transação foi cancelada", pl, 250, 10, 10,true ) return true end if getPlayerMoney ( source ) >= price then local vehicle = getVehicleByID(tonumber(veh_id)) local data = dbPoll(dbQuery(db, "SELECT * FROM VehicleList WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(pl)), veh_id), -1) if type(data) == "table" and #data ~= 0 and isElement ( vehicle ) then givePlayerMoney ( pl, price ) takePlayerMoney ( source, price ) dbExec(db, "UPDATE VehicleList SET Account = ? WHERE Account = ? AND ID = ?", getAccountName(getPlayerAccount(source)), getAccountName(getPlayerAccount(pl)), veh_id) updateVehicleInfo(source) updateVehicleInfo(pl) setElementData(vehicle, "Owner", source) setElementData(vehicle, "ownercar", getAccountName(getPlayerAccount(source))) outputMessage("#c1c1c1Você vendeu o seu veiculo por #00FF66$"..price, pl, 38, 122, 216, true) outputMessage("#c1c1c1Você comprou um carro por #00FF66$"..price, source, 38, 122, 216, true) triggerClientEvent ( pl, "cleanCarInvitations", pl ) else outputMessage ( "#c1c1c1A máquina não pode ser encontrado, o negócio é cancelado", source, 250, 10, 10,true ) outputMessage ( "#c1c1c1A máquina não pode ser encontrado, o negócio é cancelado. Tente carro desova.", pl, 250, 10, 10,true ) triggerClientEvent ( pl, "cleanCarInvitations", pl ) end else outputMessage ( "#c1c1c1Você não tem dinheiro suficiente, a transação foi cancelada", source, 250, 10, 10,true ) end else outputMessage ( "#c1c1c1O jogador não foi encontrado, a operação foi cancelada", source, 250, 10, 10,true) end end) function outputMessage (text, player, r, g, b) return exports["scr-Lib"]:outputMessage(player, text, r, g, b); end lembrando que eu quero limitar na acl quem pode comprar na loja, mas os demais players vao poder usar o painel dos carros, spawnar e etc. Outra função que estou com problema é que programei para que ao clicar em Recuperar no painel, o carro vai para o pátio do detran, só que como coloco para que se tiver um carro na coordenada "1", ele vai para "2", se tiver na "1" e "2", ele manda para "3", e assim em diante. tipo colocar umas 8-10 coordenadas e fazer com que se uma tiver ocupada o carro vai para outra. se é que me entende. desta forma ele vai para o local, mas vai ficar indo um carro em cima do outro. addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then takePlayerMoney ( source, 1000 ) local x, y, z = getElementPosition(source) setElementPosition(vehicle, 746.41412353516, -1334.8160400391, 13.539707183838) outputMessage ("#c1c1c1O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 38, 122, 216, true) else outputMessage("#c1c1c1O seu veiculo não está spawnado.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você não tem os meios de se teletransportar para o veiculo.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Você só poderá mudar de veiculo se sair do atual.", source, 38, 122, 216, true) end else outputMessage("#c1c1c1Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 38, 122, 216, true) end end)
  16. olá boa tarde, estou com dificuldade para limitar o script da concessionária para uma determinada ACL, onde apenas quem é "Vendedor" consegue abrir o painel da loja no marker e comprar o veículo, tentei de várias formas diferentes e nenhuma tive êxito, alguém poderia me ajudar? O sistema da loja é aquele mais comum mesmo, só que vou limitar a apenas um grupo poder acessar ele, enquanto os player terão acesso somente ao painel de veículos.
×
×
  • Create New...