Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-07-01, 01:06


OskarYT

Mapper MTA






Wiek: 26
Na forum: 4386 dni
Posty: 267
Nick w MP: Kaczorek2306

Piwa: 1230

Respekt: 85,3

local fireModel = 2023
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
    local fireElem = createObject(fireModel,x,y,z)
    setElementCollisionsEnabled(fireElem,false)
    local col = createColSphere(x,y,z+1,2)
    setElementParent(col, fireElem)
    setElementData(fireElem, "ts", getTickCount(), false)
    setElementData(fireElem,"fire:Endvalue",math.random(40,80)) 
    local blip = createBlipAttachedTo ( fireElem, 0, 2, 0, 0, 0, 255, 0, 275.0, root )
    fires[fireElem] = {fireElem,col,blip}
    addEventHandler("onColShapeHit",col,setFire)
    if (d) then
      setElementDimension(fireElem, d)
      setElementDimension(col, d)
    end
    if (i) then
      setElementInterior(fireElem, i)
      setElementInterior(col, i)
    end
    return fireElem
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
        setElementHealth(elem,299)
    end
end

function fireExtinguished(fireElem) 
    if (not fires[fireElem]) then return end
    local firedValue = getElementData(fireElem,"fire:Endvalue")
    setElementData(fireElem,"fire:Endvalue",firedValue-math.random(3,10))  
    if firedValue <= 0 then
    destroyElement(fires[fireElem][1])
    destroyElement(fires[fireElem][3])
    fires[fireElem] = nil
    triggerEvent("onFireExtinguished",client,client)
    end
end
addEvent("fireExtinguished",true)
addEventHandler("fireExtinguished",root,fireExtinguished)



addEventHandler("onDebugMessage", getRootElement(), 
function(message, level, file, line)
if file == "synced_fire" then
cancelEvent()
end
end)

local fireLocations =
{
{-1987.32, 1163.48, 45.45},
{-1992.21,1160.10,46.80},
{-1988.91,1158.65,45.45},
{-1985.55,1162.96,45.45}, ---OBOK KO?CIO?A k****
{-1491.10,2692.13,55.84},
{-1498.39,2692.12,55.84},
{-1481.75,2702.71,56.25},
{-1475.06,2704.89,55.84}, --ELEQUABRADOS
{811.37,2545.90,31.36},
{818.24,2530.94,31.45},
{818.56,2510.98,29.34},
{829.83,2539.08,30.87},
{824.69,2547.80,30.81}, ---OBOK LV
{856.91,297.96,19.98},    
{859.37,288.24,20.01},    
{874.11,286.16,21.52},    
{871.36,301.26,20.98},    
{864.23,311.65,20.05},    
{860.90,321.35,20.13},    
{848.29,326.49,20.19},    
{838.35,320.53,20.51},    
{828.07,313.47,21.56},    
{814.50,313.07,21.31},    
{-2688.97, 205.51, 4.34},        
}
 
function unpackFires ()
    return unpack ( fireLocations [ math.random ( #fireLocations ) ] )
end
 
function scriptCreateFire ( player, command )
 --     destroyElement ( fireBlip )
      if isFireFighter == false then return end
      local x, y, z = unpackFires() 
      fire = createFire( x, y, z)
end
setTimer(scriptCreateFire, 10000 * 5, 0)
addCommandHandler ( "stworz.ogien", scriptCreateFire )


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(fires[fireElem][1])
    destroyElement(fires[fireElem][3])
    fires[fireElem] = nil
    end
  end
end
setTimer(extinguishExpiredFires, 1000*3600, 0)


function isFireFighter()
local result = false
    for i,element in ipairs(getElementsByType("player")) do
        if (getElementData(element,"player:duty") == "PSP")then
            result = true
        end
   end
return result
end

function getMyData ( thePlayer, command )
    local data = getAllElementData ( thePlayer )     -- get all the element data of the player who entered the command
    for k, v in pairs ( data ) do                    -- loop through the table that was returned
        outputConsole ( k .. ": " .. tostring ( v ) )             -- print the name (k) and value (v) of each element data, we need to make the value a string, since it can be of any data type
    end
end
addCommandHandler ( "elemdata", getMyData )


Chcia? bym zrobi? ?e zamiast ka?dy p?omie? si? po kolei zapala to bym chcia? zrobi? co? takiego ?e jak math.random randomowo wybierze jaki? po?ar to si? zaplalaj? one czylu na przyk?ad :

local pozar1 =
{
{-1987.32, 1163.48, 45.45},
{-1992.21,1160.10,46.80},
{-1988.91,1158.65,45.45},
{-1985.55,1162.96,45.45}, 
{-1491.10,2692.13,55.84},
{-1498.39,2692.12,55.84},
}


local pozar2 =
{
{-1987.32, 1163.48, 45.45},
{-1992.21,1160.10,46.80},
{-1988.91,1158.65,45.45},
{-1985.55,1162.96,45.45}, 
{-1491.10,2692.13,55.84},
{-1498.39,2692.12,55.84},
}


jak mam to uj?? ?e raz na 20 min zaplala si? jeden z tych pozar?w ?

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-01, 11:07


eject

kurdebele






Wiek: 30
Na forum: 3800 dni
Posty: 182
Nick w MP: EjecT

Piwa: 2456

Respekt: 85,8

Ostrzeżeń: 60%
Kod:

for i,v in ipairs(fireLocations) do
local pozar = math.random(1,24)
if pozar == 1 then
createFire(v[1],v[2],v[3], 4)
end
if pozar == 2 then
createFire(v[1],v[2],v[3], 4)
end
-- I tak do 24


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-01, 15:10


_Haze

Peace Yo!






Wiek: 25
Na forum: 4325 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020

hmmm
daj

 local pozar = math.random(1,#pozar1)
 createFire(v[1][pozar],v[2][pozar],v[3][pozar], 4) 



Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-07-01, 16:05


OskarYT

Mapper MTA






Wiek: 26
Na forum: 4386 dni
Posty: 267
Nick w MP: Kaczorek2306

Piwa: 1230

Respekt: 85,3

Hazmudex, troszk? zedytowa?em skrypt ale wyskoczy? mi nowy b??d prosi? bym o pomoc w jego rozwi?zaniu
local fireModel = 2023
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
    local fireElem = createObject(fireModel,x,y,z)
    setElementCollisionsEnabled(fireElem,false)
    local col = createColSphere(x,y,z+1,2)
    setElementParent(col, fireElem)
    setElementData(fireElem, "ts", getTickCount(), false)
    setElementData(fireElem,"fire:Endvalue",math.random(40,80)) 
    local blip = createBlipAttachedTo ( fireElem, 0, 2, 0, 0, 0, 255, 0, 275.0, root )
    fires[fireElem] = {fireElem,col,blip}
    addEventHandler("onColShapeHit",col,setFire)
    if (d) then
      setElementDimension(fireElem, d)
      setElementDimension(col, d)
    end
    if (i) then
      setElementInterior(fireElem, i)
      setElementInterior(col, i)
    end
    return fireElem
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
        setElementHealth(elem,299)
    end
end

function fireExtinguished(fireElem) 
    if (not fires[fireElem]) then return end
    local firedValue = getElementData(fireElem,"fire:Endvalue")
    setElementData(fireElem,"fire:Endvalue",firedValue-math.random(3,10))  
    if firedValue <= 0 then
    destroyElement(fires[fireElem][1])
    destroyElement(fires[fireElem][3])
    fires[fireElem] = nil
    triggerEvent("onFireExtinguished",client,client)
    end
end
addEvent("fireExtinguished",true)
addEventHandler("fireExtinguished",root,fireExtinguished)



addEventHandler("onDebugMessage", getRootElement(), 
function(message, level, file, line)
if file == "synced_fire" then
cancelEvent()
end
end)

local pozar1 =
{
{824.69,2547.80,30.81}, ---OBOK LV
{856.91,297.96,19.98},    
{859.37,288.24,20.01},    
{874.11,286.16,21.52},    
{871.36,301.26,20.98},    
{864.23,311.65,20.05},    
{860.90,321.35,20.13},    
{848.29,326.49,20.19},    
{838.35,320.53,20.51},    
{828.07,313.47,21.56},    
{814.50,313.07,21.31},    
{-2688.97, 205.51, 4.34},        
}

local pozar2 = 
{
{860.90,321.35,20.13},    
{848.29,326.49,20.19},    
{838.35,320.53,20.51},    
{828.07,313.47,21.56},    
{814.50,313.07,21.31},    
{-2688.97, 205.51, 4.34},
}
 
for i,v in ipairs(pozar1, pozar2) do
local pozar = math.random(1,24)
if pozar == 1 then
createFire(v[1],v[2],v[3], 4)
end
if pozar == 2 then
createFire(v[1],v[2],v[3], 4)
end
 
function scriptCreateFire ( player, command )
 --     destroyElement ( fireBlip )
      if isFireFighter == false then return end
      local x, y, z = unpackFires() 
      fire = createFire( x, y, z)
end
setTimer(scriptCreateFire, 10000 * 5, 0)
addCommandHandler ( "stworz.ogien", scriptCreateFire )


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(fires[fireElem][1])
    destroyElement(fires[fireElem][3])
    fires[fireElem] = nil
    end
  end
end
setTimer(extinguishExpiredFires, 1000*3600, 0)


function isFireFighter()
local result = false
    for i,element in ipairs(getElementsByType("player")) do
        if (getElementData(element,"player:duty") == "PSP")then
            result = true
        end
   end
return result
end

function getMyData ( thePlayer, command )
    local data = getAllElementData ( thePlayer )     -- get all the element data of the player who entered the command
    for k, v in pairs ( data ) do                    -- loop through the table that was returned
        outputConsole ( k .. ": " .. tostring ( v ) )             -- print the name (k) and value (v) of each element data, we need to make the value a string, since it can be of any data type
    end
end
addCommandHandler ( "elemdata", getMyData )
end



Kliknij aby zobaczy? zdj?cie !

Podpis
Postaw piwo autorowi tego posta
 

 
Tagi: math.random
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku