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