Advertisement
johnlol

F_RefineSystem

Aug 7th, 2023
793
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 2.11 KB | Gaming | 0 0
  1. /* item_db.txt
  2.  
  3. 984,Oridecon,Oridecon,11,1100,,200,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc( "F_RefineSystem",984,3,0,10,20000 ); },{},{}
  4. 985,Elunium,Elunium,11,1100,,200,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc( "F_RefineSystem",985,0,0,10,20000 ); },{},{}
  5. 1010,Phracon,Phracon,11,200,,200,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc( "F_RefineSystem",1010,1,0,10,1000 ); },{},{}
  6. 1011,Emveretarcon,Emveretarcon,11,1000,,200,,,,,0xFFFFFFFF,63,2,,,,,,{ callfunc( "F_RefineSystem",1011,2,0,10,2500 ); },{},{}
  7.  
  8. */
  9.  
  10. // Usage: (ItemType, must set to 11)
  11. // callfunc( "F_RefineSystem",1010,1,0,10,1000 ); // Phracon
  12. // callfunc( "F_RefineSystem",1011,2,0,10,2500 ); // Emveretarcon
  13. // callfunc( "F_RefineSystem",984,3,0,10,20000 ); // Oridecon
  14. // callfunc( "F_RefineSystem",985,0,0,10,20000 ); // Elunium
  15.  
  16. function    script  F_RefineSystem  {
  17.     .@ore_itemid = getarg( 0,0 );
  18.     .@level = getarg( 1,0 );
  19.     .@min_refine = getarg( 2,0 );
  20.     .@max_refine = getarg( 3,( MAX_REFINE-1 ) );
  21.     .@zeny = getarg( 4,0 );
  22.    
  23.     if ( .@ore_itemid && .@level < 5 ) {
  24.         for ( .@i = EQI_SHOES; .@i <= EQI_HAND_R; .@i++ ) {
  25.            
  26.                 .@fail = 0;
  27.                
  28.             if ( .@i == EQI_HEAD_LOW || .@i == EQI_HEAD_MID )
  29.                 .@fail++;
  30.            
  31.             .@itemid = getequipid( .@i );
  32.             if ( .@itemid == -1 )
  33.                 .@fail++;
  34.                
  35.             .@refine = getequiprefinerycnt( .@i );
  36.             .@slot = getitemslots( .@itemid );
  37.             .@itemid_type = getiteminfo( .@itemid,2 );
  38.            
  39.             if ( .@itemid_type == IT_ARMOR && .@level > 0 )
  40.                 .@fail++;
  41.             if ( .@itemid_type == IT_WEAPON && ( .@level == 0 || getequipweaponlv( .@i ) > .@level ) )
  42.                 .@fail++;
  43.                
  44.             if ( !.@fail )
  45.                 if ( .@refine >= .@min_refine && .@refine <= .@max_refine )
  46.                     .@menu$ = .@menu$ + ( .@refine ? "+"+.@refine+" ":"" ) + getitemname( .@itemid )+" ["+.@slot+"]";
  47.            
  48.             .@menu$ = .@menu$ + ":";
  49.         }
  50.         .@i = select( .@menu$ ) + 1;
  51.         if ( Zeny >= .@zeny ) {
  52.             Zeny -= .@zeny;
  53.             delitem .@ore_itemid,1;
  54.             if ( rand( 100 ) < getequippercentrefinery( .@i ) ) {
  55.                 successrefitem .@i;
  56.                 specialeffect2 EF_REFINEOK;
  57.             }
  58.             else {
  59.                 failedrefitem .@i;
  60.                 specialeffect2 EF_REFINEFAIL;
  61.             }
  62.         }
  63.         end;
  64.     }
  65.    
  66.     return;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement