Advertisement
johnlol

Blacksmith Custom

Jul 23rd, 2023
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 6.23 KB | Gaming | 0 0
  1. //==============Made by DoomSlayer=============
  2. //Ferreiro Custom - Quanto mais materiais maior
  3. //a chance de sucesso!
  4. //=============================================
  5. //==============Adaptation by JPontes=============
  6. //Melhoria no script
  7. //Adicionado chance por material especifico,
  8. //weapon leave.
  9. //http://www.vikingsro.com.br
  10. //=============================================
  11.  
  12. sec_in02,178,157,3  script  Blacksmith VIP  63,{
  13.     disable_items;
  14.     mes "^0000FF"+.name$+"^000000";
  15.     mes "Eu sou o melhor Ferreiro da sala VIP!";
  16.     mes "Eu utilizo matéria-prima para realizar refinamentos em itens.";
  17.     next;
  18.     mes "^0000FF"+.name$+"^000000";
  19.     mes "Para fazer este serviço, eu preciso de um valor simbólico de ^32CD32"+.price+"^000000z, assim ofereço ^A020F0"+.chance+"^000000% de sucesso no refinamento!";
  20.     mes "Caso você tenha os materiais necessarios, podemos chegar em ^A020F0"+(.chance + (.maxmat * .matchance))+"^000000%.";
  21.     next;
  22.     mes "^0000FF"+.name$+"^000000";
  23.     mes "Cada material, aumentamos em ^A020F0"+.matchance+"^000000% a chance de sucesso!";
  24.     mes "Quanto mais materiais você me der, mais chances de sucesso teremos!";
  25.     next;
  26.     if (.break == 1){
  27.     mes "^0000FF"+.name$+"^000000";
  28.     mes "                    ^996600!!!^000000^ff0000ATENÇÃO^000000^996600!!!^000000";
  29.     mes "Caso não obtenhamos sucesso, você poderá perder o item!";
  30.     mes "Aconselho tirar todas as Card's do equipamento!";
  31.     next;
  32.     }
  33.     switch(select("^006400Vamos refinar^000000:^4F4F4FInformações^000000:^ff0000Não, obrigado!^000000")){
  34.         case 1:
  35.             mes "^0000FF"+.name$+"^000000";
  36.             mes "Qual equipamento que você quer refinar?";
  37.             next;
  38.             goto OnRefine;
  39.             end;
  40.         case 2:
  41.             mes "^0000FF"+.name$+"^000000";
  42.             mes "Os itens necessários para o refinamento são:";
  43.            
  44.             for( .@i = 0; .@i < getarraysize(.material); .@i++ )
  45.             mes "{"+.material[.@i]+"} - "+.namemat$[.@i];
  46.        
  47.             next;
  48.             switch(select("Escolher equipamento:Vou buscar os materiais")){
  49.             case 1:
  50.             goto OnRefine;
  51.             case 2:
  52.             mes "^0000FF"+.name$+"^000000";
  53.             mes "Volte quando precisar de meus serviços!";
  54.             close;
  55.             end;
  56.             }
  57.         case 3:
  58.             mes "^0000FF"+.name$+"^000000";
  59.             mes "Volte quando precisar de meus serviços!";
  60.             close;
  61.             end;
  62.     }
  63. OnRefine:
  64.     setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
  65.     for(.@i = 1; .@i<getarraysize(.@indices); ++.@i) {         
  66.         if(getequipisequiped(.@indices[.@i])) {
  67.             .@menu$ = .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]";
  68.             .@equipped = 1;
  69.         }
  70.         .@menu$ = .@menu$ + ":";
  71.     }
  72.     if (.@equipped == 0) {
  73.         mes "^0000FF"+.name$+"^000000";
  74.         mes "Você não está equipando nada!";
  75.         close;
  76.     }
  77.    
  78.     set .@part, .@indices[ select(.@menu$) ];
  79.    
  80.  
  81.     if (!getequipisenableref(.@part)) {
  82.         mes "^0000FF"+.name$+"^000000";
  83.         mes "Este equipamento não pode ser refinado!";
  84.         close;
  85.     }
  86.     .@equip_id = getequipid(.@part);
  87.     .@equip_refine = getequiprefinerycnt(.@part);
  88.     setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
  89.     // +10 não refinar
  90.     if (.@equip_refine >= 20) { // max refine
  91.         mes "^0000FF"+.name$+"^000000";
  92.         mes "Este equipamento já está ^7B68EE+20^000000!";
  93.         mes "Escolha outro equipamento:";
  94.             next;
  95.             goto OnRefine;
  96.             end;
  97.        
  98.     // 0 a 4
  99.     } else if((.@equip_refine >= 0) && (.@equip_refine <= 4)){
  100.     if (getequipweaponlv(.@part) == 0){
  101.         set .@matuse,1;
  102.     } else {
  103.         set .@matuse,0;
  104.     }
  105.     goto OnRefineOk;
  106.        
  107.     // 5 a 6
  108.     } else if((.@equip_refine >= 5) && (.@equip_refine <= 6)){
  109.     if (getequipweaponlv(.@part) == 0){
  110.         set .@matuse,3;
  111.     } else {
  112.         set .@matuse,2;
  113.     }
  114.     goto OnRefineOk;
  115.        
  116.     // 7 a 9   
  117.     } else if((.@equip_refine >= 7) && (.@equip_refine <= 9)){
  118.     if (getequipweaponlv(.@part) == 0){
  119.         set .@matuse,5;
  120.     } else {
  121.         set .@matuse,4;
  122.     }
  123.     goto OnRefineOk;
  124.        
  125.     // 10 + (tirar os comentarios abaixo caso seja refine > 10
  126.     } else if(.@equip_refine = 9){
  127.     if (getequipweaponlv(.@part) == 0){
  128.         set .@matuse,7;
  129.     } else {
  130.         set .@matuse,6;
  131.     }
  132.     goto OnRefineOk;
  133.     }  
  134.    
  135.     OnRefineOk:
  136.     mes "^0000FF"+.name$+"^000000";
  137.     mes "Quantos {"+.material[.@matuse]+"} - "+.namemat$[.@matuse]+" Você quer usar?";
  138.     mes "Lembrando que cada material sua chance aumenta por ^A020F0"+.matchance+"^000000%.";
  139.     next;
  140.     input .@amount;
  141.     if (.@amount == 0) {
  142.         mes "^0000FF"+.name$+"^000000";
  143.         mes "Nenhum material? Não consigo garantir o sucesso se você não me ajudar também!";
  144.         close;
  145.         end;
  146.     }
  147.     if (countitem(.material[.@matuse]) < .@amount){
  148.         mes "^0000FF"+.name$+"^000000";
  149.         mes "Você não tem essa quantidade de materiais";
  150.         close;
  151.         end;
  152.     }
  153.     if (.@amount > .maxmat){
  154.         mes "^0000FF"+.name$+"^000000";
  155.         mes "Você so pode ultilizar um maximo de ^FF8C00"+.maxmat+"^000000 materiais!";
  156.         close;
  157.         end;
  158.     }
  159.     mes "^0000FF"+.name$+"^000000";
  160.     mes "Entao vamos la!";
  161.         set .@percent, .@amount + .chance;
  162.     mes "Você acumulou um percentual de ^FF4500"+.@percent+"^000000%!";
  163.     next;
  164.    
  165.     delitem .material[.@matuse],.@amount;
  166.     set .@failchance,rand(1,100);
  167.     set .@schance, (.chance + (.@amount * .matchance));
  168.     if (.@failchance > .@schance){
  169.         specialeffect2 EF_SUI_EXPLOSION;
  170.         if (.break == 1){ failedrefitem .@part; }
  171.         if (.break == 2){ downrefitem .@part; }
  172.         mes "^0000FF"+.name$+"^000000";
  173.         mes "Não foi desta vez...";
  174.         close;
  175.         end;
  176.     }
  177.     successrefitem .@part;
  178.     mes "^0000FF"+.name$+"^000000";
  179.     mes "Muito fácil!";
  180.     close;
  181.     end;
  182.    
  183. OnInit:
  184.     set .name$,"Ferreiro Viking";               //Nome do NPC
  185.     set .chance,10;                             //Chance de refinar 10 = 10% (sem material)
  186.     set .matchance,1;                           //Quantos % sobem por material
  187.     set .maxmat,90;                             //Maximo de materiais que se pode usar (90 x 1 = 90%)
  188.     setarray .namemat$,                         //Lista dos itens utilizados para o refine
  189.     "Oridecon",
  190.     "Elunium",
  191.     "Oridecon Enriquecido",
  192.     "Elunium Enriquecido",
  193.     "Oridecon Perfeito",
  194.     "Elunium Perfeito",
  195.     "Bradium Perfeito",
  196.     "Carnium Perfeito"
  197.     ;
  198.     setarray .material[0],                      //Lista dos id
  199.     984,
  200.     985,
  201.     7620,
  202.     7619,
  203.     6240,
  204.     6241,
  205.     6226,
  206.     6225
  207.     ;
  208.     set .break,1;                               //1 - Errar quebra / 2 - Errar desce refinamento / 3 - Nada acontece ao errar
  209.     set .price,400000;                          //Preco para refinar
  210.     end;
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement