Ir para conteúdo

Featured Replies

Postado
  • Autor

Cara na outra que você me passo abria o pokémon sem aparecer a msg, agora ta aparecendo a msg... aonde eu boto isso: setPlayerStorageValue(cid, 2765, 0) ???

  • Respostas 22
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Habilitar/desabilitar uma action, no geral? Use uma global storage, é mais simples assim. Substitua o action script: function onUse(cid, item)     local gstor = 54321     if getGlobalStorageValue

  • OBS, Sei que está errado:   mas seria tipo assim: function onSay(cid, words, param) local pos = {x=655, y=1014, z=7} doSetItemActionId(pos, 2765) doSendMagicEffect(getThingPosition(cid), CONST_M

  • É porque, do jeito que está configurado, sempre que não estiver com o global storage, vai ficar aparecendo a mensagem...     Tem que criar outro storage para dar a mensagem só uma vez  setPlayerSt

Postado

É porque, do jeito que está configurado, sempre que não estiver com o global storage, vai ficar aparecendo a mensagem...

 

 

Tem que criar outro storage para dar a mensagem só uma vez 

setPlayerStorageValue(cid, key, value)

Cara, o escopo que envolve a checagem da global storage só envia a mensagem caso o mesmo seja true, não tem nada a ver. E usando somente a storage, não vai dar pra determinar um "controle" geral da action, a storage se aplica em um creature ID específico e não para todos (como a global storage).

O problema estava no valor da global storage, acabei esquecendo que por padrão (caso não esteja sendo usada em algum outro script), seria menor que 1 e resultaria nisso.

 

Lembrando que o suicuide não me passo a tag da action

Não tinha necessidade de eu postar uma tag, já que você tem esse action script, bastava substituir os códigos do mesmo.

Enfim, tente invertendo os valores da global storage.

Substitua seu action script:

function onUse(cid, item)
    local gstor = 54321
    if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end
    
        if getItemAttribute(item.uid, "corpseowner") ~= cid then
            return doPlayerSendCancel(cid, "You're not the owner.")
        end
    
            local items = {}
            for x = 0, (getContainerSize(item.uid)) do
                local itens = getContainerItem(item.uid, x)
                table.insert(items, {i=itens.itemid, q=itens.type})
                doRemoveItem(itens.uid)
            end
    
        for y = 1, #items do
            doPlayerAddItemStacking(cid, items[y].i, items[y].q)
            doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
        end
        
    if #items < 1 then return false end
    
    return true
end

 

Substitua os códigos do talkaction script action.lua:

local t = {
    ['enabled'] = {evalue = 1, dvalue = 0, msg = {'The action is now enabled.', 'The action is already enabled.'}},
    ['disabled'] = {evalue = 0, dvalue = 1, msg = {'The action is now disabled.', 'The action is already disabled.'}}
}

function onSay(cid, words, param)
    local p = string.lower(param)
    local gstor = 54321
    
    if p == '' then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You can use the following parameters: enabled/disabled.')
    elseif not t[p] or not tostring(p) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Invalid parameter specified.')
    elseif getGlobalStorageValue(gstor) == t[p].dvalue then
        setGlobalStorageValue(gstor, t[p].evalue)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[1])
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[2])
    end
    
    return true
end

 

 

if getPlayerStorageValue(cid, 2765) < 1 then

if getGlobalStorageValue(gstor) < 1 then

return doPlayerSendCancel(cid, "This system is disabled.")

end

else

setPlayerStorageValue(cid, 2765, 1)

end

Se já há uma estrutura de controle que determina o retorno do callback através de um valor de uma global storage, qual a necessidade de aplicar ao creature ID um valor de uma storage?

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Postado
  • Autor

Cara na terceira linha o erro não séria ai no edvalue ??? isso ta certo ?


Funciono cara.... mas não to conseguindo desativar aparece The action is already disabled.

 

deve ser por causa desse edvalue ???


E apareceu isso na distro:

 

[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] (luaDoRemoveItem) Item not found
 
[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] (luaDoPlayerAddItem) Item not found
 
[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] data/lib/050-function.lua:227: attempt to index a boolean value
[24/12/2014 20:43:38] stack traceback:
[24/12/2014 20:43:38] data/lib/050-function.lua:227: in function 'getItemNameById'
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:20: in function <data/actions/scripts/autoloot.lua:1>
Postado

Cara na terceira linha o erro não séria ai no edvalue ??? isso ta certo ?

Veja:

   if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end

Caso a estrutura de controle seja true, ou seja, caso o valor da global storage seja menor que 1 (desativado), então retornará aquela mensagem.

Aqui:

local t = {
    ['enabled'] = {evalue = 1, dvalue = 0, msg = {'The action is now enabled.', 'The action is already enabled.'}},
    ['disabled'] = {evalue = 0, dvalue = 1, msg = {'The action is now disabled.', 'The action is already disabled.'}}
}

Caso o parâmetro usado seja enabled e a global storage for igual a 0 (desativado), então o valor da mesma será setado para como sendo 1 (ativado). Se o parâmetro usado for disabled, o inverso acontece.

Tente desse modo invertido que fiz acima, se não der, refaço tudo depois que eu voltar.

Abraços e tenha um bom natal.

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Postado
  • Autor

Poxa cara não funciono valeu pela ajuda, mas não ta dando. REP+

 

Abraço, feliz natal !....

Editado por GabrielSapient (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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo