shifty_assassin.txt 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. //===== eAthena Script =======================================
  2. //= Shifty Assassin
  3. //===== By: ==================================================
  4. //= acky - god@acky.com
  5. //===== Current Version: =====================================
  6. //= 1.1.1
  7. //===== Compatible With: =====================================
  8. //= eAthena SVN
  9. //===== Description: =========================================
  10. //= Players buy ninjas to assassinate other players
  11. //===== Additional Comments: =================================
  12. //= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
  13. //============================================================
  14. morocc.gat,148,86,5 script Shifty Assassin 725,{
  15. set $ninja_price,250000;
  16. // STARTS THE MENU //
  17. M_Start:
  18. mes "[Shifty Assassin]";
  19. mes "What do you want?";
  20. next;
  21. if (getgmlevel(3) > 90) goto M_GM;
  22. menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit;
  23. M_GM:
  24. menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit;
  25. // GM MENU TO ADD NINJAS //
  26. M_Add:
  27. mes "[Shifty Assassin]";
  28. mes "How many ninjas do you want to make available?";
  29. next;
  30. set @add,0;
  31. input @add;
  32. set $ninja_avail,$ninja_avail+@add;
  33. mes @add + " ninjas added.";
  34. close;
  35. // BUY NINJAS //
  36. M_Buy:
  37. mes "[Shifty Assassin]";
  38. mes "How many ninjas do you want buy?";
  39. mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available.";
  40. mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each.";
  41. set @buy,0;
  42. input @buy;
  43. next;
  44. if ($ninja_avail < 1) goto NoNinjas;
  45. if ($ninja_avail < @buy) goto NotEnoughNinjas;
  46. set @price,@buy*$ninja_price;
  47. if (zeny < @price ) goto NoZeny;
  48. mes "[Shifty Assassin]";
  49. mes "That will cost you ^0000FF" + @price + " zeny^000000.";
  50. next;
  51. menu "Continue",-,"Cancel",M_Exit;
  52. set zeny,zeny-@price;
  53. set #ninjas,#ninjas+@buy;
  54. set $ninja_avail,$ninja_avail-@buy;
  55. mes "[Shifty Assassin]";
  56. mes "Thank you.";
  57. close;
  58. // ASSASSINATE SOMEBODY //
  59. M_Kill:
  60. if ($AgitStarted != 0) goto M_Busy;
  61. mes "[Shifty Assassin]";
  62. mes "Enter the name of the target.";
  63. mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000";
  64. next;
  65. menu "Continue",-,"Cancel",M_Exit;
  66. set @name$,"0";
  67. input @name$;
  68. next;
  69. mes "[Shifty Assassin]";
  70. mes "Active Ninjas: "+#ninjas;
  71. mes "Resting Ninjas: "+#ninjasr;
  72. mes "How many do you want to send?";
  73. set @number,0;
  74. input @number;
  75. if (@number < 1) goto NoNinjasSent;
  76. if (@number > #ninjas) goto NotEnoughNinjas1;
  77. if (@number > 10) goto TooManyNinjas;
  78. set @chance,rand (1,12);
  79. set #ninjas,#ninjas-@number;
  80. set #ninjas,#ninjas+#ninjasr;
  81. set #ninjasr,0;
  82. if (@number < @chance) goto M_Failure;
  83. // SUCCESSFUL ATTACK //
  84. mes "Sending ninjas now.";
  85. next;
  86. mes "[Shifty Assassin]";
  87. set @ninjasurvived,rand (1,@number);
  88. set #ninjasr,@number-@ninjasurvived;
  89. mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
  90. atcommand strcharinfo(0) + "@kill "+@name$;
  91. announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8;
  92. close;
  93. // FAILED ATTACK //
  94. M_Failure:
  95. mes "Sending ninjas now.";
  96. next;
  97. mes "[Shifty Assassin]";
  98. set @ninjasurvived,rand (1,@number);
  99. set #ninjasr,@number-@ninjasurvived;
  100. mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
  101. announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8;
  102. close;
  103. // NINJAS BUSY FOR WOE //
  104. M_Busy:
  105. mes "[Shifty Assassin]";
  106. mes "Sorry, all my ninjas are busy doing War of Emperium.";
  107. close;
  108. // CHECK YOUR NINJAS //
  109. M_Check:
  110. mes "[Shifty Assassin]";
  111. mes "You have:";
  112. mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
  113. mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
  114. next;
  115. goto M_Start;
  116. // LIMIT //
  117. NoNinjasSent:
  118. mes "[Shifty Assassin]";
  119. mes "You can't kill anyone without ninjas.";
  120. next;
  121. goto M_Start;
  122. TooManyNinjas:
  123. mes "[Shifty Assassin]";
  124. mes "You can only send 10 ninjas max.";
  125. next;
  126. goto M_Start;
  127. NoZeny:
  128. mes "[Shifty Assassin]";
  129. mes "You do not have enough zeny.";
  130. close;
  131. NotEnoughNinjas:
  132. mes "[Shifty Assassin]";
  133. mes "There aren't that many ninjas to buy.";
  134. next;
  135. goto M_Start;
  136. NoNinjas:
  137. mes "[Shifty Assassin]";
  138. mes "There are no ninjas left to buy.";
  139. close;
  140. NotEnoughNinjas1:
  141. mes "[Shifty Assassin]";
  142. mes "You do not have that many ninjas.";
  143. next;
  144. goto M_Start;
  145. M_Exit:
  146. mes "[Shifty Assassin]";
  147. mes "Goodbye.";
  148. close;
  149. // TIMER DELAY NINJA ADDER //
  150. OnClock0600:
  151. set $ninja_avail,$ninja_avail+2;
  152. end;
  153. OnClock1200:
  154. set $ninja_avail,$ninja_avail+2;
  155. end;
  156. OnClock1500:
  157. set $ninja_avail,$ninja_avail+2;
  158. end;
  159. OnClock1800:
  160. set $ninja_avail,$ninja_avail+3;
  161. end;
  162. OnClock1900:
  163. set $ninja_avail,$ninja_avail+2;
  164. end;
  165. OnClock2000:
  166. set $ninja_avail,$ninja_avail+2;
  167. end;
  168. OnClock0000:
  169. set $ninja_avail,$ninja_avail+2;
  170. end;
  171. OnInit:
  172. set $ninja_avail,$ninja_avail+1;
  173. end;
  174. }