Ir para conteúdo

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


Crypter

Posts Recomendados

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;

 

 

Editado por Crypter
Link para o comentário
Compartilhar em outros sites

  • 4 months later...

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

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
  • 6 months later...

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

Editado por Duduh124000
faltou frase :v
Link para o comentário
Compartilhar em outros sites

  • 4 years later...

Olá! Não posso expressar o quanto este site tem sido valioso na minha busca pelo casino online portugal . O compromisso do site com análises completas, apresentação clara das informações e actualizações regulares fazem dele um destino obrigatório. Quer seja um jogador experiente ou um novato, este site fornece um roteiro fiável para descobrir os melhores casinos online em Portugal.

Editado por FavianNinoSolan
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...