Advertisement
johnlol

Race Of The Day

May 27th, 2019
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ________________     ______            ________      
  3. ___    |_____  /________  /______      ___  __ \_____
  4. __  /| |  __  /_  __ \_  __ \  _ \     __  /_/ /  __ \
  5. _  ___ / /_/ / / /_/ /  /_/ /  __/     _  _, _// /_/ /
  6. /_/  |_\__,_/  \____//_.___/\___/      /_/ |_| \____/
  7.  
  8. */
  9.  
  10. prontera,147,175,5  script  ROTD    436,{
  11. while(1){
  12.  
  13. mes "^FF0000ROTD^000000 refer to ^0000FFRace of the Day^000000";
  14. mes "In another word, it mean that the ^FF0000Monster's Race^000000 that you killed by day will grant you ^FF0000Extra Bonus EXP / Item / Zeny ^000000.";
  15. next;
  16. mes "[ ^FF0000Today's ROTD^000000 ] = ^0000FF"+.ROTD$[.Race]+"^000000 Race";
  17. mes "^FF0000_____________________________^000000";
  18. mes "Bonus Lists :";
  19. mes "^FF0000@^000000 EXP  = ^0000FF"+( ( !.BonusEXP )?"No":.BonusEXP+" %" )+"^000000 EXP Bonus";
  20. mes "^FF0000@^000000 Zeny = ^0000FF"+( ( !.BonusZeny )?"No":.BonusZeny )+"^000000 Zeny";
  21. mes "^FF0000@^000000 Item = ^0000FF"+( ( !.BonusItemAmount )?"No Items":.BonusItemAmount+" x "+getitemname( .BonusItem ) )+"^000000";
  22. if( .BonusItemAmount ){
  23.     mes "^FF0000@^000000 Rate = ^0000FF"+.BonusRate+"^000000 %";
  24.     mes "^FF0000_____________________________^000000";
  25.     mes "The Amount of Bonus Reward is given ^FF0000Randomly^000000 at a fixed Rate.";
  26.     }
  27. next;
  28. switch(select("^4EEE94ROTD Information^000000",
  29.             ( getgmlevel() < .GMLevel )?"":"^FF0000[GM]^000000Set a New Monster's Race",
  30.             ( getgmlevel() < .GMLevel )?"":"^FF0000[GM]^000000Set EXP Bonus",      
  31.             ( getgmlevel() < .GMLevel )?"":"^FF0000[GM]^000000Set Item / Zeny Bonus")){
  32.  
  33. Case 1:
  34.     mes "Today's ROTD has choosen ^0000FF"+.ROTD$[.Race]+"^000000 Race , which will grant you some ^FF0000Extra Bonus EXP^000000.";
  35.     mes "The amount of ^FF0000EXP Bonus^000000 are ^0000FF"+.BonusEXP+" %^000000.";
  36.     next;
  37.     mes "For ^0000FFParty Members^000000 , they will only receive ^FF0000Bonus EXP^000000 if they didnt killed any monster.";
  38.     mes "Besides, they have to stay in the ^FF0000Same Map^000000 in order to get the ^FF0000EXP Bonus^000000.";
  39.     next;
  40.     break;
  41.  
  42. Case 2:
  43.     mes "Choose ^FF0000Randomly / Manually^000000 ?";
  44.     for( set .@i,0; .@i < getarraysize( .ROTD$ ); set .@i,.@i+1 ){
  45.         mes "[ ^FF0000"+.@i+"^000000. ] ^0000FF"+.ROTD$[.@i]+"^000000 Race";
  46.         }
  47.     message strcharinfo(0),"Input the Number. Choose Random if you want it Randomise a Race for you.";
  48.     input .Race,0,getarraysize( .ROTD$ )-1;
  49.     next;
  50.     if( .Race == getarraysize( .ROTD$ )-1 ){
  51.         set .Race,rand( getarraysize( .ROTD$ )-1 );
  52.     }
  53.     mes "[ ^FF0000ROTD Update^000000 ]";
  54.     mes "[ ^FF0000Updated^000000 ] = ^0000FF"+.ROTD$[.Race]+"^000000 Race";
  55.     mes "[ ^FF0000Bonus EXP^000000 ] = Extra ^0000FF"+.BonusEXP+"^000000 %";
  56.     announce "[ ROTD ] : New Race : "+.ROTD$[.Race]+" with Bonus EXP of "+.BonusEXP+" % ",bc_blue;
  57.     delwaitingroom;
  58.     waitingroom "[ROTD]:"+.ROTD$[.Race]+" ",0;
  59.     next;
  60.     break;
  61.    
  62. Case 3:
  63.     mes "Set ^FF0000Random EXP / Manually^000000";
  64.     mes "Input 0 for ^0000FFRandom Bonus EXP Rate^000000";
  65.     mes "Input ^FF0000RATE^000000 for ^0000FFManual Bonus EXP Rate^000000";
  66.     mes "^FF0000EXP Range^000000 : 1% ~ 100%";
  67.     mes "Current Rate = [ ^0000FF"+.BonusEXP+"^000000 % ]";
  68.     input .BonusEXP,0,100;
  69.     if( .BonusEXP == 0 ){
  70.     set .BonusEXP,rand( 1,100 );
  71.     }
  72.     next;
  73.     mes "The New EXP Rate is [ ^0000FF"+.BonusEXP+"^000000 % ]";
  74.     announce "[ ROTD ] : New Race : "+.ROTD$[.Race]+" with Bonus EXP of "+.BonusEXP+" % ",bc_blue;
  75.     next;
  76.     break;
  77.  
  78. Case 4:
  79.     mes "You may set a ^FF0000 Item / Zeny Bonus^000000 for the ^0000FFROTD^000000.";
  80.     mes "This will work when you have killed a ^FF0000ROTD's Monster^000000, there will be a chances for Player to gain the ^FF0000Item / Zeny^000000.";
  81.     next;
  82.     mes "Input the ^FF0000Zeny Bonus^000000";
  83.     message strcharinfo(0),"You may input 0 to disable it. [ Use it Wisely ]";
  84.     input .BonusZeny;;
  85.     mes "Input the ^FF0000Item ID^000000";
  86.     do{
  87.         input .BonusItem,0,32767;
  88.     }while( getitemname( .BonusItem ) == "null" );
  89.     mes "Input the ^FF0000Item Bonus Amount^000000";
  90.     mes "Range of Amount = 0 ~ 30,000";
  91.     message strcharinfo(0),"You may input 0 to disable it. [ Use it Wisely ]";
  92.     input .BonusItemAmount,0,30000;
  93.     next;
  94.     mes "^FF0000Rate^000000 to get it ??";
  95.     mes "^FF0000100 = 100%^000000";
  96.     mes "^FF0000 10 =  10%^000000";
  97.     mes "^FF0000  1 =   1%^000000";
  98.     mes "^FF0000  0 = DISABLED^000000";
  99.     input .BonusRate,0,100;
  100.     next;
  101.     mes "[ ^FF0000ROTD Update^000000 ]";
  102.     mes "^0000FFZeny Bonus^000000 : "+.BonusZeny+" Zeny";
  103.     mes "^0000FFItem Bonus^000000 : "+.BonusItemAmount+" x "+getitemname( .BonusItem );
  104.     mes "^0000FFItem Rate^000000  : "+.BonusRate+" %";
  105.     next;
  106.     break;
  107.     }
  108. }
  109. close;
  110.  
  111. OnInit:
  112. OnClock0000:
  113. set .GMLevel,80;
  114. setarray .ROTD$[0],
  115.                 "Formless",
  116.                 "Undead",
  117.                 "Brute",
  118.                 "Plant",
  119.                 "Insect",
  120.                 "Fish",
  121.                 "Demon",
  122.                 "Demi-Human",
  123.                 "Angel",
  124.                 "Dragon",
  125.                 "Random";
  126.                
  127. set .Race,rand( 10 );
  128. set .BonusEXP,rand( 1,100 );
  129. set .ExpLvlRange,10;
  130. delwaitingroom;
  131. waitingroom "[ROTD]:"+.ROTD$[.Race]+" ",0;
  132. end;
  133.    
  134. OnNPCKillEvent:
  135. if( getmonsterinfo( killedrid,19 ) != .Race  ) end;
  136. if( getcharid(1) ){
  137. set .@Location$,strcharinfo(3);
  138. set .BaseLvl,BaseLevel;
  139. getpartymember getcharid(1),1;
  140. getpartymember getcharid(1),2;
  141. for ( set .@a, 0; .@a < .partymembercount; set .@a, .@a +1 )
  142.     if ( isloggedin( .partymemberaid[.@a] )  )
  143.         attachrid( .partymemberaid[.@a] );
  144.             if( strcharinfo(3) == .@Location$ && ( .BaseLvl - BaseLevel ) <= .ExpLvlRange )
  145.                 getexp ( getmonsterinfo( killedrid,3 ) * .BonusEXP / 100 ),( getmonsterinfo( killedrid,4 ) * .BonusEXP / 100 );
  146. }else{
  147.     getexp ( getmonsterinfo( killedrid,3 ) * .BonusEXP / 100 ),( getmonsterinfo( killedrid,4 ) * .BonusEXP / 100 );
  148. }
  149. if( rand(100) <= .BonusRate && .BonusItemAmount )
  150.     getitem .BonusItem,rand( 1,.BonusItemAmount );
  151. if( rand(100) <= .BonusRate && .BonusZeny )
  152.     set Zeny,Zeny + rand( 1,.BonusZeny );
  153. end;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement