[MODS] - [8.6] Perfect Zombie System [Automático]

Crypter
em Mods, funções e outros

Crypter

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 24/02/17Posts: 368Gênero: Masculino

Abra a pasta Mods do seu servidor e crie um arquivo chamados : Zombie.xml

TFS 0.4

 

 

 

 


 
 

 

 

 

<?xml version="1.0" encoding="ISO-8859-1"?><mod name="Perfect Zombie System" version="8.6" author="Vodkart" contact="###.com" enabled="yes"><config name="zombie_config"><![CDATA[zombie_config = {    storages = {172100, 172101, 172102}, -- n edite    players = {min = 2, max = 30}, -- min, max players no evento    rewards = {items ={{2160,10},{2494,1}}, trophy = 5805},     timeToStartEvent = 30, -- segundos para começar o evento    CheckTime = 5, -- tempo que o TP fica aberto para os jogadores adrentarem o evento    teleport = {{x=147, y=55, z=7}, {x=125 , y=304, z=7}}, -- position do tp onde aparece, position para onde o jogador vai ao entrar no tp    arena = {{x=110,y=297,z=7},{x=145,y=321,z=7}}, -- area positions    monster_name = "Zombie Event",    timeBetweenSpawns = 20,    min_Level = 20}zombie_days = {    ["Monday"] = {"13:00","18:00","20:00","22:00"},    ["Tuesday"] = {"13:00","18:00","22:50","22:00"},    ["Wednesday"] = {"21:57","18:00","20:00","23:17"},    ["Thursday"] = {"13:00","18:00","20:00","22:00"},    ["Friday"] = {"13:00","18:00","21:45","22:00"},    ["Saturday"] = {"13:00","18:00","20:00","22:00"},    ["Sunday"] = {"13:00","18:00","20:00","22:00"}}function removeZombieTp()    local t = getTileItemById(zombie_config.teleport[1], 1387).uid    return t > 0 and doRemoveItem(t) and doSendMagicEffect(zombie_config.teleport[1], CONST_ME_POFF)endfunction ZerarStoragesZombie()    for _, stor in pairs(zombie_config.storages) do        setGlobalStorageValue(stor, 0)    endendfunction getPlayersInZombieEvent()    local t = {}    for _, pid in pairs(getPlayersOnline()) do        if isInRange(getPlayerPosition(pid), zombie_config.arena[1], zombie_config.arena[2]) and getPlayerAccess(pid) < 3 then             t[#t+1] = pid        end    end    return tendfunction getZombieRewards(cid, items)    local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID    for _, i_i in ipairs(items) do        local item, amount = i_i[1],i_i[2]        if isItemStackable(item) or amount == 1 then            doAddContainerItem(backpack, item, amount)        else            for i = 1, amount do                doAddContainerItem(backpack, item, 1)            end        end    endendfunction isWalkable(pos, creature, proj, pz)-- by Nord    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end    if getTopCreature(pos).uid > 0 and creature then return false end    if getTileInfo(pos).protection and pz then return false, true end    local n = not proj and 3 or 2    for i = 0, 255 do        pos.stackpos = i        local tile = getTileThingByPos(pos)        if tile.itemid ~= 0 and not isCreature(tile.uid) then            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then                return false            end        end    end    return trueendfunction HaveCreatureZombie(area, remove)    for x = area[1].x - 1, area[2].x + 1 do        for y = area[1].y - 1, area[2].y + 1 do            local pos = {x=x, y=y, z=area[1].z}            local m = getTopCreature(pos).uid            if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end        end    endendfunction spawnZombie()    if #getPlayersInZombieEvent() > 1 then        local pos = {x=math.random(zombie_config.arena[1].x, zombie_config.arena[2].x), y=math.random(zombie_config.arena[1].y,zombie_config.arena[2].y), z=zombie_config.arena[1].z}        if not isWalkable(pos, false, false, false) then             spawnZombie()         else            doCreateMonster(zombie_config.monster_name, pos, false, false, false)            doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)            addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)            addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)            doSendMagicEffect(pos, CONST_ME_MORTAREA)            setGlobalStorageValue(zombie_config.storages[2], getGlobalStorageValue(zombie_config.storages[2]) <= 0 and 1 or getGlobalStorageValue(zombie_config.storages[2])+1)            doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(zombie_config.storages[2]) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)            addEvent(spawnZombie, zombie_config.timeBetweenSpawns *1000)        end    endendfunction CheckZombieEvent(delay)    if getGlobalStorageValue(zombie_config.storages[1]) ~= (zombie_config.players.max+1) then        if delay > 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.max then            doBroadcastMessage("Zombie event starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)        elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.min then            for _, cid in pairs(getPlayersInZombieEvent()) do                doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))                doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)            end            removeZombieTp()            doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. zombie_config.players.min .. " players is needed!", MESSAGE_STATUS_WARNING)            ZerarStoragesZombie()        elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) >= zombie_config.players.min then            removeZombieTp()            doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1]) .. " players]! The event will soon start.")            for _, var in pairs(getPlayersInZombieEvent()) do                doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!")            end            addEvent(spawnZombie, zombie_config.timeToStartEvent*1000)        end        addEvent(CheckZombieEvent, 60000, delay-1)    endend]]></config><event type="statschange" name="ZombieStats" event="script"><![CDATA[domodlib('zombie_config')if isPlayer(cid) and isMonster(attacker) and getCreatureName(attacker) == zombie_config.monster_name then    if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then        if #getPlayersInZombieEvent() > 1 then            doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED)            local corpse = doCreateItem(getPlayerSex(cid) == 1 and 3058 or 6081, 1, getPlayerPosition(cid))            doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)            if #getPlayersInZombieEvent() == 1 then                local winner = getPlayersInZombieEvent()[1]                doBroadcastMessage(getCreatureName(winner)..' has survived at zombie event!')                local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1)                doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.")                getZombieRewards(winner, zombie_config.rewards.items)                doTeleportThing(winner, getTownTemplePosition(getPlayerTown(winner)), false)                doSendMagicEffect(getPlayerPosition(winner), CONST_ME_TELEPORT)                doBroadcastMessage(getPlayerName(winner).." won the Zombie event! Congratulations!")                HaveCreatureZombie(zombie_config.arena, true)                ZerarStoragesZombie()            end        else            doBroadcastMessage("No one survived in the Zombie Event.", MESSAGE_EVENT_ADVANCE)            HaveCreatureZombie(zombie_config.arena, true)            ZerarStoragesZombie()        end        return false    endendreturn true]]></event><globalevent name="Zombie_Start" interval="60000" event="script"><![CDATA[domodlib('zombie_config')function onThink(interval, lastExecution)    if zombie_days[os.date("%A")] then        local hrs = tostring(os.date("%X")):sub(1, 5)        if isInArray(zombie_days[os.date("%A")], hrs) and getGlobalStorageValue(zombie_config.storages[3]) <= 0 then            local tp = doCreateItem(1387, 1, zombie_config.teleport[1])            doItemSetAttribute(tp, "aid", 45110)            CheckZombieEvent(zombie_config.CheckTime)            setGlobalStorageValue(zombie_config.storages[1], 0)            setGlobalStorageValue(zombie_config.storages[2], 0)            HaveCreatureZombie(zombie_config.arena, true)         end    end    return trueend]]></globalevent><event type="login" name="Zombie_Login" event="script"><![CDATA[domodlib('zombie_config')function onLogin(cid)    registerCreatureEvent(cid, "ZombieBattle")    registerCreatureEvent(cid, "ZombieStats")    if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))    end    return trueend]]></event><event type="combat" name="ZombieBattle" event="script"><![CDATA[domodlib('zombie_config')if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then    doPlayerSendCancel(cid, "You may not attack this player.") return falseendreturn true]]></event><movevent type="StepIn" actionid ="45110" event="script"><![CDATA[domodlib('zombie_config')function onStepIn(cid, item, position, fromPosition)    if not isPlayer(cid) then return true end    if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, zombie_config.teleport[2]) end    if getPlayerLevel(cid) < zombie_config.min_Level then        doTeleportThing(cid, fromPosition, true)        doPlayerSendCancel(cid, "You need to be at least level " .. zombie_config.min_Level .. ".")        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)        return true    end    if getGlobalStorageValue(zombie_config.storages[1]) <= zombie_config.players.max then        doTeleportThing(cid, zombie_config.teleport[2])        setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1)        doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(zombie_config.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)        if getGlobalStorageValue(zombie_config.storages[1]) == zombie_config.players.max then            setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1)            removeZombieTp()            doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1])-1 .. " players]! The event will soon start.")            for _, var in pairs(getPlayersInZombieEvent()) do                doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!")            end            addEvent(spawnZombie, zombie_config.timeToStartEvent*1000)        end     end    return trueend]]></movevent><talkaction words="/zombiestart;!zombiestart" access="5" event="buffer"><![CDATA[domodlib('zombie_config')    if getGlobalStorageValue(zombie_config.storages[3]) > 0 then        doPlayerSendCancel(cid, "The event is already starting.") return true    elseif not param or not tonumber(param) then         doPlayerSendCancel(cid, "Use only numbers.") return true     end    local param = tonumber(param) <= 0 and 1 or tonumber(param)    local tp = doCreateItem(1387, 1, zombie_config.teleport[1])        doItemSetAttribute(tp, "aid", 45110)        CheckZombieEvent(tonumber(param))        ZerarStoragesZombie()        setGlobalStorageValue(zombie_config.storages[3], 1)        HaveCreatureZombie(zombie_config.arena, true)]]></talkaction><globalevent name="ZombieDebug-Start" type="start" event="buffer"><![CDATA[domodlib('zombie_config')ZerarStoragesZombie()return true]]></globalevent></mod>
 

 

TFS 0.3.6

 

 


<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Perfect Zombie System" version="8.6" author="Vodkart" contact="###.com" enabled="yes">
<config name="zombie_config"><![CDATA[
zombie_config = {
    storages = {172100, 172101, 172102}, -- n edite
    players = {min = 2, max = 30}, -- min, max players no evento
    rewards = {items ={{2160,10},{2494,1}}, trophy = 5805}, 
    timeToStartEvent = 30, -- segundos para começar o evento
    CheckTime = 5, -- tempo que o TP fica aberto para os jogadores adrentarem o evento
    teleport = {{x=147, y=55, z=7}, {x=125 , y=304, z=7}}, -- position do tp onde aparece, position para onde o jogador vai ao entrar no tp
    arena = {{x=110,y=297,z=7},{x=145,y=321,z=7}}, -- area positions
    monster_name = "Zombie Event",
    timeBetweenSpawns = 20,
    min_Level = 20
}
zombie_days = {
    ["Monday"] = {"13:00","18:00","20:00","22:00"},
    ["Tuesday"] = {"13:00","18:00","22:50","22:00"},
    ["Wednesday"] = {"21:57","18:00","20:00","23:17"},
    ["Thursday"] = {"13:00","18:00","20:00","22:00"},
    ["Friday"] = {"13:00","18:00","21:45","22:00"},
    ["Saturday"] = {"13:00","18:00","20:00","22:00"},
    ["Sunday"] = {"13:00","18:00","20:00","22:00"}
}
function removeZombieTp()
    local t = getTileItemById(zombie_config.teleport[1], 1387).uid
    return t > 0 and doRemoveItem(t) and doSendMagicEffect(zombie_config.teleport[1], CONST_ME_POFF)
end
function ZerarStoragesZombie()
    for _, stor in pairs(zombie_config.storages) do
        setGlobalStorageValue(stor, 0)
    end
end
function getPlayersInZombieEvent()
    local t = {}
    for _, pid in pairs(getPlayersOnline()) do
        if isInRange(getPlayerPosition(pid), zombie_config.arena[1], zombie_config.arena[2]) and getPlayerAccess(pid) < 3 then 
            t[#t+1] = pid
        end
    end
    return t
end
function getZombieRewards(cid, items)
    local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
    for _, i_i in ipairs(items) do
        local item, amount = i_i[1],i_i[2]
        if isItemStackable(item) or amount == 1 then
            doAddContainerItem(backpack, item, amount)
        else
            for i = 1, amount do
                doAddContainerItem(backpack, item, 1)
            end
        end
    end
end
function isWalkable(pos, creature, proj, pz)-- by Nord
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
    end
    return true
end
function HaveCreatureZombie(area, remove)
    for x = area[1].x - 1, area[2].x + 1 do
        for y = area[1].y - 1, area[2].y + 1 do
            local pos = {x=x, y=y, z=area[1].z}
            local m = getTopCreature(pos).uid
            if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end
        end
    end
end
function spawnZombie()
    if #getPlayersInZombieEvent() > 1 then
        local pos = {x=math.random(zombie_config.arena[1].x, zombie_config.arena[2].x), y=math.random(zombie_config.arena[1].y,zombie_config.arena[2].y), z=zombie_config.arena[1].z}
        if not isWalkable(pos, false, false, false) then 
            spawnZombie() 
        else
            doCreateMonster(zombie_config.monster_name, pos, false, false, false)
            doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
            addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
            addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
            doSendMagicEffect(pos, CONST_ME_MORTAREA)
            setGlobalStorageValue(zombie_config.storages[2], getGlobalStorageValue(zombie_config.storages[2]) <= 0 and 1 or getGlobalStorageValue(zombie_config.storages[2])+1)
            doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(zombie_config.storages[2]) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)
            addEvent(spawnZombie, zombie_config.timeBetweenSpawns *1000)
        end
    end
end
function CheckZombieEvent(delay)
    if getGlobalStorageValue(zombie_config.storages[1]) ~= (zombie_config.players.max+1) then
        if delay > 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.max then
            doBroadcastMessage("Zombie event starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
        elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.min then
            for _, cid in pairs(getPlayersInZombieEvent()) do
                doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
            end
            removeZombieTp()
            doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. zombie_config.players.min .. " players is needed!", MESSAGE_STATUS_WARNING)
            ZerarStoragesZombie()
        elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) >= zombie_config.players.min then
            removeZombieTp()
            doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1]) .. " players]! The event will soon start.")
            for _, var in pairs(getPlayersInZombieEvent()) do
                doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!")
            end
            addEvent(spawnZombie, zombie_config.timeToStartEvent*1000)
        end
        addEvent(CheckZombieEvent, 60000, delay-1)
    end
end]]></config>
<event type="statschange" name="ZombieStats" event="script"><![CDATA[
domodlib('zombie_config')
if isPlayer(cid) and isMonster(attacker) and getCreatureName(attacker) == zombie_config.monster_name then
    if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then
        if #getPlayersInZombieEvent() > 1 then
            doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED)
            local corpse = doCreateItem(getPlayerSex(cid) == 1 and 3058 or 6081, 1, getPlayerPosition(cid))
            doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")
            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)
            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
            if #getPlayersInZombieEvent() == 1 then
                local winner = getPlayersInZombieEvent()[1]
                doBroadcastMessage(getCreatureName(winner)..' has survived at zombie event!')
                local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1)
                doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.")
                getZombieRewards(winner, zombie_config.rewards.items)
                doTeleportThing(winner, getTownTemplePosition(getPlayerTown(winner)), false)
                doSendMagicEffect(getPlayerPosition(winner), CONST_ME_TELEPORT)
                doBroadcastMessage(getPlayerName(winner).." won the Zombie event! Congratulations!")
                HaveCreatureZombie(zombie_config.arena, true)
                ZerarStoragesZombie()
            end
        else
            doBroadcastMessage("No one survived in the Zombie Event.", MESSAGE_EVENT_ADVANCE)
            HaveCreatureZombie(zombie_config.arena, true)
            ZerarStoragesZombie()
        end
        return false
    end
end
return true]]></event>
<globalevent name="Zombie_Start" interval="60" event="script"><![CDATA[
domodlib('zombie_config')
function onThink(interval, lastExecution)
    if zombie_days[os.date("%A")] then
        local hrs = tostring(os.date("%X")):sub(1, 5)
        if isInArray(zombie_days[os.date("%A")], hrs) and getGlobalStorageValue(zombie_config.storages[3]) <= 0 then
            local tp = doCreateItem(1387, 1, zombie_config.teleport[1])
            doItemSetAttribute(tp, "aid", 45110)
            CheckZombieEvent(zombie_config.CheckTime)
            setGlobalStorageValue(zombie_config.storages[1], 0)
            setGlobalStorageValue(zombie_config.storages[2], 0)
            HaveCreatureZombie(zombie_config.arena, true) 
        end
    end
    return true
end]]></globalevent>
<event type="login" name="Zombie_Login" event="script"><![CDATA[
domodlib('zombie_config')
function onLogin(cid)
    registerCreatureEvent(cid, "ZombieBattle")
    registerCreatureEvent(cid, "ZombieStats")
    if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    end
    return true
end]]></event>
<event type="combat" name="ZombieBattle" event="script"><![CDATA[
domodlib('zombie_config')
if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then
    doPlayerSendCancel(cid, "You may not attack this player.") return false
end
return true
]]></event>
<movevent type="StepIn" actionid ="45110" event="script"><![CDATA[
domodlib('zombie_config')
function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then return true end
    if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, zombie_config.teleport[2]) end
    if getPlayerLevel(cid) < zombie_config.min_Level then
        doTeleportThing(cid, fromPosition, true)
        doPlayerSendCancel(cid, "You need to be at least level " .. zombie_config.min_Level .. ".")
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        return true
    end
    if getGlobalStorageValue(zombie_config.storages[1]) <= zombie_config.players.max then
        doTeleportThing(cid, zombie_config.teleport[2])
        setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1)
        doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(zombie_config.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)
        if getGlobalStorageValue(zombie_config.storages[1]) == zombie_config.players.max then
            setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1)
            removeZombieTp()
            doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1])-1 .. " players]! The event will soon start.")
            for _, var in pairs(getPlayersInZombieEvent()) do
                doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!")
            end
            addEvent(spawnZombie, zombie_config.timeToStartEvent*1000)
        end 
    end
    return true
end]]></movevent>
<talkaction words="/zombiestart;!zombiestart" access="5" event="buffer"><![CDATA[
domodlib('zombie_config')
    if getGlobalStorageValue(zombie_config.storages[3]) > 0 then
        doPlayerSendCancel(cid, "The event is already starting.") return true
    elseif not param or not tonumber(param) then 
        doPlayerSendCancel(cid, "Use only numbers.") return true 
    end
    local param = tonumber(param) <= 0 and 1 or tonumber(param)
    local tp = doCreateItem(1387, 1, zombie_config.teleport[1])
        doItemSetAttribute(tp, "aid", 45110)
        CheckZombieEvent(tonumber(param))
        ZerarStoragesZombie()
        setGlobalStorageValue(zombie_config.storages[3], 1)
        HaveCreatureZombie(zombie_config.arena, true)
]]></talkaction>
<globalevent name="ZombieDebug-Start" type="start" event="buffer"><![CDATA[
domodlib('zombie_config')
ZerarStoragesZombie()
return true]]></globalevent>
</mod>
 

 

 

o monstro você instala em data/monsters

 

 

zombie event.xml

 

 

 

 

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?><monster name="Zombie Event" nameDescription="an zombie event" race="undead" experience="280" speed="100" manacost="0">    <health now="500" max="500"/>    <look type="311" corpse="9875"/>    <targetchange interval="5000" chance="50"/>    <strategy attack="100" defense="0"/>    <flags>        <flag summonable="0"/>        <flag attackable="0"/>        <flag hostile="1"/>        <flag illusionable="0"/>        <flag convinceable="0"/>        <flag pushable="0"/>        <flag canpushitems="1"/>        <flag canpushcreatures="1"/>        <flag targetdistance="1"/>        <flag staticattack="90"/>        <flag runonhealth="0"/>    </flags>    <attacks>        <attack name="melee" interval="2000" min="-35000" max="-35000"/>    </attacks>    <defenses armor="15" defense="10"/>    <immunities>        <immunity paralyze="1"/><immunity invisible="1"/>    </immunities>    <voices interval="5000" chance="10">        <voice sentence="You wont last long!"/>        <voice sentence="Mmmmh.. braains!"/>    </voices>    <loot>        <item id="2148" countmax="1" chance="100000"/><!-- gold coin -->    </loot></monster>
 

 

tag no monsters.xml

 

<monster name="Zombie Event" file="zombie event.xml"/>

 

 

 preferences_system.pngpreferences_system.pngpreferences_system.pngpreferences_system.pngpreferences_system.pngpreferences_system.png

 

Configurando:

 

Sistema

 

zombie_config = {
    storages = {172100, 172101}, -- não edite
    players = {min = 2, max = 30}, -- número minimo e máximo para jogadores no evento
    rewards = {items ={{2160,10},{2494,1}}, trophy = 5805}, -- premiações do jogador
    timeToStartEvent = 30, -- segundos para começar o evento após dar start
    CheckTime = 5, -- tempo que o TP fica aberto para os jogadores adrentarem o evento
    teleport = {{x=145, y=50, z=7}, {x=176 , y=54, z=5}}, -- posiçãodo tp onde aparece, posição para onde o jogador vai ao entrar no tp
    arena = {{x=173,y=52,z=5},{x=179,y=56,z=6}}, -- posição começo e final da area do evento
    monster_name = "Zombie Event", -- nome do monstro que será sumonado
    timeBetweenSpawns = 20, -- a cada quantos segundos é dado o respaw time do zombie no evento
    min_Level = 20 -- level minimo para participar do evento
}

 

 

Dia e Horário

 


zombie_days = {
    ["Monday"] = {"13:00","18:00","20:00","22:00"},
    ["Tuesday"] = {"13:00","18:00","20:00","22:00"},
    ["Wednesday"] = {"13:00","18:00","20:00","22:00"},
    ["Thursday"] = {"13:00","18:00","20:00","22:00"},
    ["Friday"] = {"13:00","18:00","20:00","22:00"},
    ["Saturday"] = {"13:00","18:00","20:00","22:00"},
    ["Sunday"] = {"13:00","18:00","20:00","22:00"}
}

 

 

Créditos:

Vodkart;

 

 

Gesh

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/07/13Posts: 1

Po mano pego a parte do teleporte etc mais quando vai summonar os bichos da erro no distro

 

[Error - talkactions interface]

data/talkactions/scripts/creature.lua:onsay

Description:

(LuaDoCreateMonster) Monster with name 'event zombie' not fund

jenison06

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/11/15Posts: 17

Otimo Funcionou perfeitamento, porem o player que ganhou o Evento perde todo o Slot. e nao tem erro na distro.

como resolver?

# Reputado ^^

 

erro.PNG

Duduh124000

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/12/18Posts: 7

n ta nascendo os monstros, como resolver?

 

[error - talkaction interface] in a timer event called from: buffer description: <luadocreatemonster> monster with name '' not found

 

eu instalei tudo certinho, mas não ta indo o monstro, o que é isso, alguém ajuda