Histórico de Curtidas
-
leonardo gazim deu reputação a Kenshiin em Gesior Imagem dos items equipadostibiawiki
-
leonardo gazim deu reputação a Kenshiin em Gesior Imagem dos items equipadosvoce precisa adicionar as imagens dos items dentro do seu site, na pasta images/items precisa por o id, dos items correto nas imagens
-
leonardo gazim deu reputação a Kenshiin em (Resolvido)Imbuiment nos itens soulsvocé precisa add, os id dos items dentro do arquivos de ibuiments, iguais os outros, e citar, la cada um na posiçao como Wand/Sword/Bow/Crossbow colocar correto
-
leonardo gazim deu reputação a Kenshiin em (Resolvido)Sala de boss por alavancachego testar oque eu envie ?
-
leonardo gazim deu reputação a Vodkart em (Resolvido)Sala de boss por alavancaachei que seu codigo ja fazia isso.
local config = { cooldown = 60 * 60 * 20, -- in seconds - (Make it 'seconds * minutes * hours' - its will be '60 * 60 * 20' for 20 hours) (player cooldown) cooldown_storage = 808856, storage_control = 78484, duration = 10, -- time till reset, in minutes (lever cooldown) level_req = 8, -- minimum level to do quest min_players = 1, -- minimum players to join quest lever_id = 1945, -- id of lever before pulled pulled_id = 1946 -- id of lever after pulled } local player_positions = { [1] = {fromPos = Position(33395, 32662, 6), toPos = Position(33395, 32658, 6)}, [2] = {fromPos = Position(33395, 32663, 6), toPos = Position(33395, 32658, 6)}, [3] = {fromPos = Position(33395, 32663, 6), toPos = Position(33395, 32658, 6)}, [4] = {fromPos = Position(33395, 32665, 6), toPos = Position(33395, 32658, 6)}, [5] = {fromPos = Position(33394, 32662, 6), toPos = Position(33395, 32658, 6)} } local monsters = { [1] = {pos = Position(33396, 32642, 6), name = "scarlett etzel"} } local quest_range = {fromPos = Position(33386, 32639, 6), toPos = Position(33405, 32659, 6)} -- see image in thread for explanation local exit_position = Position(33395, 32671, 6) -- Position completely outside the quest area function getPlayersInBossRoom() local spectators, t = Game.getSpectators(Position(33396, 32649, 6), false, false, 10, 10, 10, 10),{} for _, spectatorCreature in ipairs(spectators) do if spectatorCreature:isPlayer() then t[#t+1] = spectatorCreature end end return t end function doKickPlayerBoss(id) local players = getPlayersInBossRoom() if #players == 0 then return true end if Game.getStorageValue(config.storage_control) == id then for _, cid in pairs(players) do local participant = Player(cid) participant:teleportTo(exit_position) exit_position:sendMagicEffect(CONST_ME_TELEPORT) participant:sendTextMessage(22,"voce nao matou o boss a tempo.") end Game.setStorageValue(config.storage_control, 0) end end function doResetTheBossDukeKrule(position, cid_array) local tile = Tile(position) local item = tile and tile:getItemById(config.pulled_id) if not item then return end local monster_names = {} for key, value in pairs(monsters) do if not isInArray(monster_names, value.name) then monster_names[#monster_names + 1] = value.name end end for i = 1, #monsters do local creatures = Tile(monsters[i].pos):getCreatures() for key, creature in pairs(creatures) do if isInArray(monster_names, creature:getName()) then creature:remove() end end end for i = 1, #player_positions do local creatures = Tile(player_positions[i].toPos):getCreatures() for key, creature in pairs(creatures) do if isInArray(monster_names, creature:getName()) then creature:remove() end end end for key, cid in pairs(cid_array) do local participant = Player(cid) if participant and isInRange(participant:getPosition(), quest_range.fromPos, quest_range.toPos) then participant:teleportTo(exit_position) exit_position:sendMagicEffect(CONST_ME_TELEPORT) end end item:transform(config.lever_id) end local function removeBoss() local specs, spec = Game.getSpectators(Position(33396, 32649, 6), false, false, 10, 10, 10, 10) for j = 1, #specs do spec = specs[j] if spec:getName():lower() == 'scarlett etzel' then spec:remove() end end end function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getStorageValue(config.cooldown_storage) >= os.time() then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "try tomorrow") return true end if #getPlayersInBossRoom() > 0 then return player:sendCancelMessage("ja exitem jogadores dentro do evento.") end local participants, pull_player = {}, false for i = 1, #player_positions do local fromPos = player_positions[i].fromPos local tile = Tile(fromPos) if not tile then print(">> ERROR: Annihilator tile does not exist for Position(" .. fromPos.x .. ", " .. fromPos.y .. ", " .. fromPos.z .. ").") return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.") end local creature = tile:getBottomCreature() if creature then local participant = creature:getPlayer() if not participant then return player:sendCancelMessage(participant:getName() .. " is not a valid participant.") end if participant:getLevel() < config.level_req then return player:sendCancelMessage(participant:getName() .. " is not the required level.") end if participant.uid == player.uid then pull_player = true end participants[#participants + 1] = {participant = participant, toPos = player_positions[i].toPos} end end if #participants < config.min_players then return player:sendCancelMessage("You do not have the required amount of participants.") end if not pull_player then return player:sendCancelMessage("You are in the wrong position.") end for i = 1, #monsters do local toPos = monsters[i].pos if not Tile(toPos) then print(">> ERROR: Annihilator tile does not exist for Position(" .. toPos.x .. ", " .. toPos.y .. ", " .. toPos.z .. ").") return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.") end removeBoss() Game.createMonster(monsters[i].name, monsters[i].pos, false, true) end local cid_array = {} for i = 1, #participants do participants[i].participant:teleportTo(participants[i].toPos) participants[i].toPos:sendMagicEffect(CONST_ME_TELEPORT) cid_array[#cid_array + 1] = participants[i].participant.uid player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have 10 minutes to kill and loot this boss. Otherwise you will lose that chance and will be kicked out.") end item:transform(config.pulled_id) player:setStorageValue(config.cooldown_storage, os.time() + config.cooldown) local r = math.random(1, 9999) Game.setStorageValue(config.storage_control, r) addEvent(doKickPlayerBoss, config.duration * 60 * 1000, r) addEvent(doResetTheBossDukeKrule, config.duration * 60 * 1000, toPosition, cid_array) return true end
-
leonardo gazim deu reputação a Vodkart em (Resolvido)Sala de boss por alavancalocal config = { cooldown = 60 * 60 * 20, -- in seconds - (Make it 'seconds * minutes * hours' - its will be '60 * 60 * 20' for 20 hours) (player cooldown) cooldown_storage = 808856, duration = 10, -- time till reset, in minutes (lever cooldown) level_req = 8, -- minimum level to do quest min_players = 1, -- minimum players to join quest lever_id = 1945, -- id of lever before pulled pulled_id = 1946 -- id of lever after pulled } local player_positions = { [1] = {fromPos = Position(33395, 32662, 6), toPos = Position(33395, 32658, 6)}, [2] = {fromPos = Position(33395, 32663, 6), toPos = Position(33395, 32658, 6)}, [3] = {fromPos = Position(33395, 32663, 6), toPos = Position(33395, 32658, 6)}, [4] = {fromPos = Position(33395, 32665, 6), toPos = Position(33395, 32658, 6)}, [5] = {fromPos = Position(33394, 32662, 6), toPos = Position(33395, 32658, 6)} } local monsters = { [1] = {pos = Position(33396, 32642, 6), name = "scarlett etzel"} } local quest_range = {fromPos = Position(33386, 32639, 6), toPos = Position(33405, 32659, 6)} -- see image in thread for explanation local exit_position = Position(33395, 32671, 6) -- Position completely outside the quest area function doResetTheBossDukeKrule(position, cid_array) local tile = Tile(position) local item = tile and tile:getItemById(config.pulled_id) if not item then return end local monster_names = {} for key, value in pairs(monsters) do if not isInArray(monster_names, value.name) then monster_names[#monster_names + 1] = value.name end end for i = 1, #monsters do local creatures = Tile(monsters[i].pos):getCreatures() for key, creature in pairs(creatures) do if isInArray(monster_names, creature:getName()) then creature:remove() end end end for i = 1, #player_positions do local creatures = Tile(player_positions[i].toPos):getCreatures() for key, creature in pairs(creatures) do if isInArray(monster_names, creature:getName()) then creature:remove() end end end for key, cid in pairs(cid_array) do local participant = Player(cid) if participant and isInRange(participant:getPosition(), quest_range.fromPos, quest_range.toPos) then participant:teleportTo(exit_position) exit_position:sendMagicEffect(CONST_ME_TELEPORT) end end item:transform(config.lever_id) end local function removeBoss() local specs, spec = Game.getSpectators(Position(33396, 32649, 6), false, false, 10, 10, 10, 10) for j = 1, #specs do spec = specs[j] if spec:getName():lower() == 'scarlett etzel' then spec:remove() end end end function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getStorageValue(config.cooldown_storage) >= os.time() then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "try tomorrow") return true end local spectators = Game.getSpectators(Position(33396, 32649, 6), false, false, 10, 10, 10, 10) for _, spectatorCreature in ipairs(spectators) do if spectatorCreature:isPlayer() then return player:sendCancelMessage("ja exitem jogadores dentro do evento.") end end local participants, pull_player = {}, false for i = 1, #player_positions do local fromPos = player_positions[i].fromPos local tile = Tile(fromPos) if not tile then print(">> ERROR: Annihilator tile does not exist for Position(" .. fromPos.x .. ", " .. fromPos.y .. ", " .. fromPos.z .. ").") return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.") end local creature = tile:getBottomCreature() if creature then local participant = creature:getPlayer() if not participant then return player:sendCancelMessage(participant:getName() .. " is not a valid participant.") end if participant:getLevel() < config.level_req then return player:sendCancelMessage(participant:getName() .. " is not the required level.") end if participant.uid == player.uid then pull_player = true end participants[#participants + 1] = {participant = participant, toPos = player_positions[i].toPos} end end if #participants < config.min_players then return player:sendCancelMessage("You do not have the required amount of participants.") end if not pull_player then return player:sendCancelMessage("You are in the wrong position.") end for i = 1, #monsters do local toPos = monsters[i].pos if not Tile(toPos) then print(">> ERROR: Annihilator tile does not exist for Position(" .. toPos.x .. ", " .. toPos.y .. ", " .. toPos.z .. ").") return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.") end removeBoss() Game.createMonster(monsters[i].name, monsters[i].pos, false, true) end local cid_array = {} for i = 1, #participants do participants[i].participant:teleportTo(participants[i].toPos) participants[i].toPos:sendMagicEffect(CONST_ME_TELEPORT) cid_array[#cid_array + 1] = participants[i].participant.uid player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have 10 minutes to kill and loot this boss. Otherwise you will lose that chance and will be kicked out.") end item:transform(config.pulled_id) player:setStorageValue(config.cooldown_storage, os.time() + config.cooldown) addEvent(doResetTheBossDukeKrule, config.duration * 60 * 1000, toPosition, cid_array) return true end
-
leonardo gazim deu reputação a Kenshiin em (Resolvido)Sala de boss por alavanca-- <action actionid="4627" event="script" value="bosses/scarlet_boss.lua"/> adicionar no actions.xml local posInicio = {x = 33385, y = 32638, z = 6} --pos inicio da sala local posFim = {x = 33406, y = 32660, z = 6}--pos final inicio da sala local posExitTime = {x = 33393, y = 32671, z = 6}-- pos para onde o player vai sair local function verificaPlayers() for x = posInicio.x, posFim.x do for y = posInicio.y, posFim.y do if isPlayer(getThingFromPos({x = x, y = y, z = posInicio.z, stackpos = 253}).uid) then return 1 end end end end local function verificaBoss() for x = posInicio.x, posFim.x do for y = posInicio.y, posFim.y do if isMonster(getThingFromPos({x = x, y = y, z = posInicio.z, stackpos = 253}).uid) then doRemoveCreature(getThingFromPos({x = x, y = y, z = posInicio.z, stackpos = 253}).uid) end end end end local function removePlayersTime() for x = posInicio.x, posFim.x do for y = posInicio.y, posFim.y do local remove, clean = true, true local pos = {x = x, y = y, z = posInicio.z} local m = getTopCreature(pos).uid if m ~= 0 and isPlayer(m) then doTeleportThing(m, posExitTime) end end end doSendMagicEffect(posExitTime, 10) return true end function onUse(cid, item, frompos, item2, topos) -- Lever Boss if item.aid == 4627 then -- action id da alavanca local playerChecked = false local teleportToRoom = false local stoExhaust = 424148 -- staorage de segurança para exhaust local stoExhaustPlayer = getPlayerStorageValue(cid, stoExhaust) if stoExhaustPlayer > os.time() then doPlayerSendCancel(cid, "You have to wait " .. stoExhaustPlayer - os.time() .. " seconds to try again.") return true end if verificaPlayers() then doPlayerSendCancel(cid, "There are other players inside the room at the moment.") doSendMagicEffect(topos,2) setPlayerStorageValue(cid, stoExhaust, os.time()+5) return true end local config = { [1] = {pos = {x = 33395, y = 32661, z = 6}}, --posições dos pisos [2] = {pos = {x = 33394, y = 32662, z = 6}}, [3] = {pos = {x = 33395, y = 32662, z = 6}}, [4] = {pos = {x = 33396, y = 32662, z = 6}}, [5] = {pos = {x = 33395, y = 32663, z = 6}}, } local storageTime = 424149 -- storage de tempo do boss for i, v in pairs(config) do if isPlayer(getTopCreature(config[i].pos).uid) then player = getTopCreature(config[i].pos).uid if getPlayerStorageValue(player, storageTime) > os.time() then time = (getPlayerStorageValue(player, storageTime)-os.time())/60 str = "minutes" if time > 60 then time = time/60 str = "hours" end if player == cid then name = "You" else name = getCreatureName(player) end doPlayerSendCancel(cid, name .. " need to wait more " .. math.floor(time+0.5) .. " " .. str .. " to do again.") doSendMagicEffect(topos,2) return true end if player == cid then playerChecked = true end end end if playerChecked then for i, v in pairs(config) do if isPlayer(getTopCreature(config[i].pos).uid) then player = getTopCreature(config[i].pos).uid doSendMagicEffect(getCreaturePosition(player), 2) doTeleportThing(player, {x = 33396, y = 32656, z = 6}) -- posiçao que player vai cair setPlayerStorageValue(player, storageTime, os.time()+72000) -- tempo de 20 horas teleportToRoom = true end end if teleportToRoom then stopEvent(ResetArea) verificaBoss() doSendMagicEffect({x = 33396, y = 32642, z = 6}, 10) -- efeito que vai aparece no monstro quando ele nasce, mesma posiçao onde nasce o boss doCreateMonster("Scarlett Etzel", {x = 33396, y = 32642, z = 6}) -- onde o boss nasce e nome do boss ResetArea = addEvent(function() removePlayersTime() end, 10 * 60 * 1000) -- tempo dentro da sala para ser kikado tem tera 10 minutos para matar o boss ou sera teleportado de volta return false end else doPlayerSendCancel(cid, "Wouldn't you like to go too?") doSendMagicEffect(topos,2) end return true end end
-
leonardo gazim deu reputação a Aragllov em Problemas para adicionar events no TFS 1.3Não sou scripter mas até onde eu sei TFS 1.3 lê a função de outra forma, é mais viável achar o evento para TFS 1x, pois editar o que vc já tem vai da trabalho, sendo que vc também não manja muito de lua. Acho difícil alguém lhe ajudar dessa forma, mas espero que eu morda a língua e que vc consiga xD