diff --git a/conf/msg_conf/map_msg_frn.conf b/conf/msg_conf/map_msg_frn.conf index 178f0a3f43..35bff0a96a 100644 --- a/conf/msg_conf/map_msg_frn.conf +++ b/conf/msg_conf/map_msg_frn.conf @@ -1,10 +1,10 @@ // rAthena map_msg_frn.conf // Configuration des Messages -// Pour changer la traduction, changez seulement le message (seconde colonne), vous n'avez pas besoin de modifier le code source, -// ou bien utilisez conf/import/map_msg_frn_conf.txt +// Changez seulement le message - dans la deuxième colonne - pour modifier la traduction ; ou utilisez conf/import/map_msg_frn_conf.txt +// vous n'avez pas besoin de modifier le code source. // Format: // // Message en français -// msg_nombre: Message +// msg_numéro: Message // 0-410: réservés pour les commandes GM // 500-900: autres @@ -883,12 +883,13 @@ 1045: Battlegrounds ON (type %d) 1046: PvP Flags: 1047: GvG Flags: -1048: Teleport Flags: -1049: Weather Flags: -1050: Other Flags: -1051: Other Flags2: -//1052-1064 free -1065: No Exp Penalty: %s | No Zeny Penalty: %s +1048: Teleportation Flags: +1049: Météo Flags: +1050: Autres Flags: +1051: Autres Flags2: +1052: Réglage des dégâts des Skills: +//1053-1064 free +1065: Pas de pénalité d'Exp: %s | Pas de pénalité de Zeny: %s 1066: On 1067: Off 1068: No Save (Retour au dernier point de sauvegarde) diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt index 1fbe6cb64f..c973cd08ee 100644 --- a/npc/custom/etc/monster_arena.txt +++ b/npc/custom/etc/monster_arena.txt @@ -225,7 +225,7 @@ L_High: close2; savepoint "gon_test",56,99; set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",72,87; end; @@ -233,7 +233,7 @@ L_4to6: close2; savepoint "gon_test",56,99; set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",57,86; end; @@ -241,7 +241,7 @@ L_1to3: close2; savepoint "gon_test",56,99; set @battle,1; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",43,87; end; @@ -249,7 +249,7 @@ L_Exit: close2; savepoint "prontera",149,186; set @battle,0; - atcommand strcharinfo(0) + "@option 0 0 0"; + atcommand "@option 0 0 0"; warp "prontera",149,186; end; @@ -257,7 +257,7 @@ L_Spec: close2; savepoint "gon_test",56,99; set @battle,0; - atcommand strcharinfo(0) + "@option 0 0 0"; + atcommand "@option 0 0 0"; warp "gon_test",57,99; end; @@ -325,13 +325,13 @@ L_Sell: mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; mes "How many would you like to sell?"; next; - input @sellexp; - if (@sellexp > #monpoints) goto L_NoExp; - set #monpoints,#monpoints-@sellexp; - set @sellearn,100*@sellexp; // Price of exp - set Zeny, Zeny+@sellearn; + input .@sellexp; + if (.@sellexp > #monpoints) goto L_NoExp; + set #monpoints,#monpoints-.@sellexp; + set .@sellearn,100*.@sellexp; // Price of exp + set Zeny, Zeny+.@sellearn; mes "[Monster Trainer]"; - mes "You earned ^0000FF" + @sellearn + "^000000z."; + mes "You earned ^0000FF" + .@sellearn + "^000000z."; close; @@ -716,9 +716,7 @@ gon_test,56,91,6 script OnSpecialKilled -1,{ } function script duelkill { - if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; - end; -L_Heal: + if (strcharinfo(0) != $@duelist1$ && strcharinfo(0) != $@duelist2$) end; announce strcharinfo(0) + " won the Duel",1; set @fighting,0; set #heal,0; @@ -744,8 +742,8 @@ gon_test,55,103,6 script Nurse 90,{ end; L_Heal: - set @healrate,140 / #monster; //Rate of heal per click - set @healing,@healing + @healrate; + set .@healrate,140 / #monster; //Rate of heal per click + set @healing,@healing + .@healrate; end; L_NoHeal: @@ -770,8 +768,7 @@ gon_test mapflag noskill // Duel Arena // gon_test,58,103,5 script Duel Master#01 92,{ - if ($@duelist1$ == "") set @duel,0; - if ($@monster1 == "") set @duel,0; + if ($@duelist1$ == "" || $@monster1 == 0) set $@duel,0; set @marena,1; if (#monster == 0) goto L_NoMon; mes "[Duel Master]"; @@ -799,7 +796,7 @@ gon_test,58,103,5 script Duel Master#01 92,{ set $@duelist1$,strcharinfo(0); set @battle,1; announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",49,5; close; @@ -827,7 +824,7 @@ L_Duel2: set $@duelist2$,strcharinfo(0); set @battle,1; announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",49,5; close; @@ -840,7 +837,7 @@ L_Dueling: L_Spec: set @battle,0; - atcommand strcharinfo(0) + "@option 64 0 64"; + atcommand "@option 64 0 64"; warp "gon_test",49,5; close; @@ -873,14 +870,14 @@ L_Leave: if ($@duelist2$ == strcharinfo(0)) goto L_Leave2; L_Leave3: - atcommand strcharinfo(0) + "@option 0 0 0"; + atcommand "@option 0 0 0"; set @battle,0; warp "gon_test",57,99; close; L_Leave1: - set $@duelist1$,$@duelist2$; - set $@monster1,$@monster2; + set $@duelist1$,""; + set $@monster1,0; set $@duel,$@duel-1; announce strcharinfo(0) + " stopped dueling",1; goto L_Leave3; diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt index 4a860e753d..2ed360aa81 100644 --- a/npc/custom/etc/mvp_arena.txt +++ b/npc/custom/etc/mvp_arena.txt @@ -51,19 +51,19 @@ quiz_00,49,31,4 script MVP Arena Guide 778,{ // Keepers function script Keeper { + set .@arg, getarg(0); mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "Which arena would you"; mes "like to enter?"; - set .@menu$,""; for(set .@i,1; .@i<9; set .@i,.@i+1) - set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:"; + set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+.@arg)+"/20]:"; set .@i, select(.@menu$); - if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) { + if (getmapusers("pvp_n_"+.@i+"-"+ .@arg)>19) { mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]"; mes "Sorry, this arena is full!"; close; } - warp "pvp_n_"+.@i+"-"+getarg(0),102,102; + warp "pvp_n_"+.@i+"-"+ .@arg,102,102; close; } quiz_00,56,31,4 script Alpha MVP 770,{ callfunc "Keeper",2; } diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt index 25cae1e207..31ddd8af5f 100644 --- a/npc/custom/etc/penal_servitude.txt +++ b/npc/custom/etc/penal_servitude.txt @@ -19,23 +19,19 @@ sec_pri,36,58,1 script Chief Warder 105,{ mes "[Saddeus]"; emotion e_what; - if (Sex) { - mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; - } else { - mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; - } + mes (Sex?"Mr.":"Ms.")+". Prisoner #"+BaseLevel+JobLevel+","; mes "what's the noise over there?"; next; menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS; M_PAY: mes "[Saddeus]"; - set @MUSTPAY,(PRISON+1)*1000000; - if (@MUSTPAY<1000000) set @MUSTPAY,1000000; - if (@MUSTPAY>100000000) set @MUSTPAY,100000000; - if (PRISON==1) mes "I can't remember you. Is it your 1st time?"; - if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit..."; - mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000."; + set .@MUSTPAY,(PRISON+1)*1000000; + if (.@MUSTPAY<1000000) set .@MUSTPAY,1000000; + if (.@MUSTPAY>100000000) set .@MUSTPAY,100000000; + if (PRISON==0) mes "I can't remember you. Is it your 1st time?"; + if (PRISON>1) mes "You again? Somebody hasn't grown wiser from the very first visit..."; + mes "OK, we could release you for ^FF0000"+.@MUSTPAY+"z^000000."; next; menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-; @@ -44,8 +40,8 @@ M_PAY: close; M_PAYCASH: - if (@MUSTPAY>Zeny) goto L_NOCASH; - set Zeny,Zeny-@MUSTPAY; + if (.@MUSTPAY>Zeny) goto L_NOCASH; + set Zeny,Zeny-.@MUSTPAY; mes "[Saddeus]"; mes "OK, sing here and there."; goto L_RELEASE; @@ -56,8 +52,8 @@ L_NOCASH: close; M_PAYBANK: - if (@MUSTPAY>#kafrabank) goto L_NOBANK; - set #kafrabank,#kafrabank-@MUSTPAY; + if (.@MUSTPAY>#kafrabank) goto L_NOBANK; + set #kafrabank,#kafrabank-.@MUSTPAY; mes "[Saddeus]"; mes "OK, sign your cheque. And put down your name in my book."; goto L_RELEASE; @@ -96,10 +92,10 @@ M_Q1: nude; - set @rw,rand(1,4); - if (@rw==2) goto L_W2; - if (@rw==3) goto L_W3; - if (@rw==4) goto L_W4; + set .@rw,rand(1,4); + if (.@rw==2) goto L_W2; + if (.@rw==3) goto L_W3; + if (.@rw==4) goto L_W4; L_W1: savepoint "sec_in02",179,76; diff --git a/npc/custom/etc/rpsroulette.txt b/npc/custom/etc/rpsroulette.txt index 2dc8c73f5c..a04e02879d 100644 --- a/npc/custom/etc/rpsroulette.txt +++ b/npc/custom/etc/rpsroulette.txt @@ -14,188 +14,89 @@ //============================================================ cmd_in02,182,126,2 script Crazy Boris 85,{ - mes "Crazy Boris"; - set @counter,1; + set .@counter,1; mes "Hey you! Up for Rock Scissors Roulette?"; next; menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; - SAME: +SAME: mes "Draw! Again!"; next; - goto PLAY; +PLAY: + mes "Rock... Paper..."; + set .@opp, rand(1,3); + menu "^0000FFROCK!",-,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; + + if (.@lastchoice == 1) set .@opp, rand(1,3); + if (.@opp == 1) emotion e_rock; + else if (.@opp == 2) emotion e_scissors; + else emotion e_paper; + set .@lastchoice,1; + if (.@opp == 1) goto SAME; + if (.@opp == 2) goto WIN; + goto LOSE; + +SCISSORS: + if (.@lastchoice == 2) set .@opp,rand(1,2); + if (.@opp == 1) emotion e_rock; + else if (.@opp == 2) emotion e_scissors; + else emotion e_paper; + set .@lastchoice,2; + if (.@opp == 1) goto LOSE; + if (.@opp == 2) goto SAME; + goto WIN; + +PAPER: + if (.@lastchoice == 3) set .@opp,rand(2,3); + if (.@opp == 1) emotion e_rock; + else if (.@opp == 2) emotion e_scissors; + else emotion e_paper; + set .@lastchoice,3; + if (.@opp == 1) goto WIN; + if (.@opp == 2) goto LOSE; + goto SAME; WIN: mes "Damnit, You Win!"; emotion e_swt2; next; - goto OPPPULL; + set .@win, 1; + goto YOUPULL; LOSE: emotion e_heh; mes "Boorah! You Lose!"; next; - goto YOUPULL; - -PLAY: - mes "Rock... Paper..."; - set @opp,rand (1,3); - menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; - -ROCK: - if (@lastchoice == 1) set @opp,rand (1,3); - if (@opp == 1) emotion e_rock; - if (@opp == 2) emotion e_scissors; - if (@opp == 3) emotion paper; - set @lastchoice,1; - if (@opp == 1) goto SAME; - if (@opp == 2) goto WIN; - if (@opp == 3) goto LOSE; - -SCISSORS: - if (@lastchoice == 2) set @opp,rand (1,2); - if (@opp == 1) emotion e_rock; - if (@opp == 2) emotion e_scissors; - if (@opp == 3) emotion paper; - set @lastchoice,2; - if (@opp == 1) goto LOSE; - if (@opp == 2) goto SAME; - if (@opp == 3) goto WIN; - -PAPER: - if (@lastchoice == 3) set @opp,rand (2,3); - if (@opp == 1) emotion e_rock; - if (@opp == 2) emotion e_scissors; - if (@opp == 3) emotion paper; - set @lastchoice,3; - if (@opp == 1) goto WIN; - if (@opp == 2) goto LOSE; - if (@opp == 3) goto SAME; + set .@win, 0; YOUPULL: - if (@counter == 1) goto ONE; - if (@counter == 2) goto TWO; - if (@counter == 3) goto THREE; - if (@counter == 4) goto FOUR; - if (@counter == 5) goto FIVE; - if (@counter == 6) goto SIX; - -OPPPULL: - if (@counter == 1) goto ONEa; - if (@counter == 2) goto TWOa; - if (@counter == 3) goto THREEa; - if (@counter == 4) goto FOURa; - if (@counter == 5) goto FIVEa; - if (@counter == 6) goto SIXa; - -ONE: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); + mes .@counter +" of 6"; + if ( .@counter == 6 ) + mes "Say your prayers"; + set .@pull, rand( 1,( 7 -.@counter ) ); + set .@counter, .@counter +1; next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -TWO: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -THREE: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FOUR: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -FIVE: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - if (@pull == 1) set @pull,rand (1,2); - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -SIX: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto DIE; - if (@pull != 1) goto SAFE; - -ONEa: - set @counter,2; - mes "1 of 6"; - set @pull,rand (1,6); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -TWOa: - set @counter,3; - mes "2 of 6"; - set @pull,rand (1,5); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -THREEa: - set @counter,4; - mes "3 of 6"; - set @pull,rand (1,4); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FOURa: - set @counter,5; - mes "4 of 6"; - set @pull,rand (1,3); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -FIVEa: - set @counter,6; - mes "5 of 6"; - set @pull,rand (1,2); - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SIXa: - mes "6 of 6"; - mes "Say your prayers"; - set @pull,1; - next; - if (@pull == 1) goto KILL; - if (@pull != 1) goto SAFE; - -SAFE: + if ( .@pull == 1 ) { + if ( .@win ) goto KILL; + specialeffect2 EF_SUI_EXPLOSION; + emotion e_gg; + percentheal -100,-100; + mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; + mes "You're dead!"; + close; + } emotion e_pif; mes "*^0000FFClick^000000* whew..."; goto PLAY; -DIE: - specialeffect2 EF_SUI_EXPLOSION; - emotion e_gg; - percentheal -100,-100; - mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; - mes "You're dead!"; - close; +RULES: + mes "Ok here are the rules:"; + mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; + mes "Beat me to win a prize."; + next; + menu "Let me play.",-,"No thanks.",LEAVE; + mes "Ok here we go..."; + next; + goto PLAY; KILL: specialeffect EF_SUI_EXPLOSION; @@ -203,81 +104,22 @@ KILL: mes "*^0000FFClick^000000* *^FF0000BANG^000000*"; mes "OWWW @#$%^!! THAT HURT LIKE HELL!!"; next; - goto PRIZE; - -RULES: - mes "Ok here are the rules:"; - mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; - mes "Beat me to win a prize."; - menu "Let me play.",CONT,"No thanks.",LEAVE; - -CONT: - mes "Ok here we go..."; - next; - goto PLAY; - -PRIZE: mes "Congratulations! You have won..."; - set @prize,rand (1,10); - if (@prize == 1) goto P1; - if (@prize == 2) goto P2; - if (@prize == 3) goto P3; - if (@prize == 4) goto P4; - if (@prize == 5) goto P5; - if (@prize == 6) goto P6; - if (@prize == 7) goto P7; - if (@prize == 8) goto P8; - if (@prize == 9) goto P9; - if (@prize == 10) goto P10; - -P1: - mes "10x Oridicon!"; - getitem 984,10; - close; - -P2: - mes "10x Elunium!"; - getitem 985,10; - close; - -P3: - mes "100x Fly Wings!"; - getitem 601,100; - close; - -P4: - mes "8x Old Blue Box!"; - getitem 603,8; - close; - -P5: - mes "4x Old Violet Box!"; - getitem 617,4; - close; - -P6: - mes "1x Old Card Album!"; - getitem 616,1; - close; - -P7: - mes "10x Dead Branch!"; - getitem 604,10; - close; - -P8: - mes "3x Gold!"; - getitem 969,3; - close; - -P9: - mes "10x Elunium!"; - getitem 985,10; - close; - -P10: - mes "20x Blue Potion!"; - getitem 505,20; + switch( rand( 1,10 ) ) { + case 1: setarray .@reward[0], 10,984; break; + case 3: setarray .@reward[0],100,601; break; // 100x Fly Wings + case 4: setarray .@reward[0], 8,603; break; // 8x Old Blue Box + case 5: setarray .@reward[0], 4,617; break; // 4x Old Violet Box + case 6: setarray .@reward[0], 1,616; break; // 1x Old Card Album + case 7: setarray .@reward[0], 10,604; break; // 10x Dead Branch + case 8: setarray .@reward[0], 3,969; break; // 3x Gold + case 10: setarray .@reward[0],20,505; break; // 20x Blue Potion + case 2: + case 9: + setarray .@reward[0], 10,985; + } + mes .@reward[0] +"x "+ getitemname( .@reward[1] ) +"!"; + getitem .@reward[1], .@reward[0]; close; LEAVE: diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt index f93cb3258a..9ef0f03857 100644 --- a/npc/custom/etc/shifty_assassin.txt +++ b/npc/custom/etc/shifty_assassin.txt @@ -14,27 +14,22 @@ //============================================================ morocc,148,86,5 script Shifty Assassin 725,{ - set $ninja_price,250000; + 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; + 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 // -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."; + input .@add; + set $ninja_avail, $ninja_avail+.@add; + mes .@add +" ninjas added."; close; // BUY NINJAS // @@ -42,24 +37,23 @@ 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."; + mes "They cost ^0000FF" + .@ninja_price + " zeny ^000000each."; - set @buy,0; - input @buy; + 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; + 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."; + 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; + set Zeny, Zeny - .@price; + set #ninjas, #ninjas + .@buy; + set $ninja_avail, $ninja_avail - .@buy; mes "[Shifty Assassin]"; mes "Thank you."; @@ -73,34 +67,38 @@ M_Kill: 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$; + 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?"; - 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; + 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; + 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; + 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.",bc_npc; + 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 // @@ -108,11 +106,11 @@ M_Failure: mes "Sending ninjas now."; next; mes "[Shifty Assassin]"; - set @ninjasurvived,rand (1,@number); - set #ninjasr,@number-@ninjasurvived; + 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; + announce .@name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; close; // NINJAS BUSY FOR WOE // @@ -173,26 +171,16 @@ M_Exit: // TIMER DELAY NINJA ADDER // OnClock0600: - set $ninja_avail,$ninja_avail+2; - end; OnClock1200: - set $ninja_avail,$ninja_avail+2; - end; OnClock1500: +OnClock1900: +OnClock2000: +OnClock0000: 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; diff --git a/src/map/atcommand.c b/src/map/atcommand.c index f49a0a7728..a5964dd3d1 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8698,6 +8698,35 @@ static void atcommand_commands_sub(struct map_session_data* sd, const int fd, At dbi_destroy(iter); clif_displaymessage(fd,line_buff); + if ( atcmd_binding_count ) { + int i, count_bind, gm_lvl = pc_get_group_level(sd); + for( i = count_bind = 0; i < atcmd_binding_count; i++ ) { + if ( gm_lvl >= ( type -1 ? atcmd_binding[i]->level2 : atcmd_binding[i]->level ) ) { + unsigned int slen = strlen(atcmd_binding[i]->command); + if ( count_bind == 0 ) { + cur = line_buff; + memset(line_buff,' ',CHATBOX_SIZE); + line_buff[CHATBOX_SIZE-1] = 0; + clif_displaymessage(fd, "-----------------"); + clif_displaymessage(fd, "Customs commands :"); + } + if (slen + cur - line_buff >= CHATBOX_SIZE) { + clif_displaymessage(fd,line_buff); + cur = line_buff; + memset(line_buff,' ',CHATBOX_SIZE); + line_buff[CHATBOX_SIZE-1] = 0; + } + memcpy(cur,atcmd_binding[i]->command,slen); + cur += slen+(10-slen%10); + count_bind++; + } + } + if ( count_bind ) + clif_displaymessage(fd,line_buff);// last one + count += count_bind; + + } + sprintf(atcmd_output, msg_txt(sd,274), count); // "%d commands found." clif_displaymessage(fd, atcmd_output);