Postado Julho 23, 2023 1 ano Olá, atualmente utilizo o sistema de castle war do killua, o famoso castle war dos baiaks. Ele abre todos os dias das x as x hroas. Quem domina o castelo é o último que puxa a alavanca (ou seja: os jogadores só vão disputa-lo perto do final do tempo que o castle fecha.) Eu vi em um servidor que quem vence o castelo é quem fica com o domínio por mais tempo. Exemplo: Guild 1 dominou a alavanca por 33 minutos, guild 2 por 27 minutos, quem vence é a guild 1 que dominou por mais tempo. Exemplo o script da alavanca de domínio: --[[ Real Castle Event Desenvolvido por Vítor Bertolucci (Killua) ]] 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 = " ----------[CastleWar]---------\n\n\nAtualmente "..domain..".\n\nPróxima batalha: Todos os dias às 21:00 até as 22:30." 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 true end
Postado Julho 25, 2023 1 ano --[[ Real Castle War Event Desenvolvido por Vítor Bertolucci (Killua) ]] local castleOpenHour = 21 -- Hora de abertura do Castle War local castleCloseHour = 22 -- Hora de fechamento do Castle War local guildStorage = 1000 -- Storage global para armazenar o ID da guilda que controla o castelo local dominionStorage = 1001 -- Storage global para armazenar o tempo que a guilda dominou a alavanca function onUse(cid, item, frompos, item2, topos) if item.uid == 61466 then local currentTime = os.time() -- Obtém o horário atual em segundos desde 1970-01-01 00:00:00 if currentTime >= getCastleOpenTimeToday() and currentTime <= getCastleCloseTimeToday() then local guildDominion = getGlobalStorageValue(guildStorage) local dominionTime = getGlobalStorageValue(dominionStorage) local currentGuild = getPlayerGuildId(cid) local currentDominionTime = currentTime - getCastleOpenTimeToday() if currentGuild == guildDominion and currentDominionTime > dominionTime then setGlobalStorageValue(dominionStorage, currentDominionTime) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua guilda está dominando o castelo!") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua guilda já dominou o castelo ou não está participando.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O Castle War não está aberto no momento.") end return true end end function getCastleOpenTimeToday() local currentTime = os.time() local openTimeToday = os.time({ hour = castleOpenHour, min = 0, sec = 0 }) if currentTime < openTimeToday then -- Se o horário atual for antes do horário de abertura hoje, retornar o horário de abertura de ontem return openTimeToday - 86400 -- 86400 segundos em um dia else return openTimeToday end end function getCastleCloseTimeToday() return os.time({ hour = castleCloseHour, min = 0, sec = 0 }) end Teste aí e, se encontrar algum erro, me avise.
Postado Julho 25, 2023 1 ano --[[ Real Castle War Event Desenvolvido por Vítor Bertolucci (Killua) ]] local castleOpenHour = 21 -- Hora de abertura do Castle War local castleCloseHour = 22 -- Hora de fechamento do Castle War local guildStorage = 1000 -- Storage global para armazenar o ID da guilda que controla o castelo local dominionStorage = 1001 -- Storage global para armazenar o tempo que a guilda dominou a alavanca function onUse(cid, item, frompos, item2, topos) if item.uid == 1945 or item.uid == 1946 then local currentTime = os.time() -- Obtém o horário atual em segundos desde 1970-01-01 00:00:00 if currentTime >= getCastleOpenTimeToday() and currentTime <= getCastleCloseTimeToday() then local guildDominion = getGlobalStorageValue(guildStorage) local dominionTime = getGlobalStorageValue(dominionStorage) local currentGuild = getPlayerGuildId(cid) local currentDominionTime = currentTime - getCastleOpenTimeToday() if currentGuild == guildDominion and currentDominionTime > dominionTime then setGlobalStorageValue(dominionStorage, currentDominionTime) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua guilda está dominando o castelo!") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua guilda já dominou o castelo ou não está participando.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O Castle War não está aberto no momento.") end return true end end function getCastleOpenTimeToday() local currentTime = os.time() local openTimeToday = os.time({ hour = castleOpenHour, min = 0, sec = 0 }) if currentTime < openTimeToday then -- Se o horário atual for antes do horário de abertura hoje, retornar o horário de abertura de ontem return openTimeToday - 86400 -- 86400 segundos em um dia else return openTimeToday end end function getCastleCloseTimeToday() return os.time({ hour = castleCloseHour, min = 0, sec = 0 }) end Desculpa, agora eu vi que é alavanca.
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.