Postado Outubro 21, 2015 9 anos local function TPSai() local teleport = getTileItemById(config.teleportPos, config.teleportId).uid if(teleport > 0) then doRemoveItem(teleport) doSendMagicEffect(config.teleportPos, CONST_ME_POFF) end doBroadcastMessage("O teleport sumiu do templo, amanhã as 20hrs ele volta.", MESSAGE_STATUS_WARNING) print('Removed TP.') setGlobalStorageValue(config.storage, 0) end end function onThink(interval, lastExecution) local pos = {x = 1001, y = 992, z = 7} if (getGlobalStorageValue(cid, 485) == 0 or getPlayerStorageValue(cid, 486) == 1) then doTeleportThing(cid, pos) doSendMagicEffect(getCreaturePosition(cid), 12) print('Removendo todos da area VIP.') doPlayerSendTextMessage(cid, 22, "Voce saiu da area vip por 45 minutos, amanha tem mais.") setPlayerStorageValue(cid, 486, 0) end endAtualiza seu login.lua tbm..local pos = {x = 1001, y = 992, z = 7} if (getPlayerStorageValue(cid, 486) == 1 or getGlobalStorageValue(cid, 485) == 0) then doTeleportThing(cid, pos) doSendMagicEffect(getCreaturePosition(cid), 12) doPlayerSendTextMessage(cid, 22, "Voce foi teletransportado para fora da area VIP.") setPlayerStorageValue(cid, 486, 0) end Tenta com esses dois scripts. Cometi alguns erros achando que no TFS 0.4 daria para fazer igual no TFS 1.2, só que com funcões mais antigas.My bad.. hahahaa Editado Outubro 21, 2015 9 anos por vankk (veja o histórico de edições)
Postado Outubro 21, 2015 9 anos Autor @vankkContinua dando erro :/O teleport é criado normal, e no momento que o teleport é criado aparece esse erro no distro, e a parte de retirar o teleport não funciona:local config = { teleportActionId = 1247, -- action do tp teleportPos = {x = 1001, y = 992, z = 7}, -- aonde vai aparecer o tp teleportId = 1387, storage = 485, tempo = 1, } function onTime() doItemSetAttribute(doCreateItem(config.teleportId, 1, config.teleportPos), "aid", config.teleportActionId) doBroadcastMessage("Foi criado um teleport no templo que leva para area VIP!\n Em 45 minutos ele some entao aproveitem!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.storage, 1) print('Teleport nasceu no templo por 45 minutos.') addEvent(TPSai, config.tempo * 1000 * 60)endlocal function TPSai() local teleport = getTileItemById(config.teleportPos, config.teleportId).uid if(teleport > 0) then doRemoveItem(teleport) doSendMagicEffect(config.teleportPos, CONST_ME_POFF) end doBroadcastMessage("O teleport sumiu do templo, amanhã as 20hrs ele volta.", MESSAGE_STATUS_WARNING) print('Removed TP.') setGlobalStorageValue(config.storage, 0) end O segundo script também continua dando erro:Será que este segundo script não funcionaria melhor em creaturescripts?--A parte do login.lua ta funcionando =)Do meu ponto de vista parece que o problema esta na função de GlobalStorage.. pois ontem fiz uns testes e quando removi as linhas que alteravam globalstorage o script funcionou. Então pensei que talvez fosse possível mudar esse sistema do globalstorage por um storage que conte o tempo tipo aqueles sistemas VIP por storage.. não sei exatamente a função que faz isso para poder descrever melhor. Editado Outubro 21, 2015 9 anos por luangop (veja o histórico de edições)
Postado Outubro 21, 2015 9 anos Preguica de fazer outro script p talvez da erro como storage de time. Não sou muito fã de storage time...Tenta isso: local config = { teleportActionId = 1247, -- action do tp teleportPos = {x = 1001, y = 992, z = 7}, -- aonde vai aparecer o tp teleportId = 1387, storage = 485, tempo = 1, } function TPSai() local teleport = getTileItemById(config.teleportPos, config.teleportId).uid if(teleport > 0) then doRemoveItem(teleport) doSendMagicEffect(config.teleportPos, CONST_ME_POFF) end doBroadcastMessage("O teleport sumiu do templo, amanhã as 20hrs ele volta.", MESSAGE_STATUS_WARNING) print('Removed TP.') setGlobalStorageValue(config.storage, 0) end function onTimer() doItemSetAttribute(doCreateItem(config.teleportId, 1, config.teleportPos), "aid", config.teleportActionId) doBroadcastMessage("Foi criado um teleport no templo que leva para area VIP!\n Em 45 minutos ele some entao aproveitem!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.storage, 1) print('Teleport nasceu no templo por 45 minutos.') addEvent(TPSai, config.tempo * 1000 * 60) end function onThink(interval, lastExecution) local pos = {x = 1001, y = 992, z = 7} if (getGlobalStorageValue(cid, 485) == 0) then for _, cid in ipairs(getPlayersOnline()) do if (getPlayerStorageValue(cid, 486) == 1) then doTeleportThing(cid, pos) doSendMagicEffect(getCreaturePosition(cid), 12) print('Removendo todos da area VIP.') doPlayerSendTextMessage(cid, 22, "Voce saiu da area vip por 45 minutos, amanha tem mais.") end end end end
Postado Outubro 21, 2015 9 anos @vankk, fiz isso, se te ajudar EVENT = { TELEPORT_POSITION = {x = 1, y = 1, z = 1}, TELEPORT_ACTION = 77000, EVENT_MINUTES = 45, STORAGE = 48760, DONATE_POSITION = {x = 1, y = 1, z = 1}, } EVENT.globalevents = function() local tp = getTileItemById(EVENT.TELEPORT_POSITION, 1387).uid if tp > 0 then doRemoveItem(tp) doBroadcastMessage("O teleport sumiu do templo, amanhã as 20hrs ele volta.", MESSAGE_STATUS_WARNING) EVENT.removeAllPlayers() else doBroadcastMessage("Foi criado um teleport no templo que leva para area VIP!\n Em 45 minutos ele some entao aproveitem!", MESSAGE_STATUS_WARNING) local teleport = doCreateItem(1387, 1, EVENT.TELEPORT_POSITION) doItemSetAttribute(teleport, "aid", EVENT.TELEPORT_ACTION) addEvent(EVENT.globalevents, EVENT.EVENT_MINUTES * 60 * 1000) end end EVENT.movements = function(uid) setPlayerStorageValue(uid, EVENT.STORAGE, 1) doTeleportThing(uid, EVENT.DONATE_POSITION) doSendMagicEffect(getCreaturePosition(uid), 12) doPlayerSendTextMessage(uid, 22, "Voce entrou na area VIP por 45 minutos.") end EVENT.creaturescript = function(uid) if getPlayerStorageValue(uid, EVENT.STORAGE) == 1 then EVENT.removePlayer() end end EVENT.removeAllPlayers = function() for _, uid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(uid, EVENT.STORAGE) == 1 then EVENT.removePlayer() end end EVENT.removePlayer = function(uid) doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid)), false) doSendMagicEffect(getCreaturePosition(uid), 12) doPlayerSendTextMessage(uid, 22, "Voce foi teletransportado para fora da area VIP.") setPlayerStorageValue(uid, EVENT.STORAGE, 0) end Editado Outubro 21, 2015 9 anos por luanluciano93 (veja o histórico de edições)
Postado Outubro 21, 2015 9 anos Autor @vankkO primeiro script não funcionou, então mudei OnTimer por Ontime e funcionou "quase" que perfeitamente... ele faz suas funções.. cria/remove o teleport.. porém mesmo funcionando apresenta um erro no distro.O segundo script funcionou.. quando terminou o evento levou todos para o templo.. porém como o primeiro, mesmo funcionando apresenta o erro no distro de 5 em 5 segundos:A função que foi no login.lua tem algo errado... mesmo durante o evento ao logar é teletransportado ao templo. Porém não necessita de ajuste.. só coloquei a mensagem assim "Voce foi teletransportado para o templo para que não haja mal-uso do evento VIP por 45 minutos." @luanluciano93Isso é um MOD?----------------------EDIT---------------- @vankkConsegui corrigir o login.luaO sistema está funcionando perfeitamente, a única coisa que continua me perturbando é este erro que se repete no distro a cada 5 segundos mesmo o script funcionando..*referente ao segundo scriptdata/globalevents/scripts abreVIP2.luafunction onThink(interval, lastExecution) local pos = {x = 1005, y = 998, z = 7} if (getGlobalStorageValue(cid, 485) == 0) then for _, cid in ipairs(getPlayersOnline()) do if (getPlayerStorageValue(cid, 486) == 1) then doTeleportThing(cid, pos) doSendMagicEffect(getCreaturePosition(cid), 12) setPlayerStorageValue(cid, 486, 0) print('Removendo todos da area VIP.') doPlayerSendTextMessage(cid, 22, "O evento AreaVIP por 45 minutos acabou, amanha tem mais.") end end endend Editado Outubro 21, 2015 9 anos por luangop (veja o histórico de edições)
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.