Mam problem z prac?, polega on na tym, ?e po rozpocz?ciu pracy ?adujemy pojazd, a po za?adowaniu mamy uda? si? do punktu ?eby roz?adowa?, ale podczas roz?adowywania nie dostaje si? kasy, checkpoint nie znika, pojazd b?d?c w tym punkcie ci?gle jest zamro?ony, a podczas wyj?cia z pojazdu, po chwili pojazd powinien znikn?? i zrespi? si? na swoim miejscu - tak si? nie dzieje
local Code = "dostawca"
reloadMarker = createMarker(-1661.20, 1300.86, 7.04-1, "cylinder", 3.0, 255, 0, 0, 100)
JobPoints = {
{-1667.20, 1235.16, 7.18},
{-1718.38, 1277.25, 7.20},
{-1695.15, 1254.35, 7.20},
}
local JobBlip
local JobMarker
function finishJob()
if JobMarker and isElement(JobMarker) then
destroyElement(JobMarker)
JobMarker = nil
end
if destinationBlip and isElement(JobBlip) then
destroyElement(JobBlip)
JobBlip = nil
end
end
function dostawcaJob(el, md)
if el ~= localPlayer then return end
if not getPedOccupiedVehicle(el) then return end
local car = getPedOccupiedVehicle(el)
setElementFrozen(car, true)
outputChatBox ("#00ccccTrwa ?adowanie towaru...", 255, 255, 255)
setTimer(function()
setElementFrozen(car, false)
outputChatBox ("#00cc00PTowar zosta? za?adowany.", 255, 255, 255)
outputChatBox ("#00cc00Udaj si? do punktu oznaczonego blipem 'C'", 255, 255, 255)
showDestination()
end, 5000, 1)
end
addEventHandler("onClientMarkerHit", reloadMarker, dostawcaJob)
function showDestination()
local rand = math.random(1, #JobPoints)
local JobMarker = JobPoints[rand]
JobMarker = createMarker(JobMarker[1], JobMarker[2], JobMarker[3], "checkpoint", 2.7, 255, 0, 0, 100)
JobBlip = createBlipAttachedTo(JobMarker, 12)
addEventHandler("onClientMarkerHit", JobMarker, unload)
end
function unload(el, md)
if el ~= localPlayer then return end
if not getPedOccupiedVehicle(el) then return end
local carr = getPedOccupiedVehicle(el)
setElementFrozen(carr, true)
outputChatBox ("#00cc00Trwa roz?adowywanie towaru...", 255, 255, 255)
setTimer(function()
local rnd = math.random(10, 30)
givePlayerMoney(localPlayer, rnd)
outputChatBox ("#00cc00Mo?esz teraz zako?czy? prac? lub wr?ci? po nast?pny towar!", 255, 255, 255)
outputChatBox ("#00cc00Za dostarczenie towaru otrzymujesz #cc0000"..rnd.. "#00cc00PLN", 255, 255, 255)
finishJob()
end, 5000, 1)
end
addEvent("praca_dostawcy", true)
addEventHandler("praca_dostawcy", resourceRoot, function()
dostawcaJob(el, md)
end)
addEventHandler("onClientPlayerQuit", resourceRoot, function()
setElementData(source, "praca", false)
end)
addEventHandler("onClientPlayerWasted", resourceRoot, function()
setElementData(source, "praca", false)
outputChatBox ("#00cc00Zgin??e?! Twoja praca zosta?a zako?czona.", 255, 255, 255)
end)
addEventHandler("onClientResourceStop", resourceRoot, function()
if veh and getElementData(localPlayer, "praca") then
setElementData(localPlayer, "praca", false)
end
end)
addEventHandler("onClientVehicleExit", resourceRoot, function(plr, seat)
if seat == 0 then
if plr == localPlayer then
finishJob()
destroyElement(blip)
outputChatBox ("#00cc00Wyszed?e? z pojazdu, praca zosta?a zako?czona.", 255, 255, 255)
end
end
end)
Podczas gdy wje?d?am w checkpoint, b??d podczas wyp?acania kasy (linijka 84 po stronie clienta), checkpoint nie znika a gdy wysi?d? z pojazdu nie usuwa go (linijka 120 po stronie clienta) i gdy wyjd? z pojazdu nie zaka?cza pracy
@EDIT: Uda?o mi si? naprawi? to, ?ebym otrzymywa? kas? gdy dotr? do celu, ale wci?? nie wiem jak naprawi? to, ?eby jak dojad? do celu i dostane ju? t? wyp?at? to ?eby mnie odmrozi?o, ?eby znikn?? checkpoint i jak si? wyjdzie z pojazdu to ?eby usuwa?o pojazd po np. 30 sekundach i respi?o go na swoim miejscu. Kto? pomo?e?
addEventHandlera zamiast do resourceRoot powiniene? dodawa? na roota, poniewa? element go triggeruj?cy po stronie clienta (czyli gracz) jest poza jego zasi?giem.
outputChatBox ("Rozpocz??e? prac? jako dostawca ?ywno?ci, za?aduj ci??ar?wk?.", el, 255, 255, 255)
[...]
outputChatBox ("Nie mog? ci? zatrudni?, poniewa? posiadasz ju? aktywn? prac?!", el, 255, 255, 255)
W outputChatBox element idzie na drug? pozycj?, nie pierwsz? jak w wi?kszo?ci funkcji.
--client (i tu jest ju? ciekawie)
if JobBlip and isElement(JobBlip) then
destroyElement(JobBlip)
JobBlip = nil
end
Sprawdza?e? destinationBlip, kt?ry nie istnieje i istnie? nie b?dzie nigdy, prosty fix.
Deklarowa?e? lokaln? zmienn? JobMarker, a nast?pnie przypisywa?e? do niej marker, przez co nie by?o to przypisywane od globalnego JobMarkera, kt?ry pozostawa? nilem i dlatego si? nie kasowa?.
function unload(el, md)
if el ~= localPlayer then return end
if not getPedOccupiedVehicle(el) then return end
local carr = getPedOccupiedVehicle(el)
setElementFrozen(carr, true)
outputChatBox ("#00cc00Trwa roz?adowywanie towaru...", 255, 255, 255)
setTimer(function()
rnd = math.random(10, 30)
triggerServerEvent("givePlayerMoney", localPlayer, rnd)
setElementFrozen(carr, false)
outputChatBox ("#00cc00Mo?esz teraz zako?czy? prac? lub wr?ci? po nast?pny towar!", 255, 255, 255)
outputChatBox ("#00cc00Za dostarczenie towaru otrzymujesz #cc0000"..rnd.. "#00cc00PLN", 255, 255, 255)
finishJob()
end, 5000, 1)
end
--client
local Code = "dostawca"
reloadMarker = createMarker(-1661.20, 1300.86, 7.04-1, "cylinder", 3.0, 255, 0, 0, 100)
JobPoints = {
{-1667.20, 1235.16, 7.18},
{-1718.38, 1277.25, 7.20},
{-1695.15, 1254.35, 7.20},
}
local JobBlip
local JobMarker
function finishJob()
outputChatBox("test")
if JobMarker and isElement(JobMarker) then
destroyElement(JobMarker)
JobMarker = nil
end
outputChatBox(tostring(isElement(JobBlip))..":"..getElementType(JobBlip))
if JobBlip and isElement(JobBlip) then
destroyElement(JobBlip)
JobBlip = nil
end
end
function dostawcaJob(el, md)
if el ~= localPlayer then return end
if not getPedOccupiedVehicle(el) then return end
local car = getPedOccupiedVehicle(el)
setElementFrozen(car, true)
outputChatBox ("#00ccccTrwa ?adowanie towaru...", 255, 255, 255)
setTimer(function()
setElementFrozen(car, false)
outputChatBox ("#00cc00PTowar zosta? za?adowany.", 255, 255, 255)
outputChatBox ("#00cc00Udaj si? do punktu oznaczonego blipem 'C'", 255, 255, 255)
showDestination()
end, 5000, 1)
end
addEventHandler("onClientMarkerHit", reloadMarker, dostawcaJob)
function showDestination()
local rand = math.random(1, #JobPoints)
local JobPos = JobPoints[rand]
JobMarker = createMarker(JobPos[1], JobPos[2], JobPos[3], "checkpoint", 2.7, 255, 0, 0, 100)
JobBlip = createBlipAttachedTo(JobMarker, 12)
addEventHandler("onClientMarkerHit", JobMarker, unload)
end
function unload(el, md)
if el ~= localPlayer then return end
if not getPedOccupiedVehicle(el) then return end
local carr = getPedOccupiedVehicle(el)
setElementFrozen(carr, true)
outputChatBox ("#00cc00Trwa roz?adowywanie towaru...", 255, 255, 255)
setTimer(function()
rnd = math.random(10, 30)
triggerServerEvent("givePlayerMoney", localPlayer, rnd)
setElementFrozen(carr, false)
outputChatBox ("#00cc00Mo?esz teraz zako?czy? prac? lub wr?ci? po nast?pny towar!", 255, 255, 255)
outputChatBox ("#00cc00Za dostarczenie towaru otrzymujesz #cc0000"..rnd.. "#00cc00PLN", 255, 255, 255)
finishJob()
end, 5000, 1)
end
addEvent("praca_dostawcy", true)
addEventHandler("praca_dostawcy", resourceRoot, function()
dostawcaJob(el, md)
end)
addEventHandler("onClientPlayerQuit", resourceRoot, function()
setElementData(source, "praca", false)
end)
addEventHandler("onClientPlayerWasted", resourceRoot, function()
setElementData(source, "praca", false)
outputChatBox ("#00cc00Zgin??e?! Twoja praca zosta?a zako?czona.", 255, 255, 255)
end)
addEventHandler("onClientResourceStop", resourceRoot, function()
if veh and getElementData(localPlayer, "praca") then
setElementData(localPlayer, "praca", false)
end
end)
addEventHandler("onClientVehicleExit", resourceRoot, function(plr, seat)
if seat == 0 then
if plr == localPlayer then
finishJob()
destroyElement(blip)
outputChatBox ("#00cc00Wyszed?e? z pojazdu, praca zosta?a zako?czona.", 255, 255, 255)
end
end
end)
--server
createBlip(-1655.24, 1315.20, 6.77, 46, 2, 0, 0, 0, 0, 0, 400)
local JobOnline = true
local JobVehicles = {
{440, -1655.24, 1315.20, 6.77+0.30, 0, 0, 90},
{440, -1655.24, 1311.20, 6.77+0.30, 0, 0, 90},
{440, -1655.24, 1307.20, 6.77+0.30, 0, 0, 90},
{440, -1655.24, 1302.20, 6.77+0.30, 0, 0, 90},
}
local code = "dostawca"
for i,v in ipairs(JobVehicles) do
local veh = createVehicle(v[1], v[2], v[3], v[4], v[5], v[6], v[7])
setVehicleRespawnPosition(veh, v[1], v[2], v[3], v[4], v[5], v[6], v[7])
setVehicleHandling(veh, "maxVelocity", 100)
setElementData(veh, "vehicle:job", code)
setVehiclePlateText(veh, "DOSTAWCA")
setVehicleColor(veh, 20, 20, 20, 20, 20, 20)
setVehicleDamageProof(veh, true)
setElementFrozen(veh, true)
removeVehicleSirens(veh)
end
addEvent("givePlayerMoney", true)
addEventHandler("givePlayerMoney", root, function(kwota)
outputChatBox(kwota)
givePlayerMoney (client, kwota)
end)
addEventHandler("onVehicleStartEnter", resourceRoot, function(plr, seat)
if seat ~= 0 then return end
if JobOnline == false then
outputChatBox ("#cc0000Praca zosta?a tymczasowo wy??czona.", 255, 255, 255)
cancelEvent()
return
end
end)
addEventHandler("onVehicleExit", resourceRoot, function(plr, seat)
if seat ~= 0 then return end
setElementData(plr, "praca", false)
end)
addEventHandler("onVehicleEnter", resourceRoot, function(plr, seat)
if seat == 0 then
if getElementData(plr, "praca") == false then
setElementData(plr, "praca", true)
setElementFrozen(source, false)
setElementData(plr, "praca", code)
outputChatBox ("Rozpocz??e? prac? jako dostawca ?ywno?ci, za?aduj ci??ar?wk?.", el, 255, 255, 255)
triggerClientEvent(plr, "praca_dostawcy", resourceRoot)
else
outputChatBox ("Nie mog? ci? zatrudni?, poniewa? posiadasz ju? aktywn? prac?!", el, 255, 255, 255)
end
end
end)
addEventHandler("onVehicleRespawn", resourceRoot, function()
veh = source
setVehicleHandling(veh, "maxVelocity", 100)
setElementData(veh, "vehicle:job", code)
setVehicleColor (veh, 20, 20, 20, 20, 20, 20)
setVehicleDamageProof(veh, true)
setElementFrozen(veh, true)
removeVehicleSirens(veh)
end)
addEvent("STOPJob", true)
addEventHandler("STOPJob", resourceRoot, function()
setElementData(el, "praca")
local pojazd = getPedOccupiedVehicle(localPlayer)
if pojazd then
destroyElement(pojazd)
end
end)
addEventHandler("onResourceStop", resourceRoot, function()
for i,v in ipairs(getElementsByType("player")) do
if getElementData(v, "praca") == Code then
setElementData(v, "praca", false)
end
end
end)
addEvent("destroyVeh", true)
addEventHandler("destroyVeh", getRootElement(),
function()
if JobVehicles[source] then
if isElement(JobVehicles[source]) then destroyElement(JobVehicles[source]) end
end
end)
Wszystko ju? pi?knie ?adnie dzia?a, ale nie wiem jak zablokowa? to, ?e gdy ju? pojazd zostanie "na?adowany" to ?eby nie ?adowa?o ponownie gdy si? wjedzie w marker Bo teraz to dzia?a w ten spos?b, ?e jak za?aduj? to mog? jeszcze raz za?adowa? i tak ca?y czas i mam wi?cej ni? 1 punkt, jak to mog? naprawi??
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach