Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom dia pessoal!!

 

Bom, meu servidor de tibia tem 3 eventos!,

​​​​

BloodCastle

Battlefield

City War

 

Bom nesse 3 eventos, esta para acontecer sozim, e varios horario  1 vez por dia!!

 

oque eu estou procurando e uma função. que seguinte, nesses evento ao termina todos os jogadores que participou ganham 1,000,000,00 de exp

e um item surpresa!!  

 

iten surpresa e 6567, antigo santa doll!!!

 

 

Batlefield

 

battlefield = {

 

storage = 201206300801,
storage2 = 201206300802,
tpPos = {x=168, y=45, z=7}, -- aonde aparecerá o teleport
    pos_team_1 = {x=82,y=1362,z=8}, -- posição do team 1 (do lado direito)
    pos_team_2 = {x=126,y=1362,z=8}, -- posição do team 2 (do lado esquerdo)
spectors = {{x=113,y=1352,z=6},{x=113,y=1368,z=6},{x=129,y=1368,z=6},{x=129,y=1353,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield)
team1Name = "Black Assassins",
    team2Name = "Red Barbarians",
}
 
function doBroadCastBattle(type,msg)
 
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then
doPlayerSendTextMessage(cid,type,msg) 
end 
end
 
return true 
end
 
function removeTp()
 
local t = getTileItemById(battlefield.tpPos, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF)
end
 
end
 
function OpenWallBattle()
 
local x = true
local B  = {  
[1] = {1056,{x=121, y=1359, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1056,{x=121, y=1360, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1056,{x=121, y=1361, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1056,{x=121, y=1362, z=6, stackpos = 1}}   -- posição da barreira 
 
for i = 1, #B do
if getTileItemById(B[2], B[1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[2]).uid,1)
else
doCreateItem(B[1], 1, B[2]) 
end
end
 
end
 
function getWinnersBattle(storage)
 
local team = storage == 1 and battlefield.team1Name or battlefield.team2Name
 
doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!")
setGlobalStorageValue(battlefield.storage, -1)
removeTp()
OpenWallBattle()
 
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then 
doRemoveCondition(cid, CONDITION_OUTFIT)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
if getPlayerStorageValue(cid, battlefield.storage2) == storage then
doPlayerAddItem(cid,6567,1)
doPlayerAddExp(cid,10000000)
end
setPlayerStorageValue(cid, battlefield.storage2, -1)
end
end
 
end
 
 
 
 
 
 
                                                                                 Blood Castle
-- == Blood Castle Event por Killua == --
 
bloodconfig = {
 
     templo = {x = 155, y = 52, z = 7}, -- templo
 
     posGuarda = {x = 343, y = 822, z = 7}, -- Onde o guarda do portão vai nascer
 
     premios = {{6567, 1}, {2160, 100}}, -- Premios que o vencedor vai ganhar {id, quantidade}
 
     positionTP = {x = 168, y = 47, z = 7}, -- Onde o tp será criado
 
     positionEvento = {x = 343, y = 861, z = 7}, -- Para onde o tp vai levar
 
     tempoTP = 2, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
 
     tempoAberto = 5, -- Tempo que o tp fica aberto. Em minutos
 
     minPlayers = 3, -- Número mínimo de players que devem entrar para que o evento aconteça
 
     tempoMaximo = 40, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
 
     playersStorage = 54910, -- Não mude
 
     posPedras = {{x = 341, y = 857, z = 7, stackpos=1}, {x = 342, y = 857, z = 7, stackpos=1}, {x = 343, y = 857, z = 7, stackpos=1}, {x = 344, y = 857, z = 7,stackpos=1}, {x = 345, y = 857, z = 7,        stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento
 
     idDasParedes = 3368, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id)
 
     estatua = {x = 343, y = 804, z = 7}, -- Posicao onde o arcanjo vai ser criado
 
     tempoSaida = 70, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
 
     posParedes = {{x = 342, y = 821, z = 7, stackpos=1}, {x = 343, y = 821, z = 7, stackpos=1}, {x = 344, y = 821, z = 7, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda
 
     fromPos = {x = 331, y = 801, z = 7}, -- Canto superior esquerdo da área do seu evento ---- Deve ser uma área quadrada ou retangular, de forma que todo o evento fique dentro dela.
     toPos = {x = 354, y = 867, z = 7}, -- Canto inferior direito da área do seu evento
}
 
-- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] --
 
function removeTpb()
     local t = getTileItemById(bloodconfig.positionTP, 1387)
     if t then
          doRemoveItem(t.uid, 1)
          doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF)
     end
end
 
function removeStones()
     for i = 1, #bloodconfig.posPedras do
          local pedra = getTileItemById(bloodconfig.posPedras, 1304)
          if pedra then
               doRemoveItem(pedra.uid, 1)
          end
     end
end
 
function putStones()
     for i = 1, #bloodconfig.posPedras do
          local pedra = getTileItemById(bloodconfig.posPedras, 1304)
          if not pedra then
               doCreateItem(1304, 1, pedra)
          end
     end
end
 
 
function createTeleportb()
     local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP)
     doItemSetAttribute(tip, "aid", 4726)
end
 
function removeTpa()
     local t = getTileItemById(bloodconfig.estatua, 1387)
     if t then
          doRemoveItem(t.uid, 1)
          doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF)
     end
end
 
 
function getPlayersInBlood()
     local playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage)
     return playersInBlood < 0 and 0 or playersInBlood
end
 
function removePlayers()
     for _, pid in pairs(getPlayersOnline()) do
          if isInArea(getThingPos(pid), bloodconfig.fromPos, bloodconfig.toPos) then
               doTeleportThing(pid, bloodconfig.templo, false)
               doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce foi removido do Blood Castle. Possiveis causas: o evento nao atingiu o numero minimo de players; Voce                      permaneceu no evento por mais de " .. bloodconfig.tempoMaximo .. " minutos.")
          end
     end
end
 
function checkBlood()
     if getPlayersInBlood() >= bloodconfig.minPlayers then
          removeStones()
          doBroadcastMessage("[blood Castle] O Evento comecou e o teleporte para ele foi fechado. Boa sorte a todos!")
          if not isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
               doCreateMonster("Guarda do Portao", bloodconfig.posGuarda)
          end
          addEvent(removePlayers, bloodconfig.tempoMaximo*60*1000)
     else
          removePlayers()
          setGlobalStorageValue(bloodconfig.playersStorage, 0)
          doBroadcastMessage("[blood Castle] O evento nao atingiu o numero minimo de participantes e foi cancelado.")
          if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
               doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
          end
          if isMonster(getTopCreature(bloodconfig.estatua).uid) then
               doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
          end
     end
end
 
function putWalls()
     for i = 1, #bloodconfig.posParedes do
          doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParedes)
     end
end
 
function removeWalls()
     for i = 1, #bloodconfig.posParedes do
          local wall = getTileItemById(bloodconfig.posParedes, bloodconfig.idDasParedes)
          if wall then
               doRemoveItem(wall.uid, 1)
          end
     end
end
 
function createAngel()
     if not isMonster(getTopCreature(bloodconfig.estatua).uid) then
          doCreateMonster("Arcanjo", bloodconfig.estatua)
          doBroadcastMessage("[blood Castle] A estatua do arcanjo apareceu!")
     end
end
 
function Guarantee()
     if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
          putWalls()
          doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
     elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then
          putStones()
          putWalls()
          doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
      end
end
 
 
                                                                                        City war 
configCW = {timetostart = 500, -- tempo para iniciar o evento em segundos by Absolute
telpos = {x=149, y=55, z=7}, -- onde aparecerá o teleport
stats = 201201201701,
kill = 201201201702,
death = 201201201703,
ostime =  201201201704,
evttime = 20, -- quanto tempo irá rolar o evento
topleftPos = {x=211, y=1336, z=7}, -- canto esquerdo superior
botrightPos = {x=286, y=1390, z=7}, -- canto direito inferior
templepos = {x=160, y=54, z=7}, -- posição do templo principal
arenapos = {{x=218, y=1341, z=7}, {x=278, y=1341, z=7}, {x=281, y=1382, z=7}, {x=214, y=1383, z=7}}, -- posição dos 4 tronos
times = 8, -- não precisa mexer
finaltime = 300 -- não precisa mexer
}
 
function configCW:new()
 
local newevt = {}
 
setmetatable(newevt, self)
self.__index = self
 
doBroadcastMessage("The City War will be open in " .. self.timetostart .. " seconds.")
setGlobalStorageValue(self.stats, 0)
addEvent(function () newevt:start() end, self.timetostart*1000)
end
 
function configCW:start()
 
if getGlobalStorageValue(self.stats) == 0 then
setGlobalStorageValue(self.ostime, os.time())
local teleport = doCreateItem(1387, self.telpos)
doItemSetAttribute(teleport, "aid", 5540)
setGlobalStorageValue(self.stats, 1)
doBroadcastMessage("The City War is starting...")
for _, posi in pairs(self.arenapos) do
local item = getTileItemById(posi, 1387)
if(item.uid ~= 0) then
doRemoveItem(item.uid)
end
end
addEvent(function () self:preclose() end, self.evttime*1000*60)
addEvent(function () self:announce(0) end, (self.evttime/self.times)*1000*60)
end
 
end
 
function configCW:announce(times)
 
if times < self.times then
if #self:getTopFrags(true) >= 1 then 
doBroadcastMessage("Top City War fraggers: " .. self:getTopFrags())
end
addEvent(function () self:announce(times+1) end, (self.evttime/self.times)*1000*60)
end
 
end
 
function configCW:preclose()
 
if getGlobalStorageValue(self.stats) == 1 then
setGlobalStorageValue(self.stats, 2)
doBroadcastMessage("The City War will end in " .. self.finaltime .. " seconds.")
addEvent(function () self:close() end, self.finaltime*1000)
local item = getTileItemById(self.telpos, 1387)
if(item.uid ~= 0) then
doRemoveItem(item.uid)
end
end
 
end
 
function configCW:close()
 
if getGlobalStorageValue(self.stats) == 2 then
if #self:getTopFrags(true) >= 1 then
doBroadcastMessage("The City War has ended. The winners are: " .. self:getTopFrags())
else
doBroadcastMessage("The City War has ended. There were no winners.")
end
doRemovePlayersFromArea(self.topleftPos, self.botrightPos, self.templepos)
for _, posi in pairs(self.arenapos) do
doCreateTeleport(1387, self.templepos, posi)
end
for place, info in ipairs(self:getTopFrags(true)) do
if place > 5 then
break
end
local cid = getPlayerByName(info)
doPlayerSendTextMessage(cid, 4, "Congratulations, you were the " .. place .. "º place in the City War.")
doPlayerAddItem(cid, 7440, 1)
doPlayerAddItem(cid, 6567, 1)
doPlayerAddExp(cid,10000000)
end
setGlobalStorageValue(self.stats, -1)
end
 
end
 
function configCW:isPlayerInEvent(cid)
 
if getPlayerStorageValue(cid, self.stats) == -1 or getPlayerStorageValue(cid, self.stats) - os.time() <= -5 or getGlobalStorageValue(self.stats) < 1 then
return false
end
 
return true
end
 
function configCW:getTopFrags(tab)
 
local frag = {}
 
for _, pid in pairs(getPlayersOnline()) do
if (getPlayerStorageValue(pid, self.kill) ~= -1 or getPlayerStorageValue(pid, self.death) ~= -1) and self:isPlayerInEvent(pid) then
local kill =  getPlayerStorageValue(pid, self.kill)+1
local death =  getPlayerStorageValue(pid, self.death)+1
print(getCreatureName(pid), kill-death)
table.insert(frag, {getCreatureName(pid), kill-death})
end
end
 
print(#frag)
local frag, str, n = doOrderTab(frag, 0), nil, 5
print(#frag)
 
if tab then
return frag
else
if #frag < 5 then
n = #frag
end
for i = 1, n do
local cid = getPlayerByName(frag)
local kill =  getPlayerStorageValue(cid, self.kill)+1
local death =  getPlayerStorageValue(cid, self.death)+1
str = str and str .. ", " .. frag .. "[" .. kill .. "/" .. death .. "]" or frag .. "[" .. kill .. "/" .. death .. "]"
end
end
 
return str
end
 
function doOrderTab(tabela, value)
 
local max, index = {}, nil
 
for i = 1, #tabela do
valor = value
for a, b in ipairs(tabela) do
if b[2] > valor then
valor = b[2]
valor2 = b[1]
index = a
end
end
table.remove(tabela, index)
if valor ~= value then
table.insert(max, valor2)
end
end
 
return max
end
Editado por mateusmoretti (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não entendi, você quer saber onde está a função que dá os prêmios ou você quer adicionar/remover?

Link para o post
Compartilhar em outros sites

ADicionar a função que assim que o evento acabar, ganhar 1,000,000,00 de exp para todos jogadores que participaram

Link para o post
Compartilhar em outros sites

Entendi...

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

BattleField e City War já estão premiando com a exp e o item. Porém no outro sistema, não encontrei a função responsável pela premiação do vencedor.

Talvez ela não esteja na lib.

Link para o post
Compartilhar em outros sites

hm, então menos mal!! obrigado pela ajuda pessoal 

o outro também não vai adiantar muito porque so 1 pessoa ira ganhar xp, so 1 pessoa mata o arcanjo então não da certo!!!!

Link para o post
Compartilhar em outros sites

Alguem pode me da uma força, meu servido agora não ta aparecendo o portal para o evento!, mais toda vez que uso o comando /battlefield 20 fala que o teleport ja está criado mais não aparece o teleport no servidor!!!

 

 

Batlefield

 

battlefield = {

 

storage = 201206300801,
storage2 = 201206300802,
tpPos = {x=168, y=45, z=7}, -- aonde aparecerá o teleport
    pos_team_1 = {x=82,y=1362,z=8}, -- posição do team 1 (do lado direito)
    pos_team_2 = {x=126,y=1362,z=8}, -- posição do team 2 (do lado esquerdo)
spectors = {{x=113,y=1352,z=6},{x=113,y=1368,z=6},{x=129,y=1368,z=6},{x=129,y=1353,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield)
team1Name = "Black Assassins",
    team2Name = "Red Barbarians",
}
 
function doBroadCastBattle(type,msg)
 
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then
doPlayerSendTextMessage(cid,type,msg) 
end 
end
 
return true 
end
 
function removeTp()
 
local t = getTileItemById(battlefield.tpPos, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF)
end
 
end
 
function OpenWallBattle()
 
local x = true
local B  = {  
[1] = {1056,{x=121, y=1359, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1056,{x=121, y=1360, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1056,{x=121, y=1361, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1056,{x=121, y=1362, z=6, stackpos = 1}}   -- posição da barreira 
 
for i = 1, #B do
if getTileItemById(B[2], B[1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[2]).uid,1)
else
doCreateItem(B[1], 1, B[2]) 
end
end
 
end
 
function getWinnersBattle(storage)
 
local team = storage == 1 and battlefield.team1Name or battlefield.team2Name
 
doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!")
setGlobalStorageValue(battlefield.storage, -1)
removeTp()
OpenWallBattle()
 
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then 
doRemoveCondition(cid, CONDITION_OUTFIT)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
if getPlayerStorageValue(cid, battlefield.storage2) == storage then
doPlayerAddItem(cid,6567,1)
doPlayerAddExp(cid,10000000)
end
setPlayerStorageValue(cid, battlefield.storage2, -1)
end
end
 
end
Link para o post
Compartilhar em outros sites

Alguem pode me da uma força, meu servido agora não ta aparecendo o portal para o evento!, mais toda vez que uso o comando /battlefield 20 fala que o teleport ja está criado mais não aparece o teleport no servidor!!!

 

Coloca todos os scripts de battlefield!

e o erro que dá no executável! 

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Cara você ta colocando só a lib...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo