BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Pedido Firestorm Event 8.6

Pedido Firestorm Event 8.6

#1 Pedido Firestorm Event 8.6 el Sáb Feb 21, 2015 7:51 pm

Mariospawn


Novato
Hola buenas estoy buscando el evento firestorm (lluvia de fuego)

nose si lo conoceran el evento consiste en que los players entran al evento con el comando !joinfire

y esperan 2 minutos con cuenta regresiva que saldra en blanquito abajo
ya que termina esa cuenta regresiva empiesan a caer los fuegos y si ese fuego te toca te manda al templo (eliminado)

#2 Re: Pedido Firestorm Event 8.6 el Dom Feb 22, 2015 9:31 am

Mariospawn


Novato
nadie? que me podria ayudar :/

#3 Re: Pedido Firestorm Event 8.6 el Sáb Mar 14, 2015 1:09 am

Camilooh


Miembro
yo tambien lo estoy buscando

#4 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 10:26 am

Godz4t4n1c


Miembro
Saludos,

Este evento se ve de huevos pero
Esta un poco complicado en hacer

#5 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 10:37 am

[VIP] rafael


Miembro
yo lo tengo el evento pero necesito que lo reparen le pedi a belero pero no me a respondido todavia es un mod en realidad el evento xD

Por ejemplo dices !join fire o !fire join y no te lleva donde es el evento y sete keda el chart sin moverse asta k inicie el evento esprar 5minutos y el evento esta bien pork si lo ases en la posicion donde esta el evento cae todo bien

#6 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 11:21 am

Godz4t4n1c


Miembro
Compartelo y postealo para que podamos opinar y arreglarlo

#7 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 11:51 am

[VIP] rafael


Miembro
bueno ok hay ba:

C:\Ots\mods\fire event:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Fire_Storm_Event" version="3.0" author="CollocorpuseK" contact="otland.net" enabled="yes">

    <config name="config_fire_storm_event">
        <![CDATA[
            configFireStormEvent = {
                storages = {
                    main = '13335', -- set free storage
                    player = '13336', -- set free storage
                    joining = '13337', -- set free storage
                    exhaust = '13338', -- set free storage
                    countEvent = '13339' -- set free storage
                },
             
                position = {x=1000 ,y=1000,z=6}, -- position which player is teleported to
                room = {
                    from = {x=994,y=993,z=6}, -- left top corner of event room
                    to = {x=1005,y=1007,z=6} -- right bottom corner of event room
                },

                rewards = {2472, 8982, 5785, 2365}, -- reward id which player can win (reward is random)
                players = {
                    max = 700,
                    min = 1,
                    minLevel = 1
                },

                days = {
                    ['Tuesday'] = {'20:00:00'},
                    ['Thursday'] = {'18:37:00'},
                    ['Sunday'] = {'15:00:00'}
                },

                fireStormDelay = 1000, -- milisecond
             

                delayTime = 5.0, -- time in which players who joined to event are teleporting to teleport position
                startEvent = 1, -- time from teleport to start event
                text = 'To win and get a Rewards, stay as long as possible in the arena.'
            }

            fight = createConditionObject(CONDITION_INFIGHT)
            setConditionParam(fight, CONDITION_PARAM_TICKS, -1)
         
            y, x = 1, 1 -- don't change it
        ]]>
    </config>
 
    <lib name="lib_fire_storm_event">
        <![CDATA[
            function doStartFireStormEvent()
                doSetStorage(configFireStormEvent.storages.joining, -1)
             
                if configFireStormEvent.players.min <= doCountPlayersFireStormEvent() then     
                    for _, cid in ipairs(getPlayersOnline()) do
                        if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then
                            doCreatureSetNoMove(cid, false)
                            doRemoveCondition(cid, CONDITION_INFIGHT)
                            doTeleportThing(cid, configFireStormEvent.position)
                            doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)
                         
                            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready. Fire Storm starts in '..configFireStormEvent.startEvent..' seconds.')
                        end
                    end
                 
                    addEvent(doSetStorage, configFireStormEvent.startEvent * 1000, configFireStormEvent.storages.main, 1)
                    addEvent(doRepeatCheckFireStorm, configFireStormEvent.startEvent * 1000 + 2000)
                 
                    doBroadcastMessage('Fire Storm has started. LET\'S GO!')
                else
                    for _, cid in ipairs(getPlayersOnline()) do
                        if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then
                            doCreatureSetNoMove(cid, false)
                            doRemoveCondition(cid, CONDITION_INFIGHT)
                        end
                    end
                 
                    doBroadcastMessage('Fire Storm hasn\'t started beacuse there were not enough players.')
                end
            end
         
            function doRepeatCheckFireStorm()
                if getStorage(configFireStormEvent.storages.main) > 0 then
                    local xTable, yTable, playerTable = {}, {}, {}

                    for x = configFireStormEvent.room.from.x, configFireStormEvent.room.to.x do
                        for y = configFireStormEvent.room.from.y, configFireStormEvent.room.to.y do
                            table.insert(xTable, x)
                            table.insert(yTable, y)

                            local n, i = getTileInfo({x=x, y=y, z=configFireStormEvent.room.to.z}).creatures, 1
                            if n ~= 0 then
                                local v = getThingfromPos({x=x, y=y, z=configFireStormEvent.room.to.z, stackpos=i}).uid
                                while v ~= 0 do
                                    if isPlayer(v) then
                                        table.insert(playerTable, v)
                                        if n == #playerTable then
                                            break
                                        end
                                    end
                                    i = i + 1
                                    v = getThingfromPos({x=x, y=y, z=configFireStormEvent.room.to.z, stackpos=i}).uid
                                end
                            end
                        end
                    end

                    if #playerTable == 1 then
                        local prize = math.random(#configFireStormEvent.rewards)
                        doCreatureAddHealth(playerTable[1], getCreatureMaxHealth(playerTable[1]) - getCreatureHealth(playerTable[1]))
                        doCreatureAddMana(playerTable[1], getCreatureMaxMana(playerTable[1]) - getCreatureMana(playerTable[1]))
                        doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)
                        doPlayerAddItem(playerTable[1], configFireStormEvent.rewards[prize], 1)
                        doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win! You have received ' .. getItemNameById(configFireStormEvent.rewards[prize]) .. ' as reward.')
                        doBroadcastMessage('Fire Storm has finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.')
                        doSetStorage(configFireStormEvent.storages.main, -1)
                     
                        db.executeQuery("INSERT INTO `events` (`event_name`, `winner_name`, `won_item`, `time_win`) VALUES (\"Fire\", \"" .. getCreatureName(playerTable[1]) .. "\", \"" .. getItemNameById(configFireStormEvent.rewards[prize]) .. "\", " .. getStorage(configFireStormEvent.storages.countEvent) ..");")
                        doSetStorage(configFireStormEvent.storages.countEvent, getStorage(configFireStormEvent.storages.countEvent) + 1)
                     
                        x, y = 1, 1
                    elseif #playerTable > 1 then
                        for a = 1, y do
                            addEvent(
                                function()
                                    local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}

                                    for _, player in ipairs(playerTable) do
                                        local pPos = getThingPos(player)
                                        if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then
                                            doCreatureAddHealth(player, - getCreatureMaxHealth(player))
                                        end
                                    end
                                    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)
                                end,
                                math.random(100,1000)
                            )
                        end
                        if x == 5 * y then
                            y = y + 1
                        end
                     
                        x = x + 1
                    else
                        doBroadcastMessage('No one survived the Fire Storm.')
                        doSetStorage(configFireStormEvent.storages.main, -1)                     
                        doSetStorage(configFireStormEvent.storages.countEvent, getStorage(configFireStormEvent.storages.countEvent) + 1)
                        x, y = 1, 1
                    end
                 
                    addEvent(doRepeatCheckFireStorm, configFireStormEvent.fireStormDelay)
                end
            end
         
            function doCountPlayersFireStormEvent()
                local x = 0
                for _, cid in ipairs(getPlayersOnline()) do
                    if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then
                        x = x + 1
                    end
                end
                return x
            end
         
            function doStartCountingFireStormEvent(x)
                if configFireStormEvent.delayTime-x > 0 then
                    doBroadcastMessage('Fire Storm will start in '..configFireStormEvent.delayTime-x..' minutes. You can join to the event by say "!fire join".')
                    addEvent(doStartCountingFireStormEvent, 60*1000, x+1)
                end
            end
        ]]>
    </lib>
    <talkaction words="!fire" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")

            function onSay(cid, words, param)
                if getStorage(configFireStormEvent.storages.joining) ~= 1 then
                    return doPlayerSendCancel(cid, 'Fire Storm hasn\'t started yet.')
                elseif param == '' then
                    return doPlayerSendCancel(cid, 'Command param required (say: "!fire join" or "!fire leave.").')
                elseif getPlayerLevel(cid) < configFireStormEvent.players.minLevel then
                    return doPlayerSendCancel(cid, 'You can\'t join to the event if you don\'t have a require '..configFireStormEvent.players.minLevel..' level.')
                elseif getTileInfo(getThingPos(cid)).protection ~= true then
                    return doPlayerSendCancel(cid, 'You can\'t join to the event if you aren\'t in protection zone.')
                elseif exhaustion.check(cid, configFireStormEvent.storages.exhaust) ~= false then
                    return doPlayerSendCancel(cid, 'You must wait '..exhaustion.get(cid, configFireStormEvent.storages.exhaust)..' seconds to use this command again.')
                end

                if param == 'join' then
                    if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then
                        return doPlayerSendCancel(cid, 'You have arleady joined to event. Wait patiently for start.')
                    elseif doCountPlayersFireStormEvent() == configFireStormEvent.players.max then
                        return doPlayerSendCancel(cid, 'Max players in the event have been reached.')
                    end
                 
                    doCreatureSetNoMove(cid, true)
                    doPlayerPopupFYI(cid, configFireStormEvent.text)
                    doCreatureSetStorage(cid, configFireStormEvent.storages.player, 1)
                    doAddCondition(cid, fight)
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined to Fire Storm Event. You can\'t move until event start. Wait patiently for the event start.')
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have joined to Fire Storm Event.')
                elseif param == 'leave' then
                    if getCreatureStorage(cid, configFireStormEvent.storages.player) <= 0 then
                        return doPlayerSendCancel(cid, 'You can\'t leave from the event if you don\'t join.')
                    end
                 
                    doCreatureSetNoMove(cid, false)
                    doRemoveCondition(cid, CONDITION_INFIGHT)
                    doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left from the Fire Storm Event.')
                end
             
                exhaustion.set(cid, configFireStormEvent.storages.exhaust, 5)
             
                return true
            end
        ]]>
    </talkaction>
 
    <talkaction words="!startfire" access="5" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")
            domodlib("lib_fire_storm_event")

            function onSay(cid, words, param)
                if getStorage(configFireStormEvent.storages.main) > 0 then
                    return doPlayerSendCancel(cid, 'Fire Storm Event is already running.')
                end
         
                doStartCountingFireStormEvent(0)
             
                for _, pid in ipairs(getPlayersOnline()) do
                    if getCreatureStorage(pid, configFireStormEvent.storages.player) > 0 then
                        doCreatureSetStorage(pid, configFireStormEvent.storages.player, -1)
                        doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
                    end
                end
             
                doSetStorage(configFireStormEvent.storages.joining, 1)
                addEvent(doStartFireStormEvent, configFireStormEvent.delayTime * 60 * 1000)
                return true
            end
        ]]>
    </talkaction>

    <globalevent name="Fire_Storm_Event_Days" interval="1000" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")
            domodlib("lib_fire_storm_event")

            local daysOpen = {}         
            for k, v in pairs(configFireStormEvent.days) do
                table.insert(daysOpen, k)
            end
         
            function onThink(interval)
                if isInArray(daysOpen, os.date('%A')) then
                    if isInArray(configFireStormEvent.days[os.date('%A')], os.date('%X', os.time())) then
                        if getStorage(configFireStormEvent.storages.joining) ~= 1 then
                            doStartCountingFireStormEvent(0)
                         
                            for _, pid in ipairs(getPlayersOnline()) do
                                if getCreatureStorage(pid, configFireStormEvent.storages.player) > 0 then
                                    doCreatureSetStorage(pid, configFireStormEvent.storages.player, -1)
                                    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)
                                end
                            end
                         
                            doSetStorage(configFireStormEvent.storages.joining, 1)
                            addEvent(doStartFireStormEvent, configFireStormEvent.delayTime * 60 * 1000)
                        end
                    end
                end
                return true
            end
        ]]>
    </globalevent>

    <event type="statschange" name="Fire_Storm_Event_Dead" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")

            function onStatsChange(cid, attacker, type, combat, value)
                if type == 1 and getCreatureHealth(cid) <= value then
                    if isInRange(getThingPos(cid), configFireStormEvent.room.from, configFireStormEvent.room.to) then
                        doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
                        doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
                        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You loss.')
                        return false
                    end
                end
                return true
            end
        ]]>
    </event>
 
    <event type="login" name="Fire_Storm_Event_Login" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")
     
            function onLogin(cid)
                if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then
                    doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)
                    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
                    doCreatureSetNoMove(cid, false)
                    doRemoveCondition(cid, CONDITION_INFIGHT)
                end

                registerCreatureEvent(cid, 'Fire_Storm_Event_Dead')
                return true
            end
        ]]>
    </event>
 
    <globalevent name="Fire_Storm_Event_Start" type="startup" event="script">
        <![CDATA[
            domodlib("config_fire_storm_event")

            function onStartup()
                doSetStorage(configFireStormEvent.storages.main, -1)
                doSetStorage(configFireStormEvent.storages.joining, -1)
                return true
            end
        ]]>
    </globalevent>
</mod>

#8 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 2:34 pm

Camilooh


Miembro
Gracias , me marca un error

sqlite3_prepare_v2(): SQLITE ERROR: no such table: events (INSERT INTO "events" ("event_name", "winner_name", "won_item", "time_win") VALUES ("Fire", "Ckamis", "norseman doll", -1)

#9 Re: Pedido Firestorm Event 8.6 el Dom Mar 15, 2015 3:14 pm

[VIP] rafael


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Gracias , me marca un error

sqlite3_prepare_v2(): SQLITE ERROR: no such table: events (INSERT INTO "events" ("event_name", "winner_name", "won_item", "time_win") VALUES ("Fire", "Ckamis", "norseman doll", -1)

por eso dije k tenia error necesito que un bien scripter lo repare para postearlo en BT

#10 Re: Pedido Firestorm Event 8.6 el Mar Mar 17, 2015 2:57 pm

Camilooh


Miembro
Belero arreglalo xd

#11 Re: Pedido Firestorm Event 8.6 el Mar Mar 17, 2015 3:06 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Belero arreglalo xd
De base de datos no tengo ni p... idea, pero creo que...

...para sqlite: [Tienes que estar registrado y conectado para ver este vínculo]

...para mysql: [Tienes que estar registrado y conectado para ver este vínculo]

OpenTibia se trata de simple y llanamente: buscar



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#12 Re: Pedido Firestorm Event 8.6 el Mar Mar 17, 2015 4:17 pm

Camilooh


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Belero arreglalo xd
De base de datos no tengo ni p... idea, pero creo que...


...para sqlite: [Tienes que estar registrado y conectado para ver este vínculo]

...para mysql: [Tienes que estar registrado y conectado para ver este vínculo]

OpenTibia se trata de simple y llanamente: buscar

Me referia a q el evento al decir !fire joim te deja dnd estas y no te puedes mover ... yo quiero q al decir ese comando te mande directo al events y te puedas mover

#13 Re: Pedido Firestorm Event 8.6 el Mar Mar 17, 2015 4:30 pm

Anyone


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Belero arreglalo xd
De base de datos no tengo ni p... idea, pero creo que...


...para sqlite: [Tienes que estar registrado y conectado para ver este vínculo]

...para mysql: [Tienes que estar registrado y conectado para ver este vínculo]

OpenTibia se trata de simple y llanamente: buscar

Me referia a q el evento al decir !fire joim te deja dnd estas y no te puedes mover ... yo quiero q al decir ese comando te mande directo al events y te puedas mover

Camilooh si leyeras  todo el mod escontrarias esta parte :C
Código:
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined to Fire Storm Event. You can\'t move until event start. Wait patiently for the event start.')

Dice (Traducido): Te has unido a Fire Storm Event. No te podras mover hasta que inice el evento. (o algo asi)
por ese motivo no te puedes mover  hasta q inicie el evento  espero aclarar tu duda :c

#14 Re: Pedido Firestorm Event 8.6 el Mar Mar 17, 2015 5:58 pm

Camilooh


Miembro
Pero en otros server te lleva altiro al evento y te puedes mover en esa zona de evento hasta que empieze

#15 Re: Pedido Firestorm Event 8.6 el Jue Mar 19, 2015 3:29 am

OwNeR


Miembro
si quieres que se pueda mover
busca esto

doCreatureSetNoMove(cid, true)

q es loq hace q no te muevas xDD
cambienle a false y ya

https://www.facebook.com/KileganOts/

#16 Re: Pedido Firestorm Event 8.6 el Jue Mar 19, 2015 6:01 am

Camilooh


Miembro
Y para q te lleve a la zona de evento altiro ?

#17 Re: Pedido Firestorm Event 8.6 Hoy a las 8:47 pm

Contenido patrocinado


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.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .