Anthrax Posted June 11, 2014 Share Posted June 11, 2014 Hi all, I need help for this resource. zombies spawn global, when one player join have 100 zombies(maxlimit), but the rest of players haven't zombies. I need that the zombies spawn per player ( 5 zombies per player), for example I join on my server and I have 5 zombies, after join other player and have 5 zombies too, in total have 10 zombies I know that this consume resource on my server plz help me here is the sources: zombie_client.lua http://pastebin.com/hy9Xiv59 zombie_server.lua http://pastebin.com/JYdRQ3rT I download from here: https://community.multitheftauto.com/in ... ils&id=347 Regards Link to comment
Anthrax Posted June 14, 2014 Author Share Posted June 14, 2014 Plz I need help here D: Link to comment
Price. Posted June 14, 2014 Share Posted June 14, 2014 if you did that then its going off limits example: you have 30 people, 30 x 5 = 150 so its goin offlimits Link to comment
Anthrax Posted June 14, 2014 Author Share Posted June 14, 2014 if you did that then its going off limits example: you have 30 people, 30 x 5 = 150 so its goin offlimits yes, I need going off limits (max players 32, 32 * 5 = 160 zombies) , but the most necessary is that each person have 5 zombies, how can I do that? Link to comment
Anthrax Posted July 16, 2014 Author Share Posted July 16, 2014 no, better 3 zombie per player, but how to make that??? help me Link to comment
manawydan Posted July 17, 2014 Share Posted July 17, 2014 just use createZombie function Link to comment
manawydan Posted July 17, 2014 Share Posted July 17, 2014 just one example: function test() local players = getElementsByType("player") for k,v in ipairs(players) do local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) createZombie ( x+math.sin(math.rad(-45))*(math.random(1,5)), y+math.cos(math.rad(-45))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) createZombie ( x+math.sin(math.rad(-90))*(math.random(1,5)), y+math.cos(math.rad(-90))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) createZombie ( x+math.sin(math.rad(-180))*(math.random(1,5)), y+math.cos(math.rad(-180))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) end end Link to comment
Anthrax Posted July 17, 2014 Author Share Posted July 17, 2014 just one example: function test() local players = getElementsByType("player") for k,v in ipairs(players) do local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) createZombie ( x+math.sin(math.rad(-45))*(math.random(1,5)), y+math.cos(math.rad(-45))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) createZombie ( x+math.sin(math.rad(-90))*(math.random(1,5)), y+math.cos(math.rad(-90))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) createZombie ( x+math.sin(math.rad(-180))*(math.random(1,5)), y+math.cos(math.rad(-180))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) end end I do it in two forms and not work: This way required the original "zombies" script from here https://community.multitheftauto.com/ind ... ls&id=8564 function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) ZOMBIES = exports.zombies:createZombie ( x+math.sin(math.rad(-45))*(math.random(1,5)), y+math.cos(math.rad(-45))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) ZOMBIES = exports.zombies:createZombie ( x+math.sin(math.rad(-90))*(math.random(1,5)), y+math.cos(math.rad(-90))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) ZOMBIES = exports.zombies:createZombie ( x+math.sin(math.rad(-180))*(math.random(1,5)), y+math.cos(math.rad(-180))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) end end This way I edited the line from the original script (zombie_server.lua) (lines 625 to 636) ZombieLimit = get("zombies.MaxZombies")-- HOW MANY ZOMBIES SHOULD EXIST AT MAXIMUM? ZombieStreaming = get("zombies.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,287 } --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,287,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 = { } --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 -- call(getResourceFromName("scoreboard"), "scoreboardAddColumn", "Zombie kills") --ADDS TO SCOREBOARD 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 = setTimer ( SpawnZombie, 2500, 0 ) --Spawns zombies in random locations elseif ZombieStreaming == 2 then MainTimer2 = setTimer ( SpawnpointZombie, 2500, 0 ) --spawns zombies in zombie spawnpoints end end end addEventHandler("onResourceStart", getRootElement(), outbreak) function player_Connect() setElementData ( source, "dangercount", 0 ) end Link to comment
Anthrax Posted July 18, 2014 Author Share Posted July 18, 2014 very thanks manawydan After multiple tries, I forget the resource zombies streammetod in 0 ._. and work fine!. I edit the script for spawn zombies but have the some issues 1° The zombies only spawn when only I start the resource ("onResourceStart"), if I leave and enter again never spawn.I know that I need change for "OnPlayerSpawn" but how to put it with a settimer?? 2° I put "onZombieWasted" for spawn after die, but when I kill one zombie appears 3 more and 3 more until to reach the limit of zombies (30 zombie for 1 player) I need only 3 zombies per player, no more. I use this function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) exports.zombies:createZombie ( x+math.sin(math.rad(-45))*(math.random(1,5)), y+math.cos(math.rad(-45))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) exports.zombies:createZombie ( x+math.sin(math.rad(-90))*(math.random(1,5)), y+math.cos(math.rad(-90))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) exports.zombies:createZombie ( x+math.sin(math.rad(-180))*(math.random(1,5)), y+math.cos(math.rad(-180))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) end end addEventHandler ( "onResourceStart", resourceRoot, zombiesperplayer ) addEvent("onZombieWasted",true) addEventHandler ("onZombieWasted",getRootElement(),zombiesperplayer) Please help me. Regards Link to comment
manawydan Posted July 18, 2014 Share Posted July 18, 2014 try no tested local players_zombies={} local zombiePerPlayer=3 function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do if not players_zombies[v]then players_zombies[v]={} end local number = #players_zombies[v] if(number>=3)then return end local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) local zp = zombiePerPlayer-number for i=0,zp do players_zombies[v][i] = exports.zombies:createZombie(x+math.sin(math.rad(-math.random(360)))*(math.random(1,5)), y+math.cos(math.rad(-math.random(360)))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) setElementData(players_zombies[v][i],"zombiePlayer",v) end end end addEventHandler ( "onResourceStart", resourceRoot, zombiesperplayer ) setTimer(zombiesperplayer,60000,0) addEventHandler("onPlayerSpawn",root, function() if not players_zombies[source]then players_zombies[source]={} end end) addEvent("onZombieWasted",true) addEventHandler ("onZombieWasted",root, function() local playerData = getElementData(source,"zombiePlayer") if(playerData)then local number = #players_zombies[playerData] if(number~=0)then table.remove(players_zombies[playerData],source) end end end) Link to comment
Anthrax Posted July 18, 2014 Author Share Posted July 18, 2014 try no tested local players_zombies={} local zombiePerPlayer=3 function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do if not players_zombies[v]then players_zombies[v]={} end local number = #players_zombies[v] if(number>=3)then return end local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) local zp = zombiePerPlayer-number for i=0,zp do players_zombies[v][i] = exports.zombies:createZombie(x+math.sin(math.rad(-math.random(360)))*(math.random(1,5)), y+math.cos(math.rad(-math.random(360)))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) setElementData(players_zombies[v][i],"zombiePlayer",v) end end end addEventHandler ( "onResourceStart", resourceRoot, zombiesperplayer ) setTimer(zombiesperplayer,60000,0) addEventHandler("onPlayerSpawn",root, function() if not players_zombies[source]then players_zombies[source]={} end end) addEvent("onZombieWasted",true) addEventHandler ("onZombieWasted",root, function() local playerData = getElementData(source,"zombiePlayer") if(playerData)then local number = #players_zombies[playerData] if(number~=0)then table.remove(players_zombies[playerData],source) end end end) ok I tested it, and have the issues 1° the zombies no respawn after dead ("Onzombiewaste" no work, WTF), spawns only once. 2° zombies appears in 1 second after spawn. I think that the zombies need appears 15 seconds after player spawn. I try edit the settimer to 15000 and not work 3° zombies can't respawn when a some player go other places, zombies stay in the same place where they spawned (need remove idle zombies) 4° appears 4 zombies (Isn't relevant) thanks manawydan regards Link to comment
manawydan Posted July 20, 2014 Share Posted July 20, 2014 sorry now work(i tested) local players_zombies={} local zombiePerPlayer=3 function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do if not players_zombies[v]then players_zombies[v]={} end local number = #players_zombies[v] if(number>=3)then return end local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) local zp = zombiePerPlayer-number for i=1,zp do zombie = exports.zombies:createZombie(x+math.sin(math.rad(-math.random(360)))*(math.random(1,5)), y+math.cos(math.rad(-math.random(360)))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) setElementData(zombie,"zombiePlayer",v) table.insert(players_zombies[v],zombie) end end end zombiesperplayer() setTimer(zombiesperplayer,15000,0) addEventHandler ("onPedWasted",root, function() local playerData = getElementData(source,"zombiePlayer") if(playerData)then local number = #players_zombies[playerData] if(number~=0)then table.remove(players_zombies[playerData],players_zombies[playerData][source]) end end end) Link to comment
Anthrax Posted July 21, 2014 Author Share Posted July 21, 2014 sorrynow work(i tested) local players_zombies={} local zombiePerPlayer=3 function zombiesperplayer() local players = getElementsByType("player") for k,v in ipairs(players) do if not players_zombies[v]then players_zombies[v]={} end local number = #players_zombies[v] if(number>=3)then return end local interior = getElementInterior(v) local dimension = getElementDimension(v) local x,y,z = getElementPosition(v) local zp = zombiePerPlayer-number for i=1,zp do zombie = exports.zombies:createZombie(x+math.sin(math.rad(-math.random(360)))*(math.random(1,5)), y+math.cos(math.rad(-math.random(360)))*(math.random(1,5)), z, math.random(360), nil, interior, dimension ) setElementData(zombie,"zombiePlayer",v) table.insert(players_zombies[v],zombie) end end end zombiesperplayer() setTimer(zombiesperplayer,15000,0) addEventHandler ("onPedWasted",root, function() local playerData = getElementData(source,"zombiePlayer") if(playerData)then local number = #players_zombies[playerData] if(number~=0)then table.remove(players_zombies[playerData],players_zombies[playerData][source]) end end end) WOW, almost everything is repaired by manawydan. Only missing the zombies will disappear when the player is very far of the zombies (zombie need respawn only close of the player),because the zombies only stay where spawned. I think that need destroyelemement but how do it that?. Too when the player leave of the server need remove the personal zombies This is the only thing that would fail to complete this post. Very thanks Manawydan you help me as much, I hope you help me with This Last. Link to comment
manawydan Posted July 21, 2014 Share Posted July 21, 2014 in quit you can do this function onQuit() if(players_zombies[source])then for k,v in ipairs(players_zombies[source])do if(isElement(v))then destroyElement(v) end end players_zombies[source]=nil print("Zombies : "..getPlayerName(source).." destroyed!") end end addEventHandler("onPlayerQuit",root,onQuit) Link to comment
Anthrax Posted July 21, 2014 Author Share Posted July 21, 2014 ok work, zombies are removed when the player quit of the server . but not work when the player is far on the zombies is the only thing missing and close the post, very thanks manawydan Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now