• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] SNOWBAL EVENT TIBIA

    Compartir:

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

    1default [Sistema] SNOWBAL EVENT TIBIA el Jue Dic 08, 2016 10:29 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface

    bueno aqui les traigo un evento que se lllama snow ball o guera con bolas de nieves el evento trata de atacar a tu oponen te con bolas de nieves el que tiene mas puntuacion  gana obvio que es el que a pegado mas con bolas de nieve.

    [Sistema] SNOWBAL EVENT TIBIA Ymmrwk10

    sin mas preangulos aqui les dejo el evento

    data/actions/actions.xml


    Código:
    <action actionid="7900" event="script" value="snowballaction.lua" />

    luego nos vamos a :

    data/actions/scripts

    copiamos cualquier archivo y renombramos por snowballaction.lua y pegamos esto dentro:

    Código:
    function onUse(cid, item, frompos, item2, topos)
    if item.actionid == 7900 then
     if(SBW_AMMOINFI) then
     doPlayerSendTextMessage(cid, 27, "as bolas de neve sao infinitas, nao ha necessidade que voce compre-as.")
     else
     if (getPlayerStorageValue(cid, SBW_SCORE) > 0) and (getPlayerStorageValue(cid, SBW_AMMO) < 30) then
     doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1)
     doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)+SBW_AMMOBUY)
     doPlayerSendTextMessage(cid, 27, "Voce trocou " .. SBW_AMMOBUY .. "x bolas de neve por 1 ponto de placar.")
     doSendMagicEffect(getCreaturePosition(cid),4)
     else
     doPlayerSendTextMessage(cid, 27, "Voce nao possui pontos de jogo o suficiente ou ja esta carregando muitas bolas de neve.")                      
     end
     end
    end
    end

    ahora nos vamos a:

    data/talkactions/talkactions.xml

    Código:
    <talkaction words="!snowball" event="script" value="snowballtalk.lua"/>

    luego nos vamos a:

    data/talkactions/scripts

    copiamos cualquier archivo y renombramos por snowballtalk.lua y pegamos esto dentro

    Código:
    function onSay(cid, words, param, channel)
    local k = string.explode(param, ",")
    if(k[1] ~= nil) then
     if(string.upper(k[1]) == 'INFO') then
     local score = {}
     local output =  "Voce tem " .. getPlayerStorageValue(cid, SBW_SCORE) .. " pontos.\nVoce tem "..getPlayerStorageValue(cid, SBW_AMMO).."x municoes.\n------------------\nO maior matador:\n"
     for _, pid in ipairs(getPlayersOnline()) do
     if getPlayerStorageValue(pid, SBW_INEVENT) then
     table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
     end
     end
     local lx = table.getn(score)
     if(lx > 3) then lx = 3 end
     table.sort(score, function(a, b) return a[2] > b[2] end)
     for k = 1,lx do
     output = output .. k..". "..score[k][1] .." [".. score[k][2] .."].\n"
     end
     doPlayerPopupFYI(cid, output)
     end
    if (string.upper(k[1]) == 'ATIRAR') then
     if(getPlayerStorageValue(cid, SBW_INEVENT) == 1) and not getTileInfo(getThingPos(cid)).protection then
     if getPlayerStorageValue(cid, SBW_EXAUSTHED) <= 1 then
     if(getPlayerStorageValue(cid, SBW_AMMO) > 0) then
     if SBW_STATUS == 'on' then
     if(SBW_AMMOINFI == false) then
     doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)-1)
     end
     doPlayerSetStorageValue(cid, SBW_EXAUSTHED, 2)
     lineAnimation(getPlayerLookDirection(cid),getCreaturePosition(cid),12,cid,1,0,1,0,0,0,1,0)
     addEvent(doPlayerSetStorageValue, SBW_SHOOTEXAUSTHED, cid, SBW_EXAUSTHED, 1)
     if (getPlayerStorageValue(cid, SBW_AMMO) ~= 1) then
     doPlayerSendTextMessage(cid, 27, "Restam "..getPlayerStorageValue(cid, SBW_AMMO).."x bolas de neve.")
     else
     doPlayerSendTextMessage(cid, 27, "Usando sua ultima bola de neve, recarregue.")
     end
     end
     else
     doPlayerSendCancel(cid, "Voce esta sem bolas de neve, recarregue no centro do campo ou mate um inimigo.")
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)    
     end
     else
     doPlayerPopupFYI(cid, "Acalme-se voce deve esperar para atirar novamente.")
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
     return false
     end
     else
     doPlayerPopupFYI(cid, "Voce precisa estar dentro evento ou fora da pz.")
     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
     end
    end
    end
    return true
    end
     
     
                    function lineAnimation(lookDir,playerPos,effect,cid,fvar,fpos,ffound,fposV,fcheck,fvcid,floopCounter,fvpid, name)
                    local var = fvar
                    local pos = fpos
                    local found = ffound
                    local posV = fposV
                    local check = fcheck
                    local vcid = fvcid
                    local loopCounter = floopCounter
                    local vpid = fvpid
                    local storage = SBW_EXAUSTHED
                            if var < 2 then
                                    vcid = cid
                            end
                            pos = playerPos
                            if not isInWallArray(convert(lookDir,pos)) then--isInWallArray({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z}) then --isInArray(t.onShoot.misc.walls_id, getThingfromPos({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z, stackpos=0}).itemid) then
                                    doSendDistanceShoot(pos, convert(lookDir,pos),effect)
                                    pos = convert(lookDir,pos)
                                    var=var+1
                                    posV = convertV(lookDir,playerPos)
                                    for _, pid in ipairs(getPlayersOnline()) do
                                            if (getCreaturePosition(pid).x == pos.x and getCreaturePosition(pid).y == pos.y and getCreaturePosition(pid).z == pos.z) then
                                                    --if loopCounter > 2 then
                                                    vpid = pid
                                                    --end
                                                    if (vpid ~= vcid) then
                                                            if var > 2 then
                                                                    if (getCreaturePosition(pid).x == posV.x and getCreaturePosition(pid).y == posV.y and getCreaturePosition(pid).z == posV.z) then
                                                                            killPlayer(pid,pos,getCreatureName(vcid))
                                                                            if (lookDir == 0) or (lookDir == 2) then
                                                                                    var = 6
                                                                            else
                                                                                    var = 8
                                                                            end
                                                                    end
                                                            end
                                                            killPlayer(pid,pos,vcid)
                                                            if (lookDir == 0) or (lookDir == 2) then
                                                                    var = 6
                                                            else
                                                                    var = 8
                                                            end
                                                    end
                                            end
                                            loopCounter = loopCounter +1
                                    end    
                                    if (lookDir == 0) or (lookDir == 2) then
                                            if var ~= 6 then
                                                    addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid)
                                            else
                                                    var = 1
                                            end
                                    else
                                            if var ~= 8 then
                                                    addEvent(lineAnimation,  SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid)
                                            else
                                                    var = 1
                                            end
                                    end
                            else
                                    doSendMagicEffect(convert(lookDir,pos),2)
                                    var = 1
                            end
                    end
     
                    local ret = {}
                    function convert(lookDir,pos)
                    local positions = {
                            [0] = {x = pos.x, y = pos.y-1, z = pos.z},
                            [1] = {x = pos.x+1, y = pos.y, z = pos.z},
                            [2] = {x = pos.x, y = pos.y+1, z = pos.z},
                            [3] = {x = pos.x-1, y = pos.y, z = pos.z}
                            }
                            ret = positions[lookDir]
                    return ret
                    end
     
     
                    local ret = {}
                    function convertV(lookDir,pos)
                    local positions = {
                            [0] = {x = pos.x, y = pos.y+1, z = pos.z},
                            [1] = {x = pos.x-1, y = pos.y, z = pos.z},
                            [2] = {x = pos.x, y = pos.y-1, z = pos.z},
                            [3] = {x = pos.x+1, y = pos.y, z = pos.z}
                            }
                            ret = positions[lookDir]
                    return ret
                    end
     
     function isInWallArray(pos)
                            for k = 0, table.getn(SBW_WALLSID) do
                                    if getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k] then --this doesn't even make sense but tried other ways and it gave errors, so meh 2lazy2search
     return true    
                                    end
                            end
                            return false
                    end
                                  
                    function killPlayer(cid, pos, killer)
                        local t_l = SBW_AREA[1]
     local b_r = SBW_AREA[2]
     local posti = {}
     local isPossibleToTeleportPlayer = false
     while (isPossibleToTeleportPlayer == FALSE) do
     posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
     if isInWallArray(posti) == FALSE then
     isPossibleToTeleportPlayer = TRUE
     end
     end
     doTeleportThing(cid, posti)
     doSendMagicEffect(pos,2)
     doSendMagicEffect(posti,6)
     doSendAnimatedText(pos, ""..getCreatureName(killer).." ", 55)
     doPlayerSendTextMessage(cid, 27, "Voce morreu para "..getCreatureName(killer)..".")
     doPlayerSetStorageValue(killer, SBW_SCORE, getPlayerStorageValue(killer, SBW_SCORE)+SBW_POINTSKILL)
     doPlayerSendTextMessage(killer, 27, "You've killed "..getCreatureName(cid)..".")
     if SBW_LOSTSCORE then
     doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1)
     end
     if SBW_RESETAMMO then
     doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO)
     end
                    end
                                                  
                    


    ahora nos vamos a:

    data/globalevents/globalevents.xml

    <globalevent name="StartSBW" time="19:00" event="script" value="snowballglobalevent.lua"/>


    ahora nos vamos a:

    data/globalevents/scripts

    copias cualquier archivo y renombras por snowballglobalevent.lua y pegas esto dentro


    Código:
    function onTime()
     
    function isInWallArray(pos)
        for k = 0, table.getn(SBW_WALLSID) do
            if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
     return true    
            end
        end
     return false
    end

                  
    function endsnowball()
     local score = {}
     if not SBW_USEWAIT then
     doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
     end
     for _, pid in ipairs(getPlayersOnline()) do
     if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
     table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
     doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSetStorageValue(pid, SBW_AMMO, 0)
     doTeleportThing(pid, SBW_TPEND)
     end
     end
     table.sort(score, function(a, b) return a[2] > b[2] end)
     --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
     local hora = os.date("%X")
     local data = os.date("%x")
     if table.getn(score) > 0 then
     if SBW_ADDREWARD then
     for _, pid in ipairs(getPlayersOnline()) do
     if getCreatureName(pid) == score[1][1] then
     for op,ad in pairs(SBW_REWARDS) do
     doPlayerAddItem(pid, ad[1], ad[2])
     end
     break
                    end
                end
            end
     db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");")  
     db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";")
            doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.")
        end
     return true
    end

    local t_l = SBW_AREA[1]
    local b_r = SBW_AREA[2]

    function moveToEvent()
    for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
     local posti = {}
     local isPossibleToTeleportPlayer = false
     while (isPossibleToTeleportPlayer == FALSE) do
     posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
     if (isInWallArray(posti) == FALSE) then
     isPossibleToTeleportPlayer = TRUE
     end
     end
     doTeleportThing(pid, posti)
     doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
     doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")              
     end
    end
    doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    addEvent(endsnowball, SBW_DURATION*1000*60)
    doBroadcastMessage(SBW_MSGSTART)
    end

    local time = os.date("*t")
    local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
    local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)
    if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
     doBroadcastMessage(SBW_MSGWARNING)
     if SBW_USEWAIT then
     addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
     if (timeopen2 ~= timeopen1) then
     addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
     end
            addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
            doCreateTeleport(1387, SBW_TPGO, SBW_TP)
        else
     if SBW_TFS == "0.3" then
     doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
     else
     doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
            end
            if(SBW_DURATION > 0) then
                addEvent(endsnowball, SBW_DURATION*1000*60)
            end
        end
    end
    return true
    end

    nos vamos a:

    data/movements/movements.xml

    Código:
    <movevent type="StepIn" actionid ="2880" event="script" value="snowballmovement.lua"/>


    luego nos vamos a:

    data/movements/scripts

    copian cualquier archivo y renombran por snowballglobalmovement.lua y pegan esto dentro


    Código:
    function onStepIn(cid, item, pos)
     doTeleportThing(cid, SBW_TPGO)
     doBroadcastMessage("[SNOWBALL WAR] O " ..getCreatureName(cid).. " player esta participando do evento snowball.", MESSAGE_STATUS_CONSOLE_ORANGE)
     doPlayerSetStorageValue(cid, SBW_INEVENT, 1)
     doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO)
     doPlayerSetStorageValue(cid, SBW_SCORE, 0)          
    end


    ahora nos vamos a:

    data/lib

    copiamos cualquier archivno y renombramos por SBW.lua y pegamos esto dentro


    Código:
    -- This script is part of Snow Ball War Event Tibiaking Absolute
    --
    -- This program is free software: you can redistribute it and/or modify
    -- it under the terms of the GNU General Public License as published by
    -- the Free Software Foundation, either version 3 of the License, or
    -- (at your option) any later version.
    --
    -- This program is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -- GNU General Public License for more details.
    --
    -- You should have received a copy of the GNU General Public License
    -- along with this program.  If not, see <http://www.gnu.org/licenses/>.

    -- //

    -- POSIÇÕES IMPORTANTES
    SBW_AREA = {{x = 1214, y = 1205, z = 7}, {x = 1251, y = 1242, z = 7}}-- AREA DO EVENTO | Canto superior esquerdo / inferior direito
    SBW_WAITROOM = {{x = 1229, y = 1220, z = 6}, {x = 1235, y = 1226, z = 6}} -- AREA DE ESPERA | Canto superior esquerdo / inferior direito
    SBW_TP = {x = 165, y = 45, z = 7} -- local onde teleport sera criado (entrada de jogadores)
    SBW_TPGO = {x = 1232, y = 1223, z = 6} -- local onde teleport vai levar (saida de jogadores)
    SBW_TPEND = {x = 155, y = 54, z = 7} -- local onde serao teleport ao final do evento
    SBW_GERADOR = {x = 1232, y = 1223, z = 7} -- local onde gerador vai ficar

    -- CONFIGURAÇÕES DO EVENTO
    SBW_DAYS = {1,2,3,4,5,6,7} -- dias de semana que vai abrir
    SBW_DURATION = 10 -- duração do evento em minutos
    SBW_POINTSKILL = 1 -- pontos de jogo por morte
    SBW_AMMOBUY = 20 -- quantia de munições compradas por cada ponto
    SBW_MINAMMO = 50 -- munição inicial dos jogadores
    SBW_TIMEWAIT = 3 -- tempo na sala de espera em minutos
    SBW_AMMOINFI = false
    SBW_LOSTSCORE = true
    SBW_RANDOMIZE = true
    SBW_RESETAMMO = true
    SBW_STARTAUTO = true
    SBW_USEWAIT = true

    --PREMIO DO EVENTO
    SBW_ADDREWARD = true
    SBW_REWARDS = {
     {6527,500},
     {2345,1}
     }


    -- // Não mexa daqui para baixo
    SBW_TFS = "0.4"

    -- STORAGES
    SBW_EXAUSTHED = 2455
    SBW_INEVENT = 2460
    SBW_SCORE = 2465
    SBW_AMMO = 2400


    SBW_WALLSID = {5324,7003,7021,6712,7023,7002,6713,6714,6869,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6707,6708,6709,6710,6711,2698,2697,7020,6719,6720,6721,6722,6723,6724,6725,6726,6727,6761,6762,6768,6769,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4664,4665,4666,7008,7009,7010,7011,8239,7004,7005,7006,7007,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,7022}
    SBW_BALLSPEED = 150
    SBW_SHOOTEXAUSTHED = 1000
    SBW_SHOOTDIR = 0                            
    SBW_STATUS = 'on'

    -- MENSAGENS
    SBW_MSGWARNING = "[SNOWBALL WAR] Abriu o teleport de ingresso para o evento, para participar se dirija ate o templo do servidor."
    SBW_MSGSTART = "[SNOWBALL WAR] O teleport foi removido e o evento foi iniciado, boa sorte a todos participantes."


    y en el php admin en nuestra base de datos ejecutamos estas dos tablas:

    Código:
    CREATE TABLE IF NOT EXISTS `snowballwar` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `score` int(11) NOT NULL,
      `data` varchar(255) NOT NULL,
      `hora` varchar(255) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

    Código:
    ALTER TABLE `players` ADD `sbw_points` int(11);


    link del mapa :
    [Tienes que estar registrado y conectado para ver este vínculo]


    y listo eso es todo



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    2default Re: [Sistema] SNOWBAL EVENT TIBIA el Sáb Dic 10, 2016 2:23 pm

    gzdiaz20

    gzdiaz20
    Miembro
    Miembro
    eso funciona para SERVER 8.60 CON DATA BASE SQLITE

    Ver perfil de usuario

    3default Re: [Sistema] SNOWBAL EVENT TIBIA el Sáb Dic 10, 2016 3:25 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:eso funciona para SERVER 8.60 CON DATA BASE SQLITE

    no amigo es mysql habria que transformar la tabla a sqlite



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    4default Re: [Sistema] SNOWBAL EVENT TIBIA el Sáb Dic 10, 2016 3:44 pm

    God Aries

    God Aries
    Miembro
    Miembro
    Woo este evento esta muy bueno para estas fechas q buen aporte Very Happy, para q versiones de tfs funciona?

    Ver perfil de usuario

    5default Re: [Sistema] SNOWBAL EVENT TIBIA el Sáb Dic 10, 2016 3:45 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Woo este evento esta muy bueno para estas fechas q buen aporte Very Happy, para q versiones de tfs funciona?

    si funciona en tfs



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    6default [Web] error al insertar codigo el Mar Jun 13, 2017 10:48 pm

    Me sale este error al insertar este código :
    Código:
    CREATE TABLE IF NOT EXISTS `snowballwar` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `score` int(11) NOT NULL,
      `data` varchar(255) NOT NULL,
      `hora` varchar(255) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



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

    porfa ayúdenme :v

    Ver perfil de usuario

    7default Re: [Sistema] SNOWBAL EVENT TIBIA el Miér Jun 14, 2017 12:31 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Me sale este error al insertar este código :
    Código:
    CREATE TABLE IF NOT EXISTS `snowballwar` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL,
      `score` int(11) NOT NULL,
      `data` varchar(255) NOT NULL,
      `hora` varchar(255) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



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

    porfa ayúdenme :v


    nose podra ejecutarla no es compatible con tu mysql



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    8default Re: [Sistema] SNOWBAL EVENT TIBIA el Dom Nov 05, 2017 10:49 am

    cimmeria

    cimmeria
    Miembro
    Miembro
    hola maya yo tengo un problema e puesto todo bien y cuando hace el tp para que entren los jugadores no entran a dentro del tp es decir como si  el tp no tubiera un destino haber si me puedes ayudar porfavor

    tengo algun error mas si me puedes ayudar me dices y te digo me gustaria tener este evento en funcionamiento para mi servidor y es la version de server la sulla

    Ver perfil de usuario http://sayayinz.ddns.net

    9default Re: [Sistema] SNOWBAL EVENT TIBIA el Dom Nov 05, 2017 5:13 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:hola maya yo tengo un problema e puesto todo bien y cuando hace el tp para que entren los jugadores no entran a dentro del tp es decir como si  el tp no tubiera un destino haber si me puedes ayudar porfavor

    tengo algun error mas si me puedes ayudar me dices y te digo me gustaria tener este evento en funcionamiento para mi servidor y es la version de server la sulla

    que protocolo y version de sever usas



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    10default Re: [Sistema] SNOWBAL EVENT TIBIA el Lun Nov 06, 2017 8:39 am

    cimmeria

    cimmeria
    Miembro
    Miembro
    [th]Server:[/th]
    The Forgotten Server 0.4_SVN
    es un 8.6 e consegido areglar lo del tp te envia a la sala de espera pero no te envia al evento y no me deja lanzar las snowball

    Ver perfil de usuario http://sayayinz.ddns.net

    11default Re: [Sistema] SNOWBAL EVENT TIBIA el Lun Nov 06, 2017 10:41 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:[th]Server:[/th]
    The Forgotten Server 0.4_SVN
    es un 8.6 e consegido areglar lo del tp te envia a la sala de espera pero no te envia al evento y no me deja lanzar las snowball

    te marca algun error en la consola tiene que mostrar algun error aunque sea



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    12default Re: [Sistema] SNOWBAL EVENT TIBIA el Lun Nov 06, 2017 5:43 pm

    cimmeria

    cimmeria
    Miembro
    Miembro
    no nada de verdad pero seguire probando haber por que sino sale error es buena señal

    Ver perfil de usuario http://sayayinz.ddns.net

    13default Re: [Sistema] SNOWBAL EVENT TIBIA el Miér Nov 29, 2017 8:15 pm

    No tiene limite de players ni devuelve a los players a el templo cuando no esta la cantidad de gente necesaria

    Ver perfil de usuario

    14default Re: [Sistema] SNOWBAL EVENT TIBIA el Miér Nov 29, 2017 9:08 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:No tiene limite de players ni devuelve a los players a el templo cuando no esta la cantidad de gente necesaria


    SBW_MINAMMO = 50 -- munição inicial dos jogadores

    SBW_TPEND = {x = 155, y = 54, z = 7} -- local onde serao teleport ao final do evento


    ahi estan la configuraciones



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    15default Re: [Sistema] SNOWBAL EVENT TIBIA el Jue Nov 30, 2017 7:47 am

    maya el primero
    SBW_MINAMMO = 50 -- munição inicial dos jogadores
    es la municion minima con la que los players ingresan a el evento es algo asi como la municion inicial

    SBW_TPEND = {x = 155, y = 54, z = 7}
    y este segundo es para cuando el evento termina y como no hay limite de players si hay un player o dos igual se ejecuta el evento y luego de el tiempo de duracion del evento que es 10 minutos lo envian a esa posicion pero no hay algo que diga

    deben haber 4 player minimo si no hay entonces enviar a los players que hayan entrado a xxx xxx x position

    Ver perfil de usuario

    16default Re: [Sistema] SNOWBAL EVENT TIBIA el Jue Nov 30, 2017 12:23 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:maya el primero
    SBW_MINAMMO = 50 -- munição inicial dos jogadores
    es la municion minima con la que los players ingresan a el evento es algo asi como la municion inicial

    SBW_TPEND = {x = 155, y = 54, z = 7}
    y este segundo es para cuando el evento termina y como no hay limite de players si hay un player o dos igual se ejecuta el evento y luego de el tiempo de duracion del evento que es 10 minutos lo envian a esa posicion pero no hay algo que diga

    deben haber 4 player minimo si no hay entonces enviar a los players que hayan entrado a xxx xxx x position

    prueba le hice unas modificaciones


    Código:
    function onTime()
     
    function isInWallArray(pos)
        for k = 0, table.getn(SBW_WALLSID) do
            if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
     return true   
            end
        end
     return false
    end

                 
    function endsnowball()
     local score = {}
     if not SBW_USEWAIT then
     doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
     end
     for _, pid in ipairs(getPlayersOnline()) do
     if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
     table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
     doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSetStorageValue(pid, SBW_AMMO, 0)
     doTeleportThing(pid, SBW_TPEND)
     end
     end
     table.sort(score, function(a, b) return a[2] > b[2] end)
     --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
     local hora = os.date("%X")
     local data = os.date("%x")
     if table.getn(score) > 0 then
     if SBW_ADDREWARD then
     for _, pid in ipairs(getPlayersOnline()) do
     if getCreatureName(pid) == score[1][1] then
     for op,ad in pairs(SBW_REWARDS) do
     doPlayerAddItem(pid, ad[1], ad[2])
     end
     break
                    end
                end
            end
     db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") 
     db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";")
            doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.")
        end
     return true
    end

    local t_l = SBW_AREA[1]
    local b_r = SBW_AREA[2]

    function moveToEvent()
    for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
     local posti = {}
     local isPossibleToTeleportPlayer = false
     while (isPossibleToTeleportPlayer == FALSE) do
     posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
     if (isInWallArray(posti) == FALSE) then
     isPossibleToTeleportPlayer = TRUE
     end
     end
     doTeleportThing(pid, posti)
     doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
     doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")             
     end
    end
    doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    addEvent(endsnowball, SBW_DURATION*1000*60)
    doBroadcastMessage(SBW_MSGSTART)
    end

    local time = os.date("*t")
    local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
    local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)





    local c = {
        limit = 5, -- minimo de player para el evento.
        msgCancel = 'evento cerrado por falta de player.', -- 'Mensaje' cuando ya se haya llenado el límite de jugadores anterior.

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada de la ESQUINA SUPERIOR IZQUIERDA del área de espera.
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada de la ESQUINA INFERIOR DERECHA del área de espera.
        },

      }

     local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end


    if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
     doBroadcastMessage(SBW_MSGWARNING)
     if SBW_USEWAIT then
     addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
     if (timeopen2 ~= timeopen1) then
     addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
     end
     
     
     
      if table.getn(getPlayersInArea(c.area.From, c.area.To)) < c.limit then
     
            addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
            doCreateTeleport(1387, SBW_TPGO, SBW_TP)
          else
              doPlayerSendCancel(cid, c.msgCancel)
              endsnowball()
            end
          
          
          
          
          
        else
     if SBW_TFS == "0.3" then
     doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
     else
     doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
            end
            if(SBW_DURATION > 0) then
                addEvent(endsnowball, SBW_DURATION*1000*60)
            end
        end
    end
    return true
    end


    configuracion

    Código:
    local c = {
        limit = 5, -- minimo de player para el evento.
        msgCancel = 'evento cerrado por falta de player.', -- 'Mensaje' cuando ya se haya llenado el límite de jugadores anterior.

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada de la ESQUINA SUPERIOR IZQUIERDA del área de espera.
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada de la ESQUINA INFERIOR DERECHA del área de espera.
        },

      }

    espero y funcione



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    17default Solucion para limite de players el Vie Dic 01, 2017 5:40 pm

    Bueno primero que nada dar las gracias a adm maya que fue el que resolvio esto al igual que siempre xdd

    ahora van a data/globalevents/snowballglobalevent
    y remplazan por esto
    Código:
    function onTime()
     
    function isInWallArray(pos)
        for k = 0, table.getn(SBW_WALLSID) do
            if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
     return true   
            end
        end
     return false
    end

                 
    function endsnowball()
     local score = {}
     if not SBW_USEWAIT then
     doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
     end
     for _, pid in ipairs(getPlayersOnline()) do

     if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
     table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
     doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSetStorageValue(pid, SBW_AMMO, 0)
    doTeleportThing(pid, SBW_TPEND)
     end
     end
     table.sort(score, function(a, b) return a[2] > b[2] end)
     --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
     local hora = os.date("%X")
     local data = os.date("%x")
     if table.getn(score) > 0 then
     if SBW_ADDREWARD then
     for _, pid in ipairs(getPlayersOnline()) do
     if getCreatureName(pid) == score[1][1] then
     for op,ad in pairs(SBW_REWARDS) do
     doPlayerAddItem(pid, ad[1], ad[2])
     end
     break
                    end
                end
            end
     db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") 
     db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";")
            doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.")
        end
     return true
    end

    local t_l = SBW_AREA[1]
    local b_r = SBW_AREA[2]

    function moveToEvent()


    local c = {
        limit = 5, -- minimo de player para el evento.
        msgCancel = '[SNOWBALL WAR] Ha sido cancelado por falta de players', -- 'Mensaje' cuando ya se haya llenado el límite de jugadores anterior.

        area = {
          From = {x = 1366, y = 1526, z = 6}, -- Coordenada de la ESQUINA SUPERIOR IZQUIERDA del área de espera.
          To = {x = 1372, y = 1532, z = 6}, -- Coordenada de la ESQUINA INFERIOR DERECHA del área de espera.
        },

      }

     local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end



    local temple = {x = 1004, y = 1016, z = 7} -------> donde lo va teleportar cuando se cancele


    local function doRemoveRunners()
        for index, creature in ipairs(getPlayersOnline()) do
            if #getPlayersInArea(c.area.From, c.area.To) > 0 then
                    doTeleportThing(creature, temple)
            end
        end
        return true
    end

    if table.getn(getPlayersInArea(c.area.From, c.area.To)) >= c.limit then
    for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
     local posti = {}
     local isPossibleToTeleportPlayer = false
     while (isPossibleToTeleportPlayer == FALSE) do
     posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
     if (isInWallArray(posti) == FALSE) then
     isPossibleToTeleportPlayer = TRUE
     end
     end
     doTeleportThing(pid, posti)
     doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
     doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")             
     end
    end

    doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    addEvent(endsnowball, SBW_DURATION*1000*60)
    doBroadcastMessage(SBW_MSGSTART)
    else
              doBroadcastMessage(c.msgCancel)
              endsnowball()
           doRemoveRunners()

            doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
           
           
            end
    end
     


    local time = os.date("*t")
    local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
    local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)








    if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
     doBroadcastMessage(SBW_MSGWARNING)
     if SBW_USEWAIT then
     addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
     if (timeopen2 ~= timeopen1) then
     addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
     end
     
     
     
     

          
            addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
            doCreateTeleport(1387, SBW_TPGO, SBW_TP)
          
          
          
          
          
        else
     if SBW_TFS == "0.3" then
     doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
     else
     doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
            end
            if(SBW_DURATION > 0) then
                addEvent(endsnowball, SBW_DURATION*1000*60)
            end
        end
    end
    return true
    end


    luego deben ir a data/lib/50-functions
    y añadir esta funcion
    Código:
    function isCreatureInArea(fromPos, toPos)
        local t = {}
        for z=fromPos.z, toPos.z do
            for y=fromPos.y, toPos.y do
                for x=fromPos.x, toPos.x do
                    local v = getTopCreature({x=x,y=y,z=z})
                    if v.itemid == 1 and table.find({1,2,3}, v.type) then
                        table.insert(t, v.uid)
                    end
                end
            end
        end
        return t
    end

    y luego reinician su servidor y ya esta

    Ver perfil de usuario

    18default Re: [Sistema] SNOWBAL EVENT TIBIA el Jue Ene 25, 2018 1:32 pm

    zerok

    zerok
    Nuevo Miembro
    Nuevo Miembro
    Tengo un problema al crear el teleport automatico, se crea sin problemas pero le falta el actionid 2880 para el registro ya que al ingresar al teleport no se registran los players

    Foto 1
    [Sistema] SNOWBAL EVENT TIBIA Prueba10

    Foto 2
    [Sistema] SNOWBAL EVENT TIBIA Prueba11

    Ver perfil de usuario

    19default Re: [Sistema] SNOWBAL EVENT TIBIA el Jue Ene 25, 2018 1:41 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Tengo un problema al crear el teleport automatico, se crea sin problemas pero le falta el actionid 2880 para el registro ya que al ingresar al teleport no se registran los players

    Foto 1
    [Sistema] SNOWBAL EVENT TIBIA Prueba10

    Foto 2
    [Sistema] SNOWBAL EVENT TIBIA Prueba11



    aqui tienes prueba


    data/globalevents/snowballglobalevent

    Código:
    function onTime()
     
    function isInWallArray(pos)
        for k = 0, table.getn(SBW_WALLSID) do
            if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
     return true   
            end
        end
     return false
    end

                 
    function endsnowball()
     local score = {}
     if not SBW_USEWAIT then
     doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
     end
     for _, pid in ipairs(getPlayersOnline()) do
     if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
     table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
     doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSetStorageValue(pid, SBW_AMMO, 0)
     doTeleportThing(pid, SBW_TPEND)
     end
     end
     table.sort(score, function(a, b) return a[2] > b[2] end)
     --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
     local hora = os.date("%X")
     local data = os.date("%x")
     if table.getn(score) > 0 then
     if SBW_ADDREWARD then
     for _, pid in ipairs(getPlayersOnline()) do
     if getCreatureName(pid) == score[1][1] then
     for op,ad in pairs(SBW_REWARDS) do
     doPlayerAddItem(pid, ad[1], ad[2])
     end
     break
                    end
                end
            end
     db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") 
     db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";")
            doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.")
        end
     return true
    end

    local t_l = SBW_AREA[1]
    local b_r = SBW_AREA[2]

    function moveToEvent()
    for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
     local posti = {}
     local isPossibleToTeleportPlayer = false
     while (isPossibleToTeleportPlayer == FALSE) do
     posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
     if (isInWallArray(posti) == FALSE) then
     isPossibleToTeleportPlayer = TRUE
     end
     end
     doTeleportThing(pid, posti)
     doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
     doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
     doPlayerSetStorageValue(pid, SBW_SCORE, 0)
     doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")             
     end
    end
    doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
    addEvent(endsnowball, SBW_DURATION*1000*60)
    doBroadcastMessage(SBW_MSGSTART)
    end

    local time = os.date("*t")
    local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
    local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)
    if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
     doBroadcastMessage(SBW_MSGWARNING)
     if SBW_USEWAIT then
     addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
     if (timeopen2 ~= timeopen1) then
     addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
     end
            addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
            local teleport = doCreateTeleport(1387, SBW_TPGO, SBW_TP)
           
            doSetItemActionId(teleport.uid, 2880)
           
           
        else
     if SBW_TFS == "0.3" then
     doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
     else
     doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
            end
            if(SBW_DURATION > 0) then
                addEvent(endsnowball, SBW_DURATION*1000*60)
            end
        end
    end
    return true
    end



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    20default Re: [Sistema] SNOWBAL EVENT TIBIA el Lun Dic 10, 2018 4:06 pm

    Hola God Maya, necesitu tu ayuda, quiero que en ves que el evento se tenga que esperar una hora determinada. El mismo God ejecute un comando y se abra el evento, por favor

    Ver perfil de usuario

    21default Re: [Sistema] SNOWBAL EVENT TIBIA el Lun Dic 10, 2018 4:30 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola God Maya, necesitu tu ayuda, quiero que en ves que el evento se tenga que esperar una hora determinada. El mismo God ejecute un comando y se abra el evento, por favor


    ahi tiene el talkactions

    Código:

            function onSay(cid, words, param, channel)
           
            function isInWallArray(pos)
                for k = 0, table.getn(SBW_WALLSID) do
                    if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then
            return true   
                    end
                end
            return false
            end

                         
            function endsnowball()
            local score = {}
            if not SBW_USEWAIT then
            doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
            end
            for _, pid in ipairs(getPlayersOnline()) do
            if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then
            table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)})
            doPlayerSetStorageValue(pid, SBW_INEVENT, 0)
            doPlayerSetStorageValue(pid, SBW_SCORE, 0)
            doPlayerSetStorageValue(pid, SBW_AMMO, 0)
            doTeleportThing(pid, SBW_TPEND)
            end
            end
            table.sort(score, function(a, b) return a[2] > b[2] end)
            --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)]
            local hora = os.date("%X")
            local data = os.date("%x")
            if table.getn(score) > 0 then
            if SBW_ADDREWARD then
            for _, pid in ipairs(getPlayersOnline()) do
            if getCreatureName(pid) == score[1][1] then
            for op,ad in pairs(SBW_REWARDS) do
            doPlayerAddItem(pid, ad[1], ad[2])
            end
            break
                            end
                        end
                    end
            db.query("INSERT INTO `snowballwar`  VALUES ('', ".. db.escapeString(score[1][1]) ..  ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") 
            db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";")
                    doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.")
                end
            return true
            end

            local t_l = SBW_AREA[1]
            local b_r = SBW_AREA[2]

            function moveToEvent()
            for _, pid in ipairs(getPlayersOnline()) do
            if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then
            local posti = {}
            local isPossibleToTeleportPlayer = false
            while (isPossibleToTeleportPlayer == FALSE) do
            posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7)
            if (isInWallArray(posti) == FALSE) then
            isPossibleToTeleportPlayer = TRUE
            end
            end
            doTeleportThing(pid, posti)
            doPlayerSetStorageValue(pid, SBW_INEVENT, 1)
            doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO)
            doPlayerSetStorageValue(pid, SBW_SCORE, 0)
            doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.")             
            end
            end
            doRemoveItem(getTileItemById(SBW_TP, 1387).uid)
            addEvent(endsnowball, SBW_DURATION*1000*60)
            doBroadcastMessage(SBW_MSGSTART)
            end

            local time = os.date("*t")
            local timeopen1 = math.ceil(SBW_TIMEWAIT / 4)
            local timeopen2 = math.ceil(SBW_TIMEWAIT / 2)
            if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then
            doBroadcastMessage(SBW_MSGWARNING)
            if SBW_USEWAIT then
            addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!")
            if (timeopen2 ~= timeopen1) then
            addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!")
            end
                    addEvent(moveToEvent, SBW_TIMEWAIT*1000*60)
                    doCreateTeleport(1387, SBW_TPGO, SBW_TP)
                else
            if SBW_TFS == "0.3" then
            doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880)
            else
            doSetItemActionId(doCreateItem(1387, SBW_TP), 2880)
                    end
                    if(SBW_DURATION > 0) then
                        addEvent(endsnowball, SBW_DURATION*1000*60)
                    end
                end
            end
            return true
            end

    ya en talkactions.xml usas el comando que quieras



    [Sistema] SNOWBAL EVENT TIBIA YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    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.

    Temas Recomendados×+

       

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