Postado Janeiro 28, 2018 7 anos Estou com um problema que já tentei de diversas maneiras corrigir, antes de tudo é bom dizer que no ot que estou desenvolvendo possuo uma classe que usa apenas itens de fist fighting, as garras, e quando tento refinar alguns itens ele refina alguns itens e outros não. O grande problema é que ele não retorna o valor do atributo attack de itens como espadas ou machados, e as proprias garras eu consigo refinar algumas e outras não, por exemplo tenho uma garra que foi refinada, mas se eu tentar refinar o mesmo modelo de garra o script retorna o valor do attack como nil, gostaria de saber onde posso estar errando para melhorar, fora que ainda esta no inicio o script ainda nao fiz o reforço de itens de defesa nem itens magicos. Grato desde já. Obs.: para refinar um item é necessário usar uma anvil(bigorna) e colocar o item a ser melhorado no lado direito dela. function onUse(cid, item, frompos, item2, topos) if getPlayerItemCount(cid, 2160) < 5 then doPlayerSendTextMessage(cid, 25, "Para que seja possivel o refinamento e necessario 5 cristal coins") doSendMagicEffect(getCreaturePosition(cid), 2) return true end local itemRefine = getThingFromPos({x=4928, y=4957, z=7, stackpos=2}) chance = math.random(0,100) local tipo = getItemWeaponType(itemRefine.uid) if getPlayerItemCount(cid, 2155) >= 1 then chance = chance+25 doPlayerRemoveItem(cid, 2155, 1) end local function isWeapon(uid) uid = uid or 0 if tipo == 1 or tipo == 2 or tipo == 3 or tipo == 8 then return true end return false end function setItemAttack(uid,name) return doItemSetAttribute(uid,'attack',name) end function getItemAttack(uid) return getItemAttribute(uid,'attack') end function getItemArmor(uid) return getItemAttribute(uid,'attack') end function doItemAddAttack(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "attack", getItemAttack(uid) + count) end return false end function doItemRemoveAttack(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "attack", getItemAttack(uid) - count) end return false end function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function doItemRemoveLevel(uid, count) if uid > 0 and tonumber(count) >= 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) - count) end return false end function setItemLevel(uid) if uid > 0 and tonumber(count) >= 0 then return doItemSetAttribute(uid, "lvl",count) end return false end function setItemDesc(uid, lvl) if uid > 0 then return doItemSetAttribute(uid, "description", lvl) end end if isWeapon(itemRefine.uid) then if chance > 75 then doPlayerRemoveItem(cid, 2160, 5) doSendMagicEffect(getCreaturePosition(cid), 12) doItemAddAttack(itemRefine.uid, 1) doItemAddLevel(itemRefine.uid, 1) setItemDesc(itemRefine.uid,"Upgraded +"..getItemLevel(itemRefine.uid)) doPlayerSendTextMessage(cid, 25, "Parabens, seu item foi melhorado com sucesso para o nivel: +"..getItemLevel(itemRefine.uid)) return true end if chance > 25 and chance <=75 then --doPlayerRemoveItem(cid, 2160, 5) doPlayerSendTextMessage(cid, 25, "Que pena, o refinamento nao obteve sucesso +"..getItemLevel(itemRefine.uid)) doSendMagicEffect(getCreaturePosition(cid), 2) return true end if chance <=25 then --doPlayerRemoveItem(cid, 2160, 5) doSendMagicEffect(getCreaturePosition(cid), 2) doItemRemoveAttack(itemRefine.uid, 1) doItemRemoveLevel(itemRefine.uid, 1) doPlayerSendTextMessage(cid, 25, "Que pena, seu refinamento falhou! Retornou ao nivel +"..getItemLevel(itemRefine.uid)) return true end end end
Postado Janeiro 28, 2018 7 anos Este tópico foi movido para a área correta. Esta é uma mensagem automática!Pedimos que leia as regras do fórum! Spoiler This topic has been moved to the correct area. This is an automated message!Please read the forum rules. https://github.com/Cjaker/ , _ , ( o o ) /'` ' `'\ ESTOU TE OBSERVANDO O_O |'''''''| |\\'''//| """
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.