Postado Agosto 8, 2015 9 anos O membro zipter98 fez um action de item que dar bônus de reflect ao usar em outro item, quando usado no item, fica, You see a demon helmet ref 2% (def:10). Só que, uso um sistema de upgrade item, que deixa o item +1, +2, etc... ficando You see a demon helmet +1 (def:10). Dai, quando o item já está +1 e coloco bônus de reflect, a irformação que o item está +1 some dando lugar a informação que o item está com reflect, o mesmo acontece quando o item já tem reflect e eu ponho ele +1. Dessa forma fica ruim a comercialização desses itens e terei que acabar optando por um dos dois sistemas. Gostaria de saber se tem alguém que consiga dar essa ajuda, que consiga deixar o item da seguinte forma, You see a demon helmet +1 ref 2% (def:10). Segue o script do zipter98: Action: local config = { reflectBonus = 2, --Bônus de reflect, em %. failChance = 50, --Chance de falhar, em porcentagem. types = {"armor", "legs", "helmet", "boots"}, noReflect = {1, 2, 3, 5, 6} --Tipos de armamento bloqueados (valores podem ser conferidos em 000-constant.lua, data/lib) } function onUse(cid, item, fromPos, itemEx, toPos) if itemEx.itemid < 100 then return doPlayerSendCancel(cid, "Use this in valid itens.") elseif isInArray(config.noReflect, getItemWeaponType(itemEx.uid)) then return doPlayerSendCancel(cid, "Use this in valid itens.") elseif getItemAttribute(itemEx.uid, "reflect") then return doPlayerSendCancel(cid, "This item has already a reflect bonus.") elseif math.random(1, 100) > config.failChance then return doPlayerSendTextMessage(cid, 27, "Sorry, your item didn't get a reflect bonus. Good luck at the next try! =]"), doRemoveItem(item.uid, 1) end local checkItemName for i = 1, #config.types do if getItemNameById(itemEx.itemid):find(config.types[i]) then checkItemName = true break end end if not checkItemName then return doPlayerSendCancel(cid, "Use this in valid itens.") end doPlayerSendTextMessage(cid, 27, "Congratulations, now your item has a reflect bonus of "..config.reflectBonus.."%!") doItemSetAttribute(itemEx.uid, "reflect", config.reflectBonus) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).." ref "..config.reflectBonus.."%") doRemoveItem(item.uid, 1) return true end Creaturescript: function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isCreature(attacker) and type == STATSCHANGE_HEALTHLOSS then local bonusReflect = 0 for i = 1, 10 do local item = getPlayerSlotItem(cid, i).uid if item > 0 and getItemAttribute(item, "reflect") then bonusReflect = bonusReflect + getItemAttribute(item, "reflect") end end if bonusReflect > 0 then local damage = value * bonusReflect / 100 doSendAnimatedText(getThingPos(attacker), -damage, COLOR_RED) doCreatureAddHealth(attacker, -damage) end end return true end
Postado Agosto 8, 2015 9 anos Removido! Editado Agosto 9, 2015 9 anos por Wakon (veja o histórico de edições)
Postado Agosto 9, 2015 9 anos Suidera, é proibido oferecer suporte fora do fórum, você será alertado e caso ocorra novamente, você irá receber uma punição mais severa! Leia as regras: http://www.tibiaking.com/forum/topic/1281-regras-gerais/ 2.14 - Suporte fora do fórum: É extremamente proibido oferecer suporte fora do TibiaKing.com, como por exemplo: "To querendo tal map, me adiciona no Skype", "Me adiciona no Skype que eu resolvo", ou então, "Eu tenho esse script, me adiciona no skype que a gente vê"... Enfim, se você fizer isso seu tópico será imediatamente fechado e você poderá ser punido! ➥ Regras | Seções OTServ | Seções BOT
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.