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