
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12359 54d463be-8e91-2dee-dedb-b68131a5f0ec
209 lines
4.7 KiB
Plaintext
209 lines
4.7 KiB
Plaintext
//===== eAthena Script =======================================
|
|
//= Shifty Assassin
|
|
//===== By: ==================================================
|
|
//= acky - god@acky.com
|
|
//===== Current Version: =====================================
|
|
//= 1.1.2
|
|
//===== Compatible With: =====================================
|
|
//= eAthena 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;
|
|
} |