Jump to content
Close
victor4312

GlobalEvent EVENTO SNOWBALL + PHP + MAPA

Recommended Posts

OLÁ GALERA HOJE VENHO TRAZER MAIS UM EVENTO PARA VOCÊS 

DESSA VEZ TRAGO O EVENTO SNOWBALL WAR

partida de guerra de bolas de neve. O objetivo principal do evento é derrubar o número máximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O top score points ao final da rodada será o vencedor.

 

Vamos para o evento!

va em data/actions/scripts e crie um arquivo chamado SBW.lua e cole isso dentro 

Citar

function onUse(cid, item, frompos, item2, topos)
if item.actionid == 7900 then
    if(SBW_AMMOINFI) then
        doPlayerSendTextMessage(cid, 27, "bolas de neve infinita, voce nao precisa comprar.")
    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 jogo.")
            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

agora em actions.xml adicione a tag 

Citar

<action actionid="7900" event="script" value="SBW.lua" />

em data/globalevents/scripts crie um arquivo chamado SBW.lua e cole isso dentro

Citar

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
                    doPlayerAddItem(pid, random_item, 1)
                    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 WAR] Foi encerrado, parabens ao jogador "..score[1][1].." que venceu o SnowBall 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

function onThink(interval, lastExecution)
local texts = {["GERADOR"] = {SBW_GERADOR, 55, TEXTCOLOR_ORANGE}}

for text, param in pairs(texts) do
    doSendAnimatedText(param[1], text, param[3])
    doSendMagicEffect(param[1], param[2])
end
return TRUE
end

agora em globalevents.xml adicione as seguintes tag 

Citar

<globalevent name="StartSBW" time="11:52:00" event="script" value="SBW.lua"/>
<globalevent name="AnimatedSBW" interval="1500" event="script" value="SBW.lua"/>

em data/lib crie um arquivo chamado SBW.lua e cole isso dentro 

Citar

-- This script is part of Snow Ball War
-- Copyright (C) 2016 
--
-- 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 = 942, y = 1100, z = 7}, {x = 991, y = 1146, z = 7}}-- AREA DO EVENTO | Canto superior esquerdo / inferior direito
SBW_WAITROOM = {{x = 964, y = 1119, z = 6}, {x = 970, y = 1125, z = 6}} -- AREA DE ESPERA | Canto superior esquerdo / inferior direito
SBW_TP = {x=1111, y=1103, z=7} -- local onde teleport sera criado (entrada de jogadores)
SBW_TPGO = {x=967, y=1122, z=6} -- local onde teleport vai levar (sala de espera)
SBW_TPEND = {x=1108, y=1101, z=7} -- local onde serao teleport ao final do evento
SBW_GERADOR = {x=967, y=1122, 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 = 2 -- duração do evento em minutos
SBW_POINTSKILL = 1 -- pontos de jogo por morte
SBW_AMMOBUY = 100 -- quantia de munições compradas por cada ponto
SBW_MINAMMO = 100 -- munição inicial dos jogadores
SBW_TIMEWAIT = 1 -- 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 = {2494, 2472, 2514, 2493, 2470, 2195, 2173, 2160}


-- // 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 da cidade principal."
SBW_MSGSTART = "[SNOWBALL WAR] O teleport foi removido e o evento foi iniciado, boa sorte a todos participantes."

agora em data/movements/scripts crie um arquivo chamado SBW.lua e cole isso dentro

Citar

function onStepIn(cid, item, pos)
    doTeleportThing(cid, SBW_TPGO)
    doBroadcastMessage("[SNOWBALL WAR] O " ..getCreatureName(cid).. " jogador ingressou no evento.", MESSAGE_STATUS_CONSOLE_ORANGE)                    
    doPlayerSetStorageValue(cid, SBW_INEVENT, 1)
    doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO)
    doPlayerSetStorageValue(cid, SBW_SCORE, 0)                                                                   
end

em movements.xml adicione a tag 

Citar

<movevent type="StepIn" actionid ="2880" event="script" value="SBW.lua"/>

agora em data/talkactions/scripts crie um arquivo chamado SBW.lua e cole isso dentro

Citar

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.")
                    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, "Voce nao pode atirar tao rapido.") 
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
            return false
        end
    else
        doPlayerPopupFYI(cid, "Voce precisa estar no evento ou fora do protection zone.") 
        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 foi morto por "..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
                                               
                

em talkactions.xml adicione a seguinte tag 

Citar

<talkaction words="!snowball" event="script" value="SBW.lua"/>

PRONTO PESSOAL EVENTO INSTALADO AGORA VAMOS AOS ITEMS FINAIS

irei disponibilizar o mapa para vocês deixarem o evento perfeito :)<3 

Citar

 

agora vá em sua database e execute a seguinte query

Citar

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=16 ;

ALTER TABLE `players` ADD `sbw_points` BIGINT( 255 ) NOT NULL DEFAULT '0';

 

para quem quer deixar seu site full completo trabalhando com o ot aqui disponibilizo o php com contador de vitorias do evento

Citar

<?php
    $consulta = $SQL->query('SELECT `name`,`score`,`data`, `hora` FROM `snowballwar` ORDER BY `id` DESC LIMIT 20;'); 
    $consulta2 = $SQL->query('SELECT * FROM `players` ORDER BY `sbw_points` DESC LIMIT 3;'); 
    $number_of_rows = 0; 
    
    $main_content .= '
        <center><h2>Evento Snowball War</h2></center>
        </br>
        <center>
Seus jogadores irao se divertir em uma emocionante partida de guerra de bolas de neve. O objetivo principal do evento e derrubar o numero maximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O top score points ao final da rodada sera o vencedor.
        </br></br>    
        <iframe style="border:1px solid black;"  width="560" height="315" src="https://www.youtube.com/embed/hpreUYM7rVI" frameborder="0" allowfullscreen></iframe>
        </center>
        </br>
        <div class="TableContainer">
            <div class="CaptionContainer">
            <div class="CaptionInnerContainer">
                <span class="CaptionEdgeLeftTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionBorderTop" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionVerticalLeft" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <div class="Text">Informacoes</div>
                <span class="CaptionVerticalRight" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <span class="CaptionBorderBottom" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionEdgeLeftBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
            </div>
        </div>
        
        <table class="Table1" cellpadding="0" cellspacing="0">
        
        <tbody><tr>
            <td>
                <div class="InnerTableContainer">
                    <table width="100%">
                        <tbody>
                        <tr style="background-color:#af2126;">
                            <td class="LabelV150"><b><font color="white">#</font></b></td>
                            <td class="LabelV150"><b><font color="white">Descricao</font></b></td>
                        </tr>
                        <tr style="background-color:'.$config['site']['lightborder'].';">
                            <td>
                                Atirar
                            </td>
                            <td>
                                Comando "!snowball atirar", lanca 1 bola de neve em seu adversario.
                            </td>
                        </tr>
                        <tr style="background-color:'.$config['site']['lightborder'].';">
                            <td>
                                Info. In-game
                            </td>
                            <td>
                                Comando "!snowball info", mostra a quantia de bolas de neve que voce tem e sua quantia de pontos. Tambem mostra o ranking atual do evento.
                            </td>
                        </tr>
                        <tr style="background-color:'.$config['site']['lightborder'].';">
                            <td>
                                Recarregar
                            </td>
                            <td>
                                Dirija-se ate ao centro do mapa do evento e recarregue clicando no gerador.
                            </td>
                        </tr>
            </tbody></table>
                </div>
            </td>
        </tr>
    </tbody></table>
        </div>
        </br>
        </br>
        
        <div class="TableContainer">
            <div class="CaptionContainer">
            <div class="CaptionInnerContainer">
                <span class="CaptionEdgeLeftTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionBorderTop" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionVerticalLeft" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <div class="Text">TOP Ranking</div>
                <span class="CaptionVerticalRight" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <span class="CaptionBorderBottom" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionEdgeLeftBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
            </div>
        </div><table class="Table1" cellpadding="0" cellspacing="0">
        
        <tbody><tr>
            <td>
                <div class="InnerTableContainer">
                    <table width="100%">
                        <tbody>
                        <tr>


                        ';

        foreach($consulta2 as $info2) { 
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; }
        $number_of_rows++; 
    $main_content .= '
        <td bgcolor="'.$config['site']['lightborder'].'">
        <center>
        </br>
        <a href="index.php?subtopic=characters&name='.urlencode($info2['name']).'">
            <b> '.$info2['name'].' </b>
        </a>
            </br>
            <img align="center" src="/outfiter.php?id='.$info2['looktype'].'&addons='.$info2['lookaddons'].'&head='.$info2['lookhead'].'&body='.$info2['lookbody'].'&legs='.$info2['looklegs'].'&feet='.$info2['lookfeet'].'" width="94" height="94" style="width: 94px; height: 94px; margin-top:-30px; margin-left:-65px;  background-repeat: no-repeat;">
            </br></br>

            ';
            if ($number_of_rows == 1) {
                $main_content .= '
                    <img align="center" src="http://www.tibiawiki.com.br/images/a/a7/Golden_Goblet.gif" />
                ';
            }
            if ($number_of_rows == 2) {
                $main_content .= '
                    <img align="center" src="http://www.tibiawiki.com.br/images/9/90/Silver_Goblet.gif" />
                ';
                
            }
            if ($number_of_rows == 3) {
                $main_content .= '
                    <img align="center" src="http://www.tibiawiki.com.br/images/4/41/Bronze_Goblet.gif" />
            ';
            }
            $main_content .= '
            </br>
            <b>Pontos:</b> ' . $info2['sbw_points'] . '
        </td>
        </center>
        
        ';
    }
    $main_content .= '
        </tr>
    </tbody></table>
                </div>
            </td>
        </tr>
    </tbody></table>
        </div>
        
        </br></br>

        
        
        <div class="TableContainer">
            <div class="CaptionContainer">
            <div class="CaptionInnerContainer">
                <span class="CaptionEdgeLeftTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightTop" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionBorderTop" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionVerticalLeft" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <div class="Text">Ultimos Ganhadores</div>
                <span class="CaptionVerticalRight" style="background-image:url(./layouts/tibiarl/images/content/box-frame-vertical.gif)"></span>
                <span class="CaptionBorderBottom" style="background-image:url(./layouts/tibiarl/images/content/table-headline-border.gif)"></span>
                <span class="CaptionEdgeLeftBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
                <span class="CaptionEdgeRightBottom" style="background-image:url(./layouts/tibiarl/images/content/box-frame-edge.gif)"></span>
            </div>
        </div><table class="Table1" cellpadding="0" cellspacing="0">
        
        <tbody><tr>
            <td>
                <div class="InnerTableContainer">
                    <table width="100%">
                        <tbody>
                        <tr style="background-color:#af2126;">
                            <td class="LabelV150"><b><font color="white">Nome</font></b></td>
                            <td class="LabelV150"><b><font color="white">Pontos</font></b></td>
                            <td class="LabelV150"><b><font color="white"> Data - Hora</font></b></td>
                        </tr>
    ';    
    foreach($consulta as $info) { 
    if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; }
        $number_of_rows++; 
    $main_content .= '
    <tr bgcolor="'.$config['site']['lightborder'].'">
        <td>
            <a href="index.php?subtopic=characters&name='.urlencode($info['name']).'">
            <b> '.$info['name'].' </b></a>
        </td>
        <td>
            ' . $info['score'] . ' 
        </td>
        <td>
                <b> ' . $info['data'] . '</b> - <b>' . $info['hora'] . '</b>
        </td>
    </tr>
        ';
    }
    $main_content .= '
    </tbody></table>
                </div>
            </td>
        </tr>
    </tbody></table>
</div>
    </br>
    <center>Desenvolvido por <a href="http://SEUOT.com/">SEUOT.com</a>.</center>
    ';

?>
 

É ISSO AI PESSOAL ESPERO QUE GOSTEM E SEMPRE DEIXEM SEU REP+

PARA QUEM PRECISAR DE AJUDA PODE FICAR A VONTADE PARA ME CHAMAR!


Share this post


Link to post
Share on other sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 



"Eu não luto por que acho que vou vencer, eu luto por que tenho que vencer!"

ichigo.gif
https://github.com/Eternal-Scripts/<

  , _ ,
 ( o o )
/'` ' `'\                     ESTOU TE OBSERVANDO O_O
|'''''''|
|\\'''//|
   """

 

Share this post


Link to post
Share on other sites

Falta o registro da lib não?

dofile('data/lib/SBW.lua')

O Script é funcional para TFS 0.4 

1.0+ precisa mudar os chamados das funções.


Edited by Andreeyyy (see edit history)

Share this post


Link to post
Share on other sites
1 hora atrás, Andreeyyy disse:

Falta o registro da lib não?

dofile('data/lib/SBW.lua')

O Script é funcional para TFS 0.4 

1.0+ precisa mudar os chamados das funções.

 

acho que funciona sim, e não está faltando nada, eu acho!


Share this post


Link to post
Share on other sites

@victor4312

Falta o registro como postei ali da LIB você não tinha colocado ele no tópico.

E confirmado Não funciona em tfs 1.x
Uso TFS 1.2. Varias funções mudam, broadcast, table.getn, entre outras funções.


Share this post


Link to post
Share on other sites
2 minutos atrás, Andreeyyy disse:

@victor4312

Falta o registro como postei ali da LIB você não tinha colocado ele no tópico.

E confirmado Não funciona em tfs 1.x
Uso TFS 1.2. Varias funções mudam, broadcast, table.getn, entre outras funções.

realmente essa versão não é compatível com tfs 0., quanto ao registro de LIB? não entendi


Share this post


Link to post
Share on other sites
4 minutos atrás, victor4312 disse:

realmente essa versão não é compatível com tfs 0., quanto ao registro de LIB? não entendi

lib>libs.lua adicionar 
dofile('data/lib/SBW.lua')

Para ele ler as informações


Share this post


Link to post
Share on other sites
1 minuto atrás, Andreeyyy disse:

lib>libs.lua adicionar 
dofile('data/lib/SBW.lua')

Para ele ler as informações

não sei que versão é seu servidor, esse evento é compativel do 8.6 ao 9.83


Share this post


Link to post
Share on other sites

Muito bom o script!

 

O único problema é que quem ganha uma vez, depois ate entra no teleport da sala de espera, mas não é puxado para o inicio do evento.

 


Share this post


Link to post
Share on other sites
59 minutos atrás, maleski disse:

Muito bom o script!

 

O único problema é que quem ganha uma vez, depois ate entra no teleport da sala de espera, mas não é puxado para o inicio do evento.

 

é alguma configuração que você fez errado, o evento não tem erro.


Share this post


Link to post
Share on other sites
5 horas atrás, victor4312 disse:

é alguma configuração que você fez errado, o evento não tem erro.

Não alterei nada, fiz como está ali..

 

Testei com outro char ele participa a primeira vez, ai depois na outra ele só fica na sala de espera e não sai.

 

----------

 

Já resolvi era o espaço das coordenadas no WAITROOM.. kkk


Edited by maleski (see edit history)

Share this post


Link to post
Share on other sites
Em 01/04/2018 em 12:34, maleski disse:

Não alterei nada, fiz como está ali..

 

Testei com outro char ele participa a primeira vez, ai depois na outra ele só fica na sala de espera e não sai.

 

----------

 

Já resolvi era o espaço das coordenadas no WAITROOM.. kkk

 

poste a correção do erro para que eu possa editar o tópico e outros membros não terem problemas.


Share this post


Link to post
Share on other sites
1 hora atrás, mattos123 disse:

tem php compativel pra znote ? 

tfs 0.4

 

 

pior que não :/ 


Share this post


Link to post
Share on other sites
Em 12/02/2018 em 23:59, victor4312 disse:

OLÁ GALERA HOJE VENHO TRAZER MAIS UM EVENTO PARA VOCÊS 

DESSA VEZ TRAGO O EVENTO SNOWBALL WAR

partida de guerra de bolas de neve. O objetivo principal do evento é derrubar o número máximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O top score points ao final da rodada será o vencedor.

 

Vamos para o evento!

va em data/actions/scripts e crie um arquivo chamado SBW.lua e cole isso dentro 

agora em actions.xml adicione a tag 

em data/globalevents/scripts crie um arquivo chamado SBW.lua e cole isso dentro

agora em globalevents.xml adicione as seguintes tag 

em data/lib crie um arquivo chamado SBW.lua e cole isso dentro 

agora em data/movements/scripts crie um arquivo chamado SBW.lua e cole isso dentro

em movements.xml adicione a tag 

agora em data/talkactions/scripts crie um arquivo chamado SBW.lua e cole isso dentro

em talkactions.xml adicione a seguinte tag 

PRONTO PESSOAL EVENTO INSTALADO AGORA VAMOS AOS ITEMS FINAIS

irei disponibilizar o mapa para vocês deixarem o evento perfeito :)<3 

 

agora vá em sua database e execute a seguinte query

 

para quem quer deixar seu site full completo trabalhando com o ot aqui disponibilizo o php com contador de vitorias do evento

É ISSO AI PESSOAL ESPERO QUE GOSTEM E SEMPRE DEIXEM SEU REP+

PARA QUEM PRECISAR DE AJUDA PODE FICAR A VONTADE PARA ME CHAMAR!

 

 

Arruma download do mapa!!!!!



MEUS TÓPICO DE DOWNLOAD:

 

 

Sistemas/Scripts:

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...