Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom Dia, Alguem Poderia me Ajudar a Coloca a Caveira da Guild war em Um Evento de PVP. Quando vc Entra no Evento tem o Time Azul Vs Time Vermelho

ex: Time azul Cai com a caverinha azul, e Time Vermelho cai com a Caverinha Vermelha

image.png.4ceedb7eafa7f1b353c9e17e7d3f0c25.pngQuando Entra no Evento Fica Assim

Queria que Ficasse Assim image.png.a82d7595e4c9c0fdb013c0d23609c030.png

Alguem Poderia me da Uma Ajuda?

 

 

Script (TVT

 

Vai Na Pasta Lib e Copia o Script BattleLib.lua

Spoiler

_Lib_Battle_Info = {
Reward = {2160,100},
Reward2 = {12780,300},
TeamOne = {name = "Demonics", storage = 140120, pos = {x = 289, y = 341, z = 15}},
TeamTwo = {name = "Saiyajins",storage = 140121,pos = {x = 352, y = 382, z = 15}},
storage_count = 180400,
tpPos = {x=94, y=101, z=6},
limit_Time = 1 -- 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 = {
-- Demonics
{1524,{x=288, y=340, z=15, stackpos = 1}},
{1524,{x=289, y=340, z=15, stackpos = 1}},
-- Saiyajins
{1526,{x = 352, y = 384, z = 15, stackpos = 1}},
{1524,{x = 349, y = 387, z = 15, stackpos = 1}}
}
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then
doCreateItem(B[i][1], 1, B[i][2])
else
doRemoveItem(getThingfromPos(B[i][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[i],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.." Jogador"..(#players > 1 and "es" or "").." do time "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." ganharam o evento Battlefield e receberam ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).." + ".._Lib_Battle_Info.Reward2[2].." "..getItemNameById(_Lib_Battle_Info.Reward2[1]).."!"
for i = 1, #players do
doPlayerAddItem(players[i], _Lib_Battle_Info.Reward[1], _Lib_Battle_Info.Reward[2])
doPlayerAddItem(players[i], _Lib_Battle_Info.Reward2[1], _Lib_Battle_Info.Reward2[2])
doRemoveCondition(players[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], storage, -1)
end
resetBattle()
OpenWallBattle()
return doBroadcastMessage(str)
end

function CheckEvent(delay)
if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
doBroadcastMessage("[BattleField] Estamos à espera de "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." jogadores para o Battlefield iniciar.")
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[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], getPlayerStorageValue(players[i], _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1)
end
doBroadcastMessage("O evento Battlefield não iniciou por não ter jogadores suficientes.")
setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
resetBattle()
removeBattleTp()
end
addEvent(CheckEvent, 60000, delay-1)
end

 

2- Vai Na Pasta Globalevents e Cole o Script TVTEvent

Spoiler

function onThink(interval, lastExecution)
_Lib_Battle_Days = {
["Sunday"] = {
["19:13"] = {players = 4}
},
["Wednesday"] = {
["18:30"] = {players = 20}
},
["Friday"] = {
["20:00"] = {players = 20}
}
}
if _Lib_Battle_Days[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)
tb = _Lib_Battle_Days[os.date("%A")][hours]
if tb and (tb.players % 2 == 0) then
local tp = doCreateItem(1387, 1, _Lib_Battle_Info.tpPos)
doItemSetAttribute(tp, "aid", 45000)
CheckEvent(_Lib_Battle_Info.limit_Time)
doBroadcastMessage("O evento Battlefield foi aberto, ainda faltam "..tb.players.." jogadores para começar! Os times serão divididos em "..((tb.players)/2).." VS "..((tb.players)/2))
return setGlobalStorageValue(_Lib_Battle_Info.storage_count, tb.players)
end
end
return true
end

 

3- Registrando em GlobalEvents.xml

Spoiler

<!-- Evento TVT-->
    <globalevent name="GlobalBattle" interval="60000" event="script" value="TVTEvent.lua"/>

4- Agora em Movements Cole o Script BattleMovements

Spoiler

local conditionBlack = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionBlack, {lookType = 494})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionRed, {lookType = 495})
function onStepIn(cid, item, position, fromPosition)
if getPlayerAccess(cid) > 3 then
doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos) return false
elseif getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
setGlobalStorageValue(_Lib_Battle_Info.storage_count, getGlobalStorageValue(_Lib_Battle_Info.storage_count)-1)
end
if getGlobalStorageValue(_Lib_Battle_Info.storage_count) >= 0 then
if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) < getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) then
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, 1)
doAddCondition(cid, conditionBlack)
setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)+1)
doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce está no time " .. _Lib_Battle_Info.TeamOne.name .. "!")
else
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, 1)
doAddCondition(cid, conditionRed)
setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)+1)
doTeleportThing(cid, _Lib_Battle_Info.TeamTwo.pos)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce está no time " .. _Lib_Battle_Info.TeamTwo.name .. "!")
end
end
if getGlobalStorageValue(_Lib_Battle_Info.storage_count) == 0 then
removeBattleTp()
doBroadcastMessage("Battlefield irá começar em 1 minuto, monte sua estratégia.")
addEvent(doBroadcastMessage, 1*60*1000-500, "Battlefield irá começar agora!")
addEvent(OpenWallBattle, 1*60*1000)
end
return true
end

5- Registrando em Movimentes.xml

Spoiler

<movevent type="StepIn" actionid="45000" event="script" value="BattleMovements.lua"/>

 

Editado por Diego Rosa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Imperius
      Olá! Fiz uma adaptação no evento "SafeZone" criado e disponibilizado aqui no TK por @Movie e @luanluciano93.
       
       
      Agora o evento é compatível para TFS 0.4.
       
      IMPORTANTE:  Como mencionado anteriormente, o evento foi criado por "Movie" e "LuanLuciano93". Eu (imperius) APENAS ADAPTEI para funcionar em TFS 0.4. Todos os créditos do evento vão para os criadores originais. Além disso, é importante alertar que esta adaptação não está 100%.
       
      Abaixo está todo o processo explicando como configurar e rodar o evento em seu servidor!
       
       
      Vídeo demonstrativo:
       
       
       
      em data > lib > crie um arquivo chamado safeZone.lua
       
       
       
      data > globalevents > globalevents.xml
       
       
       
      em data > globalevents > scripts > crie um arquivo chamado safeZoneEvent.lua
       
       
       
      data > movements > movements.xml
       
       
       
      em data > movements > scripts > crie um arquivo chamado safeZoneMovement.lua
       
       
       
      por fim, vá até o banco de dados do seu servidor e adicione o seguinte código em "SQL"
       
       
      É isso! Espero ter ajudado o pessoal do TFS 0.4
    • Por ILex WilL
      Olá, Alguém poderia me ajudar com uns Scripts? nem que seja cobrando, dependendo eu pago para me ajudar...
    • Por Doidodepeda
      alguém pode disponibilizar um globalevents que sai frase ''ALONGADA'' do chão ''frase GRANDE''
       
      0.4
    • Por Lurk
      Salve pessoal, eu amo tibia e a comunidade já me deu muito, hoje finalmente sinto que posso dar algo de volta e vou estar disponibilizando esse código pra evento que eu fiz pro meu servidor. Esse código pode ser melhorado bastante mas é funcional e acredito ter pensando em todas as possibilidades de abuso e ter corrigido, ainda assim caso você faça alguma melhora por favor compartilhe aqui nos comentários :). Vou disponibilizar também a hotkey de elfbot no fim do tópico.
       
      Durante o evento (duração de 15 min que você pode diminuir/aumentar), quando um player clica no item ele vai receber x leveis e a cada 2 clicks ele vai ganhar um item (no meu caso, uma event coin). Tem um exhaust de 2 secs a cada click pra evitar abuso com elfbot/auto click e eu não recomendo tirar, embora você possa diminuir/aumentar tranquilamente
       
      Em globalevents.xml adicione
      <globalevent name="clickupstart" time="19:00" event="script" value="clickupstart.lua"/> <globalevent name="clickupclose" time="19:15" event="script" value="clickupend.lua"/>  
      Em globalevents/scripts crie um novo arquivo e nomeie de clickupend.lua e cole isso dentro
      local storage = 64242 -- storage function onTime() setGlobalStorageValue (storage, -1) doBroadcastMessage("THE CLICK UP EVENT HAS ENDED") return true end Ainda em globalevents/scripts crie um novo arquivo e nomeie de clickupstart.lua e cole isso dentro
      local storage = 64242 -- storage que você quer zerar. function onTime() setGlobalStorageValue (storage, 1) doBroadcastMessage("THE CLICK UP EVENT HAS STARTED") return true end Agora em actions.xml adicione a tag
      <action actionid="42113" script="clickup.lua"/> Em actions/scripts crie um arquivo chamado clickup.lua e cole isso dentro
      local tempo = 2 -- segundos para usar novamente function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(64242) == 1 then if getPlayerStorageValue(cid, 45890) > os.time() or getPlayerLevel(cid) >= 717217 then -- se estiver no cooldown ou se for level maximo return doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, 45890) - os.time()).. " segundos para usar novamente e nao pode ser nivel maximo.") end if getPlayerStorageValue(cid, 45891) < 1 then doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, 45890, 2 + os.time()) local bah = getPlayerStorageValue(cid, 45891) doPlayerSetStorageValue(cid, 45891, bah+1) return true else doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP + EVENT COIN", TALKTYPE_ORANGE_1, true, cid) doPlayerAddItem(cid,10558,1) setPlayerStorageValue(cid, 45890, 2 + os.time()) doPlayerSetStorageValue(cid, 45891, -1) return true end else -- msg quando o evento não ta rolando return doPlayerSendCancel(cid, "The event haven't started yet.") end end Agora você abre seu mapa, cria uma area pro evento e você coloca a actions 42113 na statua/pedra/cristal que o player vai precisar dar use pra ganhar os leveis (eu uso o id 9779)
      NÃO SE ESQUEÇA QUE A HOTKEY DE ELFBOT VAI MUDAR SE VOCÊ NÃO USAR O MESMO ID QUE EU
      auto 200 listas 'Evento' | usegrounditem 8865  
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo