• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Looking for help with tfs 0.3 Zombie event

hungthug

New Member
Joined
Oct 28, 2013
Messages
15
Reaction score
0
I have no errors, And everything works. But when you enter the portal, It does not close.. nor does it start the event. how can i fix this issue? thanks.
 
HTML:
--CONFIG
ZE_DEFAULT_NUMBER_OF_PLAYERS = 10
ZE_ACCESS_TO_IGNORE_ARENA = 8
-- POSITIONS
ZE_blockEnterItemPosition = {x= 990, y=990, z=4}
ZE_enterPosition = {x = 1114, y = 1229, z = 7}
ZE_kickPosition = {x=1000, y=1000, z=7}
ZE_spawnFromPosition = {x = 1097, y = 1187, z = 7}
ZE_spawnToPosition = {x = 1131, y = 1232, z = 7}
-- ITEM IDS
ZE_blockEnterItemID = 387
-- STORAGES
-- - player
ZE_isOnZombieArea = 34370
-- - global
ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running
ZE_PLAYERS_NUMBER = 34371
ZE_ZOMBIES_TO_SPAWN = 34372
ZE_ZOMBIES_SPAWNED = 34373
-- FUNCTION
function setZombiesEventPlayersLimit(value)
doSetStorage(ZE_PLAYERS_NUMBER, value)
end
function getZombiesEventPlayersLimit()
return getStorage(ZE_PLAYERS_NUMBER)
end
function addPlayerToZombiesArea(cid)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
doTeleportThing(cid, ZE_enterPosition, true)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then
  setPlayerZombiesEventStatus(cid, os.time())
end
end
function kickPlayerFromZombiesArea(cid)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
doTeleportThing(cid, ZE_kickPosition, true)
doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT)
setPlayerZombiesEventStatus(cid, 0)
end
function getPlayerZombiesEventStatus(cid)
return getCreatureStorage(cid, ZE_isOnZombieArea)
end
function setPlayerZombiesEventStatus(cid, value)
doCreatureSetStorage(cid, ZE_isOnZombieArea, value)
end
function getZombiesEventPlayers()
local players = {}
for i, cid in pairs(getPlayersOnline()) do
  if(getPlayerZombiesEventStatus(cid) > 0) then
  table.insert(players, cid)
  end
end
return players
end
function getZombiesCount()
return getStorage(ZE_ZOMBIES_SPAWNED)
end
function addZombiesCount()
doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1)
end
function resetZombiesCount()
doSetStorage(ZE_ZOMBIES_SPAWNED, 0)
end
function getZombiesToSpawnCount()
return getStorage(ZE_ZOMBIES_TO_SPAWN)
end
function setZombiesToSpawnCount(count)
doSetStorage(ZE_ZOMBIES_TO_SPAWN, count)
end
function addZombiesEventBlockEnterPosition()
if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then
  doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition)
end
end
function removeZombiesEventBlockEnterPosition()
local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID)
if(item.uid ~= 0) then
  doRemoveItem(item.uid)
end
end
function spawnNewZombie()
local posx = {}
local posy = {}
local posz = {}
local pir = {}
for i=1, 5 do
  local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x)
  local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y)
  local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z)
  local pir_tmp = 0
  local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false)
  if(spec and #spec > 0) then
  for z, pid in pairs(spec) do
    if(isPlayer(pid)) then
    pir_tmp = pir_tmp + 1
    end
  end
  end
  posx[i] = posx_tmp
  posy[i] = posy_tmp
  posz[i] = posz_tmp
  pir[i] = pir_tmp
end
local lowest_i = 1
for i=2, 5 do
  if(pir[i] < pir[lowest_i]) then
  lowest_i = i
  end
end
local ret = (type(doCreateMonster("Zombie Event", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false)) == 'number')
if(ret) then
  addZombiesCount()
end
return ret
end
 
bump. It really can't Be that hard. It works fine in another 8.6 distro. I have applied everything needed for it to run on mine, It's Something to do with the script above.
 
Back
Top