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