quest itembonus begin state start begin function isBonusBlocked(bonus, list) if list == nil then return false end for _,v in pairs(list) do if v == bonus then return true end end return false end function alreadyExists(item, bonus) for _,var in pairs(item) do end return false end when 20016.chat."Quem és tu?" begin --[[ say("---------------------------------------------------") ]] say_title("Ferreiro:") say("Eu sou o Ferreiro da cidade, estou certificado para") say("fazer qualquer tipo de alteração nos teus") say("equipamentos, no entanto, existem limites.") say("Trás um dos teus equipamentos até mim e eu digo-te") say("que alterações poderás fazer no mesmo.") say() say_reward("Dica: Arrasta um equipamento até ao ferreiro.") return end when 9007.take begin local listaDeBonus = { [1]={"Máx. VD", 2000}, [2]={"Máx. MN", 300}, [3]={"Vitalidade", 12}, [4]={"Inteligência", 12}, [5]={"Força", 12}, [6]={"Destreza", 12}, [7]={"Rapidez de Ataque", 8}, [8]={"Rapidez de Movimento", 20}, [9]={"Velocidade de Feitiço", 20}, [10]={"Regeneração de VD", 30}, [11]={"Regeneração de MN", 30}, [12]={"Chance de Envenenamento", 8}, [13]={"Chance de Atordoamento", 8}, [14]={"Chance de Abrandamento", 8}, [15]={"Chance de Golpes Críticos", 10}, [16]={"Chance de Golpes Perfurantes", 10}, [17]={"Forte contra Semi-Humanos", 10}, [18]={"Forte contra Animais", 20}, [19]={"Forte contra Orcs", 20}, [20]={"Forte contra Esotéricos", 20}, [21]={"Forte contra Mortos-Vivos", 20}, [22]={"Forte contra Demónios", 20}, [23]={"Danos serão absorvidos pela VD", 10}, [24]={"Danos serão absorvidos pela MN", 10}, [25]={"Chance de roubar MN", 10}, [26]={"Chance de reaver MN", 10}, [27]={"Chance de bloquear ataques físicos", 10}, [28]={"Chance de Evitar Flechas", 15}, [29]={"Defesa contra Espadas", 15}, [30]={"Defesa contra Duas Mãos", 15}, [31]={"Defesa contra Punhais", 15}, [32]={"Defesa contra Campainhas", 15}, [33]={"Defesa contra Leques", 15}, [34]={"Defesa contra Flechas", 15}, [35]={"Resistência contra o Fogo", 15}, [36]={"Resistência contra Relampâgos", 15}, [37]={"Resistência contra Magias", 15}, [38]={"Resistência contra o Vento", 15}, [39]={"Chance de reflectir ataques físicos", 15}, [40]={"Chance de reflectir maldição", 0}, [41]={"Resistência a Evenenamento", 15}, [42]={"Chance de restaurar MN", 0}, [43]={"Chance de EXP Bónus", 20}, [44]={"Chance de receber Yang a dobrar", 20}, [45]={"Chance de receber Itens a dobrar", 20}, [46]={"Aumenta o efeito da poção", 0}, [47]={"Chance de restaurar VD", 0}, [48]={"Defesa contra Atordoamento", 1}, [49]={"Defesa contra Abrandamento", 1}, [50]={"Defesa contra Quedas", 1}, [51]={"-", 0}, [52]={"Arc Range", 0}, [53]={"Valor de Ataque", 50}, [54]={"Defesa", 0}, [55]={"Valor de Ataque Mágico", 0}, [56]={"Defesa Mágica", 0}, [57]={"-", 0}, [58]={"Máx. Resistência", 0}, [59]={"Forte contra Guerreiros", 0}, [60]={"Forte contra Ninjas", 0}, [61]={"Strong against Sura", 0}, [62]={"Forte contra Xamãs", 0}, [63]={"Forte contra Monstros", 0}, [64]={"ItemShop - Valor de Ataque(%)", 0}, [65]={"ItemShop - Defesa(%)", 0}, [66]={"ItemShop - Exp-Bonus(%)", 0}, [67]={"ItemShop - ItemDrop-Bonus(%)", 0}, [68]={"ItemShop - Yang-Bonus(%)", 0}, [69]={"Max. TP (???)", 0}, [70]={"Max. MP (???)", 0}, [71]={"Dano de Habilidades", 15}, [72]={"Dano Médio", 40}, [73]={"Resistência contra Dano de Habilidades", 0}, [74]={"Resistência contra Dano Médio", 0}, [75]={"-", 0}, [76]={"iCafe EXP-Bonus", 0}, [77]={"iCafe Item-Bonus", 0}, [78]={"Resistência a ataques de Guerreiros", 0}, [79]={"Resistência a ataques de Ninjas", 0}, [80]={"Resistência a ataques de Suras", 0}, [81]={"Resistência a ataques de Xamãs", 0} } local armas = { 279, 4049, 7199, 289, 209, 5339 } local equipamentos = { -- Armaduras {11299, 11499, 11699, 11899}, -- Elmos {12269, 12399, 12539, 12679}, -- Escudos {13069, 13089, 13109, 13129, 13149}, -- Pulseiras {14209, 16169}, -- Sapatos {15209, 15419}, -- Colar {16209, 16189}, -- Brincos {17109, 17169, 17209} } local bonusArmas = {3, 4, 5, 6, 9, 12, 13, 14, 15, 16, 17} local bonusEquipamentos = { -- Armaduras {1, 2, 9, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 38, 53}, -- Elmos {7, 10, 11, 12, 17, 28, 35, 36, 37, 38}, -- Escudos {3, 4, 5, 6, 17, 27, 39, 48, 49}, -- Pulseiras {1, 2, 16, 17, 23, 35, 36, 37, 38}, -- Sapatos {1, 2, 7, 15, 16, 28, 29, 30, 31, 32, 33, 34}, -- Colar {1, 2, 10, 15, 16, 28, 29, 30, 31, 32, 33, 34}, -- Brincos {8, 17, 29, 30, 31, 32, 33, 34, 41} } local extrasBloqueados = {[3159]={17}, [16209]={16}} -- local menuDeBonus = {} -- local menuDeBonustxt = {} local iType = item.get_type() local iSubType = item.get_sub_type() local insertBufferid = {} local insertBuffertxt = {} if item.get_type() == 1 then -- Armas if not armas[item.get_vnum()] then say_title("Ferreiro:") say("Não posso fazer qualquer tipo de alteração nesta arma.") return end for i = 1,5 do local menuDeBonus = {} local menuDeBonustxt = {} say_title("Ferreiro:") for _,val in pairs(bonusArmas) do if not itembonus.isBonusBlocked(val, extrasBloqueados[item.get_vnum()]) and not insertBufferid[val] then table.insert(menuDeBonus, val) table.insert(menuDeBonustxt, listaDeBonus[val][1]) end end table.insert(menuDeBonustxt, "Cancelar") local sel = select_table(menuDeBonustxt) if sel == table.getn(menuDeBonustxt) then return end local tst = menuDeBonus[sel] table.insert(insertBufferid, menuDeBonus[sel]) table.insert(insertBuffertxt, listaDeBonus[tst][1]) end say_title("Ferreiro:") say("O teu equipamento vai ficar com os seguintes bonus:") say() for k,v in pairs(insertBuffertxt) do local tst = insertBufferid[k] say(v..": "..listaDeBonus[tst][2].."%") item.set_value(k-1, tst, listaDeBonus[tst][2]) end return elseif item.get_type() == 2 then -- Equipamentos if not equipamentos[item.get_sub_type()+1][item.get_vnum()] then say_title("Ferreiro:") say("Não posso fazer qualquer tipo de alteração neste item.") return end for i = 1,5 do local menuDeBonus = {} local menuDeBonustxt = {} say_title("Ferreiro:") for _,val in pairs(bonusEquipamentos[item.get_sub_type()+1]) do if not itembonus.isBonusBlocked(val, extrasBloqueados[item.get_vnum()]) and not insertBufferid[val] then table.insert(menuDeBonus, val) table.insert(menuDeBonustxt, listaDeBonus[val][1]) end end table.insert(menuDeBonustxt, "Cancelar") local sel = select_table(menuDeBonustxt) if sel == table.getn(menuDeBonustxt) then return end local tst = menuDeBonus[sel] table.insert(insertBufferid, menuDeBonus[sel]) table.insert(insertBuffertxt, listaDeBonus[tst][1]) end say_title("Ferreiro:") say("O teu equipamento vai ficar com os seguintes bonus:") say() for k,v in pairs(insertBuffertxt) do local tst = insertBufferid[k] say(v..": "..listaDeBonus[tst][2].."%") item.set_value(k-1, tst, listaDeBonus[tst][2]) end else say_title("Ferreiro:") say("Trás até mim apenas equipamentos ou armas.") end return end end end