Advertisement
Guest User

// kforce

a guest
Aug 23rd, 2014
658
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.12 KB | None | 0 0
  1. quest itembonus begin
  2.     state start begin      
  3.        
  4.         function isBonusBlocked(bonus, list)
  5.             if list == nil then
  6.                 return false
  7.             end
  8.             for _,v in pairs(list) do
  9.                 if v == bonus then
  10.                     return true
  11.                 end
  12.             end
  13.             return false
  14.         end
  15.        
  16.         function alreadyExists(item, bonus)
  17.             for _,var in pairs(item) do
  18.                
  19.             end
  20.             return false
  21.         end
  22.        
  23.         when 20016.chat."Quem és tu?" begin
  24.             --[[
  25.             say("---------------------------------------------------")
  26.             ]]
  27.             say_title("Ferreiro:")
  28.             say("Eu sou o Ferreiro da cidade, estou certificado para")
  29.             say("fazer qualquer tipo de alteração nos teus")
  30.             say("equipamentos, no entanto, existem limites.")
  31.             say("Trás um dos teus equipamentos até mim e eu digo-te")
  32.             say("que alterações poderás fazer no mesmo.")
  33.             say()
  34.             say_reward("Dica: Arrasta um equipamento até ao ferreiro.")
  35.             return
  36.         end
  37.        
  38.         when 9007.take begin
  39.             local listaDeBonus = {
  40.                 [1]={"Máx. VD", 2000},
  41.                 [2]={"Máx. MN", 300},
  42.                 [3]={"Vitalidade", 12},
  43.                 [4]={"Inteligência", 12},
  44.                 [5]={"Força", 12},
  45.                 [6]={"Destreza", 12},
  46.                 [7]={"Rapidez de Ataque", 8},
  47.                 [8]={"Rapidez de Movimento", 20},
  48.                 [9]={"Velocidade de Feitiço", 20},
  49.                 [10]={"Regeneração de VD", 30},
  50.                 [11]={"Regeneração de MN", 30},
  51.                 [12]={"Chance de Envenenamento", 8},
  52.                 [13]={"Chance de Atordoamento", 8},
  53.                 [14]={"Chance de Abrandamento", 8},
  54.                 [15]={"Chance de Golpes Críticos", 10},
  55.                 [16]={"Chance de Golpes Perfurantes", 10},
  56.                 [17]={"Forte contra Semi-Humanos", 10},
  57.                 [18]={"Forte contra Animais", 20},
  58.                 [19]={"Forte contra Orcs", 20},
  59.                 [20]={"Forte contra Esotéricos", 20},
  60.                 [21]={"Forte contra Mortos-Vivos", 20},
  61.                 [22]={"Forte contra Demónios", 20},
  62.                 [23]={"Danos serão absorvidos pela VD", 10},
  63.                 [24]={"Danos serão absorvidos pela MN", 10},
  64.                 [25]={"Chance de roubar MN", 10},
  65.                 [26]={"Chance de reaver MN", 10},
  66.                 [27]={"Chance de bloquear ataques físicos", 10},
  67.                 [28]={"Chance de Evitar Flechas", 15},
  68.                 [29]={"Defesa contra Espadas", 15},
  69.                 [30]={"Defesa contra Duas Mãos", 15},
  70.                 [31]={"Defesa contra Punhais", 15},
  71.                 [32]={"Defesa contra Campainhas", 15},
  72.                 [33]={"Defesa contra Leques", 15},
  73.                 [34]={"Defesa contra Flechas", 15},
  74.                 [35]={"Resistência contra o Fogo", 15},
  75.                 [36]={"Resistência contra Relampâgos", 15},
  76.                 [37]={"Resistência contra Magias", 15},
  77.                 [38]={"Resistência contra o Vento", 15},
  78.                 [39]={"Chance de reflectir ataques físicos", 15},
  79.                 [40]={"Chance de reflectir maldição", 0},
  80.                 [41]={"Resistência a Evenenamento", 15},
  81.                 [42]={"Chance de restaurar MN", 0},
  82.                 [43]={"Chance de EXP Bónus", 20},
  83.                 [44]={"Chance de receber Yang a dobrar", 20},
  84.                 [45]={"Chance de receber Itens a dobrar", 20},
  85.                 [46]={"Aumenta o efeito da poção", 0},
  86.                 [47]={"Chance de restaurar VD", 0},
  87.                 [48]={"Defesa contra Atordoamento", 1},
  88.                 [49]={"Defesa contra Abrandamento", 1},
  89.                 [50]={"Defesa contra Quedas", 1},
  90.                 [51]={"-", 0},
  91.                 [52]={"Arc Range", 0},
  92.                 [53]={"Valor de Ataque", 50},
  93.                 [54]={"Defesa", 0},
  94.                 [55]={"Valor de Ataque Mágico", 0},
  95.                 [56]={"Defesa Mágica", 0},
  96.                 [57]={"-", 0},
  97.                 [58]={"Máx. Resistência", 0},
  98.                 [59]={"Forte contra Guerreiros", 0},
  99.                 [60]={"Forte contra Ninjas", 0},
  100.                 [61]={"Strong against Sura", 0},
  101.                 [62]={"Forte contra Xamãs", 0},
  102.                 [63]={"Forte contra Monstros", 0},
  103.                 [64]={"ItemShop - Valor de Ataque(%)", 0},
  104.                 [65]={"ItemShop - Defesa(%)", 0},
  105.                 [66]={"ItemShop - Exp-Bonus(%)", 0},
  106.                 [67]={"ItemShop - ItemDrop-Bonus(%)", 0},
  107.                 [68]={"ItemShop - Yang-Bonus(%)", 0},
  108.                 [69]={"Max. TP (???)", 0},
  109.                 [70]={"Max. MP (???)", 0},
  110.                 [71]={"Dano de Habilidades", 15},
  111.                 [72]={"Dano Médio", 40},
  112.                 [73]={"Resistência contra Dano de Habilidades", 0},
  113.                 [74]={"Resistência contra Dano Médio", 0},
  114.                 [75]={"-", 0},
  115.                 [76]={"iCafe EXP-Bonus", 0},
  116.                 [77]={"iCafe Item-Bonus", 0},
  117.                 [78]={"Resistência a ataques de Guerreiros", 0},
  118.                 [79]={"Resistência a ataques de Ninjas", 0},
  119.                 [80]={"Resistência a ataques de Suras", 0},
  120.                 [81]={"Resistência a ataques de Xamãs", 0}
  121.             }
  122.        
  123.        
  124.             local armas = { 279, 4049, 7199, 289, 209, 5339 }  
  125.            
  126.             local equipamentos = {
  127.                 -- Armaduras
  128.                 {11299, 11499, 11699, 11899},
  129.  
  130.                 -- Elmos
  131.                 {12269, 12399, 12539, 12679},
  132.                
  133.                 -- Escudos
  134.                 {13069, 13089, 13109, 13129, 13149},
  135.  
  136.                 -- Pulseiras
  137.                 {14209, 16169},
  138.  
  139.                 -- Sapatos
  140.                 {15209, 15419},
  141.  
  142.                 -- Colar
  143.                 {16209, 16189},
  144.  
  145.                 -- Brincos
  146.                 {17109, 17169, 17209}
  147.             }
  148.             local bonusArmas = {3, 4, 5, 6, 9, 12, 13, 14, 15, 16, 17}
  149.             local bonusEquipamentos = {
  150.                 -- Armaduras
  151.                 {1, 2, 9, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 38, 53},
  152.                
  153.                 -- Elmos
  154.                 {7, 10, 11, 12, 17, 28, 35, 36, 37, 38},
  155.                
  156.                 -- Escudos
  157.                 {3, 4, 5, 6, 17, 27, 39, 48, 49},
  158.                
  159.                 -- Pulseiras
  160.                 {1, 2, 16, 17, 23, 35, 36, 37, 38},
  161.                
  162.                 -- Sapatos
  163.                 {1, 2, 7, 15, 16, 28, 29, 30, 31, 32, 33, 34},
  164.                
  165.                 -- Colar
  166.                 {1, 2, 10, 15, 16, 28, 29, 30, 31, 32, 33, 34},
  167.                
  168.                 -- Brincos
  169.                 {8, 17, 29, 30, 31, 32, 33, 34, 41}
  170.             }
  171.            
  172.            
  173.            
  174.             local extrasBloqueados = {[3159]={17}, [16209]={16}}
  175.             -- local menuDeBonus = {}
  176.             -- local menuDeBonustxt = {}
  177.            
  178.             local iType = item.get_type()
  179.             local iSubType = item.get_sub_type()
  180.            
  181.             local insertBufferid = {}
  182.             local insertBuffertxt = {}
  183.             if item.get_type() == 1 then -- Armas
  184.                 if not armas[item.get_vnum()] then
  185.                     say_title("Ferreiro:")
  186.                     say("Não posso fazer qualquer tipo de alteração nesta arma.")
  187.                     return
  188.                 end
  189.                
  190.                 for i = 1,5 do
  191.                     local menuDeBonus = {}
  192.                     local menuDeBonustxt = {}
  193.                    
  194.                     say_title("Ferreiro:")
  195.                    
  196.                     for _,val in pairs(bonusArmas) do
  197.                         if not itembonus.isBonusBlocked(val, extrasBloqueados[item.get_vnum()]) and not insertBufferid[val] then
  198.                             table.insert(menuDeBonus, val)
  199.                             table.insert(menuDeBonustxt, listaDeBonus[val][1])
  200.                         end
  201.                     end
  202.                    
  203.                     table.insert(menuDeBonustxt, "Cancelar")
  204.                     local sel = select_table(menuDeBonustxt)
  205.                    
  206.                     if sel == table.getn(menuDeBonustxt) then
  207.                         return
  208.                     end
  209.                    
  210.                     local tst = menuDeBonus[sel]
  211.                    
  212.                     table.insert(insertBufferid, menuDeBonus[sel])
  213.                     table.insert(insertBuffertxt, listaDeBonus[tst][1])
  214.                    
  215.                
  216.                 end
  217.                
  218.                 say_title("Ferreiro:")
  219.                 say("O teu equipamento vai ficar com os seguintes bonus:")
  220.                 say()
  221.                 for k,v in pairs(insertBuffertxt) do
  222.                     local tst = insertBufferid[k]
  223.                     say(v..": "..listaDeBonus[tst][2].."%")
  224.        
  225.                    
  226.                     item.set_value(k-1, tst, listaDeBonus[tst][2])
  227.                 end
  228.                 return
  229.             elseif item.get_type() == 2 then -- Equipamentos
  230.                 if not equipamentos[item.get_sub_type()+1][item.get_vnum()] then
  231.                     say_title("Ferreiro:")
  232.                     say("Não posso fazer qualquer tipo de alteração neste item.")
  233.                     return
  234.                 end
  235.                
  236.                 for i = 1,5 do
  237.                     local menuDeBonus = {}
  238.                     local menuDeBonustxt = {}
  239.                    
  240.                     say_title("Ferreiro:")
  241.                    
  242.                     for _,val in pairs(bonusEquipamentos[item.get_sub_type()+1]) do
  243.                         if not itembonus.isBonusBlocked(val, extrasBloqueados[item.get_vnum()]) and not insertBufferid[val] then
  244.                             table.insert(menuDeBonus, val)
  245.                             table.insert(menuDeBonustxt, listaDeBonus[val][1])
  246.                         end
  247.                     end
  248.                    
  249.                     table.insert(menuDeBonustxt, "Cancelar")
  250.                     local sel = select_table(menuDeBonustxt)
  251.                    
  252.                     if sel == table.getn(menuDeBonustxt) then
  253.                         return
  254.                     end
  255.                    
  256.                     local tst = menuDeBonus[sel]
  257.                    
  258.                     table.insert(insertBufferid, menuDeBonus[sel])
  259.                     table.insert(insertBuffertxt, listaDeBonus[tst][1])
  260.                    
  261.                
  262.                 end
  263.                
  264.                 say_title("Ferreiro:")
  265.                 say("O teu equipamento vai ficar com os seguintes bonus:")
  266.                 say()
  267.                 for k,v in pairs(insertBuffertxt) do
  268.                     local tst = insertBufferid[k]
  269.                     say(v..": "..listaDeBonus[tst][2].."%")
  270.        
  271.                    
  272.                     item.set_value(k-1, tst, listaDeBonus[tst][2])
  273.                 end
  274.             else
  275.                 say_title("Ferreiro:")
  276.                 say("Trás até mim apenas equipamentos ou armas.")
  277.             end
  278.             return
  279.         end    
  280.     end
  281. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement