summaryrefslogtreecommitdiff
path: root/npc/custom/etc/shifty_assassin.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom/etc/shifty_assassin.txt')
-rw-r--r--npc/custom/etc/shifty_assassin.txt199
1 files changed, 199 insertions, 0 deletions
diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt
new file mode 100644
index 000000000..c31d571c1
--- /dev/null
+++ b/npc/custom/etc/shifty_assassin.txt
@@ -0,0 +1,199 @@
+//===== rAthena Script =======================================
+//= Shifty Assassin
+//===== By: ==================================================
+//= acky
+//===== Current Version: =====================================
+//= 1.1.2
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Players buy ninjas to assassinate other players
+//===== Additional Comments: =================================
+//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
+//= 1.1.2 Updated WoE Check. [Paradox924X]
+//============================================================
+
+morocc,148,86,5 script Shifty Assassin 725,{
+ set $ninja_price,250000;
+
+ // STARTS THE MENU //
+M_Start:
+ mes "[Shifty Assassin]";
+ mes "What do you want?";
+ next;
+ if (getgmlevel() > 90) goto M_GM;
+ menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit;
+M_GM:
+ menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit;
+
+ // GM MENU TO ADD NINJAS //
+M_Add:
+ mes "[Shifty Assassin]";
+ mes "How many ninjas do you want to make available?";
+ next;
+ set @add,0;
+ input @add;
+ set $ninja_avail,$ninja_avail+@add;
+ mes @add + " ninjas added.";
+ close;
+
+ // BUY NINJAS //
+M_Buy:
+ mes "[Shifty Assassin]";
+ mes "How many ninjas do you want buy?";
+ mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available.";
+ mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each.";
+
+ set @buy,0;
+ input @buy;
+ next;
+ if ($ninja_avail < 1) goto NoNinjas;
+ if ($ninja_avail < @buy) goto NotEnoughNinjas;
+ set @price,@buy*$ninja_price;
+ if (zeny < @price ) goto NoZeny;
+
+ mes "[Shifty Assassin]";
+ mes "That will cost you ^0000FF" + @price + " zeny^000000.";
+ next;
+ menu "Continue",-,"Cancel",M_Exit;
+
+ set zeny,zeny-@price;
+ set #ninjas,#ninjas+@buy;
+ set $ninja_avail,$ninja_avail-@buy;
+
+ mes "[Shifty Assassin]";
+ mes "Thank you.";
+ close;
+
+ // ASSASSINATE SOMEBODY //
+M_Kill:
+ if (agitcheck()) goto M_Busy;
+ mes "[Shifty Assassin]";
+ mes "Enter the name of the target.";
+ mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000";
+ next;
+ menu "Continue",-,"Cancel",M_Exit;
+ set @name$,"0";
+ input @name$;
+ next;
+ mes "[Shifty Assassin]";
+ mes "Active Ninjas: "+#ninjas;
+ mes "Resting Ninjas: "+#ninjasr;
+ mes "How many do you want to send?";
+ set @number,0;
+ input @number;
+ if (@number < 1) goto NoNinjasSent;
+ if (@number > #ninjas) goto NotEnoughNinjas1;
+ if (@number > 10) goto TooManyNinjas;
+ set @chance,rand (1,12);
+ set #ninjas,#ninjas-@number;
+ set #ninjas,#ninjas+#ninjasr;
+ set #ninjasr,0;
+ if (@number < @chance) goto M_Failure;
+
+ // SUCCESSFUL ATTACK //
+ mes "Sending ninjas now.";
+ next;
+ mes "[Shifty Assassin]";
+ set @ninjasurvived,rand (1,@number);
+ set #ninjasr,@number-@ninjasurvived;
+ mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
+
+ atcommand strcharinfo(0) + "@kill "+@name$;
+ announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8;
+ close;
+
+ // FAILED ATTACK //
+M_Failure:
+ mes "Sending ninjas now.";
+ next;
+ mes "[Shifty Assassin]";
+ set @ninjasurvived,rand (1,@number);
+ set #ninjasr,@number-@ninjasurvived;
+ mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
+
+ announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8;
+ close;
+
+ // NINJAS BUSY FOR WOE //
+M_Busy:
+ mes "[Shifty Assassin]";
+ mes "Sorry, all my ninjas are busy doing War of Emperium.";
+ close;
+
+ // CHECK YOUR NINJAS //
+M_Check:
+ mes "[Shifty Assassin]";
+ mes "You have:";
+ mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
+ mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
+ next;
+ goto M_Start;
+
+
+ // LIMIT //
+NoNinjasSent:
+ mes "[Shifty Assassin]";
+ mes "You can't kill anyone without ninjas.";
+ next;
+ goto M_Start;
+
+TooManyNinjas:
+ mes "[Shifty Assassin]";
+ mes "You can only send 10 ninjas max.";
+ next;
+ goto M_Start;
+
+NoZeny:
+ mes "[Shifty Assassin]";
+ mes "You do not have enough zeny.";
+ close;
+
+NotEnoughNinjas:
+ mes "[Shifty Assassin]";
+ mes "There aren't that many ninjas to buy.";
+ next;
+ goto M_Start;
+
+NoNinjas:
+ mes "[Shifty Assassin]";
+ mes "There are no ninjas left to buy.";
+ close;
+
+NotEnoughNinjas1:
+ mes "[Shifty Assassin]";
+ mes "You do not have that many ninjas.";
+ next;
+ goto M_Start;
+
+M_Exit:
+ mes "[Shifty Assassin]";
+ mes "Goodbye.";
+ close;
+
+// TIMER DELAY NINJA ADDER //
+OnClock0600:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnClock1200:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnClock1500:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnClock1800:
+ set $ninja_avail,$ninja_avail+3;
+ end;
+OnClock1900:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnClock2000:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnClock0000:
+ set $ninja_avail,$ninja_avail+2;
+ end;
+OnInit:
+ set $ninja_avail,$ninja_avail+1;
+ end;
+}