Jump to content

[HELP] Setting a resource to a different dimention


P4RK0UR

Recommended Posts

Sorry about this but i want to load a resource in a different dimension, say dimension 2 and resource is zombies.

setElementDimension 
getElementDimension 

How would i use this to put resource zombies in dimension 2 so when people go to dimension 2 they get attacked by zombies?

thank you for your time

Link to comment
ZombieLimit =("zombiegamemode.MaxZombies")-- HOW MANY ZOMBIES SHOULD EXIST AT MAXIMUM? 
ZombieStreaming = get("zombiegamemode.StreamMethod") -- 1 to constantly stream zombies, 0 to only allow zombies to spawn via createZombie function, 2 to only allow spawning at set spawnpoints
ZombiePedSkins = {13,22,56,67,68,69,70,92,97,105,107,108,126,127,128,152,162,167,188,195,206,209,212,229,230,258,264,277,280, } --ALTERNATE SKIN LISTS FOR ZOMBIES (SHORTER LIST IS TEXTURED ZOMBIES ONLY)
--ZombiePedSkins = {7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,44,45,36,37,38,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218,219,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,275,276,277,278,279,280,281,282,283,284,285,286,288 }
ZombieSpeed = get("zombies.Speed")
if ZombieSpeed == 0 then --super slow zombies (goofy looking)
    chaseanim = "WALK_drunk"
    checkspeed = 2000
elseif ZombieSpeed == 1 then -- normal speed
    chaseanim = "run_old"
    checkspeed = 1000
elseif ZombieSpeed == 2 then -- rocket zombies (possibly stressful on server)
    chaseanim = "Run_Wuzi"
    checkspeed = 680
else -- defaults back to normal
    chaseanim = "run_old"
    checkspeed = 1000
end
resourceRoot = getResourceRootElement()
moancount =0
moanlimit = 10
everyZombie = { }
 
-- ZOMBIE PROTECTION ADDED BY STRYP
setElementData (createRadarArea(2418.4255371094, -1735,121.6306152344,100,0,150,0,153),"zombieProof",true)
addEventHandler("onColShapeHit", createColRectangle (2418.4255371094, -1735,121.6306152344,100), function(h)if not isElement(h) then return end if getElementData(h,"zombie") then killPed(h) end end)
 
-- CJ GARAGE ADDED BY STRYP
local cjGarage = createColRectangle(2502.7883300781, -1698.60546875,5.8679199219,16.1025390625)
addEventHandler("onColShapeHit",cjGarage,function(h) if getElementType(h) == "player" then setGarageOpen(9,true) local tpi = getElementData(cjGarage,"tpi") or 0 setElementData(cjGarage,"tpi",tpi+1,false) end end)
addEventHandler("onColShapeLeave",cjGarage,function(h) if getElementType(h) == "player" then local tpi = getElementData(cjGarage,"tpi") or 0 if not tpi or tpi <= 1 then setGarageOpen(9,false)end setElementData(cjGarage,"tpi",tpi-1,false) end end)
 
--IDLE BEHAVIOUR OF A ZOMBIE
function Zomb_Idle (ped)
    if isElement(ped) then
        if ( getElementData ( ped, "status" ) == "idle" ) and ( isPedDead ( ped ) == false ) and (getElementData (ped, "zombie") == true) then
            local action = math.random( 1, 6 )
            if action < 4 then -- walk a random direction
                local rdmangle = math.random( 1, 359 )
                setPedRotation( ped, rdmangle )
                setPedAnimation ( ped, "PED", "Player_Sneak", -1, true, true, true)
                setTimer ( Zomb_Idle, 7000, 1, ped )
            elseif action == 4 then -- get on the ground
                setPedAnimation ( ped, "MEDIC", "cpr", -1, false, true, true)
                setTimer ( Zomb_Idle, 4000, 1, ped )
            elseif action == 5 then -- stand still doing nothing
                setPedAnimation ( ped )
                setTimer ( Zomb_Idle, 4000, 1, ped )
            end
        end
    end
end
 
--BEHAVIOUR WHILE CHASING PLAYERS
function Zomb_chase (ped, Zx, Zy, Zz )
    if isElement(ped) then
        if (getElementData ( ped, "status" ) == "chasing") and (getElementData (ped, "zombie") == true) then
            local x, y, z = getElementPosition( ped )
            if (getElementData ( ped, "target" ) == nil) and getElementData ( ped, "Tx" ) ~= false then        
                local Px = getElementData ( ped, "Tx" )
                local Py = getElementData ( ped, "Ty" )
                local Pz = getElementData ( ped, "Tz" )
                local Pdistance = (getDistanceBetweenPoints3D( Px, Py, Pz, x, y, z ))
                if (Pdistance < 1.5 ) then
                    setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 2000, 1, ped )
                end
            end
            local distance = (getDistanceBetweenPoints3D( x, y, z, Zx, Zy, Zz ))           
            if (distance < 1 ) then -- IF THE PED HASNT MOVED
                if (getElementData ( ped, "target" ) == nil) then
                    local giveup = math.random( 1, 15 )
                    if giveup == 1 then
                        setElementData ( ped, "status", "idle" )
                    else
                        local action = math.random( 1, 2 )
                        if action == 1 then
                            setPedAnimation ( ped )
                            triggerClientEvent ( "Zomb_Punch", getRootElement(), ped )
                            setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped )
                            setTimer ( Zomb_chase, 2000, 1, ped, x, y, z )
                        elseif action == 2 then
                            setPedAnimation ( ped )
                            triggerClientEvent ( "Zomb_Jump", getRootElement(), ped )
                            setTimer ( Zomb_chase, 3500, 1, ped, x, y, z )
                        end
                    end
                else
                    local Ptarget = (getElementData ( ped, "target" ))
                    if isElement(Ptarget) then
                        local Px, Py, Pz = getElementPosition( Ptarget )
                        local Pdistance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz ))
                        if (Pdistance < 1.2 ) then -- ATTACK A PLAYER IF THEY ARE CLOSE
                            if ( isPedDead ( Ptarget ) ) then --EAT A DEAD PLAYER
                                setPedAnimation ( ped )
                                setPedAnimation ( ped, "MEDIC", "cpr", -1, false, true, false)
                                setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 10000, 1, ped )
                                setTimer ( function (ped) if ( isElement ( ped ) ) then setPedRotation ( ped, getPedRotation(ped)-180) end end, 10000, 1, ped )
                                zmoan(ped)
                            else
                                local action = math.random( 1, 6 )
                                if action == 1 then
                                    setPedAnimation ( ped)
                                    triggerClientEvent ( "Zomb_Jump", getRootElement(), ped )
                                    setTimer ( Zomb_chase, 2000, 1, ped, x, y, z )
                                else
                                    setPedAnimation ( ped)
                                    triggerClientEvent ( "Zomb_Punch", getRootElement(), ped )
                                    setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped )
                                    setTimer ( Zomb_chase, 2000, 1, ped, x, y, z )
                                end
                            end
                        else
                            if ( isPedDead (Ptarget) ) then
                            setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 2000, 1, ped )
                            setTimer ( function (ped) if ( isElement ( ped ) ) then setPedRotation ( ped, getPedRotation(ped)-180) end end, 1800, 1, ped )
                            else
                                local action = math.random( 1, 2 )
                                if action == 1 then
                                    setPedAnimation ( ped)
                                    triggerClientEvent ( "Zomb_Punch", getRootElement(), ped )
                                    setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped )
                                    setTimer ( Zomb_chase, 2000, 1, ped, x, y, z )
                                elseif action == 2 then
                                    setPedAnimation ( ped)
                                    triggerClientEvent ( "Zomb_Jump", getRootElement(), ped )
                                    setTimer ( Zomb_chase, 2000, 1, ped, x, y, z )
                                end
                            end
                        end
                    else
                        setElementData ( ped, "status", "idle" )
                    end
                end
            else
                setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true) --KEEP WALKING
                setTimer ( Zomb_chase, checkspeed, 1, ped, x, y, z ) --CHECK AGAIN
            end
        end
    end
end
 
--SET THE DIRECTION OF THE ZOMBIE
function setangle ()
    for theKey,ped in ipairs(everyZombie) do
        if isElement(ped) then
            if ( getElementData ( ped, "status" ) == "chasing" ) then
                local x
                local y
                local z
                local px
                local py
                local pz
                if ( getElementData ( ped, "target" ) ~= nil ) then
                    local ptarget = getElementData ( ped, "target" )
                    if isElement(ptarget) then
                        x, y, z = getElementPosition( ptarget )
                        px, py, pz = getElementPosition( ped )
                    else
                        setElementData ( ped, "status", "idle" )
                        x, y, z = getElementPosition( ped )
                        px, py, pz = getElementPosition( ped )
                    end
                    zombangle = ( 360 - math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) ) % 360 --MAGIC SPELL TO MAKE PEDS LOOK AT YOU
                    setPedRotation( ped, zombangle )
                elseif ( getElementData ( ped, "target" ) == nil ) and (getElementData ( ped, "Tx" ) ~= false) then --IF THE PED IS AFTER THE PLAYERS LAST KNOWN WHEREABOUTS
                    x = getElementData ( ped, "Tx" )
                    y = getElementData ( ped, "Ty" )
                    z = getElementData ( ped, "Tz" )
                    px, py, pz = getElementPosition( ped )
                    zombangle = ( 360 - math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) ) % 360 --MAGIC SPELL TO MAKE PEDS LOOK AT YOU
                    setPedRotation( ped, zombangle )
                end
            end
        end
    end
end
 
--SETS THE ZOMBIE ACTIVITY WHEN STATUS CHANGES
addEventHandler ( "onElementDataChange", getRootElement(),
function ( dataName )
    if getElementType ( source ) == "ped" and dataName == "status" then
        if (getElementData (source, "zombie") == true) then
            if ( isPedDead ( source ) == false ) then
                if (getElementData ( source, "status" ) ==  "chasing" ) then
                    local Zx, Zy, Zz = getElementPosition( source )
                    setTimer ( Zomb_chase, 1000, 1, source, Zx, Zy, Zz )
                    local newtarget = (getElementData ( source, "target" ))
                    if isElement (newtarget) then
                        if getElementType ( newtarget ) == "player" then
                            setElementSyncer ( source, newtarget )
                        end
                    end
                    zmoan(source)
                elseif (getElementData ( source, "status" ) ==  "idle" ) then
                    setTimer ( Zomb_Idle, 1000, 1, source)
                elseif (getElementData ( source, "status" ) ==  "throatslashing" ) then
                    local tx,ty,tz = getElementPosition( source )
                    local ptarget = getElementData ( source, "target" )
                    if isElement(ptarget) then
                        local vx,vy,vz = getElementPosition( ptarget )
                        local zombdistance = (getDistanceBetweenPoints3D (tx, ty, tz, vx, vy, vz))
                        if (zombdistance < .-- s8) --> then
                            zmoan(source)
                            setPedAnimation ( source, "knife", "KILL_Knife_Player", -1, false, false, true)
                            setPedAnimation ( ptarget, "knife", "KILL_Knife_Ped_Damage", -1, false, false, true)
                            setTimer ( Playerthroatbitten, 2300, 1, ptarget, source)
                            setTimer ( function (source) if ( isElement ( source ) ) then setElementData ( source, "status", "idle" ) end end, 5000, 1, source )
                        else
                            setElementData ( source, "status", "idle" )
                        end
                    else
                        setElementData ( source, "status", "idle" )
                    end
                end
            elseif (getElementData ( source, "status" ) ==  "dead" ) then
                setTimer ( Zomb_delete, 10000, 1, source)
            end
        end
    end
end)
 
--RESOURCE START/INITIAL SETUP
function outbreak(startedResource)
    newZombieLimit = get("" .. getResourceName(startedResource) .. ".Zlimit")
    if newZombieLimit ~= false then
        if newZombieLimit > ZombieLimit then
            newZombieLimit = ZombieLimit
        end
    else
        newZombieLimit = ZombieLimit
    end
    WoodTimer = setTimer ( WoodSetup, 2000, 1) -- CHECKS FOR BARRIERS
    if startedResource == getThisResource() then
    exports.scoreboard:scoreboardAddColumn("Zombie kills")
    exports.scoreboard:scoreboardAddColumn("Level",getRootElement(),80)
        local allplayers = getElementsByType ( "player" )
        for pKey,thep in ipairs(allplayers) do
            setElementData ( thep, "dangercount", 0 )
        end 
        local alivePlayers = getAlivePlayers ()
        for playerKey, playerValue in ipairs(alivePlayers) do
            setElementData ( playerValue, "alreadyspawned", true  )
        end
        if ZombieSpeed == 2 then
            MainTimer1 = setTimer ( setangle, 200, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION (fast)
        else
            MainTimer1 = setTimer ( setangle, 400, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION
        end
        MainTimer3 = setTimer ( clearFarZombies, 3000, 0) --KEEPS ALL THE ZOMBIES CLOSE TO PLAYERS 
        if ZombieStreaming == 1 then
            MainTimer2 =
Link to comment
  • Moderators
You must modify resource and add setElementDimension(zombie, dimensio)

where do i do this? don't i just make a new lua and do this?

It's easier to edit the source code of the zombie mod and use set/getElementDimension functions to make the zombies visible in a specific dimension, only targeting players that are in the same dimension. The zombies sounds have to be played only for the players that are in the same dimension too etc.

Link to comment
--SPAWN ZOMBIE (now can be cancelled!) 
  
addEvent( "onZombieSpawn", true ) 
function RanSpawn_Z ( gx, gy, gz, rot) 
    local safezone = 0 
    local allradars = getElementsByType("radararea") 
    for theKey,theradar in ipairs(allradars) do 
        if getElementData(theradar, "zombieProof") == true then 
            if isInsideRadarArea ( theradar, gx, gy ) then 
                safezone = 1 
            end 
        end 
    end 
    if safezone == 0 then 
        if table.getn ( everyZombie ) < newZombieLimit then 
            if not rot then 
                rot = math.random (1,359) 
            end 
            randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) )          
            local zomb = createPed( tonumber( ZombiePedSkins[randomZskin] ), gx, gy, gz ) 
            if zomb ~= false then 
                setElementData ( zomb, "zombie", true  ) 
                table.insert( everyZombie, zomb )    
                setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setPedAnimation ( zomb, "ped", chaseanim, -1, true, true, true ) end end, 1000, 1, zomb ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) 
                triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) 
            end 
        end 
    end 
end 
addEventHandler( "onZombieSpawn", getRootElement(), RanSpawn_Z ) 
  
  
--SPAWNS ZOMBIES RANDOMLY NEAR PLAYERS 
function SpawnZombie () 
    local pacecount = 0 
    while pacecount < 5 do  --4 ZOMBIES AT A TIME TO PREVENT FPS DROP 
        if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 1) then  
            local xcoord = 0 
            local ycoord = 0 
            local xdirection = math.random(1,2) 
            if xdirection == 1 then 
                xcoord = math.random(15,40) 
            else 
                xcoord = math.random(-40,-15) 
            end 
            local ydirection = math.random(1,2) 
            if ydirection == 1 then 
                ycoord = math.random(15,40) 
            else 
                ycoord = math.random(-40,-15) 
            end 
            local liveplayers = getAlivePlayers () 
            if (table.getn( liveplayers ) > 0 ) then 
                local lowestcount = 99999 
                local lowestguy = nil 
                for PKey,thePlayer in ipairs(liveplayers) do 
                    if isElement(thePlayer) then 
                        if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) and (getElementData(thePlayer, "alreadyspawned" ) == true) then 
                            if (getElementData (thePlayer, "dangercount") < lowestcount) then 
                                local safezone = 0 
                                local gx, gy, gz = getElementPosition( thePlayer ) 
                                local allradars = getElementsByType("radararea") 
                                for theKey,theradar in ipairs(allradars) do 
                                    if getElementData(theradar, "zombieProof") == true then 
                                        if isInsideRadarArea ( theradar, gx, gy ) then 
                                            safezone = 1 
                                        end 
                                    end 
                                end 
                                if safezone == 0 then 
                                    lowestguy = thePlayer 
                                    lowestcount = getElementData (thePlayer, "dangercount") 
                                end 
                            end 
                        end 
                    end 
                end 
                pacecount = pacecount+1 
                if isElement(lowestguy) then 
                    triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) 
                else 
                    pacecount = pacecount+1 
                end 
            else 
                pacecount = pacecount+1 
            end 
        else 
            pacecount = pacecount+1 
        end 
    end 
end 
  
--SPAWNS ZOMBIES IN SPAWNPOINTS NEAR PLAYERS 
function SpawnpointZombie () 
    local pacecount = 0 
    while pacecount < 6 do  --5 ZOMBIES AT A TIME TO PREVENT FPS DROP 
        if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 2) then  
            local liveplayers = getAlivePlayers () 
            if (table.getn( liveplayers ) > 0 ) then 
                local lowestcount = 99999 
                local lowestguy = nil 
                for PKey,thePlayer in ipairs(liveplayers) do --THIS PART GETS THE PLAYER WITH THE LEAST ZOMBIES ATTACKING 
                    if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) then 
                        if (getElementData (thePlayer, "dangercount") < lowestcount) then 
                            lowestguy = thePlayer 
                            lowestcount = getElementData (thePlayer, "dangercount") 
                        end 
                    end 
                end 
                if isElement(lowestguy) then 
                    local zombiespawns = { } 
                    local possiblezombies = getElementsByType ( "Zombie_spawn" ) 
                    local Px, Py, Pz = getElementPosition( lowestguy ) 
                    for ZombKey,theZomb in ipairs(possiblezombies) do 
                        local Zx, Zy, Zz = getElementPosition( theZomb ) 
                        local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                        if (distance < -- s8) --> then 
                            table.remove( possiblezombies, ZombKey) --IF SPAWN IS TOO CLOSE TO ANY PLAYER 
                        end 
                    end 
                    local Px, Py, Pz = getElementPosition( lowestguy ) 
                    for ZombKey2,theZomb2 in ipairs(possiblezombies) do 
                        local Zx, Zy, Zz = getElementPosition( theZomb2 ) 
                        local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                        if (distance < 60) then --AS LONG AS THE SPAWN IS CLOSE ENOUGH TO A PLAYER 
                            table.insert( zombiespawns, theZomb2 ) 
                        end 
                    end 
                    if (table.getn( zombiespawns ) >0 ) then--IF THE LOWEST PLAYER HAS ANY CLOSE SPAWNS,USE ONE 
                        local random = math.random ( 1, table.getn ( zombiespawns ) ) 
                        local posX = getElementData(zombiespawns[random], "posX") 
                        local posY = getElementData(zombiespawns[random], "posY") 
                        local posZ = getElementData(zombiespawns[random], "posZ") 
                        local rot = getElementData(zombiespawns[random], "rotZ") 
                        pacecount = pacecount+1 
                        triggerEvent ( "onZombieSpawn",zombiespawns[random], posX, posY, posZ, rot )            
                    else--IF THE LOWEST PLAYERS DOESNT HAVE ANY SPAWNS, THEN SEE IF ANYONE HAS ANY 
                        local zombiespawns = { } 
                        local possiblezombies = getElementsByType ( "Zombie_spawn" ) 
                        local allplayers = getAlivePlayers () 
                        for theKey,thePlayer in ipairs(allplayers) do 
                            local Px, Py, Pz = getElementPosition( thePlayer ) 
                            for ZombKey,theZomb in ipairs(possiblezombies) do 
                                local Zx, Zy, Zz = getElementPosition( theZomb ) 
                                local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                                if (distance < -- s8) --> then 
                                    table.remove( possiblezombies, ZombKey) --IF SPAWN IS TOO CLOSE TO ANY PLAYER 
                                end 
                            end 
                        end 
                        for theKey,thePlayer in ipairs(allplayers) do 
                            local Px, Py, Pz = getElementPosition( thePlayer ) 
                            for ZombKey2,theZomb2 in ipairs(possiblezombies) do 
                                local Zx, Zy, Zz = getElementPosition( theZomb2 ) 
                                local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                                if (distance < 60) then --AS LONG AS THE SPAWN IS CLOSE ENOUGH TO A PLAYER 
                                    table.insert( zombiespawns, theZomb2 ) 
                                end 
                            end 
                        end 
                        if (table.getn( zombiespawns ) >1 ) then 
                            local random = math.random ( 1, table.getn ( zombiespawns ) ) 
                            local posX = getElementData(zombiespawns[random], "posX") 
                            local posY = getElementData(zombiespawns[random], "posY") 
                            local posZ = getElementData(zombiespawns[random], "posZ") 
                            local rot = getElementData(zombiespawns[random], "rotZ") 
                            pacecount = pacecount+1 
                            triggerEvent ( "onZombieSpawn",zombiespawns[random], posX, posY, posZ, rot )            
                        else 
                            pacecount = pacecount+1 
                        end 
                    end 
                else 
                    pacecount = pacecount+1 
                end 
            else 
                pacecount = pacecount+1 
            end 
        else 
            pacecount = pacecount+1 
        end 
    end 
end 

Well this is the code broken down to just the spawn parts so it should be easier now

Link to comment
  • Moderators
it should be easier now

Yeah, then why not trying yourself ? :)

We will be there if you are getting stuck. It's better to help someone trying to fix his problems than someone asking for others to do it for him.

Link to comment
addEvent( "onZombieSpawn", true ) 
function ( "onZombieSpawn" ) if ( getElementDimension ( source ) == 0 then 
setElementDimension ( source, 2 ) 
end 
function RanSpawn_Z ( gx, gy, gz, rot) 
    local safezone = 0 
    local allradars = getElementsByType("radararea") 
    for theKey,theradar in ipairs(allradars) do 
        if getElementData(theradar, "zombieProof") == true then 
            if isInsideRadarArea ( theradar, gx, gy ) then 
                safezone = 1 
            end 
        end 
    end 
    if safezone == 0 then 
        if table.getn ( everyZombie ) < newZombieLimit then 
            if not rot then 
                rot = math.random (1,359) 
            end 
            randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) )           
            local zomb = createPed( tonumber( ZombiePedSkins[randomZskin] ), gx, gy, gz ) 
            if zomb ~= false then 
                setElementData ( zomb, "zombie", true  ) 
                table.insert( everyZombie, zomb )    
                setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setPedAnimation ( zomb, "ped", chaseanim, -1, true, true, true ) end end, 1000, 1, zomb ) 
                setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) 
                triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) 
            end 
        end 
    end 
end 
addEventHandler( "onZombieSpawn", getRootElement(), RanSpawn_Z ) 
  
  
--SPAWNS ZOMBIES RANDOMLY NEAR PLAYERS 
function SpawnZombie if  getElementDimension ( source ) == 0 then 
setElementDimension ( source, 2 ) 
end 
    local pacecount = 0 
    while pacecount < 5 do  --4 ZOMBIES AT A TIME TO PREVENT FPS DROP 
        if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 1) then   
            local xcoord = 0 
            local ycoord = 0 
            local xdirection = math.random(1,2) 
            if xdirection == 1 then 
                xcoord = math.random(15,40) 
            else 
                xcoord = math.random(-40,-15) 
            end 
            local ydirection = math.random(1,2) 
            if ydirection == 1 then 
                ycoord = math.random(15,40) 
            else 
                ycoord = math.random(-40,-15) 
            end 
            local liveplayers = getAlivePlayers () 
            if (table.getn( liveplayers ) > 0 ) then 
                local lowestcount = 99999 
                local lowestguy = nil 
                for PKey,thePlayer in ipairs(liveplayers) do 
                    if isElement(thePlayer) then 
                        if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) and (getElementData(thePlayer, "alreadyspawned" ) == true) then 
                            if (getElementData (thePlayer, "dangercount") < lowestcount) then 
                                local safezone = 0 
                                local gx, gy, gz = getElementPosition( thePlayer ) 
                                local allradars = getElementsByType("radararea") 
                                for theKey,theradar in ipairs(allradars) do 
                                    if getElementData(theradar, "zombieProof") == true then 
                                        if isInsideRadarArea ( theradar, gx, gy ) then 
                                            safezone = 1 
                                        end 
                                    end 
                                end 
                                if safezone == 0 then 
                                    lowestguy = thePlayer 
                                    lowestcount = getElementData (thePlayer, "dangercount") 
                                end 
                            end 
                        end 
                    end 
                end 
                pacecount = pacecount+1 
                if isElement(lowestguy) then 
                    triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) 
                else 
                    pacecount = pacecount+1 
                end 
            else 
                pacecount = pacecount+1 
            end 
        else 
            pacecount = pacecount+1 
        end 
    end 
end 
  
--SPAWNS ZOMBIES IN SPAWNPOINTS NEAR PLAYERS 
function SpawnpointZombie  if  getElementDimension ( source ) == 0 then 
setElementDimension ( source, 2 ) 
end 
    local pacecount = 0 
    while pacecount < 6 do  --5 ZOMBIES AT A TIME TO PREVENT FPS DROP 
        if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 2) then   
            local liveplayers = getAlivePlayers () 
            if (table.getn( liveplayers ) > 0 ) then 
                local lowestcount = 99999 
                local lowestguy = nil 
                for PKey,thePlayer in ipairs(liveplayers) do --THIS PART GETS THE PLAYER WITH THE LEAST ZOMBIES ATTACKING 
                    if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) then 
                        if (getElementData (thePlayer, "dangercount") < lowestcount) then 
                            lowestguy = thePlayer 
                            lowestcount = getElementData (thePlayer, "dangercount") 
                        end 
                    end 
                end 
                if isElement(lowestguy) then 
                    local zombiespawns = { } 
                    local possiblezombies = getElementsByType ( "Zombie_spawn" ) 
                    local Px, Py, Pz = getElementPosition( lowestguy ) 
                    for ZombKey,theZomb in ipairs(possiblezombies) do 
                        local Zx, Zy, Zz = getElementPosition( theZomb ) 
                        local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                        if (distance < -- s8) --> then 
                            table.remove( possiblezombies, ZombKey) --IF SPAWN IS TOO CLOSE TO ANY PLAYER 
                        end 
                    end 
                    local Px, Py, Pz = getElementPosition( lowestguy ) 
                    for ZombKey2,theZomb2 in ipairs(possiblezombies) do 
                        local Zx, Zy, Zz = getElementPosition( theZomb2 ) 
                        local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) 
                        if (distance < 60) then --AS LONG AS THE SPAWN IS CLOSE ENOUGH TO A PLAYER 
                            table.insert( zombiespawns, theZomb2 ) 
                        end 
                    end 
                    if (table.getn( zombiespawns ) >0 ) then--IF THE LOWEST PLAYER HAS ANY CLOSE SPAWNS,USE ONE 
                        local random = math.random ( 1, table.getn ( zombiespawns ) ) 
                        local posX = getElementData(zombiespawns[random], "posX")  
                        local posY = getElementData(zombiespawns[random], "posY")  
                        local posZ = getElementData(zombiespawns[random], "posZ") 
                        local rot = getElementData(zombiespawns[random], "rotZ") 
                        pacecount = pacecount+1 
                        triggerEvent ( "onZombieSpawn",zombiespawns[random], posX, posY, posZ, rot )             

I tried editing all parts like that, but the thing is i don't know what the function is? i try function (onzombiespawn) to set the dimension to 2, I'm all muddled up. if i had more experience i would understand better. that's as far as i got, at least the game can run this script but the zombies don't appear. so this at least means that i am affecting the zombies in some way :) now i just cant figure out how to get them to the second dimension.

Link to comment

i think i know which resource did you really use, this resource contain an Editor addon, so you can open editor then press on definitions and go to another Dimension and scroll in that object place and press on Zombie Spawnpoint, if you're using the resource i think you're using, this must work

Link to comment
i think i know which resource did you really use, this resource contain an Editor addon, so you can open editor then press on definitions and go to another Dimension and scroll in that object place and press on Zombie Spawnpoint, if you're using the resource i think you're using, this must work

yes you're right about using another resourse, it is the zombiegamemode resourse.

i just want to edit it to change it to my liking.

here is the link.

https://community.multitheftauto.com/in ... ls&id=2405

is this the one you were thinking of?

Link to comment
i think i know which resource did you really use, this resource contain an Editor addon, so you can open editor then press on definitions and go to another Dimension and scroll in that object place and press on Zombie Spawnpoint, if you're using the resource i think you're using, this must work

yes you're right about using another resourse, it is the zombiegamemode resourse.

i just want to edit it to change it to my liking.

here is the link.

https://community.multitheftauto.com/in ... ls&id=2405

is this the one you were thinking of?

hmm, no not this one.

but i think even this one would give this feature

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...