123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- //===== 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;
- }
|