Postado Dezembro 24, 2022 2 anos .Qual servidor ou website você utiliza como base? TFS 0.4 Qual o motivo deste tópico? Achei esse script aqui no tibiaking e adaptei pra um so player, para uma bossroom, porem, eu gostaria que ele sumonasse o boss de acordo com o level. Tentei reaproveitar a tabela que ja tinha no script pra fazer o que eu queria, porem ele sumona os dois monstros registrados, e não de acordo com intervalo de level fiz essa adaptação local monster_pos = { [1] = { pos = { 462, 83, 7 }, minlevel=1, maxlevel=1999, monster = "Daily boss" }, [2] = { pos = { 462, 83, 7 }, minlevel=2000, maxlevel=2999, monster = "Ultima Dracony" }, } Essa foi a linha que modifiquei para fazer o sumon, porem ele sumona todos os monstros da lista. Se alguem puder dar aquela forcinha pra o script reconhecer o intervalo de level pra sumonar apenas o sumon equivalente. ____ for b = 1, #monster_pos do if (getPlayerLevel(cid) <= monster_pos[b].minlevel) or (getPlayerLevel(cid) >= monster_pos[b].maxlevel) then doSummonCreature(monster_pos[b].monster, { x = monster_pos[b].pos[1], y = monster_pos[b].pos[2], z = monster_pos[b].pos[3] }) end end ____ Script Spoiler -- CONFIG -- local playersOnly = "no" local questLevel = 1 local STORAGE_BOSS_CD = 50000 local cdtime = 1 * 1 * 1 -- exhaust in seconds local room = { -- boss room fromX = 448, fromY = 77, fromZ = 7, -------------- toX = 477, toY = 92, toZ = 7 } local monster_pos = { [1] = { pos = { 462, 83, 7 }, minlevel=1, maxlevel=1999, monster = "Daily boss" }, [2] = { pos = { 462, 83, 7 }, minlevel=2000, maxlevel=2999, monster = "Ultima Dracony" }, } local players_pos = { { x = 395, y = 18, z = 7, stackpos = 253 } } local new_player_pos = { { x = 462, y = 86, z = 7 } } -- CONFIG END -- function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 9826 then for i = 1, #players_pos do table.insert(player, 0) end for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if player[i].itemid > 0 then if string.lower(playersOnly) == "yes" then if isPlayer(player[i].uid) == true then all_ready = all_ready + 1 else monsters = monsters + 1 end else all_ready = all_ready + 1 end end end if all_ready > 0 then for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if isPlayer(player[i].uid) == true then if getPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD) > os.time() then doPlayerSendCancel(cid, "Acesso so liberado a cada 20h.") return false end if getPlayerLevel(player[i].uid) >= questLevel then level = level + 1 end else level = level + 1 end end if level == #players_pos then if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then for b = 1, #monster_pos do if (getPlayerLevel(cid) <= monster_pos[b].minlevel) or (getPlayerLevel(cid) >= monster_pos[b].maxlevel) then doSummonCreature(monster_pos[b].monster, { x = monster_pos[b].pos[1], y = monster_pos[b].pos[2], z = monster_pos[b].pos[3] }) end end for i = 1, #players_pos do if isPlayer(player[i].uid) then doSendMagicEffect(players_pos[i], CONST_ME_POFF) doTeleportThing(player[i].uid, new_player_pos[i]) doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA) setPlayerStorageValue(player[i].uid, STORAGE_BOSS_CD, os.time() + cdtime) end end doTransformItem(item.uid, 9825) else doPlayerSendTextMessage(cid, 19, "Only players can do this quest.") return false end else doPlayerSendTextMessage(cid, 19, "All Players have to be level " .. questLevel .. " to do this quest.") return false end else doPlayerSendCancel(cid, "You need " .. table.getn(players_pos) .. " players to do this quest.") return false end elseif item.itemid == 9825 then local player_room = 0 for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = { x = x, y = y, z = z, stackpos = 253 } local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == true then player_room = player_room + 1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid, 19, "There is already a team in the quest room.") return false elseif player_room == 0 then for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = { x = x, y = y, z = z, stackpos = 253 } local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end doTransformItem(item.uid, 9826) end end return true end Editado Dezembro 24, 2022 2 anos por koyotestark (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.