Advertisement
Emistry

[RO] Daily Mob Spawn / Reward / Race Rewards 1.2

Aug 28th, 2016
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. - script daily_main -1,{
  2.  
  3. OnInit:
  4. .cutin_file$ = "daily_pic_%02d"; // daily_pic_00.bmp ~ daily_pic_06.bmp
  5. .npc_name$ = strnpcinfo(0);
  6. OnHour00:
  7. .today = gettime(4);
  8.  
  9. // daily monster summon on X maps.
  10. OnTimer120000: // 120 seconds.
  11. switch( .today ) {
  12. default:
  13. .@map$ = "prontera";
  14. .@mob_id = 1002;
  15. .@amount = 20;
  16. break;
  17. case 1:
  18. .@map$ = "prontera";
  19. .@mob_id = 1002;
  20. .@amount = 20;
  21. break;
  22. case 2:
  23. .@map$ = "prontera";
  24. .@mob_id = 1002;
  25. .@amount = 20;
  26. break;
  27. case 3:
  28. .@map$ = "prontera";
  29. .@mob_id = 1002;
  30. .@amount = 20;
  31. break;
  32. case 4:
  33. .@map$ = "prontera";
  34. .@mob_id = 1002;
  35. .@amount = 20;
  36. break;
  37. case 5:
  38. .@map$ = "prontera";
  39. .@mob_id = 1002;
  40. .@amount = 20;
  41. break;
  42. case 6:
  43. .@map$ = "prontera";
  44. .@mob_id = 1002;
  45. .@amount = 20;
  46. break;
  47. }
  48.  
  49. if ( .@map$ != "" && .@map$ != .map$ ) {
  50. killmonster .@map$,.npc_name$+"::OnMobDie";
  51. .map$ = .@map$;
  52. }
  53. monster .@map$,0,0,"--ja--",.@mob_id,( .@amount - mobcount( .@map$,.npc_name$+"::OnMobDie" ) ),.npc_name$+"::OnMobDie";
  54. initnpctimer;
  55. end;
  56.  
  57. OnMobDie:
  58. end;
  59.  
  60. OnNPCKillEvent:
  61. callsub( OnMobRace, killedrid );
  62. callsub( OnMobReward );
  63. end;
  64.  
  65. OnMobRace:
  66. .@mob_id = getarg( 0,0 );
  67. .@race = getmonsterinfo( .@mob_id, MOB_RACE );
  68.  
  69. switch( .today ) {
  70. default:
  71. .@exp_bonus_rate = 30;
  72. .@today_race = RC_Formless;
  73. break;
  74. case 1:
  75. .@exp_bonus_rate = 30;
  76. .@today_race = RC_Undead;
  77. break;
  78. case 2:
  79. .@exp_bonus_rate = 30;
  80. .@today_race = RC_Brute;
  81. break;
  82. case 3:
  83. .@exp_bonus_rate = 30;
  84. .@today_race = RC_Plant;
  85. break;
  86. case 4:
  87. .@exp_bonus_rate = 30;
  88. .@today_race = RC_Insect;
  89. break;
  90. case 5:
  91. .@exp_bonus_rate = 30;
  92. .@today_race = RC_Fish;
  93. break;
  94. case 6:
  95. .@exp_bonus_rate = 30;
  96. .@today_race = RC_Demon;
  97. break;
  98. case 7:
  99. .@exp_bonus_rate = 30;
  100. .@today_race = RC_DemiHuman;
  101. break;
  102. }
  103.  
  104. if ( .@race == .@today_race && .@exp_bonus_rate ) {
  105. .@bexp = getmonsterinfo( .@mob_id, MOB_BASEEXP );
  106. .@jexp = getmonsterinfo( .@mob_id, MOB_JOBEXP );
  107.  
  108. .@bexp = ( .@bexp * .@exp_bonus_rate ) / 100 );
  109. .@jexp = ( .@jexp * .@exp_bonus_rate ) / 100 );
  110.  
  111. BaseExp += .@bexp;
  112. JobExp += .@jexp;
  113. }
  114. return;
  115.  
  116. // daily monster drop items.
  117. OnMobReward:
  118. if ( rand( 10000 ) < 10 ) { // 0.10% drop
  119. switch( .today ) {
  120. default:
  121. getitem 512,1;
  122. getitem 512,2;
  123. break;
  124. case 1:
  125. getitem 512,1;
  126. getitem 512,2;
  127. break;
  128. break;
  129. case 2:
  130. getitem 512,1;
  131. getitem 512,2;
  132. break;
  133. break;
  134. case 3:
  135. getitem 512,1;
  136. getitem 512,2;
  137. break;
  138. break;
  139. case 4:
  140. getitem 512,1;
  141. getitem 512,2;
  142. break;
  143. break;
  144. case 5:
  145. getitem 512,1;
  146. getitem 512,2;
  147. break;
  148. break;
  149. case 6:
  150. getitem 512,1;
  151. getitem 512,2;
  152. break;
  153. break;
  154. }
  155. }
  156. return;
  157.  
  158.  
  159. OnPCLoginEvent:
  160. if ( .cutin_file$ != "" ) {
  161. cutin sprintf( .cutin_file$,.today ),3;
  162. sleep2 3000;
  163. cutin "",255;
  164. }
  165. end;
  166.  
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement