Ir para conteúdo
  • Cadastre-se

(Resolvido)Criar Action para remover item


Ir para solução Resolvido por Reds,

Posts Recomendados

Olá galera , eu tenho um systema de slot e queria criar um item com action para limpar esse atributo que o slot da. Seria mais ou menos remover o item e dar outro.

EX: "You see Dark Shield (Def:40) [hp+1%] "  a pedra com action (Removedor de Slot) iria remover o dark shield e dar um novo em folha quando usar a pedra nele...

Acredito que seria alguma função de reconhecer o item usado  , remove-lo e adiciona-lo novamente...

Alguem saberia fazer esta action? Aguardo anciosamente , Obrigado!

 

 

Este é o script de slot que uso:

https://otland.net/threads/slot-system-multi-slot-no-crashes.90387/
 

Editado por Mayke Fleury (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
---Config
local conf = {
maxSlotCount=2,
ignoredIds={}
}
--End
function choose(...) 
        local arg = {...}
        return arg[math.random(1,#arg)]
end
if not getItemAttack then
        function getItemAttack(uid)
                return getItemAttribute(uid,'attack')
        end
        function getItemDefense(uid)
                return getItemAttribute(uid,'defense')
        end
end
local function isArmor(uid) -- Function by Mock the bear.
    if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
                return true
        end
        return false
end
local function isWeapon(uid) -- Function by Mock the bear.
        uid = uid or 0
        local f = getItemWeaponType(uid)
        if f == 1 or f == 2 or f == 3 then
                return true
        end
        return false
end
local function isShield(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 4 then
                return true
        end
        return false
end
local function isBow(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then
                return true
        end
        return false
end
local function getWeaponLevel(uid) -- Function by Mock the bear.
uid = uid or 0
local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or ''
local lvl = string.match(name,'%s%+(%d+)%s*')
return tonumber(lvl) or 0
end
function onUse(cid, item, fromPosition, itemEx, toPosition) 
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendCancel(cid, "You cant reset this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end
 
       local level = getWeaponLevel(itemEx)    
        if level > 0 then
upgrade = refine        
                doSendMagicEffect(toPosition,30)
                setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level))
doPlayerSendCancel(cid, "All slots were removed.")         
                doRemoveItem(item.uid,1)
        else  
                doSendMagicEffect(toPosition,30)
setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
                doPlayerSendCancel(cid, "All slots were removed.")
       doRemoveItem(item.uid,1)
        end
        return true
end  
 
 
tenho esse que ta na pasta do meu sv, se n der, de tarde eu faço para vc

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Link para o post
Compartilhar em outros sites

Voce quer é que ao clicar em certo item, remova o item de "x" id que esta com voce, e adicione tal item novamente? caso seja isso tenta assim:

 

 

function onUse(cid, item, frompos, item2, topos)
if DoPlayerRemoveitem(cid, ID DO ITEM, QUANTIDADE)
then
DoPlayerAddItem(cid, ID DO ITEM, QUANTIDADE)
 
return true
end
 

 

Não testei, e nao tenho certeza, haha mas tenta ai.

Link para o post
Compartilhar em outros sites

Voce quer é que ao clicar em certo item, remova o item de "x" id que esta com voce, e adicione tal item novamente? caso seja isso tenta assim:

 

 

Não testei, e nao tenho certeza, haha mas tenta ai.

Seria tipo isso , mas esse script eu teria que criar 1 script para cada item diferente que eu queria remover ne?

Ja consegui com o script que o amigo acima postou , obrigado!!

 

 

---Config
local conf = {
maxSlotCount=2,
ignoredIds={}
}
--End
function choose(...) 
        local arg = {...}
        return arg[math.random(1,#arg)]
end
if not getItemAttack then
        function getItemAttack(uid)
                return getItemAttribute(uid,'attack')
        end
        function getItemDefense(uid)
                return getItemAttribute(uid,'defense')
        end
end
local function isArmor(uid) -- Function by Mock the bear.
    if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
                return true
        end
        return false
end
local function isWeapon(uid) -- Function by Mock the bear.
        uid = uid or 0
        local f = getItemWeaponType(uid)
        if f == 1 or f == 2 or f == 3 then
                return true
        end
        return false
end
local function isShield(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 4 then
                return true
        end
        return false
end
local function isBow(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then
                return true
        end
        return false
end
local function getWeaponLevel(uid) -- Function by Mock the bear.
uid = uid or 0
local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or ''
local lvl = string.match(name,'%s%+(%d+)%s*')
return tonumber(lvl) or 0
end
function onUse(cid, item, fromPosition, itemEx, toPosition) 
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendCancel(cid, "You cant reset this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end
 
       local level = getWeaponLevel(itemEx)    
        if level > 0 then
upgrade = refine        
                doSendMagicEffect(toPosition,30)
                setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level))
doPlayerSendCancel(cid, "All slots were removed.")         
                doRemoveItem(item.uid,1)
        else  
                doSendMagicEffect(toPosition,30)
setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
                doPlayerSendCancel(cid, "All slots were removed.")
       doRemoveItem(item.uid,1)
        end
        return true
end  
 
 
tenho esse que ta na pasta do meu sv, se n der, de tarde eu faço para vc

 

Funcionou certinho brow , era esse mesmo! Muito obrigado! Rep+

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