Witam.
Jak zrobi? takie co?, ?eby by? tworzony blip na wszystkich pojazdach, kt?re maj? elementdat? "oznaczony_dp" i by? widoczny dla wszystkich graczy z elementdat? "player:duty" == "Pomoc Drogowa" ?
robisz skrypt w kt?rym na samym pocz?tku sprawdzasz czy gracz ma dat?, strona clienta. bierzesz all pojazdy w p?tl?, ustawiasz blip oraz przy??czasz go do niego (attach-elements) napisz takie co? i zobacz czy b?dzie dzia?a?
function sprawdzajoznaczone20(plr)
if getElementData(localPlayer, 'player:duty') == "Pomoc Drogowa" then
for _, p in pairs(getElementsByType('vehicle')) do
if getElementData(p,"oznaczony_dp") then
local X = createBlip(0,0,0, 12)
destroyElement(X)
local X = createBlip(0,0,0, 12)
attachElements ( X, p )
end
end
end
end
setTimer(sprawdzajoznaczone20, 2000, 0)
Teraz blip pokazuje si? tylko je?li kto? jest ma elementdat? 'Pomoc Drogowa', ale po utworzeniu jest widoczny dla wszystkich.
function sprawdzajoznaczone20(plr)
for _, p in pairs(getElementsByType('vehicle')) do
if getElementData(p,"oznaczony_dp") then
for _,g in ipairs(getElementsByType("player")) do
if getElementData(g,"duty") == "Pomoc Drogowa" then
local X = createBlip(0,0,0, 12)
destroyElement(X)
local X = createBlip(0,0,0, 12)
attachElements ( X, p )
end
end
end
end
end
setTimer(sprawdzajoznaczone20, 2000, 0)
No i po usuni?ciu elementdaty z danego pojazdu dalej jest blip na mapie
s-side
function oznacztest(plr)
local veh = getPedOccupiedVehicle(plr)
setElementData(veh, "oznaczony_dp", true)
outputChatBox("Pojazd zosta? oznaczony do odholowania ~ komenda tylko do testowania ", plr)
end
addCommandHandler("oznaczppxdtest", oznacztest)
function noznacztest(plr)
local veh = getPedOccupiedVehicle(plr)
setElementData(veh, "oznaczony_dp", false)
outputChatBox("Pojazd nie jest ju? oznaczony do odholowania - odznaczony ~ komenda tylko do testowania", plr)
end
addCommandHandler("odznaczppxdtest", noznacztest)
function sprawdzajoznaczone20(plr)
for _, p in pairs(getElementsByType('vehicle')) do
if getElementData(p,"oznaczony_dp") then
for _,g in ipairs(getElementsByType("player")) do
if getElementData(g,"player:duty") == "Pomoc Drogowa" then
X = createBlip(0,0,0, 12)
destroyElement(X)
X = createBlip(0,0,0, 12)
attachElements ( X, p )
end
end
end
end
end
setTimer(sprawdzajoznaczone20, 2000, 0)
addEventHandler ( "onClientElementDataChange", getRootElement(),
function ( dataName )
if getElementType ( source ) == "player" and dataName == "player:duty" then
destroyElement(X)
end
end )
Je?li jest tylko jeden pojazd oznaczony (1 blip) to dzia?a, ale jak jest wi?cej to nie usuwa blip?w. ;c
Nie u?ywa?em nigdy onClientElementDataChange, a p?tli bardzo rzadko tak?e nie ogarniam tego.
X = createBlip(0,0,0, 12)
destroyElement(X)
X = createBlip(0,0,0, 12)
po kij robisz 2 blipy? no i musisz zrobi? 1 blip dla jednego pojazdu. teraz tworzysz 1 blip (o takiej samej nazwie) dla wszystkich pojazd?w. Dlatego b?dzie usuwa? all blipy. Musisz zrobi? tablic? do tego
A jako? tak da?em, bo chcia?em ?eby tak jakby od?wie?a?o blipy - czyli usuwa?o wszystkie z aut i dodawa?o tylko te, gdzie w autach jest ta elementdata.
[ Dodano: 2017-08-22, 13:45 ]
Nadal nie wiem jak to zrobi?.
Obecnie jest to rozwi?zane przez suszark? (sprawdzanie czy pojazd jest oznaczony przez u?ywanie suszarki PD), ale blipy by?yby du?o lepsze. Kto?, co??
to co wcze?niej, bierzesz all pojazdy w p?tle, sprawdzasz dat? i je?eli jest prawda to:
--poczatek skryptu
local tab={};
--w petli
if data==true then
loca id = getElemetData(v,"id")
tab[id]=createBlip() -- do pojazdu
end
--przy usuwaniu bierzesz id poj
if isElement(tab[id]) or tab[id] then
destroyElement(tab[id])
end
co? potrafisz w lua wi?c pozmieniaj jak co? dzia?a? nie b?dzie. jak nie to pisz
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