Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • Administrador

Este script funciona perfeitamente qual quer problema comente no topico.

basta ser adicionado em action.xml com um action e adicionado ao mapa.

local t = {
players = { -- posições que os players devem ficar ao puxar a alavanca
[1] = Position(33395,32661,6),
[2] = Position(33394,32662,6),
[3] = Position(33395,32662,6),
[4] = Position(33395,32663,6),
[5] = Position(33396,32662,6)
},

boss = {name = "Scarlett Etzel", create_pos = Position(33396,32642,6)},

destination = Position(33395,32656,6), -- posição para qual os players serão teleportados

cooldown = {0, "sec"}, -- tempo para ser teleportado novamente. Ex.: {2, "sec"}, {5, "min"}, {10, "hour"}, {3, "day"}

storage = 56482 -- storage não utilizado no seu servidor
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local players, tab = {}, t.players
for i = 1, #tab do
local tile = Tile(tab)
if tile then
local p = Player(tile:getTopCreature())
if p then
if p:getStorageValue(t.storage) <= os.time() then
players[#players + 1] = p:getId()
end
end
end
end
if #players == 0 then
player:sendCancelMessage("One or all players did not wait " .. getStrTime(t.cooldown) .. " to go again.")
return true
end
for i = 1, #tab do
local playerTile = Tile(tab)
local playerToGo = Player(playerTile:getTopCreature())
if playerToGo then
if isInArray(players, playerToGo:getId()) then
playerToGo:setStorageValue(t.storage, mathtime(t.cooldown) + os.time())
playerTile:relocateTo(t.destination)
tab:sendMagicEffect(CONST_ME_POFF)
end
end
end
t.destination:sendMagicEffect(CONST_ME_TELEPORT)
Game.createMonster(t.boss.name, t.boss.create_pos)
item:transform(item.itemid == 36319 or 1946 or 1945)
return true
end

local boss_room = {fromPos = Position(33386, 32639, 6), toPos = Position(33405, 32659, 6)}
local bossplayer = Player(cid)
local exit = Position(33395, 32659, 6)

if bossplayer and isInRange(bossplayer:getPosition(), boss_room.fromPos, boss_room.toPos) then
   bossplayer:teleportTo(exit)
        end

function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1](60^(v == unit[4] and 2 or i-1))(v == unit[4] and 24 or 1)
end
end
return error("Bad declaration in mathtime function.")
end

function getStrTime(table) -- by dwarfer
local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"}
return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or ""))
end


? Crédito total ao Desenvolvedor que disponibilizou para toda nossa comunidade: @Underewar
Obrigado pela Contribuição!

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites
  • Moderador

@matheushfg Sim, ele fica na pasta actions, para você adicionar é simples, crie um arquivo chamado bossrom.lua e coloque esse script dentro do arquivo, depois você vai registrar o script no arquivo actions.xml, e irá colocar o Action Id na alavanca através do RME.

 

Registre o arquivo assim:

<action actiondid="45328" script="bossrom.lua>

Ai no RME, você irá colocar o id 45328 no Action Id da alavanca

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

@Belmont eu ja vi tutoriais parecidos eu fiz basicamente oque vc falou, porem vou mandar como eu fiz e se vc puder me ajudar a achar a onde estou errando

no caso eu inventei uma action da alavanca coloquei uma parecida com a do oberon que é 57605 coloquei da scalett 57606

 

 

se puder ajudar, desde já agradeço :)

a.PNG

b.PNG

c.PNG

d.PNG

Link para o post
Compartilhar em outros sites
  • Moderador

@matheushfg Não entendi, tenta esclarecer melhor isso pra mim tentar te ajudar, manda print do erro

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Moderador

@matheushfg Você já alterou as posições?

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Moderador

@matheushfg Da algum erro no executável?

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Moderador

@matheushfg Storage é um valor que fica armazenado na database e pode ser utilizado para diversas funções, como: Quests, talkactions com delay, quests continuas, entre outros. Essa Storage, ela já está configurada para que ela seja executada e salva na database. Se o script não está funcionando,

sugiro entrar em contato com o @Underewar ele é o autor do script, e vai saber te explicar melhor

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

@Underewar e @Belmont
eu tava procurando um script assim similar pra usar no meu server global 8.60 na Firewalker Boots quest que ta um pouco bugada,dai improvisei e usei outro script kkkk
tipo,da pra entrar 2 players ao mesmo tempo sendo que o normal é só 1 igual no global enquanto ele estiver de fight com o Boss que esqueci o nome agr kkkk
sera que se ajustar esse ai da certo ou sera que é mais complexo fazer isso???

manjo pouco do assunto,as vezes até consigo arrumar umas paradas sozinho mas na maioria delas não hue hue

Editado por Polguilo (veja o histórico de edições)

"follow me? Target is lost.
get me? There is no way.
kill me? Sorry,its not posible."

 

tibia old thief - Cópia 2.jpg

Link para o post
Compartilhar em outros sites

@everyone, peço desculpas por não ter dado devido suporte ao topico pois eu sofri um acidente grave de moto, estou voltando agora para a comunidade os membros que nao conseguiram usar o sistema por favor relatem se ja conseguiram.

@Polguilo @Polguilo @matheushfg 

Em 31/05/2020 em 18:05, matheushfg disse:

Não, apenas o boss não nasce na sala, erro não da nenhum só nao executa a ação

 

Este erro tem haver com a boss room position, tente ferificar novamente.

Link para o post
Compartilhar em outros sites

@Underewar
de boas pow,melhoras ai durante sua recuperação o/

mas eu n sei se funfa,não testei ainda kkk
eu to querendo é saber se funfa no meu caso,pra Firewalker Boots quest pq eu meio que improvisei no meu serv hue hue

"follow me? Target is lost.
get me? There is no way.
kill me? Sorry,its not posible."

 

tibia old thief - Cópia 2.jpg

Link para o post
Compartilhar em outros sites
Em 12/06/2020 em 23:11, Underewar disse:

@everyone, peço desculpas por não ter dado devido suporte ao topico pois eu sofri um acidente grave de moto, estou voltando agora para a comunidade os membros que nao conseguiram usar o sistema por favor relatem se ja conseguiram.

@Polguilo @Polguilo @matheushfg 

Este erro tem haver com a boss room position, tente ferificar novamente.

que nada mano, boa recuperação pra voce ai tmj xD

Link para o post
Compartilhar em outros sites
  • Erimyth mudou o título para [BOSS TELEPORT ROOM] Pefect System
  • 1 month later...
  • 3 weeks later...

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por PokemonXdemon
      [Quest System]
       
       
      Estava ontem analisando minha base, aonde tinha várias quests em arquivos separados.
      Então, pq não organizar tudo em apenas um arquivo exemplo:
      Então fiz esse script, meio simples mas útil para organizar tudo.
       
       
      Agora vamos entender oq precisamos fazer!
       
       Uma pequena atualização,  agora fica em um lugar separado a configuração para ficar mais  fácil modificar.
      Agora pode adicionar o boost que voce deseja no pokemon.
       
      Bem é isso.
    • Por Anderson Sacani
      Venho publicar uma alteração que eu e minha equipe fizemos no script já existente do Canary.
      O arquivo do script se chama quest_system1.lua.
      Fizemos essa alteração, porque o sistema original não entregava chave com actionid ao jogador. A chave vinha com o código 0000, ou seja, não abria nenhuma porta.
      A alteração que fizemos foi justamente para arrumar esse bug, por tanto, agora quando o quest ter uma chave com actionid dentro do baú, o jogador receberá essa mesma chave com o actionid definido.
       
      local specialQuests = { -- {x = 32752, y = 32343, z = 14} [52167] = Storage.DreamersChallenge.Reward, -- {x = 32806, y = 32230, z = 11} [52003] = Storage.PitsOfInferno.WeaponReward, -- {x = 32311, y = 32211, z = 8} [51400] = Storage.ThievesGuild.Reward, [51324] = Storage.WrathoftheEmperor.mainReward, -- {x = 32232, y = 31066, z = 7} [51715] = Storage.SvargrondArena.RewardGreenhorn, -- {x = 32232, y = 31059, z = 7} [51716] = Storage.SvargrondArena.RewardScrapper, -- {x = 32232, y = 31052, z = 7} [51717] = Storage.SvargrondArena.RewardWarlord } local questsExperience = { [3101] = 1 -- dummy values } local questLog = { [8213] = Storage.HiddenCityOfBeregar.DefaultStart } local tutorialIds = { [50080] = 5, [50082] = 6, [50084] = 10, [50086] = 11 } local hotaQuest = { 50950, 50951, 50952, 50953, 50954, 50955 } local questSystem1 = Action() function questSystem1.onUse(player, item, fromPosition, target, toPosition, isHotkey) local storage = specialQuests[item.actionid] if not storage then storage = item.uid if storage > 65535 then return false end end if storage == 23644 or storage == 24632 or storage == 14338 then player:setStorageValue(Storage.SvargrondArena.PitDoor, -1) end if player:getStorageValue(storage) > 0 and player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'The ' .. ItemType(item.itemid):getName() .. ' is empty.') return true end local function copyContainer(originalContainer, newContainer) for i = 0, originalContainer:getSize() - 1 do local originalItem = originalContainer:getItem(i) local newItem = Game.createItem(originalItem.itemid, originalItem.type) newItem:setActionId(originalItem:getActionId()) newItem:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, originalItem:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) if originalItem:isContainer() then copyContainer(Container(originalItem.uid), Container(newItem.uid)) end newContainer:addItemEx(newItem) end end local items, reward = {} local size = item:isContainer() and item:getSize() or 0 if size == 0 then local actionId = item:getActionId() reward = Game.createItem(item.itemid, item.type) reward:setActionId(actionId) reward:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, item:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) else local container = Container(item.uid) for i = 0, container:getSize() - 1 do local originalItem = container:getItem(i) local newItem = Game.createItem(originalItem.itemid, originalItem.type) newItem:setActionId(originalItem:getActionId()) newItem:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, originalItem:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)) if originalItem:isContainer() then copyContainer(Container(originalItem.uid), Container(newItem.uid)) end items[#items + 1] = newItem end if size == 1 then reward = items[1] end end local result = '' if reward then local ret = ItemType(reward.itemid) if ret:isRune() then result = ret:getArticle() .. ' ' .. ret:getName() .. ' (' .. reward.type .. ' charges)' elseif ret:isStackable() and reward:getCount() > 1 then result = reward:getCount() .. ' ' .. ret:getPluralName() elseif ret:getArticle() ~= '' then result = ret:getArticle() .. ' ' .. ret:getName() else result = ret:getName() end else if size > 20 then reward = Game.createItem(item.itemid, 1) elseif size > 8 then reward = Game.createItem(2854, 1) else reward = Game.createItem(2853, 1) end for i = 1, size do local tmp = items[i] if reward:addItemEx(tmp) ~= RETURNVALUE_NOERROR then Spdlog.warn("[questSystem1.onUse] - Could not add quest reward to container") end end local ret = ItemType(reward.itemid) result = ret:getArticle() .. ' ' .. ret:getName() end if player:addItemEx(reward) ~= RETURNVALUE_NOERROR then local weight = reward:getWeight() if player:getFreeCapacity() < weight then player:sendCancelMessage(string.format('You have found %s weighing %.2f oz. You have no capacity.', result, (weight / 100))) else player:sendCancelMessage('You have found ' .. result .. ', but you have no room to take it.') end return true end if questsExperience[storage] then player:addExperience(questsExperience[storage], true) end if questLog[storage] then player:setStorageValue(questLog[storage], 1) end if tutorialIds[storage] then player:sendTutorial(tutorialIds[storage]) if item.uid == 50080 then player:setStorageValue(Storage.RookgaardTutorialIsland.SantiagoNpcGreetStorage, 3) end end if isInArray(hotaQuest, item.uid) then if player:getStorageValue(Storage.TheAncientTombs.DefaultStart) ~= 1 then player:setStorageValue(Storage.TheAncientTombs.DefaultStart, 1) end end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have found ' .. result .. '.') player:setStorageValue(storage, 1) return true end for index, value in pairs(specialQuests) do questSystem1:aid(index) end questSystem1:aid(2000) questSystem1:register()  
    • Por Anderson Sacani
      local config = { scrollId = 14758, premiumDays = 30, } local days = config.premiumDays local premiumScroll = Action() function premiumScroll.onUse(player, item, fromPosition, target, toPosition, isHotkey) player:addPremiumDays(days) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Voce recebeu " .. days .. " dias de conta premium.") item:remove(1) addEvent(function() if player:isPlayer() then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No total voce tem " .. player:getPremiumDays() .. " dias de conta premium.") end end, 2500) return true end premiumScroll:id(config.scrollId) premiumScroll:register() Percebi que alguns servidores estão vindo sem o script do premium scroll, então criei esse script para adicionar 30 dias de premium na conta do jogador que usar o premium scroll.
    • Por amoxicilina
      Action: Remover skull
       
       
    • Por ArielZeRah
      Salve, gostaria de ajuda com Função Outfits.gif em meu SCRIPT de Characters.PHP, Função que eu quero é seguinte vou deixar videio.gif abaixo pra mas informação!

      Vou deixar meu Characters.php
      characters.php 
       
      ABS; Acho que linha em questão pra editar é essa abaixo vou deixar em spooler!
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo