Ir para conteúdo

Featured Replies

Postado

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

 

  • Respostas 7
  • Visualizações 606
  • Created
  • Última resposta

Top Posters In This Topic

Postado
--[[

        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
--[[

        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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo