Postado Abril 1, 2019 6 anos @WooX Pessoal, estou com uma dúvida aqui, e gostaria que alguém me respondesse. É possível fazer com que quando o Servidor caia ou reinicie a Guild que tá com o Domínio do Castle não o perca quando o Servidor voltar? Se sim, alguém poderia me ajudar? Por favor. Castle 24H <Actions> Spoiler function onUse(cid, item, frompos, item2, topos) local castle_one_name = "Castle 24H" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) local premio_por_vezes = 0 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 1500 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 7443 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) local teleport = {x=1349, y=1504, z=7} if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("[Castle 24H] O(a) jogador(a) "..getCreatureName(cid).." acabou de conquistar o "..castle_one_name.." para a guild \""..guildname.."\" pela "..sto_vezes_total.."ª vez. Premio: 20% a mais de exp.", 22) doCreatureSay(cid, "[Castle 24H] Sua guild ganhou 20% a mais de experiencia, relogue para ativar!", TALKTYPE_ORANGE_1) doSendMagicEffect(position, 39) if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doBroadcastMessage("[Castle 24H] O "..getCreatureName(cid).." ganhou uma(o) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!", 21) doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "[Castle 24H] Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end -- else doPlayerSendTextMessage(cid, 18, "[Castle 24H] Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"[Castle 24H] Este castelo ja foi conquistado pela sua guild!") doSendMagicEffect(position, 2) end else doPlayerSendCancel(cid,"[Castle 24H] O sistema está desativado") end else doPlayerSendCancel(cid,"[Castle 24H] É nescessario ter guild para dominar o castelo!") doSendMagicEffect(position, 2) end end function additem(cid,premio,premio_cont,premio_reset) if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) doPlayerSendTextMessage(cid, 18, "[Castle 24H] Voce recebeu o(a) "..getItemNameById(premio).." como recompensa das suas "..premio_vezes.." conquistas!") if premio_reset == 1 then setPlayerStorageValue(cid,storages[1],0) end stopEvent(additem) else doPlayerSendTextMessage(cid, 18, "[Castle 24H] Voce nao tem capacidade para ganhar o item. Verificando novamente em 10 segundos!") addEvent(additem,10000,cid) end end function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end Castle 48H <Lib> Spoiler --[[ Real Castle Event Desenvolvido por Vítor Bertolucci (Killua) ]] realCastle = { open_storage = 100005, guild_storage = 100006, date_storages = {100007,100008,100009}, frompos = {x = 3166, y = 260, z = 7}, topos = {x = 3293, y = 337, z = 7} } realCastle.removePlayers = function() local first_cave = getPlayersInArea({x = 2829, y = 7, z = 7},{x = 3118, y = 467, z = 7}) local second_cave = getPlayersInArea({x = 2902, y = 340, z = 7},{x = 3445, y = 585, z = 7}) local fifith_cave = getPlayersInArea({x = 3304, y = 192, z = 7},{x = 3687, y = 340, z = 7}) local sixth_cave = getPlayersInArea({x = 3595, y = 260, z = 8},{x = 3689, y = 338, z = 8}) local seventh_cave = getPlayersInArea({x = 3616, y = 270, z = 9},{x = 3680, y = 341, z = 9}) local eight_cave = getPlayersInArea({x = 3445, y = 175, z = 6},{x = 3515, y = 241, z = 6}) local ninth_cave = getPlayersInArea({x = 3445, y = 175, z = 5},{x = 3515, y = 241, z = 5}) local tenth_cave = getPlayersInArea({x = 3445, y = 175, z = 4},{x = 3515, y = 241, z = 4}) local eleventh_cave = getPlayersInArea({x = 3143, y = 342, z = 8},{x = 3246, y = 423, z = 8}) 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 Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if second_cave then for _, pid in pairs(second_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 2829 and pos.x <= 3118 and pos.y >= 7 and pos.y <= 467 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 2902 and pos.x <= 3445 and pos.y >= 340 and pos.y <= 585 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end for _, tid in pairs(getPlayersOnline()) do local pos = getThingPos(tid) if pos.x >= 3304 and pos.x <= 3687 and pos.y >= 192 and pos.y <= 340 then doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(tid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if fifith_cave then for _, pid in pairs(fifith_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if sixth_cave then for _, pid in pairs(sixth_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if seventh_cave then for _, pid in pairs(seventh_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if eight_cave then for _, pid in pairs(eight_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if ninth_cave then for _, pid in pairs(ninth_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if tenth_cave then for _, pid in pairs(tenth_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if eleventh_cave then for _, pid in pairs(eleventh_cave) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end if castle_area then for _, pid in pairs(castle_area) do doTeleportThing(pid,getTownTemplePosition(1)) doPlayerPopupFYI(pid,"O Castle 48H estar em modo de batalha. Todos os jogadores que estavam dentro do castle foram levados ao templo.") end end end realCastle.open = function() setGlobalStorageValue(realCastle.open_storage,1) setGlobalStorageValue(realCastle.guild_storage,-1) realCastle.removePlayers() end realCastle.close = function() setGlobalStorageValue(realCastle.open_storage,-1) 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("[Castle 48H] A batalha terminou e nenhuma guild conseguiu dominar o castelo! Amanhã às 20:00 vocês podem tentar novamente!") else doBroadcastMessage("[Castle 48H] 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 20: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 end end realCastle.domain = function(cid) local guild_id = getPlayerGuildId(cid) setGlobalStorageValue(realCastle.guild_storage,guild_id) setGuildRealCastle(cid) realCastle.broadcast("[Castle 48H] O jogador "..getPlayerName(cid).." da guild "..getPlayerGuildName(cid).." dominou o castelo! As outras guilds têm até às 21: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) == 1 end function setGuildRealCastle(cid) db.executeQuery("UPDATE `guilds` SET `real_castle` = REPLACE(`real_castle`, 1, 0);") db.executeQuery("UPDATE `guilds` SET `real_castle` = 1 WHERE `id` = '" .. getPlayerGuildId(cid) .."';") end Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Abril 2, 2019 6 anos O sistema possui algum script em globalevents? Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito. Aristóteles
Postado Abril 2, 2019 6 anos Autor @WooX Não @victor4312 Funcionou, valeu. Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Outubro 18, 2023 1 ano ola, desculpa reviver o TOP mas estou com o mesmo problema, se alguém poder me ajuda, ja dei uma procurada e so achei este topco
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.