Jump to content

Scripting Como colocar STORAGE GLOBAL, Nesse Script


Recommended Posts

Quero colocar uma Storage 12125, para poder clicar na alavanca denovo depois de 1 hora!

 

 

Spoiler

--[[
tabela dos itens a serem "sacrificados"
adicione novas linhas para checar por mais que 4 itens
configure a posição onde ele deve estar e o id
]]
local items = {
{pos = {x = 431, y = 285, z = 7}, itemid = 2129},
{pos = {x = 441, y = 284, z = 7}, itemid = 5943},
{pos = {x = 440, y = 290, z = 7}, itemid = 2363},
}
--[[
tabela dos monstros a serem criados após remover os itens
adicione novas linhas para criar mais monstros
configure a posição onde ele vai nascer o nome do monstro criado
]]
local monsters = {
{pos = {x = 436, y = 285, z = 7}, name = "Wolf"},
}

local config = {
onSpawnMonster = CONST_ME_TELEPORT, -- efeito lançado quando monstro é criado
onRemoveItem = CONST_ME_BLOCKHIT, -- efeito lançado quando item é removido
missingItem = CONST_ME_POFF, -- efeito lançado quando não encontrou o item para remover
}
-- 255 faz com que não lance efeito algum

function onUse(cid, item, frompos, item2, topos)
    
    if getGlobalStorageValue(91801) > os.time() then
        return doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.")
    end
    
   local missing_items, remove_items = false, {}

   for _, itemcheck in pairs (items) do
    local i = getTileItemById(itemcheck.pos, itemcheck.itemid).uid
    if i < 1 then missing_items = true
    
        if tonumber(config.missingItem) and config.missingItem ~= 255 then
            doSendMagicEffect(itemcheck.pos, config.missingItem)
        end
    else table.insert(remove_items, i)
    end
   end

   if missing_items then
    return doPlayerSendCancel(cid, "Está faltando algum item.")
   else
    for _, iuid in pairs (remove_items) do
        if tonumber(config.onRemoveItem) and config.onRemoveItem ~= 255 then
            doSendMagicEffect(getThingPos(iuid), config.onRemoveItem)
        end
        doRemoveItem(iuid)
    end
    for _, monsterinfo in pairs (monsters) do
        local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false)
        if isCreature(m) and tonumber(config.onSpawnMonster) and
        config.onSpawnMonster ~= 255 then
        doSendMagicEffect(getThingPos(m), config.onSpawnMonster)
        end
    end
   end
    
    addEvent(function()
    setGlobalStorageValue(91801, os.time() + 3600)
    end, 5 * 60 * 1000)
    
return true
end

 

Edited by isac001 (see edit history)
Link to post
Share on other sites

  • Moderator
local leverCooldown = {1, "hour"} -- Configure o tempo para usar novamente. Ex.: {30, "sec"}, {2, "min"}, {5, "hour"}, {3, "day"}
local cooldownStorage = 91801 -- só modifique se necessário

local items = {
    {pos = {x = 431, y = 285, z = 7}, itemid = 2129},
    {pos = {x = 441, y = 284, z = 7}, itemid = 5943},
    {pos = {x = 440, y = 290, z = 7}, itemid = 2363},
}

local monsters = {
    {pos = {x = 436, y = 285, z = 7}, name = "Wolf"},
}

local config = {
    onSpawnMonster = CONST_ME_TELEPORT, -- efeito lançado quando monstro é criado
    onRemoveItem = CONST_ME_BLOCKHIT, -- efeito lançado quando item é removido
    missingItem = CONST_ME_POFF, -- efeito lançado quando não encontrou o item para remover
}
-- 255 faz com que não lance efeito algum


local function mathtime(table) -- by dwarfer
if table[1] == 0 then return 0 end
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
end

function onUse(cid, item, frompos, item2, topos)
    
    if getGlobalStorageValue(cooldownStorage) > os.time() then
        doPlayerSendCancel(cid, "Espere 1h para usar a alavanca novamente.")
        return true
    end
    
    local missing_items, remove_items = false, {}

    for _, itemcheck in pairs (items) do
        local i = getTileItemById(itemcheck.pos, itemcheck.itemid).uid
        if i < 1 then missing_items = true
            if tonumber(config.missingItem) and config.missingItem ~= 255 then
                doSendMagicEffect(itemcheck.pos, config.missingItem)
            end
        else
            table.insert(remove_items, i)
        end
    end

    if missing_items then
        return doPlayerSendCancel(cid, "Está faltando algum item.")
    else
        for _, iuid in pairs (remove_items) do
            if tonumber(config.onRemoveItem) and config.onRemoveItem ~= 255 then
                doSendMagicEffect(getThingPos(iuid), config.onRemoveItem)
            end
            doRemoveItem(iuid)
        end
        for _, monsterinfo in pairs (monsters) do
            local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false)
            if isCreature(m) and tonumber(config.onSpawnMonster) and
                config.onSpawnMonster ~= 255 then
                doSendMagicEffect(getThingPos(m), config.onSpawnMonster)
            end
        end
        setGlobalStorageValue(cooldownStorage, mathtime(leverCooldown) + os.time())
    end
    return true
end

 

Edited by Dwarfer (see edit history)

Contato:

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By ADMRagnarok
      .Qual servidor ou website você utiliza como base? 
      https://github.com/mattyx14/otxserver/tree/otxserv2
      Qual o motivo deste tópico? 
      Alguem teria um script de reset preferencialmente por source para otx2 atualizado https://github.com/mattyx14/otxserver/tree/otxserv2
      se for por distro as mudanças me diga aonde mudar eu mesmo compilo
      ou script normal mesmo, porem as configuraçoes do script seriam as seguintes
      level necessario para resetar = x
      aumento de x level para reset = x
      item e quantidade de item para resetar = x,x
      aumento de x items por reset= x
      vida e mana volta ao inicio ao resetar = true or false
      skills voltao ao inicio ao resetar = true false
      hp e mp adicional ganho /lvl por reset = 1% (configurável)
      dano e heal adicionado por reset = 1% configuravel
      reset voc = {x, x, x, x, x, x, x} (quando der o 10 reset por exemplo(configuravel) , será feito uma checagem de vocation para poder resetar, por exemplo até 10 resets qualquer voc reseta nao será feito checagem, porem no reset 10 só resetará se for uma das seguintes vocações, se for mais facil deixa só 1 reset configuravel assim se for dificil pode colocar apartir de tantos resets precisa da classe, coloque oque for mais pratico pois o efeito será o mesmo.
      teleport para o templo= true or false
      pode resetar com battle= true or false
      a cada x resets ganhe tal item (configuravel) reset x recebe item x ao resetar, reset =5 {2160, 100} - exemplo.
      nao me importa se será storage, source, script. só me importo com o resultado e que nao tenha bugs, quanto mais bem feito melhor na hora de negociar o preço, se nao for permitido este tipo de post aqui alguem me avise que eu retiro ele. se tem outro local por favor movam ele, mais informações mande msg no privado responderei assim que possível.
         
    • By Ackerzin
      Olá, achei esse codigo em outro forum, ele foi desenvolvido para abrir o mapa do old cliente, mas ele foi feito para 1.2+, gostaria de saber se alguem poderia passar ele para 0.4.

      crédito Gesior.pl
    • By iTzBrHue3
      .Qual servidor ou website você utiliza como base?  OTX 2.8
       
      Qual o motivo deste tópico? Duvida
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
          -- HP --
          conditionHP = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionHP, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionHP, CONDITION_PARAM_STAT_MAXHEALTH, n)
          setConditionParam(conditionHP, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionHP, CONDITION_PARAM_SUBID, 90)
          -- MANA --
          conditionMP = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionMP, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionMP, CONDITION_PARAM_STAT_MAXMANA, 9999)
          setConditionParam(conditionMP, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionMP, CONDITION_PARAM_SUBID, 91)
          -- Magic Level --
          conditionML = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionML, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionML, CONDITION_PARAM_STAT_MAGICLEVEL, 99)
          setConditionParam(conditionML, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionML, CONDITION_PARAM_SUBID, 92)
          -- MELEE --
          conditionMELEE = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionMELEE, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionMELEE, CONDITION_PARAM_SKILL_CLUB, 99)
          setConditionParam(conditionMELEE, CONDITION_PARAM_SKILL_SWORD, 99)
          setConditionParam(conditionMELEE, CONDITION_PARAM_SKILL_AXE, 99)
          setConditionParam(conditionMELEE, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionMELEE, CONDITION_PARAM_SUBID, 93)
          -- Shield --
          conditionSHI = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionSHI, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionSHI, CONDITION_PARAM_SKILL_SHIELD, 99)
          setConditionParam(conditionSHI, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionSHI, CONDITION_PARAM_SUBID, 94)
          -- Dist --
          conditionDIST = createConditionObject(CONDITION_ATTRIBUTES)
          setConditionParam(conditionDIST, CONDITION_PARAM_TICKS, -1)
          setConditionParam(conditionDIST, CONDITION_PARAM_SKILL_DISTANCE, 99)
          setConditionParam(conditionDIST, CONDITION_PARAM_BUFF, true)
          setConditionParam(conditionDIST, CONDITION_PARAM_SUBID, 95)
      function onLogin(cid)
          doAddCondition(cid, conditionHP)
          doAddCondition(cid, conditionMP)
          doAddCondition(cid, conditionML)
          doAddCondition(cid, conditionMELEE)
          doAddCondition(cid, conditionSHI)
          doAddCondition(cid, conditionDIST)
          return true
      end
       
       
      Como eu faço pra adcionar os valores das condition vindo de um storage do player?
       
    • By Myalitth
      .Qual servidor ou website você utiliza como base? 
       
      OTX -  TFS 1.2
       
      Boa Noite, eu gostaria de um script que fizesse com que um item x sumisse de determinado SQM quando um player pise em um determinado tile (sqm) e reaparecer quando o player sair do tile...
      Se possivel com um exausted entre efeitos (ações).
       
      Exemplo a ilha da Spike Sword em Rookgaard, só que com um tile proximo em que possa sumir o item ao pisar.
       
      Eu tentei porém não obtive exito
       
       
    • By Nto Avus Official
      Opa rapazeada queria uma ajuda pra colocar esse script de akatsuki pra dar a outfit e dar dano, pros jogadores, queria que não desse hp e sim dano tipo uns 2000 de dano.
       
      Script
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo