Postado Dezembro 29, 2017 7 anos Citar realCastle = { open_storage = 722374, guild_storage = 722375, date_storages = {722376,722377,722378}, open_days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Wednesday","Saturday"}, frompos = {x = 1625, y = 1706, z = 6}, topos = {x = 1732, y = 1778, z = 6} } realCastle.removePlayers = function() local first_cave = getPlayersInArea({x = 1953, y = 1473, z = 0},{x = 2071, y = 1569, z = 0}) local second_cave = getPlayersInArea({x = 1734, y = 1056, z = 0},{x = 1845, y = 1135, z = 0}) local third_cave = getPlayersInArea( {x = 2108, y = 1083, z = 0}, {x = 2194, y = 1156, z = 0}) local fourth_cave = getPlayersInArea( {x = 1882, y = 1668, z = 0}, {x = 1961, y = 1776, z = 0}) local fifith_cave = getPlayersInArea( {x = 2196, y = 1084, z = 0}, {x = 2278, y = 1169, z = 0}) local sixth_cave = getPlayersInArea( {x = 1839, y = 1048, z = 0}, {x = 1944, y = 1128, z = 0}) local area7 = getPlayersInArea( {x = 2323, y = 1093, z = 0}, {x = 2419, y = 1171, z = 0}) local area8 = getPlayersInArea( {x = 2045, y = 1325, z = 0}, {x = 2206, y = 1441, z = 0}) local area9 = getPlayersInArea( {x = 1954, y = 1664, z = 0}, {x = 2033, y = 1775, z = 0}) local area10 = getPlayersInArea( {x = 1771, y = 1679, z = 0}, {x = 1877, y = 1767, z = 0}) local castle_area = getPlayersInArea(realCastle.frompos,realCastle.topos) if first_cave then for _, pid in pairs(first_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if second_cave then for _, pid in pairs(second_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if third_cave then for _, pid in pairs(third_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if fourth_cave then for _, pid in pairs(fourth_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 2288 and pos.x <= 2364 and pos.y >= 433 and pos.y <= 509 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 2148 and pos.x <= 2189 and pos.y >= 641 and pos.y <= 679 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 2229 and pos.x <= 622 and pos.y >= 2320 and pos.y <= 704 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if fifith_cave then for _, pid in pairs(fifith_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if sixth_cave then for _, pid in pairs(sixth_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if area10 then for _, pid in pairs(area10) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end if castle_area then for _, pid in pairs(castle_area) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O domínio de sua guild sob o castelo acabou e uma nova batalha está se iniciando.") end end end realCastle.open = function() setGlobalStorageValue(realCastle.open_storage,1) setGlobalStorageValue(realCastle.guild_storage,-1) realCastle.removePlayers() end realCastle.release = function() setGlobalStorageValue(realCastle.guild_storage,-1) realCastle.removePlayers() end realCastle.close = function() setGlobalStorageValue(realCastle.open_storage,-1) local tomorrow = getTomorrowsDate(getTomorrowsDate()[1]) for i = 1,3 do setGlobalStorageValue(realCastle.date_storages,tomorrow) end local players = getPlayersInArea(realCastle.frompos, realCastle.topos) if players then for _, pid in pairs(players) do doTeleportThing(pid,getTownTemplePosition(1)) end end if getGlobalStorageValue(realCastle.guild_storage) == -1 then doBroadcastMessage("[Real Castle] A batalha terminou e nenhuma guild conseguiu dominar o castelo! Amanhã às 19:00 vocês podem tentar novamente!") else doBroadcastMessage("[Real Castle] A batalha terminou e a guild vencedora foi "..getGuildNameByID(getGlobalStorageValue(realCastle.guild_storage)).."! Todos os jogadores dessa guild agora podem aproveitar o castelo até amanhâ às 19:00!") end doSaveServer()end realCastle.broadcast = function(message) local players = getPlayersInArea(realCastle.frompos, realCastle.topos) if players then for _, pid in pairs(players) do doPlayerSendTextMessage(pid,MESSAGE_STATUS_WARNING,message) end endend realCastle.domain = function(cid) local guild_id = getPlayerGuildId(cid) setGlobalStorageValue(realCastle.guild_storage,guild_id) realCastle.broadcast("[Real Castle] O jogador "..getPlayerName(cid).." da guild "..getPlayerGuildName(cid).." dominou o castelo! As outras guilds têm até às 20:00 para conseguir tirar o domínio deles, não desistam!")end realCastle.isDominating = function(cid) local guild_id = getPlayerGuildId(cid) return guild_id == getGlobalStorageValue(realCastle.guild_storage)end realCastle.isOpen = function() return getGlobalStorageValue(realCastle.open_storage) == 1end ACTIONS Citar function onUse(cid, item, frompos, item2, topos) if item.uid == 61466 then local guild = getGlobalStorageValue(realCastle.guild_storage) > 1 and "a guild "..getGuildNameByID(getGlobalStorageValue(realCastle.guild_storage)).." possui o domínio" or "nenhuma guild possui o domínio do castelo" local sto = realCastle.date_storages local gsto = getGlobalStorageValue local time = gsto(sto[1]).."/"..gsto(sto[2]).."/"..gsto(sto[3]) local domain = realCastle.isOpen() and "as guilds estão batalhando pelo domínio do castelo" or guild local msg = " ----------[Real Castle]---------\n\n\nAtualmente "..domain..".\n\nPróxima batalha: "..time.." às 21:00." doShowTextDialog(cid,8977,msg) return true end if not realCastle.isOpen() then doTeleportThing(cid,getTownTemplePosition(1)) return true end if not realCastle.isDominating(cid) then realCastle.domain(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_CRAPS) else doPlayerSendCancel(cid,"Sua guild já está com o domínio do castelo.") end return trueend GLOBAL EV Citar local function announce(message, times) if times == 0 then return true end doBroadcastMessage(message) addEvent(announce,5*60000,message,times - 1)end --[[function onTime() if not realCastle.isOpen() then announce("[Real Castle] O acesso à área de dominar do castelo está liberado até as 20:00. Boa sorte a todas as guilds!",11) for i = 1,4 do addEvent(doBroadcastMessage,60000 * i,"[Real Castle] O acesso à área de dominar do castelo está liberado até as 20:00. Boa sorte a todas as guilds!") end realCastle.open() else realCastle.close() end return trueend]] function onTime() if realCastle.isOpen() then realCastle.close() else if isInArray(realCastle.open_days, os.date("%A")) then announce("[Real Castle] O acesso à área de dominar do castelo está liberado até as 20:00. Boa sorte a todas as guilds!",11) for i = 1,4 do addEvent(doBroadcastMessage,60000 * i,"[Real Castle] O acesso à área de dominar do castelo está liberado até as 20:00. Boa sorte a todas as guilds!") end realCastle.open() else doBroadcastMessage("[Real Castle] O castelo foi fechado para os plebeus poderem prepará-lo para a próxima batalha, que ocorrerá amanhã às 19:00!") realCastle.release() end end return trueend MOVEME Citar function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if item.actionid == 61465 then if realCastle.isOpen() then if getPlayerGuildId(cid) > 0 then if getPlayerLevel(cid) >= 250 then doSendMagicEffect(getThingPos(cid),CONST_ME_MAGIC_BLUE) else doPlayerSendCancel(cid,"Somente jogadores level 250+ podem tentar dominar o castelo.") doTeleportThing(cid,fromPosition) doSendMagicEffect(fromPosition,CONST_ME_POFF) end else doPlayerSendCancel(cid,"Somente jogadores com guild podem tentar dominar o castelo.") doTeleportThing(cid,fromPosition) doSendMagicEffect(fromPosition,CONST_ME_POFF) end else doPlayerSendCancel(cid,"O castelo não está aberto para invasões.") doTeleportThing(cid,fromPosition) doSendMagicEffect(fromPosition,CONST_ME_POFF) end elseif item.actionid == 61466 then if not realCastle.isOpen() then if realCastle.isDominating(cid) then doSendMagicEffect(getThingPos(cid),CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Bem vindo ao New Castle!") else doPlayerSendCancel(cid,"Somente membros da guild dominante podem entrar.") doTeleportThing(cid,{x = toPosition.x, y = toPosition.y + 2, z = toPosition.z}) doSendMagicEffect({x = toPosition.x, y = toPosition.y + 2, z = toPosition.z},6) end else doPlayerSendCancel(cid,"Não é permitido entrar no castelo enquanto as guild estão batalhando pelo seu domínio.") doTeleportThing(cid,{x = toPosition.x, y = toPosition.y + 2, z = toPosition.z}) doSendMagicEffect({x = toPosition.x, y = toPosition.y + 2, z = toPosition.z},6) end end return trueend Ele não funciona, não aparece o horario descrito para começar, não da nenhum erro no tfs 0.4 não começa o evento nem nada do tipo @Cjaker Editado Dezembro 29, 2017 7 anos por mostjf (veja o histórico de edições)
Postado Dezembro 29, 2017 7 anos Precisa cadastrar o evento no globalevents.xml para que possa ser ativado, no caso ele é do tipo onTime, onde será executado em um tempo específico. Não sei se é o mesmo exemplo no 8.6, mas segue como funciona nos Servidores atuais. <globalevent name="Event" time="18:00:00" script="events/Event.lua"/> Após cadastrado no .xml ele poderá ser executado, caso não funcione é problema no Script. https://github.com/Cjaker/ , _ , ( o o ) /'` ' `'\ ESTOU TE OBSERVANDO O_O |'''''''| |\\'''//| """
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.