Ir para conteúdo

Featured Replies

Postado

Gostaria de uma ajuda para o Battlefield Event:

 

Para no time vencedor = ganhar 3 pontos do site (premium_points)

E para o time perdedor = ganhar 1 ponto do site (mesma coisa)

 

Script do Battlefield e parte da recompensa inclusa (é uma lib com tudo)

 

_Lib_Battle_Info = {
    Reward = {9971,10},
    TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=1262,y=1150,z=6}},
    TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=1275,y=1150,z=6}},
    storage_count = 180400,
    tpPos = {x=161, y=44, z=7},
    limit_Time = 10 -- em minutos
}
 
function resetBattle()
    return setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) and setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)
end
 
function OpenWallBattle()
    local B = {
        {3517,{x=1270, y=1161, z=6, stackpos = 1}},
        {3517,{x=1270, y=1162, z=6, stackpos = 1}},
        {3517,{x=1270, y=1163, z=6, stackpos = 1}},
        {3517,{x=1270, y=1164, z=6, stackpos = 1}}
    }
    for i = 1, #B do
        if getTileItemById(B[2], B[1]).uid == 0 then
            doCreateItem(B[1], 1, B[2])
        else
            doRemoveItem(getThingfromPos(B[2]).uid,1)
        end
    end
end
 
function doBroadCastBattle(type,msg)
    local players = {}
    for _, cid in pairs(getPlayersOnline()) do
        if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
            table.insert(players, cid)
        end
    end
    for i = 1, #players do
        doPlayerSendTextMessage(players,type,msg)
    end
end
 
function removeBattleTp()
    local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid
    return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF)
end
 
function getWinnersBattle(storage)
    local players,str = {},""
    for _, cid in pairs(getPlayersOnline()) do
        if getPlayerStorageValue(cid, storage) == 1 then
            table.insert(players, cid)
        end
    end
    str = str .. ""..#players.." Player"..(#players > 1 and "s" or "").." do time "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." venceu o evento Battlefield, todos do time vencedor ganharam ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"
    for i = 1, #players do
        doRemoveCondition(players, CONDITION_OUTFIT)
        doTeleportThing(players, getTownTemplePosition(getPlayerTown(players)))
        setPlayerStorageValue(players, storage, -1)
        setPlayerStorageValue(players, 52310, getPlayerStorageValue(cid, 52310) + 3)
    end
    resetBattle()
    OpenWallBattle()
    return doBroadcastMessage(str)
end

function CheckEvent(delay)
    if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
        doBroadcastMessage("[battleField Evento] Esta esperando "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players para o evento Battlefield começar.")
        elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
        local players = {}
        for _, cid in pairs(getPlayersOnline()) do
            if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
                table.insert(players, cid)
            end
        end
        
        for i = 1, #players do
            doRemoveCondition(players, CONDITION_OUTFIT)
            setPlayerStorageValue(players, 52310, getPlayerStorageValue(cid, 52310) + 1)
            doTeleportThing(players, getTownTemplePosition(getPlayerTown(players)))
            setPlayerStorageValue(players, getPlayerStorageValue(players, _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1)
        end
        doBroadcastMessage("Evento não pode ser iniciado por falta de jogadores.")
        setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
        resetBattle()
        removeBattleTp()
    end
    addEvent(CheckEvent, 60000, delay-1)
end

 

Script completo:

http://www.tibiaking.com/forum/topic/16699-sistema-battlefield-event/

Editado por Disturbbed (veja o histórico de edições)

  • Respostas 25
  • Visualizações 885
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • lib _Lib_Battle_Info = {     Reward = 3,     TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=1262,y=1150,z=6}},     TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=1275

  • luanluciano93
    luanluciano93

    Add essa função na lib:  function addPoint(uid, count) local accountPoints = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `name` = '" .. getPlayerAccount(uid) .. "' LIMIT 1;") local

  • lib _Lib_Battle_Info = {     Reward = 3,     TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=1262,y=1150,z=6}},     TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=1275

Posted Images

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo