No wi?c tak. Znalaz?em przerobiony skrypt syncedfire przez http://Ricka i zmieni?em w nim tylko, ?e zamiast sprawdza? getelementdaty sprawdza czy gracz jest w acl. Niestety skrypt nie dzia?a, nie pokazuje ?adnych b??d?w. U?ytkownik, kt?ry wystawia? ten skrypt w innym dziale napisa?, ?e mu dzia?a wi?c nie wiem.
Po prostu jest konflikt, ?e tak to nazw?...
Funkcje kt?re u?y?e? (aby sprawdzi? czy jest objekt w acl'u) dzia?aj? jedynie po stronie serwer'a, a ten plik jest po stronie klienta
W takim wypadku masz kilka rozwi?za?
> Jednak u?y? tej elementDaty
> Je?eli u?ywasz team?w sprawdzi? team gracza
> Poprzez exportowanie funkcji stworzy? funkcj? sprawdzaj?c? czy dany gracz jest w danej grupie acl
Ewentualnie pr?b? przeniesienia skryptu na stron? serwer'a
A w tym edytowanym przez tego typka b?dzie to dzia?a?, bo on w?a?nie to przerobi? na stron? serwer'a
Mo?esz u?y? wydarzenia onPlayerLogin i przy wej?ciu u?ytkownika na serwer, sprawdza? jego ACL i je?li b?dzie posiada? ten odpowiedni nada mu elementDat?.
-- EDYTOWAL http://Rick
Ogien = {
{-2310.35,-119.44,35.32},
{-2024.79,158.14,28.88},
{-1916.93,867.40,35.45},
{-1916.93,867.40,35.45},
{-1916.93,867.40,35.45},
{-1716.72,-94.59,3.57},
{-2088.60,289.56,35.55},
{-2399.59,699.83,35.20},
{-2839.39,457.04,4.60},
{-1072.91,-1153.63,129.24},
{-1068.30,-1153.47,129.26},
{-600.04,-1099.59,23.57},
{-619.23,-475.20,25.55},
{-619.00,-489.55,25.54},
{-427.82,-391.72,16.26},
{-770.05,-159.64,66.26},
{-148.37,1133.05,19.77},
{-2800.01,2328.29,84.74},
{-2472.31,1550.24,36.80},
{-2478.05,1546.59,36.80},
{-2473.31,1537.30,36.80},
{-2409.87,974.64,45.37},
{-2413.21,-559.72,128.77},
{-2793.11,173.55,6.31},
{-2432.85,162.85,35.20},
}
local fireModel = 8501
local fires = {}
addEvent("onFireExtinguished",true)
addEvent("onFireCreate",true)
local function isFireNearby(x,y,z) -- todo d,i
local cs=createColSphere(x,y,z,3)
local obiekty=getElementsWithinColShape(cs, "object")
destroyElement(cs)
for i,v in ipairs(obiekty) do
if (getElementModel(v)==fireModel) then return true end
end
return false
end
function createFire(x,y,z,d,i)
if (isFireNearby(x,y,z,d,i)) then return nil end
if not(isPlayerFireFighter()) then return nil end
local rnd = math.random(1,#Ogien)
local fireElem = createObject(fireModel,Ogien[rnd][1],Ogien[rnd][2],Ogien[rnd][3])
setElementCollisionsEnabled(fireElem,false)
local col = createColSphere(x,y,z+1,2)
setElementParent(col, fireElem)
setElementData(fireElem, "ts", getTickCount(), false)
setElementData(col,"fire:Endvalue",100)
fires[fireElem] = {fireElem,col}
addEventHandler("onColShapeHit",col,setFire)
addEventHandler("onColShapeHit",col,FireFunction)
addEventHandler("onColShapeLeave",col,unFireFunction)
if (d) then
setElementDimension(fireElem, d)
setElementDimension(col, d)
end
if (i) then
setElementInterior(fireElem, i)
setElementInterior(col, i)
end
return fireElem
end
function FireFunction(elem)
setElementHealth(elem,getElementHealth(elem)-1)
Fired = setTimer ( FireFunction, 1000, 1,elem)
end
function unFireFunction(elem)
if isTimer(Fired) then
killTimer(Fired)
end
end
function setFire(elem,dim)
if not dim then return end
if not elem or not isElement(elem) then return end
if getElementType(elem) == "player" then
setPedOnFire(elem,true)
end
end
function setFire(elem,dim)
if not dim then return end
if not elem or not isElement(elem) then return end
if getElementType(elem) == "vehicle" then
setVehicleOnFire(elem,true)
end
end
function fireExtinguished(fireElem)
if (not fires[fireElem]) then return end
local firedValue = getElementData(fires[fireElem][2],"fire:Endvalue")
setElementData(fires[fireElem][2],"fire:Endvalue",firedValue-math.random(1,5))
triggerEvent("onFireExtinguished",source,fireElem)
if firedValue >= 0 then
destroyElement(fires[fireElem][1])
destroyElement(fires[fireElem][2])
fires[fireElem] = nil
end
end
addEvent("fireExtinguished",true)
addEventHandler("fireExtinguished",root,fireExtinguished)
addEvent("doCreateFire", true)
addEventHandler("doCreateFire", root, createFire)
-- addEventHandler ( "onVehicleExplode", root, function()
-- outputDebugString("Wybuch pojazdu")
-- local x,y,z=getElementPosition(source)
-- createFire(x+math.random(-2,2),y+math.random(-2,2),z-0.5,getElementDimension(source), getElementInterior(source))
-- end)
local function extinguishExpiredFires()
for i,v in ipairs(getElementsByType("object", resourceRoot)) do
local ts=getElementData(v,"ts")
if (ts and getTickCount()-ts<1000*3600*6) then
destroyElement(getElementChild(v,0))
fires[v]=nil
destroyElement(v)
end
end
end
setTimer(extinguishExpiredFires, 1000*3600, 0)
function FromDestroyBlip(name)
for i,v in ipairs(getElementsByType("Blip")) do
if getElementData("name:index") == name then
destroyElement(v)
end
end
end
function isPlayerFireFighter(x,y,z)
local result = false
for i,element in ipairs(getElementsByType("Player")) do
if getElementData(element,"Praca") == "SAFD" then
blips = createBlipAttachedTo(fireElem, 16)
setTimer ( function()
destroyElement(blips)
end, 60000*5, 1 )
result = true
end
end
return result
end
function LoadFireTable()
local a = math.random(1,10)
if a > 0 then
for i,v in ipairs(Ogien) do
if isPlayerFireFighter(v[1],v[2],v[3]) then
local rnd = math.random(1,#Ogien)
createFire(v[1],v[2],v[3],0,0)
end
end
end
end
setTimer(LoadFireTable,60000,0)
Aha i jeszcze nie da si? gasi? po?ar?w. U?ywam ga?nicy i firetrucka i nic.
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