Ir para conteúdo
  • Cadastre-se

(Resolvido)Usar X item apenas com X item


Ir para solução Resolvido por Adriano SwaTT,

Posts Recomendados

Tente assim, registre a tag como onTarget em creaturescripts.xml e use o script abaixo:

Com esta tag:

<event type="target" name="Weapons" event="script" value="weapons.lua" />

E o script abaixo, "weapons.lua", configurando a ID da arma com a ID da munição, conforme exemplo.

local bows = {
[idbow] = {ammunitionID}, -- Arma, Munição
[idbow2] = {ammunitionID2}, -- Arma, Munição
[idbow3] = {ammunitionID3}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] or not bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "Esta munição não é para esta arma.")
            return false
        end
    end

return true
end

Agora em login.lua da pasta creaturescripts/scripts, adicione a tag abaixo junto com as do gênero.

registerCreatureEvent(cid, "Weapons")

Salve e reinicie o server.

 

Boa sorte.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • Respostas 55
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Acho que a melhor forma de fazer isso é assim:   Suponhamos que seja o arrow, então o script chamará "arrow.lua". local bow = 2417 -- ID DA BOW function onEquip(cid,item)     if (getPlayerSlotIt

ah sim, realmente.. eu fiz isso mesmo, esqueci de registrar para ambas as mãos.   vou editar.

Atualize o script para este: local bows = { [idbow] = {ammunitionID}, -- Arma, Munição [idbow2] = {ammunitionID2}, -- Arma, Munição [idbow3] = {ammunitionID3}, -- Arma, Munição } local slot = nil

Tente assim, registre a tag como onTarget em creaturescripts.xml e use o script abaixo:

 

Configurando a ID da arma com a ID da munição, conforme exemplo.

Não me recordo se tem que registrar em onLogin.lua, mas será bom testar.

local bows = {
[idbow] = {ammunitionID}, -- Arma, Munição
[idbow2] = {ammunitionID2}, -- Arma, Munição
[idbow3] = {ammunitionID3}, -- Arma, Munição
}

function onTarget(cid, target)
local bow = bows[getPlayerSlotItem(cid, 5).itemid]
    
    if not bow then
        return true
    end

    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "Esta munição não é para esta arma.")
            return false
        end
    end

return true
end

Boa sorte.

 

Com esse script eu ainda devo usar o outro em "movements"? Qual tag exatamente eu devo usar?

Link para o post
Compartilhar em outros sites

Não, use apenas este script, o do movements pode ser ignorado.

 

Editei a postagem acima adicionando a tag.

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Não, use apenas este script, o do movements pode ser ignorado.

 

Editei a postagem acima adicionando a tag.

Boa sorte.

 

Nada... continua usando normalmente, não deu erro algum, porém não funcionou.

Link para o post
Compartilhar em outros sites

Registrou tudo de acordo?

Conseguiu atacar monstros com a arma?

Testou usar a arma em ambas as mãos e atacar?

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Registrou tudo de acordo?

Conseguiu atacar monstros com a arma?

Testou usar a arma em ambas as mãos e atacar?

 

Registrei sim.

Consegui atacar os monstros normalmente.

Testei, o script só funciona do lado esquerdo... left hand. 

Link para o post
Compartilhar em outros sites

ah sim, realmente..

eu fiz isso mesmo, esqueci de registrar para ambas as mãos.

 

vou editar.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Atualize o script para este:

local bows = {
[idbow] = {ammunitionID}, -- Arma, Munição
[idbow2] = {ammunitionID2}, -- Arma, Munição
[idbow3] = {ammunitionID3}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] or bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "Esta munição não é para esta arma.")
            return false
        end
    end

return true
end

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Atualize o script para este:

local bows = {
[idbow] = {ammunitionID}, -- Arma, Munição
[idbow2] = {ammunitionID2}, -- Arma, Munição
[idbow3] = {ammunitionID3}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] or bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "Esta munição não é para esta arma.")
            return false
        end
    end

return true
end

Boa sorte.

 

Mesma coisa... o script só é funcional na mão esquerda.

 

SCRIPT:

 

local bows = {

[7438] = {2352}, -- Arma, Munição

[5907] = {8304}, -- Arma, Munição

[8851] = {6529}, -- Arma, Munição

[5803] = {2547}, -- Arma, Munição

}

local slot = nil

function onTarget(cid, target)

if not bows[getPlayerSlotItem(cid, 5).itemid] or bows[getPlayerSlotItem(cid, 6).itemid] then

return true

end

if bows[getPlayerSlotItem(cid, 5).itemid] then

slot = 5

elseif bows[getPlayerSlotItem(cid, 6).itemid] then

slot = 6

end

local bow = bows[getPlayerSlotItem(cid, slot).itemid]

if bow then

if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then

return true

else

doPlayerSendCancel(cid, "This ammunition is not for this weapon.")

return false

end

end

return true

end

Link para o post
Compartilhar em outros sites

Reiniciou o server?

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Hmm, teste assim, acho que vacilei em um detalhe.

 

local bows = {
[7438] = {2352}, -- Arma, Munição
[5907] = {8304}, -- Arma, Munição
[8851] = {6529}, -- Arma, Munição
[5803] = {2547}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] or not bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "This ammunition is not for this weapon.")
            return false
        end
    end

return true
end

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Hmm, teste assim, acho que vacilei em um detalhe.

local bows = {
[7438] = {2352}, -- Arma, Munição
[5907] = {8304}, -- Arma, Munição
[8851] = {6529}, -- Arma, Munição
[5803] = {2547}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] or not bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "This ammunition is not for this weapon.")
            return false
        end
    end

return true
end

Boa sorte.

 

Agora está funcionando nas duas mãos o.O

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

Tente assim:

Registre a tag abaixo em creaturescripts.xml:

<event type="target" name="Weapons" event="script" value="weapons.lua" />

 

E o script abaixo, "weapons.lua", configurando a ID da arma com a ID da munição, conforme exemplo.

local bows = {
[7438] = {2352}, -- Arma, Munição
[5907] = {8304}, -- Arma, Munição
[8851] = {6529}, -- Arma, Munição
[5803] = {2547}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] and not bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "This ammunition is not for this weapon.")
            return false
        end
    end

return true
end
 

Agora em login.lua da pasta creaturescripts/scripts, adicione a tag abaixo junto com as do gênero.

registerCreatureEvent(cid, "Weapons")

 

Salve e reinicie o server.

 

Boa sorte.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Eitaaa...

 

mals, é que estou com a cabeça longe.. UAHEIUAHE

local bows = {
[7438] = {2352}, -- Arma, Munição
[5907] = {8304}, -- Arma, Munição
[8851] = {6529}, -- Arma, Munição
[5803] = {2547}, -- Arma, Munição
}
local slot = nil

function onTarget(cid, target)

    if not bows[getPlayerSlotItem(cid, 5).itemid] and not bows[getPlayerSlotItem(cid, 6).itemid] then
        return true
    end

    if bows[getPlayerSlotItem(cid, 5).itemid] then
        slot = 5
    elseif bows[getPlayerSlotItem(cid, 6).itemid] then
        slot = 6
    end

    local bow = bows[getPlayerSlotItem(cid, slot).itemid]
    if bow then
        if (getPlayerSlotItem(cid, 10).itemid == bow[1]) then
            return true
        else
            doPlayerSendCancel(cid, "This ammunition is not for this weapon.")
            return false
        end
    end

return true
end

Boa sorte.

 

WOOOW! Aparentemente funcionou, amigo. Muito obrigado.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.




×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo