Postado Dezembro 15, 2017 7 anos Esse script é até bem simples, você adquire uma storage e ganha a permissão de entrar em uma sala especial através de um tile/portal para matar um Boss. Apenas uma pessoa por vez poderá entrar na sala. O jogador tem X minutos para matar o boss. A sala é aberta novamente em X minutos. Demonstrações Spoiler Spoiler Spoiler Spoiler Bom se você se você gostaria de implementar este script, você vai precisar criar uma área do seu gosto, posicionar um tile/teleport que desejar para o jogador poder entrar no local e outro para ele poder sair. O de tile/teleport de entrada precisará ter a actionid igual a 65535, e o de saida 65534. Após ter feito isso crie e modifique os arquivos abaixo. data/movements/scripts/boss.lua (configure as primeiras linhas a seu gosto) Spoiler local bconfig = { boss = 'Hide', -- Nome do Boss storagend = 83475, -- Storage Necessária Para Poder Matar o Boss bossposition = Position(201, 301, 7), -- Onde o Boss Será Criado destination = Position(205, 308, 7), -- Onde o Teleporta de Entrada Ira Levar exitposition = Position(76, 123, 8), -- Onde o Teleporte de Saida ou Kick ira levar areacenter = Position(201, 302, 7), -- O Centro do Lugar onde o Boss Será Criado areascan = { -- Largura e Altura minima da Área Onde o Boss Será Criado minx = 10, maxx = 10, miny = 10, maxy = 10 }, timekill = 1, -- Tempo que o Jogador Terá Para Matar o Boss timeopen = 1, -- Tempo Para o Boss ficar acessivel Novamente Desde a Abertura aidenter = 65535, -- Action Id do Tile de Entrada aidexit = 65534, -- Action Id do Tile de Saida enterpos = DIRECTION_NORTH ,-- Direção do Player Quando Entrar na Sala do Boss exitpos = DIRECTION_EAST -- Direção do Player Quando Sair da Sala do Boss } function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end if item.actionid == bconfig.aidenter then local secs = getGlobalStorageValue(50737) if player:getStorageValue(bconfig.storagend) == -1 then player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You are not allowed to do this.') player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) return true end if secs < os.time() then local boss = Game.createMonster(bconfig.boss, bconfig.bossposition) setGlobalStorageValue(50737, os.time() + (60 * bconfig.timeopen)) player:teleportTo(bconfig.destination) player:setDirection(bconfig.enterpos) position:sendMagicEffect(CONST_ME_TELEPORT) bconfig.destination:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You have ' .. bconfig.timekill .. ' minute(s) to defeat the boss.') addEvent(function() local spectators = Game.getSpectators(bconfig.areacenter, false, false, bconfig.areascan.minx, bconfig.areascan.maxx, bconfig.areascan.miny, bconfig.areascan.maxy) for i = 1, #spectators, 1 do if spectators[i]:isMonster() then spectators[i]:remove() elseif spectators[i]:isPlayer() then exitPlayer(player) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'Time is over.') end end end, (60 * 1000) * bconfig.timekill) else local remain = secs - os.time() local minutes = string.format("%d", math.floor(remain/60)) local seconds = string.format("%d", remain-(math.floor(remain/60)*60)) player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'The portal will be open again in ' .. minutes .. ' minute(s) and ' .. seconds .. ' second(s).') end elseif item.actionid == bconfig.aidexit then exitPlayer(player) end return true end function exitPlayer(player) player:setStorageValue(bconfig.storagend, -1) player:teleportTo(bconfig.exitposition) player:setDirection(bconfig.exitpos) bconfig.exitposition:sendMagicEffect(CONST_ME_TELEPORT) end data/movements/movements.xml (se for usar 1 tile/teleport diferente para entrada e saída coloque duas linhas com os 2 ids) Spoiler <movevent event="StepIn" itemid="ID DO TILE/TELEPORT" script="boss.lua" /> **Não se esqueça de configurar a areascan e areacenter, coloque a altura e largura minima e máxima da área onde o Boss estará, caso você não faça isso o Boss não será removido quando o local for fechado, e nem o player será expulso. **Recomendo que coloque no logout por toda a sala do Boss, evitando assim que engraçadinhos tentem atrapalhar os outros jogadores.
Postado Dezembro 15, 2017 7 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Postado Janeiro 31, 2019 6 anos Em 15/12/2017 em 09:03, Leohige disse: Esse script é até bem simples, você adquire uma storage e ganha a permissão de entrar em uma sala especial através de um tile/portal para matar um Boss. Apenas uma pessoa por vez poderá entrar na sala. O jogador tem X minutos para matar o boss. A sala é aberta novamente em X minutos. Demonstrações Mostrar conteúdo oculto Mostrar conteúdo oculto Mostrar conteúdo oculto Mostrar conteúdo oculto Bom se você se você gostaria de implementar este script, você vai precisar criar uma área do seu gosto, posicionar um tile/teleport que desejar para o jogador poder entrar no local e outro para ele poder sair. O de tile/teleport de entrada precisará ter a actionid igual a 65535, e o de saida 65534. Após ter feito isso crie e modifique os arquivos abaixo. data/movements/scripts/boss.lua (configure as primeiras linhas a seu gosto) Mostrar conteúdo oculto local bconfig = { boss = 'Hide', -- Nome do Boss storagend = 83475, -- Storage Necessária Para Poder Matar o Boss bossposition = Position(201, 301, 7), -- Onde o Boss Será Criado destination = Position(205, 308, 7), -- Onde o Teleporta de Entrada Ira Levar exitposition = Position(76, 123, 8), -- Onde o Teleporte de Saida ou Kick ira levar areacenter = Position(201, 302, 7), -- O Centro do Lugar onde o Boss Será Criado areascan = { -- Largura e Altura minima da Área Onde o Boss Será Criado minx = 10, maxx = 10, miny = 10, maxy = 10 }, timekill = 1, -- Tempo que o Jogador Terá Para Matar o Boss timeopen = 1, -- Tempo Para o Boss ficar acessivel Novamente Desde a Abertura aidenter = 65535, -- Action Id do Tile de Entrada aidexit = 65534, -- Action Id do Tile de Saida enterpos = DIRECTION_NORTH ,-- Direção do Player Quando Entrar na Sala do Boss exitpos = DIRECTION_EAST -- Direção do Player Quando Sair da Sala do Boss } function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end if item.actionid == bconfig.aidenter then local secs = getGlobalStorageValue(50737) if player:getStorageValue(bconfig.storagend) == -1 then player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You are not allowed to do this.') player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) return true end if secs < os.time() then local boss = Game.createMonster(bconfig.boss, bconfig.bossposition) setGlobalStorageValue(50737, os.time() + (60 * bconfig.timeopen)) player:teleportTo(bconfig.destination) player:setDirection(bconfig.enterpos) position:sendMagicEffect(CONST_ME_TELEPORT) bconfig.destination:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You have ' .. bconfig.timekill .. ' minute(s) to defeat the boss.') addEvent(function() local spectators = Game.getSpectators(bconfig.areacenter, false, false, bconfig.areascan.minx, bconfig.areascan.maxx, bconfig.areascan.miny, bconfig.areascan.maxy) for i = 1, #spectators, 1 do if spectators[i]:isMonster() then spectators[i]:remove() elseif spectators[i]:isPlayer() then exitPlayer(player) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'Time is over.') end end end, (60 * 1000) * bconfig.timekill) else local remain = secs - os.time() local minutes = string.format("%d", math.floor(remain/60)) local seconds = string.format("%d", remain-(math.floor(remain/60)*60)) player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'The portal will be open again in ' .. minutes .. ' minute(s) and ' .. seconds .. ' second(s).') end elseif item.actionid == bconfig.aidexit then exitPlayer(player) end return true end function exitPlayer(player) player:setStorageValue(bconfig.storagend, -1) player:teleportTo(bconfig.exitposition) player:setDirection(bconfig.exitpos) bconfig.exitposition:sendMagicEffect(CONST_ME_TELEPORT) end data/movements/movements.xml (se for usar 1 tile/teleport diferente para entrada e saída coloque duas linhas com os 2 ids) Ocultar conteúdo <movevent event="StepIn" itemid="ID DO TILE/TELEPORT" script="boss.lua" /> **Não se esqueça de configurar a areascan e areacenter, coloque a altura e largura minima e máxima da área onde o Boss estará, caso você não faça isso o Boss não será removido quando o local for fechado, e nem o player será expulso. **Recomendo que coloque no logout por toda a sala do Boss, evitando assim que engraçadinhos tentem atrapalhar os outros jogadores. pena que so pode entrar 1x. teria como mudar pra 1x a cada 24hrs ? 10 horas atrás, Lucas Miranda disse: pena que so pode entrar 1x. teria como mudar pra 1x a cada 24hrs ? tem como adaptar pra remover o boss e poder entrar 1x a cada 24hrs?
Postado Março 20, 2020 5 anos Mano, fiz tudo certim aqui mas ta dando ruim uma parada: Criei um item para dar o storage para o personagem, então ele usa o item (o item some) e ele ganha o storage e consegue acessar o tp. O boss spawna certim e tall, acaba a luta e saio pelo outro tp. Porém não consigo mais acessar esse boss, só se usar outro item para ganhar o storage dnv. Tem como fazer esse boss ser repetível? O personagem é kickado da sala normalmente ( porém não limpa a sala, acredito que ai esteja o erro inclusive ). Alguém pode ajudar?
Postado Maio 15, 2020 5 anos Em 15/12/2017 em 09:03, Leohige disse: Esse script é até bem simples, você adquire uma storage e ganha a permissão de entrar em uma sala especial através de um tile/portal para matar um Boss. Apenas uma pessoa por vez poderá entrar na sala. O jogador tem X minutos para matar o boss. A sala é aberta novamente em X minutos. Demonstrações Mostrar conteúdo oculto Mostrar conteúdo oculto Mostrar conteúdo oculto Mostrar conteúdo oculto Bom se você se você gostaria de implementar este script, você vai precisar criar uma área do seu gosto, posicionar um tile/teleport que desejar para o jogador poder entrar no local e outro para ele poder sair. O de tile/teleport de entrada precisará ter a actionid igual a 65535, e o de saida 65534. Após ter feito isso crie e modifique os arquivos abaixo. data/movements/scripts/boss.lua (configure as primeiras linhas a seu gosto) Mostrar conteúdo oculto local bconfig = { boss = 'Hide', -- Nome do Boss storagend = 83475, -- Storage Necessária Para Poder Matar o Boss bossposition = Position(201, 301, 7), -- Onde o Boss Será Criado destination = Position(205, 308, 7), -- Onde o Teleporta de Entrada Ira Levar exitposition = Position(76, 123, 8), -- Onde o Teleporte de Saida ou Kick ira levar areacenter = Position(201, 302, 7), -- O Centro do Lugar onde o Boss Será Criado areascan = { -- Largura e Altura minima da Área Onde o Boss Será Criado minx = 10, maxx = 10, miny = 10, maxy = 10 }, timekill = 1, -- Tempo que o Jogador Terá Para Matar o Boss timeopen = 1, -- Tempo Para o Boss ficar acessivel Novamente Desde a Abertura aidenter = 65535, -- Action Id do Tile de Entrada aidexit = 65534, -- Action Id do Tile de Saida enterpos = DIRECTION_NORTH ,-- Direção do Player Quando Entrar na Sala do Boss exitpos = DIRECTION_EAST -- Direção do Player Quando Sair da Sala do Boss } function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end if item.actionid == bconfig.aidenter then local secs = getGlobalStorageValue(50737) if player:getStorageValue(bconfig.storagend) == -1 then player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You are not allowed to do this.') player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) return true end if secs < os.time() then local boss = Game.createMonster(bconfig.boss, bconfig.bossposition) setGlobalStorageValue(50737, os.time() + (60 * bconfig.timeopen)) player:teleportTo(bconfig.destination) player:setDirection(bconfig.enterpos) position:sendMagicEffect(CONST_ME_TELEPORT) bconfig.destination:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You have ' .. bconfig.timekill .. ' minute(s) to defeat the boss.') addEvent(function() local spectators = Game.getSpectators(bconfig.areacenter, false, false, bconfig.areascan.minx, bconfig.areascan.maxx, bconfig.areascan.miny, bconfig.areascan.maxy) for i = 1, #spectators, 1 do if spectators[i]:isMonster() then spectators[i]:remove() elseif spectators[i]:isPlayer() then exitPlayer(player) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'Time is over.') end end end, (60 * 1000) * bconfig.timekill) else local remain = secs - os.time() local minutes = string.format("%d", math.floor(remain/60)) local seconds = string.format("%d", remain-(math.floor(remain/60)*60)) player:teleportTo(fromPosition, true) fromPosition:sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_WARNING, 'The portal will be open again in ' .. minutes .. ' minute(s) and ' .. seconds .. ' second(s).') end elseif item.actionid == bconfig.aidexit then exitPlayer(player) end return true end function exitPlayer(player) player:setStorageValue(bconfig.storagend, -1) player:teleportTo(bconfig.exitposition) player:setDirection(bconfig.exitpos) bconfig.exitposition:sendMagicEffect(CONST_ME_TELEPORT) end data/movements/movements.xml (se for usar 1 tile/teleport diferente para entrada e saída coloque duas linhas com os 2 ids) Mostrar conteúdo oculto <movevent event="StepIn" itemid="ID DO TILE/TELEPORT" script="boss.lua" /> **Não se esqueça de configurar a areascan e areacenter, coloque a altura e largura minima e máxima da área onde o Boss estará, caso você não faça isso o Boss não será removido quando o local for fechado, e nem o player será expulso. **Recomendo que coloque no logout por toda a sala do Boss, evitando assim que engraçadinhos tentem atrapalhar os outros jogadores. Seria possível colocar pra entrar no máximo 4 player ? ? Editado Maio 15, 2020 5 anos por amoxicilina (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.