Postado Agosto 31, 2017 7 anos Primeiramente, da esse erro na talk. -- == Blood Castle Event por Killua == -- function onSay(cid, words, param, channel) local plural = bloodconfig.tempoTP == 1 and "minuto" or "minutos" local plurals = bloodconfig.tempoAberto == 1 and "minuto" or "minutos" doBroadcastMessage("[Blood Castle] O portal para o evento vai ser aberto em " .. bloodconfig.tempoTP .. " " .. plural .. ", nao percam!") addEvent(createTeleportb, bloodconfig.tempoTP*60*1000) addEvent(doBroadcastMessage, bloodconfig.tempoTP*60*1000, "[Blood Castle] O teleport para o evento foi aberto no templo e vai sumir em " .. bloodconfig.tempoAberto .. " " .. plurals .. ". Se apressem!") addEvent(removeTpb, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000) addEvent(checkBlood, bloodconfig.tempoTP+bloodconfig.tempoAberto*60*1000+60*1000) addEvent(Guarantee, bloodconfig.tempoMaximo*60*1000+15000) return true end O segundo problema, é que não remove a statua da sala de espera, no script original são mais que uma posição, porém eu coloquei todas as mesma, pq quero que suma só a estatua. lib -- == Blood Castle Event por Killua == -- bloodconfig = { templo = {x = 1023, y = 1027, z = 7}, -- templo posGuarda = {x = 2720, y = 956, z = 8}, -- Onde o guarda do portão vai nascer premios = {{11773, 3}, {9971, 15}}, -- Premios que o vencedor vai ganhar {id, quantidade} positionTP = {x = 1106, y = 975, z = 7}, -- Onde o tp será criado positionEvento = {x = 2566, y = 972, z = 6}, -- Para onde o tp vai levar tempoTP = 1, -- Depois de quanto tempo que avisou vai ser criado o tp? Em minutos tempoAberto = 2, -- Tempo que o tp fica aberto. Em minutos minPlayers = 2, -- Número mínimo de players que devem entrar para que o evento aconteça tempoMaximo = 45, -- Tempo máximo, em minutos, que alguem pode permanecer no evento playersStorage = 54910, -- Não mude posPedras = {{x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6, stackpos=1}, {x = 2566, y = 971, z = 6,stackpos=1}, {x = 2566, y = 971, z = 6, stackpos=1}}, -- Posições das pedras que bloqueiam a entrada do evento idDasParedes = 9258, -- ID das paredes que vao ser removidas quando o Guarda morrer (todas devem ter o mesmo id) estatua = {x = 2735, y = 937, z = 5}, -- Posicao onde o arcanjo vai ser criado tempoSaida = 30, -- Quando tempo o tp q é criado quando a estátua morre vai ficar? Em segundos posParedes = {{x = 2721, y = 955, z = 8, stackpos=1}, {x = 2721, y = 956, z = 8, stackpos=1}, {x = 2721, y = 957, z = 8, stackpos=1}}, -- Posições das paredes que ficam atrás do guarda fromPos = {x = 2536, y = 864, z = 8}, -- Canto superior esquerdo da área do seu evento ---- Deve ser uma área quadrada ou retangular, de forma que todo o evento fique dentro dela. toPos = {x = 2772, y = 1023, z = 5}, -- Canto inferior direito da área do seu evento } -- [[ NAO ALTERE MAIS NADA DAQUI PARA BAIXO! ]] -- function removeTpb() local t = getTileItemById(bloodconfig.positionTP, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(bloodconfig.positionTP, CONST_ME_POFF) end end function removeStones() for i = 1, #bloodconfig.posPedras do local pedra = getTileItemById(bloodconfig.posPedras[i], 1304) if pedra then doRemoveItem(pedra.uid, 1) end end end function putStones() for i = 1, #bloodconfig.posPedras do local pedra = getTileItemById(bloodconfig.posPedras[i], 1304).uid if pedra < 1 then doCreateItem(1304, 1, bloodconfig.posPedras[i]) end end end function createTeleportb() local tip = doCreateTeleport(1387, bloodconfig.positionEvento, bloodconfig.positionTP) doItemSetAttribute(tip, "aid", 4726) end function removeTpa() local t = getTileItemById(bloodconfig.estatua, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(bloodconfig.estatua, CONST_ME_POFF) end end function getPlayersInBlood() local playersInBlood = getGlobalStorageValue(bloodconfig.playersStorage) return playersInBlood < 0 and 0 or playersInBlood end function removePlayers() for _, pid in pairs(getPlayersOnline()) do if isInArea(getThingPos(pid), bloodconfig.fromPos, bloodconfig.toPos) then doTeleportThing(pid, bloodconfig.templo, false) doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce foi removido do Blood Castle. Possiveis causas: o evento nao atingiu o numero minimo de players; Voce permaneceu no evento por mais de " .. bloodconfig.tempoMaximo .. " minutos.") end end end function checkBlood() if getPlayersInBlood() >= bloodconfig.minPlayers then removeStones() doBroadcastMessage("[Blood Castle] O Evento comecou e o teleporte para ele foi fechado. Boa sorte a todos!") if not isMonster(getTopCreature(bloodconfig.posGuarda).uid) then doCreateMonster("Guarda do Portao", bloodconfig.posGuarda) end addEvent(removePlayers, bloodconfig.tempoMaximo*60*1000) else removePlayers() setGlobalStorageValue(bloodconfig.playersStorage, 0) doBroadcastMessage("[Blood Castle] O evento nao atingiu o numero minimo de participantes e foi cancelado.") if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid) end if isMonster(getTopCreature(bloodconfig.estatua).uid) then doRemoveCreature(getTopCreature(bloodconfig.estatua).uid) end end end function putWalls() for i = 1, #bloodconfig.posParedes do doCreateItem(bloodconfig.idDasParedes, 1, bloodconfig.posParedes[i]) end end function removeWalls() for i = 1, #bloodconfig.posParedes do local wall = getTileItemById(bloodconfig.posParedes[i], bloodconfig.idDasParedes) if wall then doRemoveItem(wall.uid, 1) end end end function createAngel() if not isMonster(getTopCreature(bloodconfig.estatua).uid) then doCreateMonster("Arcanjo", bloodconfig.estatua) doBroadcastMessage("[Blood Castle] A estatua do arcanjo apareceu!") end end function Guarantee() if isMonster(getTopCreature(bloodconfig.posGuarda).uid) then putWalls() doRemoveCreature(getTopCreature(bloodconfig.posGuarda).uid) elseif isMonster(getTopCreature(bloodconfig.estatua).uid) then putStones() putWalls() doRemoveCreature(getTopCreature(bloodconfig.estatua).uid) end end Outra coisa, pq ao iniciar o distro, aparece 0 jogadores no evento? E passível de resolução? movements -- == Blood Castle Event por Killua == -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if item.actionid == 4726 then setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()+1) print(getPlayersInBlood().. " Jogadores no Blood Castle") elseif item.actionid == 9371 then setGlobalStorageValue(bloodconfig.playersStorage, getPlayersInBlood()-1) print(getPlayersInBlood().. " Jogadores no Blood Castle") end return true end Se precisar do script original, segue o link, porém eu so alterei na lib as modificações.
Postado Agosto 31, 2017 7 anos Você não precisa colocar tantas posiçoes iguais da mesma pedra, por que alguns for's iram puxar quantas pedras sao por essa tabela, apenas reduza para. posPedras = {x = 2566, y = 971, z = 6, stackpos=1}, www.pokemiw.com 24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
Postado Agosto 31, 2017 7 anos Autor Em 31/08/2017 em 02:40, klipstyle disse: Você não precisa colocar tantas posiçoes iguais da mesma pedra, por que alguns for's iram puxar quantas pedras sao por essa tabela, apenas reduza para. posPedras = {x = 2566, y = 971, z = 6, stackpos=1}, Olá, fiz o que você sugeriu, mas ainda sim não remove a statua.
Postado Agosto 31, 2017 7 anos Em 31/08/2017 em 09:44, JcA disse: Olá, fiz o que você sugeriu, mas ainda sim não remove a statua. O id esta correto em idDasParedes www.pokemiw.com 24 Horas Online - 1º 2º 3º 4º 5º 6º 7º gerações 100%
Postado Agosto 31, 2017 7 anos Autor Em 31/08/2017 em 18:04, klipstyle disse: O id esta correto em idDasParedes Não, essa parte que remove a statua não precisa de ids, isso é da parede, quando mata o guarda, o da statua é quando abre a sala de espera para começar o evento, entendeu? Tem que mudar algo no codigo
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.