Advertisement
johnlol

Coin Exchanger

Jul 23rd, 2023
742
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 3.34 KB | Gaming | 0 0
  1. /*
  2. ________________     ______            ________      
  3. ___    |_____  /________  /______      ___  __ \_____
  4. __  /| |  __  /_  __ \_  __ \  _ \     __  /_/ /  __ \
  5. _  ___ / /_/ / / /_/ /  /_/ /  __/     _  _, _// /_/ /
  6. /_/  |_\__,_/  \____//_.___/\___/      /_/ |_| \____/
  7.  
  8. */
  9.  
  10. prontera,164,166,4  script  Bag Zeny    757,{
  11. function int__;
  12.  
  13. do{
  14.     callsub exchange_rate;
  15.     .@menu = select( "^DAA520Zeny^000000 to ^8B4513Bag^000000","^8B4513Bag^000000 to ^DAA520Zeny^000000","^DC143CClose^000000" );
  16.     switch( .@menu ){
  17.         Case 1:
  18.             mes "Convert ^FFD700Zeny^000000 to which ^4169E1Bag^000000 ?";
  19.             .@coin = select( implode( .coin_name$,":" ) ) - 1;
  20.             if( Zeny <  .value[.@coin] ){
  21.                 mes "^FF0000[ERROR]^000000 You didnt have enough ^FFD700Zeny^000000.";
  22.             }else{
  23.                 .@maximum = Zeny / .value[.@coin];
  24.                 mes "You can get maximum of ^FF0000"+int__( .@maximum )+" x "+getitemname( .coin_id[.@coin] )+"^000000";
  25.                 input .@amount,0,.@maximum;
  26.                 if( .@maximum )
  27.                     if( checkweight( .coin_id[.@coin],.@amount ) ){
  28.                         .@total = ( .@amount * .value[.@coin] );
  29.                         Zeny -= .@total;
  30.                         getitem .coin_id[.@coin],.@amount;
  31.                         message strcharinfo(0),"Exchanged "+int__( .@total )+" Zeny to "+int__( .@amount )+" "+getitemname( .coin_id[.@coin] )+"";
  32.                     }else{
  33.                         mes "^FF0000[ERROR]^000000 You cant take this much.";
  34.                     }
  35.             }
  36.             break;
  37.         Case 2:
  38.             mes "Convert which ^4169E1Bag^000000 to ^FFD700Zeny^000000 ?";
  39.             .@coin = select( implode( .coin_name$,":" ) ) - 1;
  40.             if( !countitem( .coin_id[.@coin] ) ){
  41.                 mes "^FF0000[ERROR]^000000 You didnt have any "+getitemname( .coin_id[.@coin] )+".";
  42.             }else if( ( .max_zeny - Zeny ) < .value[.@coin] ){
  43.                 mes "^FF0000[ERROR]^000000 You cant exchange this ^4169E1Bag^000000 as it will exceed the ^FFD700Zeny^000000 limit.";
  44.             }else{
  45.                 .@maximum = (( .max_zeny - Zeny ) / .value[.@coin] );
  46.                 if( .@maximum > countitem( .coin_id[.@coin] ) ) .@maximum = countitem( .coin_id[.@coin] );
  47.                 mes "You can exchange maximum of ^FF0000"+int__( .@maximum )+" x "+getitemname( .coin_id[.@coin] )+"^000000 to ^FFD700Zeny^000000";
  48.                 input .@amount,0,.@maximum;
  49.                 if( .@maximum ){
  50.                     .@total = ( .@amount * .value[.@coin] );
  51.                     Zeny += .@total;
  52.                     delitem .coin_id[.@coin],.@amount;
  53.                     message strcharinfo(0),"Exchanged "+int__( .@amount )+" "+getitemname( .coin_id[.@coin] )+" to "+int__( .@total )+" Zeny";
  54.                 }
  55.             }
  56.             break;
  57.         default: break;
  58.     }
  59.     next;
  60. }while( .@menu != 3 );
  61. mes "Thank you.";
  62. close;
  63.  
  64. exchange_rate:
  65.     mes "Exchange Rate :";
  66.     for( .@i = 0; .@i < .coin_size; .@i++ )
  67.         mes "^008000 > ^000000"+.coin_name$[.@i]+" - "+int__( .value[.@i] )+"^FF0000 z^000000";
  68.     return;
  69.    
  70. OnInit:
  71. // server max zeny
  72. .max_zeny = 1000000000;
  73. // coin list + name + value
  74. setarray .coin_name$,"^8B4513Bag of Bronze^000000","^C0C0C0Bag of Silver^000000","^FFD700Bag of Gold^000000";
  75. setarray .coin_id,672,676,670;
  76. setarray .value,100000,1000000,10000000;
  77.  
  78. .coin_size = getarraysize( .coin_name$ );
  79. end;
  80.  
  81.  
  82. // credits to annieruru
  83. function    int__   {
  84.     set .@num, atoi(""+getarg(0));
  85.     if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
  86.     set .@l, getstrlen(""+.@num);
  87.     for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
  88.         set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
  89.             if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
  90.     }
  91.     return .@num$;
  92. }
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement