Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/23/23 em todas áreas

  1. Estatua que nasce Monstro

    Aksz reagiu a Straikar por uma resposta no tópico

    1 ponto
    Ele editou, está logo a cima
  2. Aumentar dano por reset

    Underewar reagiu a Caverinhaaaaa por uma resposta no tópico

    1 ponto
    deu certo, foi testado, como sei que funcionou?
  3. Estatua que nasce Monstro

    Aksz reagiu a Anderson Sacani por uma resposta no tópico

    1 ponto
    --[[ Observação: No mapa colocar o uid 5032 na estátua que dará recompensa No mapa colocar o uid 5033 na estátua que teleportará o jogador para dentro da sala ]] local config = { reward = { id = 2152, amount = 50 }, playerLevel = 100, playerTeleportTo = { x = 100, y = 100, z = 7 }, checkArea = { fromPosition = { x = 100, y = 100, z = 7 }, toPosition = { x = 100, y = 100, z = 7 } }, monsterName = "Papao", monsterSpawnPosition = { x = 100, y = 100, z = 7 }, exitPosition = { x = 100, y = 100, z = 7 }, time = 5, } function onUse(cid, item, frompos, item2, topos) if item.uid == 5032 then local storage = 1164372809 if getPlayerStorageValue(cid, storage) < 1 then setPlayerStorageValue(cid, storage, 1) doPlayerAddItem(cid, config.reward.id, config.reward.amount) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce foi recompensado com 5000 gold coins.") end doTeleportThing(cid, config.exitPosition, false) end if item.uid == 5033 then local storage, fromPos, toPos = 6431953401, config.checkArea.fromPosition, config.checkArea.toPosition local now = os.time() local check = (now - getPlayerStorageValue(cid, storage)) local monster_, player_ = 0, 0 for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do local pid = getTopCreature({ x = x, y = y, z = z }).uid if ((isMonster(pid)) and (getCreatureName(pid) == config.monsterName)) then monster_ = monster_ + 1 end if isPlayer(pid) then player_ = player_ + 1 end end end end if ((getPlayerLevel(cid) < config.playerLevel) and (getPlayerAccess(cid) < 3)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Precisa ter pelo menos nivel " .. config.playerLevel) return true end if ((check < 0) and (getPlayerAccess(cid) < 3)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Faz menos de " .. config.time .. " minutos que voce enfrentou o monstro.") return true end if ((player_ > 0) and (getPlayerAccess(cid) < 3)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Alguem esta na sala!") return true end if monster_ < 1 then doSummonCreature(config.monsterName, config.monsterSpawnPosition) end doTeleportThing(cid, config.playerTeleportTo, false) setPlayerStorageValue(cid, storage, (now + (60 * config.time))) end return true end
  4. Estatua que nasce Monstro

    Aksz reagiu a FeeTads por uma resposta no tópico

    1 ponto
    fiz um script que da pra colocar mais de um monstro e recompensas pra cada um no mesmo script vá em: data/actions/actions.xml <action actionid="ACTIOND-ID-DA-ESTATUA;ACTIONID;ACTIONID" script="questVertical.lua" /> INSIRA TODOS os actions ID das estatus, tanto das de entrada (clica pra entrar na sala), como as de recompensa ps: se for em sequencia, tipo 5001,5002,5003... só é necessário colocar o primeiro e o ultimo, ex: 5001-5003, porém PRESTE BASTANTE ATENÇÃO! Agora vá em: data/actions/scripts/questVertical.lua (caso não exista pode criar e excluir os scripts antigos dessa quest) e copie esse código dentro: --[[ SCRIPT FEITO POR FEETADS - TIBIAKING ]]-- --[[straikar - 15/02/23]]-- / discord: FeeTads#0246 local config = { -- actions ID da estatua da entrada [25486] = {storage_timer = 5341352, posPlayer = {x = 1000, y = 1000, z = 7}, monster_name = "Papao", posMonstro = {x = 1000, y = 1000, z = 7}, posSaida = {x = 1000, y = 1000, z = 7}, fromP={x = 931, y = 1270, z = 9}, toP={x = 936, y = 1276, z = 9}}, [25487] = {storage_timer = 5341353, posPlayer = {x = 1001, y = 1001, z = 7}, monster_name = "Papao2", posMonstro = {x = 1001, y = 1001, z = 7}, posSaida = {x = 1001, y = 1001, z = 7}, fromP={x = 931, y = 1270, z = 9}, toP={x = 936, y = 1276, z = 9}}, -- caso queira colocar outros, só repetir ^ e mudar a storage, o action id e as posições etc.. use_cooldown_global = false, -- se vc colocar true aqui, TODAS as salas de quest onde o player tentar entrar, vão ter o mesmo cooldown ou seja 1 sala a cada 5 mins, se for false, pode entrar em outra sala logo em seguida storage_timer_global = 5341350, -- storage de exaust pra entrar de novo exaust_entrar_denovo = 5 * 60, -- 5*60 = 5 minutos need_level = 100, -- level necessário para entrar / caso não precise coloque 1 ou 8 remover_player_tempo = true, -- remover o player depois de tanto tempo la dentro? / evita o player ficar la trapando o dia todo remover_timer = 10*60, -- quando tempo la dentro pra remover? / 10*60 = 10 minutos } local REWARD = { --[action id] = {rewards = {{item, quantidade}, {item, quantidade}}}, -- pode colocar quantas rewards quiser [5032] = {storage_reward = 5441400, rewards = {{2160, 1}, {2148, 100}, {2152, 50}}}, [5033] = {storage_reward = 5441401, rewards = {{2160, 1}}}, -- quando diminuir a quantidadede recompensa, ceritifique que deixou certo a quantidade de {} pra n bugar o script repetir_reward = false, -- ganhar a recompensa sempre que fizer a quest? teleportar_final = {x=1000,y=1000,z=7}, -- pra onde teleportar quando ele clicar na estatua de recompensa? (normalmente eh o templo) } -- função de tempo local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end -- FUNÇÃO PARA KICKAR O PLAYER DA SALA APÓS TANTO TEMPO local function removePlayersTime(frompos, topos) for x = frompos.x, topos.x do for y = frompos.y, topos.y do local remove, clean = true, true local pos = {x = x, y = y, z = frompos.z} local m = getTopCreature(pos).uid if m ~= 0 and isPlayer(m) then doTeleportThing(m, getTownTemplePosition(1)) end end end return true end -- FUNÇÃO PARA REMOVER O BOSS AO KICKAR O PLAYER DA SALA local function verificaBoss(frompos, topos) for x = frompos.x, topos.x do for y = frompos.y, topos.y do if isMonster(getThingFromPos({x = x, y = y, z = frompos.z, stackpos = 253}).uid) then doRemoveCreature(getThingFromPos({x = x, y = y, z = frompos.z, stackpos = 253}).uid) end end end end local function give_reward(cid, entregar) local text = 'você recebeu ' -- string que salvará o nome das recompensas if entregar then -- existe as rewards? for i=1, #entregar do doPlayerAddItem(cid, entregar[i][1], entregar[i][2]) -- adiciona os item ao player text = text..entregar[i][2]..getItemNameById(entregar[i][1])..entregar[i][1] > 1 and "s" or "" if i == #entregar then text = text.."." -- caso seja o ultimo coloca ponto final else text = text..", " -- se não, bota virgula end end doPlayerSendTextMessage(cid, 22, text) end return true end local saveEvent = {} -- evento pra checkar o player na sala de espera function onUse(cid, item, frompos, itemEx, topos) local check = {} local actionID = item.actionid if config[actionID] then -- checa o cooldown e se pode entrar na sala if config.use_cooldown_global then if getPlayerStorageValue(cid, config.storage_timer_global) - os.time() > 0 then doPlayerSendCancel(cid, 'Aguarde, você ainda não pode entrar, está com cooldown de'..getTimeString(getPlayerStorageValue(cid, config.storage_timer_global) - os.time())..'.') return true end else if getPlayerStorageValue(cid, config[actionID].storage_timer) > 0 then doPlayerSendCancel(cid, 'Aguarde, você ainda não pode entrar, está com cooldown de'..getTimeString(getPlayerStorageValue(cid, config[actionID].storage_timer) - os.time())..'.') return true end end if #getPlayersInArea(config.[actionID].fromP, config.[actionID].toP) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores la dentro.') return true end if getPlayerLevel(cid) < config.need_level then doPlayerSendCancel(cid, 'Você não tem o level necessário.') return true end -- caso tenha o level, e não tenha player la dentro, então faz a quest acontecer verificaBoss(config.[actionID].fromP, config.[actionID].to) -- remove o boss do antigo player caso haja doTeleportThing(cid, config[actionID].posPlayer) -- teleporta o player pra posição doCreateMonster(config[actionID].monster_name, config[actionID].posMonstro, false, true) -- cria o monstro na posição if config.remover_player_tempo then -- se remover o player depois de tanto tempo for true saveEvent[getPlayerGUID(cid)] = addEvent(function() removePlayersTime(config.[actionID].fromP, config.[actionID].toP) end, config.remover_timer * 1000) -- remover o player depois do tempo end if config.use_cooldown_global then setPlayerStorageValue(cid, config.storage_timer_global, os.time() + config.exaust_entrar_denovo) -- cooldown caso seja de todas as salas / n mexer else setPlayerStorageValue(cid, config[actionID].storage_timer, os.time() + config.exaust_entrar_denovo) -- cooldown pra entrar de novo / n mexer end return true end -- ESTATUA DE RECOMPENSA if REWARD[actionID] then -- caso tenha clicado na estatua de recompensa local entregar = REWARD[actionID].rewards if getPlayerStorageValue(cid, REWARD[actionID].storage_reward) == -1 then -- caso nunca tenha recebido a recompensa give_reward(cid, entregar) else -- caso ja tenha recebido if REWARD.repetir_reward then -- checa se pode repetir a recompensa give_reward(cid, entregar) else -- se não só da a mensagem q ja recebeu doPlayerSendTextMessage(cid, 22, "Você já recebeu sua recompensa.") end end doTeleportThing(cid, REWARD.teleportar_final) -- teleporta o player pra posição quando clicar na estatua de recompensa stopEvent(saveEvent[getPlayerGUID(cid)]) -- para o evento de jogar ele pro templo saveEvent[getPlayerGUID(cid)] = nil end return true end
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo