igordutra 0 Postado Agosto 18, 2017 Share Postado Agosto 18, 2017 Olá eu estou com um problema em um script que peguei de outro servidor coloquei tudo eu acho quando ele tenta iniciar o evento ele apenas Fecha não Inicia da esse seguinte erro uso TFs4 8.60 realcastle.lua: 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 true end]] 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 true end Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Agosto 18, 2017 Share Postado Agosto 18, 2017 falta a função getplayersinarea. Link para o comentário Compartilhar em outros sites More sharing options...
igordutra 0 Postado Agosto 18, 2017 Autor Share Postado Agosto 18, 2017 como eu aplico getplayersinarea no script não manjo faze script :X Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Agosto 18, 2017 Share Postado Agosto 18, 2017 8 minutos atrás, igordutra disse: como eu aplico getplayersinarea no script não manjo faze script :X Onde tu pegou esses scripts? lá deveria ter. Link para o comentário Compartilhar em outros sites More sharing options...
igordutra 0 Postado Agosto 18, 2017 Autor Share Postado Agosto 18, 2017 (editado) Eu baixei de um servidor de baiak mais veio sem as sources ai fui pegando oque eu achei no rme so que falto essa parada ai e eu não achei e nem sei como colocar :c ele ta funcionando direito so que em vez de iniciar o evento ele ja fecha logo de começo. Editado Agosto 18, 2017 por igordutra Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Agosto 18, 2017 Share Postado Agosto 18, 2017 Se tu ainda tiver o servidor, busca na pasta lib algum arquivo relacionado a functions; pode ser que esteja nele. Não sei se vai servir a teu proposito, mas tenta usar esse aqui: function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList,radiusx,radiusy = {},radiusx or 0,radiusy or 0 for x = -radiusx, radiusx do for y = -radiusy, radiusy do local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then table.insert(creaturesList, creature.uid) end end end return creaturesListend lembrando que tu vai ter que fazer as devidas adaptações de parâmetros. Link para o comentário Compartilhar em outros sites More sharing options...
igordutra 0 Postado Agosto 18, 2017 Autor Share Postado Agosto 18, 2017 é isso daqui ? realCastle = { open_storage = 722374, guild_storage = 722375, date_storages = {722376,722377,722378}, open_days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Wednesday","Saturday"}, frompos = {x = 194, y = 393, z = 7}, topos = {x = 167, y = 50, z = 8} } realCastle.removePlayers = function() local first_cave = getPlayersInArea({x = 2079, y = 1332, z = 6},{x = 2111, y = 1314, z = 3}) local second_cave = getPlayersInArea({x = 1995, y = 1307, z = 7},{x = 2014, y = 1328, z = 7}) local third_cave = getPlayersInArea({x = 2069, y = 1277, z = 7},{x = 2119, y = 1328, z = 7}) local fourth_cave = getPlayersInArea({x = 2172, y = 1286, z = 7},{x = 2226, y = 1312, z = 7}) local fifith_cave = getPlayersInArea({x = 1527, y = 1388, z = 7},{x = 1539, y = 1448, z = 7}) local sixth_cave = getPlayersInArea({x = 1606, y = 1392, z = 7},{x = 1645, y = 1453, z = 7}) local area7 = getPlayersInArea({x = 1736, y = 1385, z = 6}, {x = 1778, y = 1437, z = 6}) local area8 = getPlayersInArea({x = 1714, y = 1293, z = 7}, {x = 1704, y = 1353, z = 7}) local area9 = getPlayersInArea({x = 1792, y = 1310, z = 7}, {x = 1806, y = 1362, z = 7}) local area10 = getPlayersInArea({x = 1682, y = 1208, z = 7}, {x = 1687, y = 1257, z = 7}) local area11 = getPlayersInArea({x = 1766, y = 1205, z = 7}, {x = 1836, y = 1271, z = 7}) local area12 = getPlayersInArea({x = 1907, y = 1293, z = 7}, {x = 1920, y = 1365, z = 7}) local area13 = getPlayersInArea({x = 1834, y = 1383, z = 7}, {x = 1805, y = 1449, z = 7}) local area14 = getPlayersInArea({x = 1911, y = 1387, z = 7}, {x = 1920, y = 1459, z = 7}) local area15 = getPlayersInArea({x = 2013, y = 1094, z = 7}, {x = 2016, y = 1205, z = 7}) local area16 = getPlayersInArea({x = 2278, y = 1186, z = 7}, {x = 2339, y = 1293, z = 7}) local area17 = getPlayersInArea({x = 2223, y = 1227, z = 6}, {x = 2253, y = 1198, z = 5}) local area18 = getPlayersInArea({x = 1910, y = 1471, z = 6}, {x = 1878, y = 1404, z = 6}) 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 area11 then for _, pid in pairs(area11) 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 area12 then for _, pid in pairs(area12) 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 area13 then for _, pid in pairs(area13) 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 area14 then for _, pid in pairs(area14) 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 area15 then for _, pid in pairs(area15) 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 area16 then for _, pid in pairs(area16) 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 area17 then for _, pid in pairs(area17) 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 area18 then for _, pid in pairs(area18) 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 end end 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) == 1 end Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Agosto 18, 2017 Share Postado Agosto 18, 2017 adiciona essa função a seu servidor. function getPlayersInArea(frompos,topos) --[[( Marcryzius )]]--local players = {} for X = frompos.x,topos.x do for Y = frompos.y,topos.y do local get = getThingfromPos({x=X,y=Y,z=topos.z, stackpos=253}) if(get and isPlayer(get.uid))then table.insert(players,get.uid) end end end return playersend Link para o comentário Compartilhar em outros sites More sharing options...
igordutra 0 Postado Agosto 18, 2017 Autor Share Postado Agosto 18, 2017 onde eu coloco ela tentei faze umas gambiarra e aqui e não deu começo da um monte de error e derrubava o servidor Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Agosto 19, 2017 Share Postado Agosto 19, 2017 2 horas atrás, igordutra disse: onde eu coloco ela tentei faze umas gambiarra e aqui e não deu começo da um monte de error e derrubava o servidor Poem o codigo que do @Poccnn no arquivo 050-function ou crie um arquivo .lua na pasta data/lib (o arquivo 050-function fica localizado na mesma pasta lib) Link para o comentário Compartilhar em outros sites More sharing options...
igordutra 0 Postado Agosto 19, 2017 Autor Share Postado Agosto 19, 2017 (editado) Coloquei e agora deu esse error Eu tinha colocado no function e tinha dado esse error antes ai criei uma nova lua na lib e deu o mesmo error :x Eu copiei os script desse server http://www.mediafire.com/file/q9m75ovnk7h6g9q/otserv.zip Editado Agosto 19, 2017 por igordutra Link para o comentário Compartilhar em outros sites More sharing options...
Poccnn 385 Postado Agosto 19, 2017 Share Postado Agosto 19, 2017 3 horas atrás, igordutra disse: Coloquei e agora deu esse error Eu tinha colocado no function e tinha dado esse error antes ai criei uma nova lua na lib e deu o mesmo error :x Eu copiei os script desse server http://www.mediafire.com/file/q9m75ovnk7h6g9q/otserv.zip Deixe o script dentro do arquivo function. Esse erro se deu por não existir o tile. Verifique as posições se estão corretas; quando digo corretas, digo na posição certa e onde exista tiles. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Novembro 29, 2017 Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados