Jump to content

Help with zombie spawn


Aurelijus

Recommended Posts

This is a common problem with Zday script (zombies) all have this problem unless they fix it by themselves...

Here is createzombie function:

function createZombie ( x, y, z, rot, skin, interior, dimension ) 
    if (table.getn( everyZombie ) < newZombieLimit ) then 
    --this part handles the args 
        if not x then return false end 
        if not y then return false end 
        if not z then return false end 
        if not rot then 
            rot = math.random (1,359) 
        end 
        if not skin then 
            randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) )           
            skin = ZombiePedSkins[randomZskin] 
        end 
        if not interior then interior = 0 end 
        if not dimension then dimension = 0 end 
    --this part spawns the ped 
        local zomb = createPed (tonumber(skin),tonumber(x),tonumber(y),tonumber(z))--spawns the ped 
    --if successful, this part applies the zombie settings/args 
        if (zomb ~= false) then 
            setTimer ( setElementInterior, 100, 1, zomb, tonumber(interior)) --sets interior 
            setTimer ( setElementDimension, 100, 1, zomb, tonumber(dimension)) --sets dimension 
            setElementData ( zomb, "zombie", true  ) 
            setElementData ( zomb, "forcedtoexist", true  ) 
            setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) 
            setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) 
            setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "forcedtoexist", true ) end end, 1000, 1, zomb ) 
            setTimer ( function (zomb) if ( isElement ( zomb ) ) then table.insert( everyZombie, zomb ) end end, 1000, 1, zomb ) 
            triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) 
            return zomb --returns the zombie element 
        else 
            return false --returns false if there was a problem 
        end 
    else 
        return false --returns false if there was a problem 
    end 
end 
  
--check if a ped is a zombie or not 
function isPedZombie(ped) 
    if (isElement(ped)) then 
        if (getElementData (ped, "zombie") == true) then 
            return true 
        else 
            return false 
        end 
    else 
        return false 
    end 
end 
  
addEvent( "onZombieLostPlayer", true ) 
function ZombieTargetCoords ( x,y,z ) 
    setElementData ( source, "Tx", x, false ) 
    setElementData ( source, "Ty", y, false ) 
    setElementData ( source, "Tz", z, false ) 
end 
addEventHandler( "onZombieLostPlayer", getRootElement(), ZombieTargetCoords ) 

Link to comment

Try this:

function createZombie ( x, y, z, rot, skin, interior, dimension ) 
        if (table.getn( everyZombie ) < newZombieLimit ) then 
        --this part handles the args 
            if not x then return false end 
            if not y then return false end 
            if not z then return false end 
        if z <= 0 then return false end 
            if not rot then 
                rot = math.random (1,359) 
            end 
            if not skin then 
                randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) )          
                skin = ZombiePedSkins[randomZskin] 
            end 
            if not interior then interior = 0 end 
            if not dimension then dimension = 0 end 
        --this part spawns the ped 
            local zomb = createPed (tonumber(skin),tonumber(x),tonumber(y),tonumber(z))--spawns the ped 
        --if successful, this part applies the zombie settings/args 
            if (zomb ~= false) then 
                setTimer ( setElementInterior, 100, 1, zomb, tonumber(interior)) --sets interior 
                setTimer ( setElementDimension, 100, 1, zomb, tonumber(dimension)) --sets dimension 
                setElementData ( zomb, "zombie", true  ) 
                setElementData ( zomb, "forcedtoexist", true  ) 
                setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "forcedtoexist", true ) end end, 1000, 1, zomb ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then table.insert( everyZombie, zomb ) end end, 1000, 1, zomb ) 
                triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) 
                return zomb --returns the zombie element 
            else 
                return false --returns false if there was a problem 
            end 
        else 
            return false --returns false if there was a problem 
        end 
    end 
      
    --check if a ped is a zombie or not 
    function isPedZombie(ped) 
        if (isElement(ped)) then 
            if (getElementData (ped, "zombie") == true) then 
                return true 
            else 
                return false 
            end 
        else 
            return false 
        end 
    end 
      
    addEvent( "onZombieLostPlayer", true ) 
    function ZombieTargetCoords ( x,y,z ) 
        setElementData ( source, "Tx", x, false ) 
        setElementData ( source, "Ty", y, false ) 
        setElementData ( source, "Tz", z, false ) 
    end 
    addEventHandler( "onZombieLostPlayer", getRootElement(), ZombieTargetCoords ) 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...