gostei do script ,funciona no TFS 1.0 ?
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- [Blood Castle] Evento Otimizado![12/04/14]
[Blood Castle] Evento Otimizado![12/04/14]
Por Killua, 22 de set. de 2013 em Mods, funções e outros
info
Grupo: Cavaleiro
Registrado: 12/06/13
Posts: 187
Reputação: +6

info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Não testei... mas deve funcionar.
info
Grupo: Campones
Registrado: 09/10/12
Posts: 12
Reputação: 0
Char no Tibia: Fabiano Fyron

Primeiro quero agradecer pelo belo sistema.
Segundo não estou encontrando: fromPos e toPos.
[Desculpem reviver o tópico]
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Primeiro quero agradecer pelo belo sistema.
Segundo não estou encontrando: fromPos e toPos.
[Desculpem reviver o tópico]
As partes fromPos e toPos estão nas configurações que estão na lib. Elas são a última parte das configurações.
info
Grupo: Conde
Registrado: 18/07/08
Posts: 545
Reputação: +21
Char no Tibia: Nem eu sei

mto foda mto foda, so isso
info
Grupo: Campones
Registrado: 07/12/11
Posts: 61
Reputação: +3
Char no Tibia: Thanatus Ironfirst

Amoeba, você resolveu o erro que eu falei? Tá perfeito, ele inicia, faz o tele, some as pedras, vc mata o bixo some as paredes, ai aparece o arcanjo, vc mata ele, recebe o premio, tudo certinho.. Mas quando ele acaba, ele automaticamente já inicia outro evento... Pelo menos no meu servidor com a talkaction foi assim rsrs
Se com essa atualização vc resolveu esse erro, beleza... Adorei esse evento...
Já te dei 2 reps...
Quando chegar em casa eu verifico haha
Abraço!
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Que estranho isso aí... desinstala totalmente o seu e instala a versão nova, acho que vai ficar sem problemas.
Que bom que está gostando ![]()
Abraços!
Brother da uma ajudinha ae,ta dando alguns erros no meu distro quando inicia o servidor !!
Segue os erros :
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Warning - Actions::registerEvent] Duplicate registered item id: 2420
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:06] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:06] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:07] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:07] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:08] [Error - LuaScriptInterface::loadFile] data/lib/BloodCastle.lua:47: '}' expected (to close '{' at line 3) near 'function'
[03/01/2014 00:47:08] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[03/01/2014 00:47:08] [Error - GlobalEvent Interface]
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:onStartup
[03/01/2014 00:47:08] Description:
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:4: attempt to index global 'bloodconfig' (a nil value)
[03/01/2014 00:47:08] stack traceback:
[03/01/2014 00:47:08] data/globalevents/scripts/BloodGlobalStart.lua:4: in function <data/globalevents/scripts/BloodGlobalStart.lua:3>
Editado Janeiro 3 por phodarks
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Você copiou errado o conteúdo da lib ou modificou ele de forma errada.
Para arrumar vá até
toPos = {x = 44, y = 323, z = 7}, -- Canto inferior direito da área do seu evento
no arquivo da lib, pule uma linha e coloque }
Ficando assim
toPos = {x = 44, y = 323, z = 7}, -- Canto inferior direito da área do seu evento
}
Segue aqui minha lib brother :
-- == Blood Castle Event por amoeba 13 - Xtibia == --
bloodconfig = {
templo = {x = 912, y = 1033, z = 7}, -- templo
posGuarda = {x = 785, y = 1129, z = 7}, -- Onde o guarda do portão vai nascer
premios = {{2160, 1}, {2159, 10}, -- Premios que o vencedor pode ganhar {id, quantidade}
positionTP = {x = 911, y = 1029, z = 7}, -- Onde o tp será criado
positionEvento = {x = 783, y = 1165, z = 7}, -- Para onde o tp vai levar
tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
tempoAberto = 3, -- Tempo que o tp fica aberto. Em minutos
minPlayers = 1, -- Número mínimo de players que devem entrar para que o evento aconteça
tempoMaximo = 20, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
playersStorage = 54910, -- Não mude
posPedra1 = {x = 783, y = 1161, z = 7, stackpos=1}, -- Posicao das pedras
posPedra2 = {x = 784, y = 1161, z = 7, stackpos=1},
posPedra3 = {x = 785, y = 1161, z = 7, stackpos=1},
posPedra4 = {x = 786, y = 1161, z = 7, stackpos=1},
posPedra5 = {x = 787, y = 1161, z = 7, stackpos=1},
idDasParedes = 9486, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id)
estatua = {x = 785, y = 1112, z = 7}, -- Posicao onde o arcanjo vai ser criado
tempoSaida = 30, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
posParede1 = {x = 784, y = 1128, z = 7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer
posParede2 = {x = 785, y = 1128, z = 7, stackpos=1},
posParede3 = {x = 786, y = 1128, z = 7, stackpos=1},
fromPos = {x = 772, y = 1106, 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 = 800, y = 1174, z = 7}, -- Canto inferior direito da área do seu evento
}
-- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] --
function TirarTp()
local t = getTileItemById(bloodconfig.positionTP, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF)
end
end
function tirarPedras()
doRemoveItem(getTileItemById(bloodconfig.posPedra1, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra2, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra3, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra4, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra5, 1304).uid, 1)
end
function porPedras()
doCreateItem(1304, 1, bloodconfig.posPedra1)
doCreateItem(1304, 1, bloodconfig.posPedra2)
doCreateItem(1304, 1, bloodconfig.posPedra3)
doCreateItem(1304, 1, bloodconfig.posPedra4)
doCreateItem(1304, 1, bloodconfig.posPedra5)
end
function BotarTp()
local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP)
doItemSetAttribute(tip, "aid", 4726)
end
function TirarTpArc()
local t = getTileItemById(bloodconfig.estatua, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF)
end
end
function getPlayersInBlood()
playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage)
if playersInBlood < 0 then
playersInBlood = 0
end
return playersInBlood
end
function TirarPlayers()
for x = bloodconfig.fromPos.x, bloodconfig.toPos.x do
for y = bloodconfig.fromPos.y, bloodconfig.toPos.y do
for z = bloodconfig.fromPos.z, bloodconfig.toPos.z do
areaBlood = {x=x, y=y, z=z, stackpos = 253}
playersb = getThingFromPos(areaBlood)
if isPlayer(playersb.uid) then
doTeleportThing(playersb.uid, bloodconfig.templo, false)
doPlayerSendTextMessage(playersb.uid, 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
end
end
function checkBlood()
if getPlayersInBlood() >= bloodconfig.minPlayers then
tirarPedras()
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(TirarPlayers, bloodconfig.tempoMaximo*60*1000)
else
TirarPlayers()
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 porParedes()
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede1)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede2)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede3)
end
function criarEstatua()
if not isMonster(getTopCreature(bloodconfig.estatua).uid) then
doCreateMonster("Arcanjo", bloodconfig.estatua)
doBroadcastMessage("[Blood Castle] A estatua do arcanjo apareceu!")
end
end
function Garantir()
if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
porPedras()
doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then
porPedras()
porParedes()
doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
end
end
Editado Janeiro 3 por phodarks
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Aqui está sua lib corrigida:
-- == Blood Castle Event por amoeba 13 - Xtibia == --
bloodconfig = {
templo = {x = 912, y = 1033, z = 7}, -- templo
posGuarda = {x = 785, y = 1129, z = 7}, -- Onde o guarda do portão vai nascer
premios = {{2160, 1}, {2159, 10}}, -- Premios que o vencedor pode ganhar {id, quantidade}
positionTP = {x = 911, y = 1029, z = 7}, -- Onde o tp será criado
positionEvento = {x = 783, y = 1165, z = 7}, -- Para onde o tp vai levar
tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos
tempoAberto = 3, -- Tempo que o tp fica aberto. Em minutos
minPlayers = 1, -- Número mínimo de players que devem entrar para que o evento aconteça
tempoMaximo = 20, -- Tempo máximo, em minutos, que alguem pode permanecer no evento
playersStorage = 54910, -- Não mude
posPedra1 = {x = 783, y = 1161, z = 7, stackpos=1}, -- Posicao das pedras
posPedra2 = {x = 784, y = 1161, z = 7, stackpos=1},
posPedra3 = {x = 785, y = 1161, z = 7, stackpos=1},
posPedra4 = {x = 786, y = 1161, z = 7, stackpos=1},
posPedra5 = {x = 787, y = 1161, z = 7, stackpos=1},
idDasParedes = 9486, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id)
estatua = {x = 785, y = 1112, z = 7}, -- Posicao onde o arcanjo vai ser criado
tempoSaida = 30, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos
posParede1 = {x = 784, y = 1128, z = 7, stackpos=1}, -- Posicao das paredes que vao ser removidas quando o Guarda morrer
posParede2 = {x = 785, y = 1128, z = 7, stackpos=1},
posParede3 = {x = 786, y = 1128, z = 7, stackpos=1},
fromPos = {x = 772, y = 1106, 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 = 800, y = 1174, z = 7}, -- Canto inferior direito da área do seu evento
}
-- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] --
function TirarTp()
local t = getTileItemById(bloodconfig.positionTP, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF)
end
end
function tirarPedras()
doRemoveItem(getTileItemById(bloodconfig.posPedra1, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra2, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra3, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra4, 1304).uid, 1)
doRemoveItem(getTileItemById(bloodconfig.posPedra5, 1304).uid, 1)
end
function porPedras()
doCreateItem(1304, 1, bloodconfig.posPedra1)
doCreateItem(1304, 1, bloodconfig.posPedra2)
doCreateItem(1304, 1, bloodconfig.posPedra3)
doCreateItem(1304, 1, bloodconfig.posPedra4)
doCreateItem(1304, 1, bloodconfig.posPedra5)
end
function BotarTp()
local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP)
doItemSetAttribute(tip, "aid", 4726)
end
function TirarTpArc()
local t = getTileItemById(bloodconfig.estatua, 1387)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF)
end
end
function getPlayersInBlood()
playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage)
if playersInBlood < 0 then
playersInBlood = 0
end
return playersInBlood
end
function TirarPlayers()
for x = bloodconfig.fromPos.x, bloodconfig.toPos.x do
for y = bloodconfig.fromPos.y, bloodconfig.toPos.y do
for z = bloodconfig.fromPos.z, bloodconfig.toPos.z do
areaBlood = {x=x, y=y, z=z, stackpos = 253}
playersb = getThingFromPos(areaBlood)
if isPlayer(playersb.uid) then
doTeleportThing(playersb.uid, bloodconfig.templo, false)
doPlayerSendTextMessage(playersb.uid, 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
end
end
function checkBlood()
if getPlayersInBlood() >= bloodconfig.minPlayers then
tirarPedras()
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(TirarPlayers, bloodconfig.tempoMaximo*60*1000)
else
TirarPlayers()
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 porParedes()
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede1)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede2)
doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParede3)
end
function criarEstatua()
if not isMonster(getTopCreature(bloodconfig.estatua).uid) then
doCreateMonster("Arcanjo", bloodconfig.estatua)
doBroadcastMessage("[Blood Castle] A estatua do arcanjo apareceu!")
end
end
function Garantir()
if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then
porPedras()
doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid)
elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then
porPedras()
porParedes()
doRemoveCreature(getTopCreature(bloodconfig.estatua).uid)
end
end
[/spoiler]
Vc tinha esquecido um } nessa linha:
premios = {{2160, 1}, {2159, 10}},
vc pode me fala onde meche pra coloca pra assim q destrui o guarda e abri o muro o arcanjo nasce na mesma hora
e quando evento temrina da esse erro
[error- talkaaction interface]
in a timer event called from
data/talkactions/scripts/blood-star.lua:onsay
description
<luagetthingfrompos>tile not found
desculpe ja consegui arruma 1 outra coisa n sei se e erro ou eu configurei errado mais o premium ta indo pra quem da o ultimo hit e n quem hito mais
vc poderia me fala como faz pra assimq derroa o guarda o arcanjo nascer e n ter q espera obrigado
Editado Janeiro 12 por jhony157
info
Grupo: Campones
Registrado: 16/01/14
Posts: 2
Reputação: 0

Testei no meu mapa Baiak, com talkaction o evento começa normal aparece o tp. A mensagem dizendo quantos player entraram. Mas o Guarda nao aparece, nem o arcanjo. Ajuda ae?'
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Você deve ter feito alguma coisa errada... Instale tudo denovo, arquivo por arquivo, do jeito que coloquei no tópico. E também preste atenção na hora de configurar a lib (principalmente com as posições).




info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
Manda