summaryrefslogblamecommitdiff
path: root/npc/custom/shifty_assassin.txt
blob: 9c225e10f0b5852b053544fc1dc1a52bb43db1a2 (plain) (tree)














































































































































































































                                                                                                                      
//===== 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;
}