Advertisement
Guest User

Untitled

a guest
Nov 6th, 2019
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. // Original script by sandbox.
  2. // Edit by Mabuhay
  3.  
  4. - script Event_Dice -1,{
  5. OnInit:
  6. // item reward
  7. setarray .item,
  8. 501, 10,
  9. 502, 5;
  10.  
  11. // @dicestart - gm manual start
  12. bindatcmd "dicestart", strnpcinfo(0)+"::OnStart",60,60;
  13.  
  14. // @dice - player join event
  15. bindatcmd "dice", strnpcinfo(0)+"::OnJoinEvent";
  16.  
  17. // Mapflags
  18. setarray .@mapflag,
  19. mf_nowarp,
  20. mf_nowarpto,
  21. mf_noskill,
  22. mf_noteleport,
  23. mf_nomemo,
  24. mf_nosave,
  25. mf_noicewall,
  26. mf_nobranch,
  27. mf_noreturn;
  28.  
  29. for ( .@i = 0; .@i < getarraysize(.@mapflag); .@i++)
  30. setmapflag "quiz_02", .@mapflag[.@i];
  31.  
  32. .event_time_m = gettime(DT_MINUTE);
  33. .event_time_s = gettime(DT_SECOND);
  34. end;
  35.  
  36. OnJoinEvent:
  37. .@min = 60 - .event_time_m;
  38. .@sec = 60 - .event_time_s;
  39. if ( .@min == 60 ) .@min = 0;
  40. if ( .@sec == 60 ) .@sec = 0;
  41. mes " [ Event Status ] ";
  42. if ( !.start ) mes "Next schedule starts in ^FF0000"+ .@min +"m and "+ .@sec +"s^000000.";
  43. if ( .start == 1 ) mes "Event is currently active.";
  44. if ( .start == 2 ) mes "Event is currently on-going.";
  45. next;
  46. switch(select(
  47. "Dice Event - "+ ((.start == 1) ? "^00ff00Join Event":((.start == 2) ? "^00ff00Event On-Going":"^ff0000Not Available"))+"^000000" )) {
  48. case 1:
  49. if ( !.start ) {
  50. mes "Event is not available.";
  51. close;
  52. } else if ( .start == 2 ) {
  53. mes "Event is on-going";
  54. close;
  55. }
  56. else
  57. warp "quiz_02",55,87;
  58. }
  59. end;
  60.  
  61. OnMinute00: // runs hourly
  62. OnStart:
  63. if ( .start ) end;
  64. .event_time_m = gettime(DT_MINUTE);
  65. .event_time_s = gettime(DT_SECOND);
  66. .start = 1;
  67. for(.@i = 1;.@i <= 4;.@i++) {
  68. disablenpc "Back#"+.@i;
  69. disablenpc "Box "+.@i;
  70. }
  71. announce "Dice: We are going to have a Dice event.",0;
  72. sleep 10000;
  73. announce "Dice: For those who wants to join, use @dice",0;
  74. sleep 10000;
  75. announce "Dice: After 1 Minute Event will close.",0;
  76. sleep 10000;
  77. announce "Dice: So please if you want to join. use @dice",0;
  78. sleep 60000;
  79. announce "Dice: The entry to the event is now closed.",bc_all,0x0ceedb;
  80. .start = 2;
  81. sleep 3500;
  82. mapannounce "quiz_02","We're about to begin the event.",bc_all,0x0ceedb;
  83. sleep 2500;
  84. mapannounce "quiz_02","The rules are simple.",bc_all,0x0ceedb;
  85. sleep 2500;
  86. mapannounce "quiz_02","You'll have to enter one of the 4 avaiaible boxes.",bc_all,0x0ceedb;
  87. sleep 2500;
  88. mapannounce "quiz_02","Then a four sides dice will be thrown. The number it shows will be the saved number.",bc_all,0x0ceedb;
  89. sleep 2500;
  90. mapannounce "quiz_02","Remember to enter the boxes!",bc_all,0x0ceedb;
  91. sleep 2000;
  92. mapannounce "quiz_02","That's all. Let's begin.",bc_all,0x0ceedb;
  93. sleep 3000;
  94. while(!.@end && .start && .@rounds < 5) {
  95. for(.@i = 1;.@i <= 4;.@i++) {
  96. enablenpc "Back#"+.@i;
  97. enablenpc "Box "+.@i;
  98. }
  99. sleep 1500;
  100. mapannounce "quiz_02","The dice will soon be thrown. Enter the desired box clicking the metalic number inside them.",bc_all,0x0ceedb;
  101. sleep 20000;
  102. for(.@i = 5;.@i > 0;.@i--) {
  103. mapannounce "quiz_02",.@i+"...",bc_all,0x0ceedb;
  104. sleep 990;
  105. }
  106. for(.@i = 1;.@i <= 4;.@i++) {
  107. disablenpc "Back#"+.@i;
  108. disablenpc "Box "+.@i;
  109. }
  110. areawarp "quiz_02",32,95,79,76,"prontera",rand(148,163),rand(167,186);
  111. areawarp "quiz_02",80,85,80,76,"prontera",rand(148,163),rand(167,186);
  112. areawarp "quiz_02",31,85,31,76,"prontera",rand(148,163),rand(167,186);
  113. .@n = rand(1,4);
  114. mapannounce "quiz_02","Time! The dice shows the number "+.@n+".",bc_all,0x0ceedb;
  115. setarray .@cords1[0],33,41;
  116. setarray .@cords2[0],45,53;
  117. setarray .@cords3[0],57,65;
  118. setarray .@cords4[0],69,77;
  119. for(.@i = 1;.@i <= 4;.@i++) {
  120. if(.@i != .@n)
  121. areawarp "quiz_02",getd(".@cords"+.@i+"[0]"),52,getd(".@cords"+.@i+"[1]"),73,"prontera",rand(148,163),rand(167,186);
  122. }
  123. sleep 3000;
  124. .@players = getmapusers("quiz_02");
  125. if(.@players <= 3 && .start && .@players) {
  126. .@end = true;
  127. mapannounce "quiz_02","The event is now over! Winners, enjoy your prizes!",bc_all,0x0ceedb;
  128. .@size = getmapunits(BL_PC,"quiz_02",.@players);
  129. .@amt = getarraysize(.item);
  130. for(.@i = 0;.@i < .@size;.@i++) {
  131. attachrid .@players[.@i];
  132. announce strcharinfo(0)+" has won the Dice Event.",bc_all,0x0ceedb;
  133. for ( .@j = 0; .@j < .@amt; .@j += 2 )
  134. getitem .item[.@j], .item[.@j+1];
  135. warp "prontera",rand(148,163),rand(167,186);
  136. }
  137. } else if(.@players < 1) {
  138. .@end = true;
  139. announce "There was no winner on the Dice Event.",bc_all,0x0ceedb;
  140. } else {
  141. mapannounce "quiz_02","There's no clear winners yet, let's roll the dice again.",bc_all,0x0ceedb;
  142. }
  143. .@rounds++;
  144. }
  145. if(.@rounds >= 5)
  146. mapannounce "There were no winner clear in all of the event. The event is now over.",bc_all,0x0ceedb;
  147. end;
  148.  
  149. }
  150.  
  151. quiz_02,37,80,3 script Box 1 HIDDEN_NPC,{
  152. warp "quiz_02",rand(33,41),rand(52,73);
  153. end;
  154.  
  155. }
  156.  
  157. quiz_02,49,80,3 script Box 2 HIDDEN_NPC,{
  158. warp "quiz_02",rand(45,53),rand(52,73);
  159. end;
  160. }
  161.  
  162. quiz_02,61,80,3 script Box 3 HIDDEN_NPC,{
  163. warp "quiz_02",rand(57,65),rand(52,73);
  164. end;
  165. }
  166.  
  167. quiz_02,73,80,3 script Box 4 HIDDEN_NPC,{
  168. warp "quiz_02",rand(69,77),rand(52,73);
  169. end;
  170. }
  171.  
  172. quiz_02,55,90,3 script Back to Prontera 4_BULLETIN_BOARD2,{
  173. warp "prontera",rand(148,163),rand(167,186);
  174. end;
  175. }
  176.  
  177. quiz_02,37,64,3 script Back#1 4_BULLETIN_BOARD2,{
  178. warp "quiz_02",55,76;
  179. end;
  180. }
  181.  
  182. quiz_02,49,64,3 duplicate(Back#1) Back#2 4_BULLETIN_BOARD2
  183. quiz_02,61,64,3 duplicate(Back#1) Back#3 4_BULLETIN_BOARD2
  184. quiz_02,73,64,3 duplicate(Back#1) Back#4 4_BULLETIN_BOARD2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement