You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
4.6 KiB
Plaintext

//===== rAthena Script =======================================
//= Shifty Assassin
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.1.2
//===== Compatible With: =====================================
//= rAthena Project
//===== 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;
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check, ( getgmlevel() > 90 ? "Add Ninjas" : "" ),-,"Cancel",M_Exit;
// GM MENU TO ADD NINJAS //
mes "[Shifty Assassin]";
mes "How many ninjas do you want to make available?";
next;
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.";
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;
input .@name$;
if ( !getcharid( 3,.@name$ ) ) {
mes "[Shifty Assassin]";
mes .@name$ +" is not online.";
close;
}
next;
mes "[Shifty Assassin]";
mes "Active Ninjas: "+#ninjas;
mes "Resting Ninjas: "+#ninjasr;
mes "How many do you want to send?";
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.";
set .@acc_id, getcharid( 3,.@name$ );
if ( .@acc_id )
unitkill .@acc_id;
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:
OnClock1200:
OnClock1500:
OnClock1900:
OnClock2000:
OnClock0000:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1800:
set $ninja_avail,$ninja_avail+3;
end;
OnInit:
set $ninja_avail,$ninja_avail+1;
end;
}