Advertisement
Guest User

Abracdabra

a guest
Apr 20th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.35 KB | None | 0 0
  1. //========================================================================================
  2. //Version: 1.0
  3. //Author: BreakDancer
  4. //Created: 12/24/2016
  5. //Released: 12/24/2017
  6. //Compatibility: rAthena | eAthena
  7. //Required File: http://www.mediafire.com/?ry9k4uolxlmj4kv
  8. //Reference: http://en.wikipedia.org/wiki/Russian_roulette
  9. //========================================================================================
  10. quiz_01,226,286,6 script أبراكدابرا 731,{
  11. //--Configuration
  12. goto Asiong;
  13. OnInit:
  14. set .NPC$, "[Asiong Salonga]"; //What is the NPC name?
  15. set .GMLevel, 90; //What is the minimum gm level to activate the event?
  16. set .GetSkull, 1; //Do you want to get the skulls of the dead after winning? 1: Enabled | 0:Disable
  17. set .Zeny, 0; //How much zeny you want the winner to get? | 0:Disable
  18. setarray .ItemID[0], 7539; //What is the Item ID of the prize? | 0:Disable
  19. setarray .ItemAmount[0],50; //How many pieces of the prize?
  20. setarray .DeathDialog$[0], "ها ها ها لقد قتلته!", "لقد مات !", "ماات!"; //What do you want the NPC will say when someone dies?
  21. setarray .AliveDialog$[0], "محظوظ فقط !!", "ماهذا بحق الجحيم!", "لماذا لا تموت !!"; //What do you want the NPC will say when someone lives?
  22. end;
  23. //--End
  24. Asiong:
  25. mes .NPC$;
  26. mes ".";
  27. if(.play == 2){ close; }
  28. switch(select("Play:"+((getgmlevel() >= .GMLevel)?"Activate":"")+"")){
  29. case 1:
  30. if((.play == 1) && (.pReg < .maxplayer)){
  31. for(set .@i, 0; .@i < .maxplayer; set .@i, .@i + 1){
  32. if(.playerlist$[.@i] == strcharinfo(0)){
  33. next;
  34. mes .NPC$;
  35. mes "انت مسجل بالفعل!";
  36. close;
  37. }
  38. }
  39. set .playerlist$[.pReg], strcharinfo(0);
  40. set .pReg, .pReg + 1;
  41. announce "["+.pReg+"/"+.maxplayer+"] "+strcharinfo(0)+" قام بالتسجيل في حدث أبراكدابرا",bc_all;
  42. if(.pReg == .maxplayer){ goto PlayRR; }
  43. close;
  44. }
  45. else if((.pReg == .maxplayer) && (.play == 1)){
  46. next;
  47. mes .NPC$;
  48. mes "لقد نفذت المقاعد.";
  49. close;
  50. }
  51. next;
  52. mes .NPC$;
  53. mes "لم يبدأ الحدث بعد.";
  54. close;
  55. case 2:
  56. next;
  57. mes .NPC$;
  58. mes "What is the maximum player?";
  59. input .maxplayer;
  60. if(.maxplayer < 2){ dispbottom "Max player must be greater than 1."; close; }
  61. set .maxplayer, .maxplayer;
  62. set .play, 1;
  63. announce "[أبراكدابرا] . "+.maxplayer+" نحتاج عدد من اللاعبين للبدء!",bc_all;
  64. close;
  65. }
  66. close;
  67.  
  68. PlayRR:
  69. close2;
  70. detachrid;
  71. copyarray .copiedplayer$[0], .playerlist$[0], 128;
  72. set .play, 2;
  73. announce "الحدث علي وشك البدأ !",bc_all;
  74. announce "قائمة اللاعبين المسجلين",bc_all,0xFFFFFF;
  75. for(set .@i, 0; .@i < getarraysize(.playerlist$); set .@i, .@i + 1){
  76. set .@j, .@j + 1;
  77. announce ""+.@j+". "+.playerlist$[.@i]+"",bc_all,0xFFFFFF;
  78. sleep2 1000;
  79. }
  80. announce "لا تقم بالخروج من الخادم!",bc_all,0xFFFFFF;
  81. callsub OnSpin;
  82. close;
  83.  
  84. OnSpin:
  85. set .spin, rand(0, .pReg - 1);
  86. attachrid(getcharid(3, .playerlist$[.spin]));
  87. callsub OnCheck;
  88. announce .NPC$ +" أبرا أبرا أبرا . . .",bc_all;
  89. sleep2 3000;
  90. announce .NPC$ +" أبـــرأأأأأ . . .",bc_all;
  91. sleep2 2000;
  92. announce .NPC$ +" الدور الأن علي "+ strcharinfo(0) +" . . .",bc_all;
  93. sleep2 3000;
  94. announce .NPC$ +" هيا أستعد للموت الأن "+ strcharinfo(0),bc_all;
  95. callsub OnCheck;
  96. callsub OnShoot;
  97. sleep2 3000;
  98. callsub OnSpin;
  99. return;
  100.  
  101. OnShoot:
  102. if(rand(1, 3) == 1){
  103. soundeffectall "Revolver.wav", 0;
  104. sleep2 2300;
  105. specialeffect2 669;
  106. specialeffect2 531;
  107. percentheal -100, -100;
  108. deletearray .playerlist$[.spin], 1;
  109. set .pReg, .pReg - 1;
  110. announce "["+.pReg+"/"+.maxplayer+"] "+strcharinfo(0)+" is out!",bc_all,0xFF0000;
  111. announce ""+.NPC$+" "+.deathdialog$[rand(1, getarraysize(.deathdialog))]+"", bc_all,0xFF0000;
  112. } else {
  113. soundeffectall "Revolver.wav", 0;
  114. sleep2 2300;
  115. specialeffect2 675;
  116. specialeffect2 522 + rand(1,14);
  117. announce ""+.NPC$+" "+.alivedialog$[rand(1, getarraysize(.alivedialog))]+"", bc_all,0xFF0000;
  118. } return;
  119.  
  120. OnCheck:
  121. if(.pReg <= 0){
  122. announce .NPC$ +" لا يوجد فائز الجميع أختفي!",bc_all;
  123. callsub CleanUp;
  124. }
  125. else if((.pReg == 1) && (.maxplayer <= 2) && (getarraysize(.disqualified$))){
  126. announce .NPC$ +" لا يوجد فائز.",bc_all;
  127. callsub CleanUp;
  128. }
  129. else if((.pReg == 1) && (.maxplayer >= 2)){
  130. announce .NPC$ +" لدينا فائز الأن !! "+strcharinfo(0)+"!",bc_all;
  131. if(.GetSkull){
  132. for(set .@i, 0; .@i < .maxplayer; set .@i, .@i + 1){
  133. if(strcharinfo(0) != .copiedplayer$[.@i]){
  134. getnameditem 7420, .copiedplayer$[.@i];
  135. }
  136. }
  137. }
  138. for(set .@i, 0; .@i < getarraysize(.ItemID); set .@i, .@i + 1){
  139. if(.ItemID){ getitem .ItemID[.@i], .ItemAmount[.@i]; }
  140. }
  141. if(.Zeny){ set Zeny, Zeny + .Zeny; }
  142. callsub CleanUp;
  143. } return;
  144.  
  145. OnPCLogoutEvent:
  146. if(.play){
  147. setarray .disqualified$[.@l], strcharinfo(0);
  148. set .@l, .@l + 1;
  149. for(set .@i, 0; .@i < .maxplayer; set .@i, .@i + 1){
  150. if(.playerlist$[.@i] == strcharinfo(0)){
  151. deletearray .playerlist$[.@i], 1;
  152. set .pReg, .pReg - 1;
  153. announce "["+.pReg+"/"+.maxplayer+"] "+strcharinfo(0)+" has disqualified.",bc_all,0xFF0000;
  154. break;
  155. }
  156. }
  157. }
  158. end;
  159.  
  160. //--Clean Variables
  161. CleanUp:
  162. set .play, 0;
  163. set .pReg, 0;
  164. set .maxplayer, 0;
  165. deletearray .playerlist$, 128;
  166. deletearray .copiedplayer$, 128;
  167. deletearray .disqualified$, 128;
  168. end;
  169. //--End
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement