Ir para conteúdo
  • Cadastre-se

(Resolvido)Alavanca de Monstros (OTServ 8.10)


Ir para solução Resolvido por Storm,

Posts Recomendados

Eae pessoal, beleza?
Pesquisei no fórum antes de fazer esse tópico e encontrei vários scripts de alavanca de monstros, mas nenhum deles funcionou no meu servidor e eu não consegui resolver o problema :/
Diante disso venho com humildade pedir a ajuda de vocês...

O problema é o seguinte: A alavanca summona o monstro tranquilamente, no entanto, não há nenhum tipo de tempo para usá-la novamente. Dessa forma, o player pode usá-la quantas vezes quiser, invocando vários monstros seguidamente.
Eu preciso que tenha um tempo que pode ser de 1 minuto ou mais para usar a alavanca novamente.
Servidor: Aries Server to Tibia 8.10 - Version 3.0 (OTServ SVN 0.6.0)

E o script é esse:

Citar

function onUse(cid, item, fromPosition, item2, toPosition)
local posmonster = {x= 510, y= 293, z= 10}
local monster = "Arena Goblin"
if (item.itemid == 1945) then
doTransformItem(item.uid,item.itemid+1)
doSummonCreature(monster, posmonster)
else
doTransformItem(item.uid,item.itemid-1)
return TRUE
end
return FALSE
end

Se alguém puder me ajudar nisso, ficarei muito grato.

Link para o post
Compartilhar em outros sites

@YanRenat 

local config = {
    
    posmonster = {x= 510, y= 293, z= 10},
    monster = "Arena Goblin",
    storage = 15666, -- Storage
    time = 1 -- Minutos de exhaust
    
}

function onUse(cid, item, fromPosition, item2, toPosition)
    
    if getStorage(config.storage) >= os.time() then
        doPlayerSendTextMessage(cid, 19, "wait " .. getPlayerStorageValue(cid, store) - os.time() .. " seconds to use this alavanca again.") 
        return true
    end 
    doSetStorage(config.storage, os.time() + config.time * 60)
    doSummonCreature(config.monster, config.posmonster)
    return true
end

 

Link para o post
Compartilhar em outros sites

@YanRenat 

local config = {
    
    posmonster = {x= 510, y= 293, z= 10},
    monster = "Arena Goblin",
    storage = 15666, -- Storage
    time = 1 -- Minutos de exhaust
    
}

function onUse(cid, item, fromPosition, item2, toPosition)
    
    if getGlobalStorageValue(config.storae) >= os.time() then
        doPlayerSendTextMessage(cid, 19, "wait " .. getGlobalStorageValue(cid, config.storage) - os.time() .. " seconds to use this alavanca again.") 
        return true
    end 
    SetGlobalStorageValue(config.storage, os.time() + config.time * 60)
    doSummonCreature(config.monster, config.posmonster)
    return true
end

 

Link para o post
Compartilhar em outros sites

@Storm 
PS: Encontrei também na pasta do server um arquivo chamado Funções para usar em arquivos LUA.
Dentre várias, selecionei essas funções pois foram as que deram problema no distro.

	getPlayerStorageValue(uid,valueid) -- Returns the value of the value id of a player
	setPlayerStorageValue(uid,valueid, newvalue) -- Adds a new value-id to the storage map of player
	getGlobalStorageValue(valueid) -- Returns the value of the value id
	setGlobalStorageValue(valueid, newvalue) -- Adds a new value-id to the storage map

 

luascript.cpp

Link para o post
Compartilhar em outros sites
  • Solução

@YanRenat 

local config = {
    
    posmonster = {x= 510, y= 293, z= 10},
    monster = "Arena Goblin",
    storage = 15666, -- Storage
    time = 1 -- Minutos de exhaust
    
}

function onUse(cid, item, fromPosition, item2, toPosition)
    
    if getGlobalStorageValue(config.storae) >= os.time() then
        doPlayerSendTextMessage(cid, 19, "wait " .. getGlobalStorageValue(cid, config.storage) - os.time() .. " seconds to use this alavanca again.") 
        return true
    end 
    setGlobalStorageValue(config.storage, os.time() + config.time * 60)
    doSummonCreature(config.monster, config.posmonster)
    return true
end

 

Link para o post
Compartilhar em outros sites
Em 10/01/2019 em 21:54, Storm disse:

@YanRenat 


local config = {
    
    posmonster = {x= 510, y= 293, z= 10},
    monster = "Arena Goblin",
    storage = 15666, -- Storage
    time = 1 -- Minutos de exhaust
    
}

function onUse(cid, item, fromPosition, item2, toPosition)
    
    if getGlobalStorageValue(config.storage) >= os.time() then
        doPlayerSendTextMessage(cid, 19, "wait " .. getGlobalStorageValue(cid, config.storage) - os.time() .. " seconds to use this alavanca again.") 
        return true
    end 
    setGlobalStorageValue(config.storage, os.time() + config.time * 60)
    doSummonCreature(config.monster, config.posmonster)
    return true
end

 

 

@Storm agora sim, tá funfando certim.

obrigado.png

Editado por YanRenat (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Storm Só uma correção, geralmente as funções 'get'  'set' começam com letras minusculas, por exemplo

 

 

setGlobalStorageValue

getGlobalStorageValue

getTileThingByPos

getTileInfo

getPlayerStorageValue

getPlayerLevel

setPlayerStorageValue

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo