• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Capture The Flag Event (CTF)

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1Thông báo Capture The Flag Event (CTF) Mar Nov 27, 2018 4:53 pm

    Chaparro

    Chaparro
    Nuevo Miembro
    Nuevo Miembro
    Copien un archivo .XML y colocan este dentro.
    Código:

    <?xml version="1.0" encoding="utf-8"?>
        <mod name="CTF" version="1.0" author="Chaparro" contact="Chaparro Tibiface" enabled="yes">
          <config name="toto"><![CDATA[

        --[[ Storage Settings]]--


        Owner = 1900 -- put empty storage

        FLAG2_INn = 4000 -- put empty storage

        FLAG_IN = 4001 -- put empty storage

        TEAM1_FLAGS = 3030 -- put empty storage

        TEAM2_FLAGS = 3031 -- put empty storage

        Event_Start = 3032 -- put empty storage

        Event_timeend = 3033 -- put empty storage

        Event_Tile_Close = 3039 -- put empty storage

        joined = 2023 --put empty storage

        Timer = 1010 --put empty storage

        --------------------------------------


        --[[ Places setting ]]--


        BLUE_FLAG = {x=920,y=1280,z=6} -- Lugar Donde esta colocada la Bandera azul

        RED_FLAG = {x=974,y=1280,z=6} -- Lugar Donde esta colocada la Bandera roja

        Tp_Place = {x=824,y=1018,z=7} -- Lugar donde el telepuerto evento se va a crear.

        Wait_Place = {x=999,y=1281,z=7} -- Adonde Los Jugadores Seran Enviados Al entrar Al Teleport

        frompos = {x=993,y=1278,z=7} --Izkierda Arriva Dela Zala de espera

        topos = {x=1004,y=1283,z=7} -- Derecga Abajo Dela sala de Espera

        Red_Position = {x=971,y=1280,z=7} -- Lugar del Templo Del Equipo Rojo

        Blue_Position = {x=923,y=1280,z=7} -- Lugar del Templo Del Equipo Rojo


        ---------------------------------------


        --[[Event setting ]]--


        Event_WaitTime = 1 -- Tiempo Que Iniciara el Evento Al Abrir Teleport (Ejemplo: Abre Teleport Y tienes 3 minutos Para entrar)

        Event_MaxTime = 15 --- en minutos (esto para si duran mas de 15 minutos el evento se termina y gana el que tenga mas FLAG)

        Players_Speed = 2000 -- poner el nivel de velocidad de base en el evento (como si desea que la velocidad de lvl 300 entonces Wright 300)

        Flag_Holder_Speed = 2000 -- [Old-Style caracteristica] de velocidad para el jugador cuando tienen la bandera mejor no aumentar.

        TEAM2_NAME = "Red" -- team 2 name

        TEAM1_NAME = "Green" -- team 1 name

        FLAG_SCORE = 10 -- Las Vanderas Ke tiene que juntar cada team para galar

        Teleport_On_Score = false -- este transportara a todos los de su posicion en el equipo principal cuando una veintena uno una bandera, realizar manifestaciones falsas para desactivarlo.

        Players_Least_Number = 2 -- Los Jugadores Que tienen Que ser para q el event nose cancele
        Min_Join_Level = 14 -- Minimo lvl para que puedan entrar

        rewards_random = {
                                                        [60] = { -- Rewards of 60% , if it is then it will randomly give one of the items in the items verible if there you put more than one item there
                                                                                items = {8981,2198,9777}
                                                                        },

                                                        [30] = { -- Rewards of 30%
                                                                                items = {2358,2504}
                                                                        },


                                                        [10] = { -- Rewards of 10%
                                                                                items = {7958,7368,8926}
                                                                        }
                                                }


        ]]></config>
          <lib name="CTF-lib"><![CDATA[
        function isTeamTwo(cid)
                return (isPlayer(cid) and getPlayerStorageValue(cid,5054) > -1)
        end
        function isTeamOne(cid)
                return (isPlayer(cid) and getPlayerStorageValue(cid,5055) > -1)
        end
        function resetTheTeams(cid)
                return (isPlayer(cid) and setPlayerStorageValue(cid,5054,-1) and setPlayerStorageValue(cid,5055,-1))
        end
        function setflagOwner(cid)
                return setPlayerStorageValue(cid,Owner,1)
        end
        function flagOwner(cid)
                return (isPlayer(cid) and getPlayerStorageValue(cid,Owner) > 0)
        end
        function releaseBF(cid)
                setGlobalStorageValue(FLAG_IN,-1)
                setPlayerStorageValue(cid,103, 0)
                setPlayerStorageValue(cid,Owner,-1)
        return true
        end
        function releaseRF(cid)
                setGlobalStorageValue(FLAG2_INn,-1)
                setPlayerStorageValue(cid,103, 0)
                setPlayerStorageValue(cid,Owner,-1)
        return true
        end
        function setFirstTeam(cid)
                return setPlayerStorageValue(cid,5055,1)
        end
        function setSecondTeam(cid)
                return setPlayerStorageValue(cid,5054,2)
        end
        function addToRed()
                return setGlobalStorageValue(TEAM2_FLAGS,getGlobalStorageValue(TEAM2_FLAGS)+1)
        end
        function addToBlue()
                return setGlobalStorageValue(TEAM1_FLAGS,getGlobalStorageValue(TEAM1_FLAGS)+1)
        end
        function getBlueScore()
                return getGlobalStorageValue(TEAM1_FLAGS)
        end
        function getRedScore()
                return getGlobalStorageValue(TEAM2_FLAGS)
        end
        function getTheSpeed(level)
                value = (220 +(2 *(level -1)))
                return value
        end

        function resetTheStorage()
                setGlobalStorageValue(Event_Start,-1)
                setGlobalStorageValue(Event_timeend,-1)
                setGlobalStorageValue(TEAM1_FLAGS,0)
                setGlobalStorageValue(FLAG2_INn,-1)
                setGlobalStorageValue(FLAG_IN,-1)
                setGlobalStorageValue(TEAM2_FLAGS,0)
        return true
        end
        function blueStolen()
                return getGlobalStorageValue(FLAG_IN)
        end
        function redStolen()
                return getGlobalStorageValue(FLAG2_INn)
        end
        function giveReward(cid)
                local t = math.random(1,100)
                if t <= 10 then
                        local rare = rewards_random[10].items[math.random(1,#rewards_random[10].items)]
                        doPlayerAddItem(cid,rare,1)
                        doPlayerSendTextMessage(cid,25,"Rare rate Reward : you won "..getItemNameById(rare)..".")

                elseif t > 10 and t <= 40 then
                        local semi = rewards_random[30].items[math.random(1,#rewards_random[30].items)]
                        doPlayerAddItem(cid,semi,1)
                        doPlayerSendTextMessage(cid,25,"Semi rate Reward : you won "..getItemNameById(semi)..".")


                elseif t > 40 then
                        local aver = rewards_random[60].items[math.random(1,#rewards_random[60].items)]
                        doPlayerAddItem(cid,aver,1)
                        doPlayerSendTextMessage(cid,25,"Averege rate Reward : you won "..getItemNameById(aver)..".")
                end
                return true
        end
        ]]></lib>
          <event type="login" name="Tutorial Login" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')
        function onLogin(cid)
                if getGlobalStorageValue(Event_Start) < 1 then
                        if isTeamOne(cid) or isTeamTwo(cid) then
                                resetTheTeams(cid)
                        end
                end
                registerCreatureEvent(cid, "Attk")
                registerCreatureEvent(cid, "ctff")
                registerCreatureEvent(cid, "prepare")
        return true
        end
        ]]></event>
          <event type="combat" name="Attk" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        function onCombat(cid, target)
                if isTeamOne(cid) and isTeamOne(target) then
                        return false
                end
                if isTeamTwo(cid) and isTeamTwo(target) then
                        return false
                end
                return true
        end
        ]]></event>
          <event type="statschange" name="prepare" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        local corpse_ids = {
                        [0] = 3065, -- female
                        [1] = 3058 -- male
        }
        function onStatsChange(cid, attacker, type, combat, value)
                        if combat == COMBAT_HEALING then
                                return true
                        end
                        if getCreatureHealth(cid) > value then
                                return true
                        end
                        if getGlobalStorageValue(Event_Start) > 0 then
                                if flagOwner(cid) then
                                        if isTeamOne(cid) then
                                                doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Flag Holder].")
                                                doTeleportThing(cid,Blue_Position,false)
                                                doSendMagicEffect(Blue_Position,10)
                                                doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
                                                doCreatureAddMana(cid,getCreatureMaxMana(cid))
                                                releaseRF(cid)
                                                                for _,cid in ipairs(getPlayersOnline()) do
                                                                        if isTeamOne(cid) or isTeamTwo(cid) then
                                                                                doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM2_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
                                                                        end
                                                                end
                                                return false
                                        elseif isTeamTwo(cid) then
                                                doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Flag Holder].")
                                                doTeleportThing(cid,Red_Position,false)
                                                doSendMagicEffect(Red_Position,10)
                                                doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
                                                doCreatureAddMana(cid,getCreatureMaxMana(cid))
                                                releaseBF(cid)
                                                                for _,cid in ipairs(getPlayersOnline()) do
                                                                        if isTeamOne(cid) or isTeamTwo(cid) then
                                                                                doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM1_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
                                                                        end
                                                                end
                                        return false
                                        end

                                else
                                        if isTeamOne(cid) or isTeamTwo(cid) then
                                                doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Normal kill].")
                                                doTeleportThing(cid,( isTeamTwo(cid) and Red_Position or Blue_Position ),false)
                                                doSendMagicEffect(Red_Position,10)
                                                doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
                                                doCreatureAddMana(cid,getCreatureMaxMana(cid))
                                                return false
                                        end
                                end

                        end
        return true
        end

        ]]></event>
          <movevent type="StepIn" actionid="6000" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        function eventEnds()
                doBroadcastMessage('CTF-Event : The '..TEAM2_NAME..' team won and reciaved their reward.')
                        for _,cid in ipairs(getPlayersOnline()) do
                                if isTeamTwo(cid) then
                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                        doRemoveConditions(cid,false)
                                        resetTheTeams(cid)
                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                        giveReward(cid)

                                elseif isTeamOne(cid) then
                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                        doRemoveConditions(cid,false)
                                        doPlayerSendTextMessage(cid,22,'Your team have lost.')
                                        resetTheTeams(cid)
                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                end
                        end
                addEvent(resetTheStorage,5)
        end
        function onStepIn(cid, item, position, fromPosition)
                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                        if isTeamTwo(cid) and redStolen() < 0 then
                                if not flagOwner(cid) then
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doSendMagicEffect(getThingPos(cid),2)
                                        doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
                                end
                        elseif isTeamTwo(cid) and redStolen() > 0 and blueStolen() < 0 then
                                doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
                                doTeleportThing(cid, fromPosition,TRUE)
                                doSendMagicEffect(getThingPos(cid),2)
                          return true
                        end
                        if isTeamTwo(cid) and flagOwner(cid) and blueStolen() > 0 and redStolen() < 0 then
                                if getRedScore() == FLAG_SCORE -1 then
                                        addEvent(eventEnds,1000)
                                        addToRed()
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
                                        releaseBF(cid)
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM2_NAME.." team!")
                                                        end
                                                end
                                else
                                        releaseBF(cid)
                                        addToRed()
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM2_NAME.." team!")
                                                                        if Teleport_On_Score == true then
                                                                                doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
                                                                                doSendMagicEffect(getThingPos(tid),10)
                                                                        end
                                                        end
                                                end
                                end
                        end
                        if isTeamOne(cid) then
                                if blueStolen() < 0 and redStolen() > 0 then
                                        if flagOwner(cid) then
                                                doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
                                                doTeleportThing(cid, fromPosition,TRUE)
                                                doSendMagicEffect(getThingPos(cid),2)
                                        elseif (not flagOwner(cid)) then
                                                doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
                                                doTeleportThing(cid, fromPosition,TRUE)
                                                doSendMagicEffect(getThingPos(cid),2)
                                        end
                                elseif blueStolen() > 0 and redStolen() < 0 then
                                        doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doSendMagicEffect(getThingPos(cid),2)
                                end
                                if redStolen() < 0 and blueStolen() < 0 then
                                        setGlobalStorageValue(FLAG2_INn,1)
                                        setflagOwner(cid)
                                        setPlayerStorageValue(cid,103, os.time()+300)
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM2_NAME.." team flag!")
                                                        end
                                                end
                                end
                        end
                end
        return true
        end
        ]]></movevent>
          <movevent type="StepIn" actionid="3435" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')
        function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
                if getStorage(Event_Tile_Close) > 0 then
                        if getPlayerLevel(cid) < Min_Join_Level then
                           doTeleportThing(cid,fromPosition,false)
                                doSendMagicEffect(fromPosition,10)
                                doPlayerSendTextMessage(cid,21,"Only players of level "..Min_Join_Level.." are allowed to pass.")
                        else
                                doTeleportThing(cid,Wait_Place,false)
                                doSendMagicEffect(Wait_Place,10)
                        end
                else
                        doTeleportThing(cid,fromPosition,false)
                        doSendMagicEffect(fromPosition,10)
                        doPlayerSendTextMessage(cid,21,"Regresa Mas Tarde El Event Aun Esta Cerrado...")
                end
        return true
        end

        ]]></movevent>
          <movevent type="StepIn" actionid="6001" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        function eventEnded()
                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                        doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and reciaved their reward.')
                                for _,cid in ipairs(getPlayersOnline()) do
                                        if isTeamOne(cid) then
                                                doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                doRemoveConditions(cid,false)
                                                resetTheTeams(cid)
                                                doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                giveReward(cid)
                                        elseif isTeamTwo(cid) then
                                                doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                doRemoveConditions(cid,false)
                                                doPlayerSendTextMessage(cid,22,'Your team have lost.')
                                                resetTheTeams(cid)
                                                doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                        end
                                end
                end
                addEvent(resetTheStorage,5)
        end
        function onStepIn(cid, item, position, fromPosition)
                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                        if isTeamOne(cid) and blueStolen() < 0 then
                                if not flagOwner(cid) then
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doSendMagicEffect(getThingPos(cid),2)
                                        doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
                                end
                        elseif isTeamOne(cid) and blueStolen() > 0 and redStolen() < 0 then
                                doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
                                doTeleportThing(cid, fromPosition,TRUE)
                                doSendMagicEffect(getThingPos(cid),2)
                         return true
                        end
                        if isTeamOne(cid) and flagOwner(cid) and redStolen() > 0 and blueStolen() < 0 then
                                if getBlueScore() == FLAG_SCORE -1 then
                                        addEvent(eventEnded,1000)
                                        addToBlue()
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
                                        releaseRF(cid)
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM1_NAME.." team!")
                                                        end
                                                end
                                else
                                        releaseRF(cid)
                                        addToBlue()
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM1_NAME.." team!")
                                                                        if Teleport_On_Score == true then
                                                                                doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
                                                                                doSendMagicEffect(getThingPos(tid),10)
                                                                        end
                                                        end
                                                end
                                end
                        end
                        if isTeamTwo(cid) then
                                if blueStolen() > 0 and redStolen() < 0 then
                                        if flagOwner(cid) then
                                                doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
                                                doTeleportThing(cid, fromPosition,TRUE)
                                                doSendMagicEffect(getThingPos(cid),2)
                                        elseif (not flagOwner(cid)) then
                                                doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
                                                doTeleportThing(cid, fromPosition,TRUE)
                                                doSendMagicEffect(getThingPos(cid),2)
                                        end
                                elseif redStolen() > 0 and blueStolen() < 0 then
                                        doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doSendMagicEffect(getThingPos(cid),2)
                                end
                                if blueStolen() < 0 and redStolen() < 0 then
                                        setGlobalStorageValue(FLAG_IN,1)
                                        setflagOwner(cid)
                                        setPlayerStorageValue(cid,103, os.time()+300)
                                        doTeleportThing(cid, fromPosition,TRUE)
                                        doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
                                                for _,tid in ipairs(getPlayersOnline()) do
                                                        if isTeamOne(tid) or isTeamTwo(tid) then
                                                                doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM1_NAME.." team flag!")
                                                        end
                                                end
                                end
                        end
                end
        return true
        end
        ]]></movevent>
          <globalevent name="ctf" interval="100" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')
        local players = {}
        local bmale = createConditionObject(CONDITION_OUTFIT)
                        setConditionParam(bmale, CONDITION_PARAM_TICKS, -1)
                        addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})

                local bfemale = createConditionObject(CONDITION_OUTFIT)
                        setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
                        addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})

                local rmale = createConditionObject(CONDITION_OUTFIT)
                        setConditionParam(rmale, CONDITION_PARAM_TICKS, -1)
                        addOutfitCondition(rmale, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

                local rfemale = createConditionObject(CONDITION_OUTFIT)
                        setConditionParam(rfemale, CONDITION_PARAM_TICKS, -1)
                        addOutfitCondition(rfemale, {lookType = math.random(136,142),lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})
                local fight = createConditionObject(CONDITION_INFIGHT)
                        setConditionParam(fight, CONDITION_PARAM_TICKS, -1)
        function eventEnd()
                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                        if getRedScore() > getBlueScore() then
                                doBroadcastMessage('CTF-Event : The '.. TEAM2_NAME..' team won and recieved their reward.')
                                        for _,cid in ipairs(getPlayersOnline()) do
                                                if isTeamTwo(cid) then
                                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                        doRemoveConditions(cid,false)
                                                        resetTheTeams(cid)
                                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                        giveReward(cid)
                                                elseif isTeamOne(cid) then
                                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                        doRemoveConditions(cid,false)
                                                        doPlayerSendTextMessage(cid,22,'Your team have lost.')
                                                        resetTheTeams(cid)
                                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                end
                                        end

                        elseif getRedScore() < getBlueScore() then
                                doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and recieved their reward.')
                                        for _,cid in ipairs(getPlayersOnline()) do
                                                if isTeamOne(cid) then
                                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                        doRemoveConditions(cid,false)
                                                        resetTheTeams(cid)
                                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                        giveReward(cid)
                                                elseif isTeamTwo(cid) then
                                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                        doRemoveConditions(cid,false)
                                                        doPlayerSendTextMessage(cid,22,'Your team have lost.')
                                                        resetTheTeams(cid)
                                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                end
                                        end
                        elseif getRedScore() == getBlueScore() then
                                doBroadcastMessage('CTF-Event : The Event ended with a draw between both teams.')
                                        for _,cid in ipairs(getPlayersOnline()) do
                                                if isTeamTwo(cid) or isTeamOne(cid) then
                                                        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
                                                        doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
                                                        doRemoveConditions(cid,false)
                                                        doPlayerSendTextMessage(cid,22,'It was a draw between both teams.')
                                                        resetTheTeams(cid)
                                                        doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
                                                end
                                        end

                        end
                        addEvent(resetTheStorage,1000)
                end
        end

        function eventStart()
                doSetStorage(Event_Tile_Close,-1)
                setGlobalStorageValue(Event_timeend,1)
                setGlobalStorageValue(Timer, os.time() + Event_MaxTime*60)
                addEvent(eventEnd,Event_MaxTime*60*1000)



                                for v = frompos.x , topos.x do
                                        for k = frompos.y , topos.y do
                                                for i = 1, 200 do
                                                        position = {x = v, y = k, z = 7, stackpos = i}
                                                        pid = getThingfromPos(position).uid
                                                                if(pid ~= nil and isPlayer(pid)) then
                                                                        table.insert(players, pid)
                                                                end
                                                end
                                        end
                                end
                                if math.mod(#players, 2) ~= 0 then
                                        doTeleportThing(players[#players],getTownTemplePosition(getPlayerTown(players[#players])),false)
                                        doSendMagicEffect(getThingPosition(players[#players]),10)
                                        doPlayerSendTextMessage(players[#players], 19, "Sorry, you have been kicked from event to balance teams.")
                                        table.remove(players)
                                end
                                if #players < Players_Least_Number then
                                        doBroadcastMessage("CTF event was cancelled because less than "..Players_Least_Number.." players joined")
                                        resetTheStorage()
                                                if #players > 0 then
                                                        for i = 1,#players do
                                                                 doTeleportThing(players[i],getTownTemplePosition(getPlayerTown(players[i])),false)
                                                                 doSendMagicEffect(getThingPos(players[i]), 10)
                                                        end
                                                end
                                else
                                                 doBroadcastMessage("CTF started")
                                                        for i = 1, math.floor(#players/2) do
                                                                setFirstTeam(players[i])
                                                        end
                                                        for i = math.floor(#players/2)+1 , #players do
                                                                setSecondTeam(players[i])
                                                        end
                                                        for _,cid in ipairs(getPlayersOnline()) do
                                                                if isTeamOne(cid) then
                                                                        if getPlayerSex(cid) == 1 then
                                                                                doAddCondition(cid, bmale)
                                                                        elseif getPlayerSex(cid) ~= 1 then
                                                                                doAddCondition(cid, bfemale)
                                                                        end
                                                                        doAddCondition(cid, fight)
                                                                        doTeleportThing(cid,Blue_Position,false)
                                                                        doSendMagicEffect(Blue_Position, 10)
                                                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
                                                                elseif  isTeamTwo(cid) then
                                                                        if getPlayerSex(cid) == 1 then
                                                                                doAddCondition(cid, rmale)
                                                                        elseif getPlayerSex(cid) ~= 1 then
                                                                                doAddCondition(cid, rfemale)
                                                                        end
                                                                        doAddCondition(cid, fight)
                                                                        doTeleportThing(cid,Red_Position,false)
                                                                        doSendMagicEffect(Red_Position, 10)
                                                                        doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
                                                                end
                                                        end
                                                        players = {}

                                end
        end
        function onThink(interval)
           if getGlobalStorageValue(Event_Start) < 0 then
                        setGlobalStorageValue(Event_Start,1)
                        doSetStorage(Event_Tile_Close,1)
                        doBroadcastMessage("CTF event A avierto Entra Al Teleport. Iniciara en "..Event_WaitTime.." minutes.")
                        players = {}
                        if getTileItemById(Tp_Place, 1387).uid < 1 then
                                doItemSetAttribute(doCreateItem(1387,1, Tp_Place), "aid", 3435)
                        end

                        f= Event_WaitTime - 1
                                for i = 1,Event_WaitTime-1 do
                                        addEvent(doBroadcastMessage,i*60*1000,"CTF event A avierto Entra Al Teleport. Iniciara en "..f.." minutes.")
                                        f= f-1
                                end
                        addEvent(eventStart,Event_WaitTime*60*1000)
                end
        return true
        end
        ]]></globalevent>
          <event type="think" name="ctff" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        local bl = BLUE_FLAG
        local re = RED_FLAG
        function onThink(interval)
                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                        if redStolen() < 0 then
                                doSendAnimatedText(re,"FLAG!",TEXTCOLOR_DARKRED)
                                doSendMagicEffect(re, CONST_ME_SOUND_RED)
                        end
                        if blueStolen() < 0 then
                                doSendAnimatedText(bl,"FLAG!",TEXTCOLOR_GREEN)
                                doSendMagicEffect(bl, CONST_ME_SOUND_GREEN)
                        end
                        for _, cid in ipairs(getPlayersOnline()) do
                                if flagOwner(cid) then
                                        if isTeamOne(cid) or isTeamTwo(cid) then
                                                if hasCondition(cid,CONDITION_HASTE) then
                                                        doRemoveCondition(cid,CONDITION_HASTE)
                                                end
                                        end
                                        pl = getThingPos(cid)
                                                if isTeamTwo(cid) then
                                                        if getPlayerStorageValue(cid,103) < os.time() then
                                                                releaseBF(cid)
                                                                        for _,cid in ipairs(getPlayersOnline()) do
                                                                                if isTeamOne(cid) or isTeamTwo(cid) then
                                                                                        doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM2_NAME.." flag is again on spawn!")
                                                                                end
                                                                        end
                                                        else
                                                                doSendAnimatedText(pl,"FLAG!",TEXTCOLOR_GREEN)
                                                                doSendMagicEffect(pl, CONST_ME_SOUND_GREEN)
                                                        end
                                                elseif isTeamOne(cid) then
                                                        if getPlayerStorageValue(cid,103) < os.time() then
                                                                releaseRF(cid)
                                                                        for _,cid in ipairs(getPlayersOnline()) do
                                                                                if isTeamOne(cid) or isTeamTwo(cid) then
                                                                                        doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM1_NAME.." flag is again on spawn!")
                                                                                end
                                                                        end
                                                        else
                                                                doSendAnimatedText(pl,"FLAG!",COLOR_RED)
                                                                doSendMagicEffect(pl, CONST_ME_SOUND_RED)
                                                        end
                                                end
                                end
                        end
                end
          return true
        end
        ]]></event>
          <globalevent name="timer" interval="0.4" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')

        function onThink(interval)
                for _,cid in ipairs(getPlayersOnline()) do
                        if isTeamOne(cid) or isTeamTwo(cid) then
                                if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
                                        if getGlobalStorageValue(Timer)- os.time() >= 0 then
                                                doPlayerSendCancel(cid, "Time -> ".. os.date("%M:%S ",getGlobalStorageValue(Timer)- os.time()) .. "  |  ".. TEAM1_NAME.." Score : "..getBlueScore(cid).."/"..FLAG_SCORE.." captures  |  ".. TEAM2_NAME.." Score : "..getRedScore(cid).."/"..FLAG_SCORE.." captures")
                                        end
                                end
                        end
                end
        return true
        end
        ]]></globalevent>
          <globalevent name="starting" type="startup" event="script"><![CDATA[
        domodlib('toto')
        domodlib('CTF-lib')
        function onStartup()
                resetTheStorage()

        return true
        end
        ]]></globalevent>
        </mod>

    3 participantes

    2Thông báo Re: Capture The Flag Event (CTF) Mar Nov 27, 2018 6:01 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    gracias por el aporte +1 (y)



    Capture The Flag Event (CTF) YNU5B25
    3 participantes
    http://www.tibiaface.com

    3Thông báo Re: Capture The Flag Event (CTF) Vie Abr 19, 2019 1:00 pm

    Jazet96

    Jazet96
    Miembro
    Miembro
    Como puedo hacer para que inicie automaticamente cada 3 horas?

    3 participantes
    http://winterglobal.sytes.net

    4Thông báo Re: Capture The Flag Event (CTF) Vie Abr 19, 2019 3:30 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Jazet96 escribió:Como puedo hacer para que inicie automaticamente cada 3 horas?

    edita el tiempo en el global event del sistema



    Capture The Flag Event (CTF) YNU5B25
    3 participantes
    http://www.tibiaface.com

    Contenido patrocinado


    3 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).