summaryrefslogblamecommitdiff
path: root/npc/custom/etc/shifty_assassin.txt
blob: 4a4f7338dabeaf57ebaf82036a3a30a7d8d8392c (plain) (tree)
1
2
3
4
5
6
                                                              




                                                              






                                                                           
                                                          





















































































                                                                                                                             
                                                                                           































































































                                                                                          
//===== Hercules Script ======================================
//= Shifty Assassin
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.1.2
//===== 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	4_F_JOB_ASSASSIN,{
	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.",bc_npc;
	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;
}