Ir para conteúdo

pokadelo

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    pokadelo recebeu reputação de Vodkart em [MODS] [8.6] Fire Storm Event - Automático   
    @Vodkart
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Fire Storm Event" version="8.6" author="Vodkart" contact="" enabled="yes">
    <config name="fire_config"><![CDATA[
    Fire = {
        storages = {172354, 172355}, -- storage Count
        players = {min = 2, max = 20}, -- min, max players no evento
        minLevel = 20, -- level minimo para entrar no event
        rewards = {{2160,100},{2494,1}}, -- premios que vai receber
        timeToStartEvent = 30, -- segundos para começar o evento
        CheckTime = 5, -- time to check event
        teleport = {{x=158, y=49, z=7}, {x=32415 , y=32442, z=7}}, -- posição do teleport, posição para onde o jogador vai
        arena = {{x=32404, y=32431, z=7},{x=32426, y=32453, z=7}} -- posição começo e final da area
    }
    Fire_Days = {
        ["Monday"] = {"13:00","18:00","20:00","22:00"},
        ["Tuesday"] = {"12:41","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"}
    }
    function removeFireTp()
        local t = getTileItemById(Fire.teleport[1], 1387).uid
        return t > 0 and doRemoveItem(t) and doSendMagicEffect(Fire.teleport[1], CONST_ME_POFF)
    end
    function ZerarStorFire()
        setGlobalStorageValue(Fire.storages[1], 0)
        setGlobalStorageValue(Fire.storages[2], 0)
    end
    function getPlayersInFireEvent()
        local t = {}
        for _, pid in pairs(getPlayersOnline()) do
            if isInRange(getPlayerPosition(pid), Fire.arena[1], Fire.arena[2]) then
                t[#t+1] = pid
            end
        end
        return t
    end
    function getFireRewards(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 doFireInArea(n)
        if #getPlayersInFireEvent() > 1 then
            for i = 1, n do
                local pos = {x=math.random(Fire.arena[1].x, Fire.arena[2].x), y=math.random(Fire.arena[1].y,Fire.arena[2].y), z=Fire.arena[1].z}
                local m = getTopCreature(pos).uid
                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)
                if m ~= 0 and isPlayer(m) then
                    doSendMagicEffect(getCreaturePosition(m), CONST_ME_FIREAREA)
                    doCreatureSay(m, "Ooh Burn Burn", TALKTYPE_ORANGE_1)
                    local corpse = doCreateItem(3058, 1, getPlayerPosition(m))
                    doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(m) .. ". He was killed by Fire Field.")
                    doSendMagicEffect(getPlayerPosition(m), CONST_ME_POFF)
                    doTeleportThing(m, getTownTemplePosition(getPlayerTown(m)))
                    doPlayerSendTextMessage(m, MESSAGE_EVENT_ADVANCE, "[Fire Storm Event] You died burned out.")
                end
            end
            local x = 2700-(200*n)
            addEvent(doFireInArea, x <= 0 and 500 or x, n+1)
        elseif #getPlayersInFireEvent() == 1 then
            local cid = getPlayersInFireEvent()[1]
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
            getFireRewards(cid, Fire.rewards)
            doBroadcastMessage("Fire Storm Event have finished. The winner is ".. getCreatureName(cid).. ". Congratulations.", MESSAGE_EVENT_ADVANCE)
            ZerarStorFire()
        else
            doBroadcastMessage("No one Won the Fire Storm Event.", MESSAGE_EVENT_ADVANCE)
            ZerarStorFire()
        end
    end
    function CheckFireEvent(delay)
        if getGlobalStorageValue(Fire.storages[1]) ~= (Fire.players.max+1) then
            if delay > 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.max then
                doBroadcastMessage("[Fire Stortm Event] Starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
            elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.min then
                for _, cid in pairs(getPlayersInFireEvent()) do
                    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                end
                removeFireTp()
                doBroadcastMessage("The Fire Storm event could not start because of to few players participating.\n At least " .. Fire.players.min .. " players is needed!", MESSAGE_STATUS_WARNING)
                ZerarStorFire()
            elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) >= Fire.players.min then
                removeFireTp()
                doBroadcastMessage("Good Lucky! The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
                addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
            end
            addEvent(CheckFireEvent, 60000, delay-1)
        end
    end
    ]]></config>
    <globalevent name="Storm_Fire_Start" interval="60000" event="script"><![CDATA[
    domodlib('fire_config')
    function onThink(interval, lastExecution)
        if Fire_Days[os.date("%A")] then
            local hrs = tostring(os.date("%X")):sub(1, 5)
            if isInArray(Fire_Days[os.date("%A")], hrs) and getGlobalStorageValue(Fire.storages[2]) <= 0 then
                local tp = doCreateItem(1387, 1, Fire.teleport[1])
                doItemSetAttribute(tp, "aid", 45111)
                CheckFireEvent(Fire.CheckTime)
                setGlobalStorageValue(Fire.storages[1], 0) 
            end
        end
        return true
    end]]></globalevent>
    <event type="login" name="Storm_Fire_Login" event="script"><![CDATA[
    domodlib('fire_config')
    function onLogin(cid)
        registerCreatureEvent(cid, "FireStormBatle")
        if isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        end
        return true
    end]]></event>
    <event type="combat" name="FireStormBatle" event="script"><![CDATA[
    domodlib('fire_config')
    if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
        doPlayerSendCancel(cid, "You may not attack this player.")
        return false
    end
    return true
    ]]></event>
    <movevent type="StepIn" actionid ="45111" event="script"><![CDATA[
    domodlib('fire_config')
    function onStepIn(cid, item, position, fromPosition)
        if not isPlayer(cid) then return true end
        if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, Fire.teleport[2]) end
        if getPlayerLevel(cid) < Fire.minLevel then
            doTeleportThing(cid, fromPosition, true)
            doPlayerSendCancel(cid, "You need to be at least level " .. Fire.minLevel .. ".")
            doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
            return true
        end
        if getGlobalStorageValue(Fire.storages[1]) <= Fire.players.max then
            doTeleportThing(cid, Fire.teleport[2])
            setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
            doBroadcastMessage(getPlayerName(cid) .. " entered the fire stortm event! Currently " .. getGlobalStorageValue(Fire.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)
            if getGlobalStorageValue(Fire.storages[1]) == Fire.players.max then
                setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
                removeFireTp()
                doBroadcastMessage("The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
                addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
            end 
        end
        return true
    end]]></movevent>
    <talkaction words="/firestart;!firestart" access="5" event="buffer"><![CDATA[
    domodlib('fire_config')
    if getGlobalStorageValue(Fire.storages[2]) > 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, Fire.teleport[1])
    doItemSetAttribute(tp, "aid", 45111)
    CheckFireEvent(tonumber(param))
    setGlobalStorageValue(Fire.storages[1], 0)
    setGlobalStorageValue(Fire.storages[2], 1)
    ]]></talkaction>
    <globalevent name="FireDebug-Start" type="start" event="buffer"><![CDATA[
    domodlib('fire_config')
    ZerarStorFire()
    return true]]></globalevent>
    </mod>
     
    o erro ainda continua.
    ficou assim com a nova arena e 60000 que vc pediu.

Informação Importante

Confirmação de Termo