summaryrefslogtreecommitdiff
path: root/npc/custom/shifty_assassin.txt
diff options
context:
space:
mode:
authorValaris <Valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-01-29 16:10:48 +0000
committerValaris <Valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-01-29 16:10:48 +0000
commit620e60eebce2c1f35c5c9a82f6ca365b316587f5 (patch)
tree38a39e0415f419d9a49ae456ed0e26654c23d559 /npc/custom/shifty_assassin.txt
parenta2675f07d7da22a7c6ae11f545bf8f671e785a82 (diff)
downloadhercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.gz
hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.bz2
hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.tar.xz
hercules-620e60eebce2c1f35c5c9a82f6ca365b316587f5.zip
AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc/custom/shifty_assassin.txt')
-rw-r--r--npc/custom/shifty_assassin.txt208
1 files changed, 208 insertions, 0 deletions
diff --git a/npc/custom/shifty_assassin.txt b/npc/custom/shifty_assassin.txt
new file mode 100644
index 000000000..9c225e10f
--- /dev/null
+++ b/npc/custom/shifty_assassin.txt
@@ -0,0 +1,208 @@
+//===== eAthena Script =======================================
+//= Shifty Assassin
+//===== By: ==================================================
+//= acky - god@acky.com
+//===== Current Version: =====================================
+//= 1.1.1
+//===== Compatible With: =====================================
+//= eAthena SVN
+//===== Description: =========================================
+//= Players buy ninjas to assassinate other players
+//===== Additional Comments: =================================
+//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
+//============================================================
+
+morocc.gat,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(3) > 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 ($AgitStarted != 0) 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;
+} \ No newline at end of file