Legal cara, um evento a mais né? rs
Obrigado por compartilhar!
Obs: Coloquei os acentos pra ti ![]()
Por Killua, 22 de set. de 2013 em Mods, funções e outros
info
Grupo: Herói
Registrado: 25/10/12
Posts: 2.4k
Reputação: +687
Gênero: Masculino
Char no Tibia: Nuncative

Legal cara, um evento a mais né? rs
Obrigado por compartilhar!
Obs: Coloquei os acentos pra ti ![]()
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Legal cara, um evento a mais né? rs
Obrigado por compartilhar!
Obs: Coloquei os acentos pra ti
Sim hahaha, obrigado alex!
info
Grupo: Campones
Registrado: 08/06/12
Posts: 19
Reputação: +4
Gênero: Masculino

Curti
Eu tinha pedido esse evento a uns 6 meses atras!
Editado Setembro 24 por NathanFischer
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Curti
Eu tinha pedido esse evento a uns 6 meses atras!
Quem bom que vc gostou ![]()
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Caramba, tudo já completinho, com mapa e tudo. Gostei, cara, meus parabéns!
info
Grupo: Campones
Registrado: 30/08/08
Posts: 57
Reputação: +3
Char no Tibia: Termabre Dore

Desculpa ae "reviver" o tópico, mas que evento top hein cara!!!
Realmente tinha pensado na hora em colocar um item de double exp kkkk, se tá manjando!!
Muito bom cara, parabéns!
Seus posts são bem completos e organizados ![]()
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Desculpa ae "reviver" o tópico, mas que evento top hein cara!!!
Realmente tinha pensado na hora em colocar um item de double exp kkkk, se tá manjando!!
Muito bom cara, parabéns!
Seus posts são bem completos e organizados
Hehe q isso, é bom ele ser revivido.
Muito obrigado pelos elogios, amigo ![]()
info
Grupo: Campones
Registrado: 30/04/13
Posts: 74
Reputação: +3
Gênero: Masculino
Char no Tibia: Riverwood

Será que funciona na tfs 0.3.6?
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Será que funciona na tfs 0.3.6?
Acredito que sim
info
Grupo: Campones
Registrado: 06/06/13
Posts: 18
Reputação: 0
Char no Tibia: iBirth

É Só Colocar em Lib ?
Ainda Não Entendi!!!!!!
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

É Só Colocar em Lib ?
Ainda Não Entendi!!!!!!
Você precisa somente baixar o arquivo .rar que está em anexo no tópico. Nele tem vários arquivos .lua dentro de suas respectivas pastas. Você tem somente que colocar os arquivos .lua dentro das pastas do seu server.
Por exemplo: no arquivo rar tem uma pasta chamada globalevents, dentro dela tem um arquivo .lua que deve ser colocado na pasta globalevents do seu server. E assim por diante
O script que eu coloquei no post serve somente para explicação.
info
Grupo: Campones
Registrado: 11/06/06
Posts: 14
Reputação: 0
Introdução:
Eai gente, vcs conhecem o evento Blood Castle que tem no jogo MU? Então, eu resolvi criar esse evento para OpenTibia e ficou bem legal
- Informações:
Versão testada: TFS 0.4
Como funciona: A cada X intervalo de tempo, o evento eh anunciado e um teleporte eh criado, os jogadores então ficam na sala de espera ate o evento começar. Quando ele começa os jogadores devem matar os monstros ate chegar no portão do castelo, no portão eles devem matar o Guarda para passar. Quando o guarda morre, eles entram no castelo, e vão matando os monstros ate a estátua do arcanjo aparecer. Depois que ela aparece, os jogadores tem que quebrar ela, aquele que causou mais dano na estátua eh o vencedor e recebe um premio.
OBS: não eh obrigatório o uso do mapa que vou por aqui, ele serve somente para exemplo.
#Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
Instalando:
Os comentários no script já são autoexplicativos, mas vou detalhar ainda mais:
Esta eh a configuração que esta na lib
bcastle = { templo = {x=156, y=49, z=7}, -- templo posguarda = {x=1478, y=1076, z=7}, -- Onde o guarda do portao vai nascer premios = {2160, 2469, 2472}, -- Premios que o vencedor pode ganhar positiontp = {x=156, y=49, z=7}, -- Onde o tp sera criado positionevento = {x=1478, y=1112, z=7}, -- Para onde o tp vai levar tempoaviso = 2, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos tempoaberto = 4, -- Tempo que o tp fica aberto. Em minutos voltarpedras = 10, -- Quanto tempo depois de sumirem as pedras vao aparecer dnv? pospedra1 = {x=1476, y=1108, z=7, stackpos=1}, -- Posicao da pedra pospedra2 = {x=1477, y=1108, z=7, stackpos=1}, -- Posicao da pedra pospedra3 = {x=1478, y=1108, z=7, stackpos=1}, -- Posicao da pedra pospedra4 = {x=1479, y=1108, z=7, stackpos=1}, -- Posicao da pedra pospedra5 = {x=1480, y=1108, z=7, stackpos=1}, -- Posicao da pedra iddasparedes = 3362, -- ID das paredes que vao ser removidas quando o Guarda morrer(todas devem ter o mesmo id) estatua = {x=1478, y=1059, z=7}, -- Posicao onde o arcanjo vai ser criado temposaida = 10, -- Quando tempo o tp q eh criada quando a estatua morre vai ficar? parede1 = {x=1477, y=1075, z=7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer parede2 = {x=1478, y=1075, z=7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer parede3 = {x=1479, y=1075, z=7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer }Em posguarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo:
As pospedra são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo:
Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo:
Em paredes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo:
O resto eu acho que já da para entender
Espero que gostem do evento, me deu um pouco de trabalho para fazer...
Por favor, postem seus elogios, criticas e duvidas!
Amoeba13...?
Eu instalei certinho mais algum problema na hora do evento...
1°, gostaria de saber um tempo bom que posso por para o evento começar.
2°, quando começa o evento as pedras desaparecem e na hora que aparece chega no Guarda aparece mais de 1 guarda.
3°, Depois de matar o guarda a parede desaparece eu vou atacar a estatua tem mais de uma tambem. mais depois que mata a estatua. não aparece o Teleporte para voltar ao templo.
Gostaria me ajudasse...
Nota 10 o Script, mais sou ruim para instalar rsrs.
Ajuda ai.
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

O problema de criar dois guardas realmente existia... Entao eu arrumei ele. Para corrigir, basta vc adicionar estas linhas:
if not isMonster(getTopCreature(bcastle.posguarda).uid) then
doCreateMonster('Guarda do Portao', bcastle.posguarda)
end
Logo depois de
function onThink(interval, lastExecution, thinkInterval)
no bloodcastle.lua do globalevents.
Ficando assim:
--==- Evento Blood Castle feito por amoeba13 -=--
function onThink(interval, lastExecution, thinkInterval)
if not isMonster(getTopCreature(bcastle.posguarda).uid) then
doCreateMonster('Guarda do Portao', bcastle.posguarda)
end
doBroadcastMessage("[Blood Castle] O teleporte para o evento Blood Castle vai ser aberto em "..bcastle.tempoaviso.." minutos, nao percam!")
addEvent(BotarTp, bcastle.tempoaviso*60*1000)
addEvent(doBroadcastMessage, bcastle.tempoaviso*60*1000, "[Blood Castle] O teleport para o Blood Castle foi criado e vai sumir em "..bcastle.tempoaberto.." minutos, se apressem!")
addEvent(TirarTp, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000)
addEvent(doBroadcastMessage, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000, "[Blood Castle] O evento Blood Castle comecou e o teleport para ele foi fexado. Boa sorte a todos!")
addEvent(TirarPedras, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000)
return true
end
info
Grupo: Campones
Registrado: 11/06/06
Posts: 14
Reputação: 0
O problema de criar dois guardas realmente existia... Entao eu arrumei ele. Para corrigir, basta vc adicionar estas linhas:
if not isMonster(getTopCreature(bcastle.posguarda).uid) then doCreateMonster('Guarda do Portao', bcastle.posguarda) endLogo depois de
function onThink(interval, lastExecution, thinkInterval)no bloodcastle.lua do globalevents.
Ficando assim:
--==- Evento Blood Castle feito por amoeba13 -=-- function onThink(interval, lastExecution, thinkInterval) if not isMonster(getTopCreature(bcastle.posguarda).uid) then doCreateMonster('Guarda do Portao', bcastle.posguarda) end doBroadcastMessage("[Blood Castle] O teleporte para o evento Blood Castle vai ser aberto em "..bcastle.tempoaviso.." minutos, nao percam!") addEvent(BotarTp, bcastle.tempoaviso*60*1000) addEvent(doBroadcastMessage, bcastle.tempoaviso*60*1000, "[Blood Castle] O teleport para o Blood Castle foi criado e vai sumir em "..bcastle.tempoaberto.." minutos, se apressem!") addEvent(TirarTp, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000) addEvent(doBroadcastMessage, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000, "[Blood Castle] O evento Blood Castle comecou e o teleport para ele foi fexado. Boa sorte a todos!") addEvent(TirarPedras, bcastle.tempoaviso*60*1000+bcastle.tempoaberto*60*1000) return true end
Amoeba13..
Outro probleminha...
Ao matar o guarda, Eu vou matar o Arcanjo depois que mata o arcanjo o teleporte não aparece...
Ao matar ele ele aparece e desaparece mais isso é muito rapido..
Ajuda eu ![]()
Depois do teleporte arrumado. so testar uns 3 Round do evento blood castle. ![]()
Obrigado!
Meu problema é na hora de aparecer o teleporte ao terminar o evento...
E esse problema;
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
Últimas atualizações:
16/12/2013:
[ATUALIZADO 12/04/2014]
Introdução:
Eai gente, vcs conhecem o evento Blood Castle que tem no jogo MU? Então, eu resolvi criar esse evento para OpenTibia e ficou bem legal
OBS: NÃO é obrigatório o uso do mapa que vou por aqui, ele serve somente para exemplo.
#Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
Atualização:
Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento.
O que mudou?
Instalando o evento:
Lib:
Na pasta data/lib crie um arquivo .lua chamado BloodCastle e cole esse código:
-- == Blood Castle Event por Killua - Xtibia.com == -- bloodconfig = { templo = {x = 160, y = 51, z = 7}, -- templo posGuarda = {x = 29, y = 263, z = 7}, -- Onde o guarda do portão vai nascer premios = {{6527, 10}, {2160, 20}}, -- Premios que o vencedor vai ganhar {id, quantidade} positionTP = {x = 157, y = 44, z = 7}, -- Onde o tp será criado positionEvento = {x = 30, y = 314, 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 = 27, y = 304, z = 7, stackpos=1}, {x = 28, y = 304, z = 7, stackpos=1}, {x = 29, y = 304, z = 7, stackpos=1}, {x = 30, y = 304, z = 7, stackpos=1}, {x = 31, y = 304, z = 7, stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento idDasParedes = 9486, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id) estatua = {x = 29, y = 242, 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 = 28, y = 262, z = 7, stackpos=1}, {x = 29, y = 262, z = 7, stackpos=1}, {x = 30, y = 262, z = 7, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda fromPos = {x = 12, y = 237, 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 = 44, y = 323, 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[i], 1304) if pedra then doRemoveItem(pedra.uid, 1) end end end function putStones() for i = 1, #bloodconfig.posPedras do local pedra = getTileItemById(bloodconfig.posPedras[i], 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[i]) end end function removeWalls() for i = 1, #bloodconfig.posParedes do local wall = getTileItemById(bloodconfig.posParedes[i], 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 endMovements:
Em data/movements/scripts crie um arquivo .lua chamado BloodMovement e coloque esse código:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if item.actionid == 4726 then setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()+1) print(getPlayersInBlood().. " Jogadores no Blood Castle") elseif item.actionid == 9371 then setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()-1) print(getPlayersInBlood().. " Jogadores no Blood Castle") end return true endTAG do movements.xml:
Creaturescripts:
Em data/creaturescripts/scripts crie um arquivo .lua chamado BloodCreatureGuarda e coloque esse código:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onDeath(cid, corpse, mostDamageKiller) local artigo = getPlayerSex(mostDamageKiller[1]) == 0 and "A jogadora" or "O jogador" if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower("Guarda do Portao") then removeWalls() addEvent(createAngel, 2*60*1000) doBroadcastMessage("[Blood Castle] " .. artigo .. " " .. getPlayerName(mostDamageKiller[1]) .. " derrotou o Guarda do Portao! Prossigam para proxima sala e aguardem ate o arcanjo nascer!") end return true endNa mesma pasta, crie um arquivo .lua chamado BloodCreatureAnjo e coloque esse código:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onDeath(cid, corpse, mostDamageKiller) local artigo = getPlayerSex(mostDamageKiller[1]) == 0 and "A jogadora" or "O jogador" if isMonster(cid) and string.lower(getCreatureName(cid)) == string.lower("Arcanjo") then doBroadcastMessage("[Blood Castle] " .. artigo .. " " .. getPlayerName(mostDamageKiller[1]) .. " destruiu a estatua do Arcanjo e foi o vencedor da rodada!") for _, premio in pairs(bloodconfig.premios) do doPlayerAddItem(mostDamageKiller[1], premio[1], premio[2]) end doPlayerSendTextMessage(mostDamageKiller[1], 25, "Parabens voce venceu o evento Blood Castle!") doSendMagicEffect(getCreaturePosition(mostDamageKiller[1]), 66) doCreateTeleport(1387, bloodconfig.templo, bloodconfig.estatua) addEvent(removeTpa, bloodconfig.tempoSaida*1000) setGlobalStorageValue(bloodconfig.playersStorage, 0) putWalls() putStones() end return true endAinda na mesma pasta crie um arquivo .lua chamado BloodCreature e coloque esse código:
-- == Blood Castle Event por Killua, antigo - Xtibia.com == -- function onDeath(cid, corpse, mostDamageKiller) if isPlayer(cid) and isInArea(getCreaturePosition(cid), bloodconfig.fromPos, bloodconfig.toPos) then setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()-1) end return true end function onLogin(cid) if isInArea(getCreaturePosition(cid), bloodconfig.fromPos, bloodconfig.toPos) then doTeleportThing(cid, bloodconfig.templo, false) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce estava no meio do evento Blood Castle quando o servidor caiu. Voce foi teleportado para o templo.") end registerCreatureEvent(cid, "morrerblood") registerCreatureEvent(cid, "guardablood") registerCreatureEvent(cid, "arcanjoblood") return true endTAGs no creaturescripts.xml
Monsters:
Em data/monsters crie uma pasta chamada Blood Castle coloque esses dois códigos:
Guarda do Portao.xml:
<?xml version="1.0" encoding="UTF-8"?> <monster name="Guarda do Portao" nameDescription="the Guarda do Portao" race="undead" experience="500000" speed="0" manacost="0"> <health now="1000000" max="1000000"/> <look type="268" head="114" body="114" legs="114" feet="114" addons="3" corpse="6080"/> <targetchange interval="5000" chance="0"/> <strategy attack="0" defense="0"/> <script> <event name="guardablood"/> </script> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="0"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="100"/> </flags> <defenses armor="1" defense="1"/> <immunities> <immunity poison="1"/> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> </monster>Arcanjo.xml:
<?xml version="1.0" encoding="UTF-8"?> <monster name="Arcanjo" nameDescription="the Arcanjo" race="undead" experience="500000" speed="0" manacost="0"> <health now="1000000" max="1000000"/> <look typeex="9751"/> <targetchange interval="5000" chance="0"/> <strategy attack="0" defense="0"/> <script> <event name="arcanjoblood"/> </script> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="0"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="100"/> </flags> <defenses armor="1" defense="1"/> <immunities> <immunity poison="1"/> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> </monster>Em monsters.xml coloque essas TAGs:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onThink(cid, interval) local plural = bloodconfig.tempoTP == 1 and "minuto" or "minutos" local plurals = bloodconfig.tempoAberto == 1 and "minuto" or "minutos" doBroadcastMessage("[Blood Castle] O portal para o evento vai ser aberto em " .. bloodconfig.tempoTP .. " " .. plural .. ", nao percam!") addEvent(createTeleportb, bloodconfig.tempoTP*60*1000) addEvent(doBroadcastMessage, bloodconfig.tempoTP*60*1000, "[Blood Castle] O teleport para o evento foi aberto no templo e vai sumir em " .. bloodconfig.tempoAberto .. " " .. plurals .. ". Se apressem!") addEvent(removeTpb, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000) addEvent(checkBlood, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000+60*1000) addEvent(Guarantee, bloodconfig.tempoMaximo*60*1000+15000) return true end function onStartup() setGlobalStorageValue(bloodconfig.playersStorage, 0) print(getPlayersInBlood().. "Jogadores no Blood Castle") return true endTAGS no globalevents.xml:
Manual:
Talkactions:
Em data/talkactions/scripts crie BloodTalk.lua e coloque esse código:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onSay(cid, words, param, channel) local plural = bloodconfig.tempoTP == 1 and "minuto" or "minutos" local plurals = bloodconfig.tempoAberto == 1 and "minuto" or "minutos" doBroadcastMessage("[Blood Castle] O portal para o evento vai ser aberto em " .. bloodconfig.tempoTP .. " " .. plural .. ", nao percam!") addEvent(createTeleportb, bloodconfig.tempoTP*60*1000) addEvent(doBroadcastMessage, bloodconfig.tempoTP*60*1000, "[Blood Castle] O teleport para o evento foi aberto no templo e vai sumir em " .. bloodconfig.tempoAberto .. " " .. plurals .. ". Se apressem!") addEvent(removeTpb, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000) addEvent(checkBlood, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000+60*1000) addEvent(Guarantee, bloodconfig.tempoMaximo*60*1000+15000) return true endTAG talkactions.xml:
Globalevents:
Em data/globalevents/scripts crie BloodGlobalStart.lua e coloque:
-- == Blood Castle Event por Killua - Xtibia.com == -- function onStartup() setGlobalStorageValue(bloodconfig.playersStorage, 0) print(getPlayersInBlood().. "Jogadores no Blood Castle") return true endTAG globalevents.xml
Como Configurar:
* Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele.
* Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!!
Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos".
No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag:
Aqui está 3600 segundos, ou seja, 1 hora.
* Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora.
No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god.
Editado Abril 12 por Killua
Atualização do evento.