shifty_assassin.txt 4.7 KB

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