summaryrefslogblamecommitdiff
path: root/npc/custom/etc/shifty_assassin.txt
blob: 4acf7c8ac91bc4f3c7b62261127bc51e32066493 (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;

	freeloop(true);
	while (true) {
		mes "[Shifty Assassin]";
		mes "What do you want?";
		next;
		switch (select("Buy Ninjas", "Assassinate somebody", "Check your Ninjas", getgmlevel() > 90 ? "Add Ninjas" : "", "Cancel")) {
		case 1:
			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) {
				mes "[Shifty Assassin]";
				mes "There are no ninjas left to buy.";
				close;
			}
			if ($ninja_avail < @buy) {
				mes "[Shifty Assassin]";
				mes "There aren't that many ninjas to buy.";
				next;
				continue;
			}
			set @price,@buy*$ninja_price;
			if (Zeny < @price ) {
				mes "[Shifty Assassin]";
				mes "You do not have enough zeny.";
				close;
			}

			mes "[Shifty Assassin]";
			mes "That will cost you ^0000FF" + @price + " zeny^000000.";
			next;
			if (select("Continue", "Cancel") != 1) {
				callsub(OnExit);
				end;
			}
			Zeny -= @price;
			set #ninjas,#ninjas+@buy;
			set $ninja_avail,$ninja_avail-@buy;

			mes "[Shifty Assassin]";
			mes "Thank you.";
			close;
		case 2:
			if (agitcheck()) {
				// NINJAS BUSY FOR WOE //
				mes "[Shifty Assassin]";
				mes "Sorry, all my ninjas are busy doing War of Emperium.";
				close;
			}
			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;
			if (select("Continue", "Cancel") != 1) {
				callsub(OnExit);
				end;
			}
			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) {
				mes "[Shifty Assassin]";
				mes "You can't kill anyone without ninjas.";
				next;
				continue;
			}
			if (@number > #ninjas) {
				mes "[Shifty Assassin]";
				mes "You do not have that many ninjas.";
				next;
				continue;
			}
			if (@number > 10) {
				mes "[Shifty Assassin]";
				mes "You can only send 10 ninjas max.";
				next;
				continue;
			}
			set @chance,rand (1,12);
			set #ninjas,#ninjas-@number;
			set #ninjas,#ninjas+#ninjasr;
			set #ninjasr,0;
			if (@number < @chance) {
				// FAILED ATTACK //
				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(PC_NAME) +"'s Ninja attack.",8;
				close;
			}
			// 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(PC_NAME) + "@kill "+@name$;
			announce @name$+" has been assassinated by " + strcharinfo(PC_NAME) +"'s Ninjas.",bc_npc;
			close;
		case 3:
			mes "[Shifty Assassin]";
			mes "You have:";
			mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
			mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
			next;
			continue;
		case 4:
			if (getgmlevel() <= 90)
				end;
			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;
		case 5:
			callsub(OnExit);
			end;
		}
		end;
	}

OnExit:
	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;
}