スキルソース

「スキルソース」の編集履歴(バックアップ)一覧はこちら

スキルソース」(2011/03/29 (火) 19:55:53) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#================================================= # スキル一覧 #================================================= # 属性…物理攻撃→攻、魔法攻撃→魔、ブレス→息、踊る→踊 # 状態異常…麻痺、眠り、猛毒、混乱、魔封、踊封、動封 # 「$is_add_effect = 1;」は、攻撃+状態異常などで使用。「~をかわした」のメッセージが表示されなくなる。 #================================================= sub skill_0 { # 敵用てんしょん、ぼうぎょ。攻撃する確立が下がってしまうので、こうげきの配列を追加 return ( # [必要SP, 使用MP, 'スキル名(@****)', sub{ プログラム処理 }], [8, 0, 'こうげき', sub{ &kougeki }], [9, 0, 'こうげき', sub{ &kougeki }], [10, 0, 'こうげき', sub{ &kougeki }], [20, 0, 'てんしょん', sub{ &tenshon($m) }], [30, 0, 'ぼうぎょ', sub{ $ms{$m}{tmp} = '防御'; $com.=qq|<span class="tmp">$mは身を固めている</span>|; }], ); } sub skill_1 { # 戦士 if($m{sex} eq 'm'){ return ( [5, 5, 'かぶとわり', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_down($y, 0.15, '攻', 'df'); }], [25, 3, 'だいぼうぎょ', sub{ $ms{$m}{tmp}='大防御'; $com.=qq|<span class="tmp">$mは守りのかまえをとった!</span>|; }], [25, 8, 'ちからをためる', sub{ &_st_up($m, 1.0, '攻', 'at'); }], [35, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.4, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [50, 5, 'がんせきなげ', sub{ &_damages(90, '攻', 1); }], [70, 10, 'まじんぎり', sub{ rand(2) < 1 ? &_damage(shift, $ms{$m}{at} * 3, '攻') : &_damage(shift, 20, '攻'); }], [80, 50, 'さいきょーぎり', sub{ rand(3) < 1 ? &_damage(shift, $ms{$m}{at} * 4, '攻') : &_damage(shift, 20, '攻'); }], ); } else{ return ( [5, 5, 'かぶとわり', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_down($y, 0.15, '攻', 'df'); }], [8, 0, 'かばう', sub{ my($y) = &_check_party(shift, 'かばう', '攻'); return if !$y || $y eq $m; $ms{$m}{tmp} = 'かばい中'; $ms{$y}{tmp} = 'かばう'; $com.=qq|<span class="tmp">$mは$yをかばっている</span>|; }], [25, 8, 'ちからをためる', sub{ &_st_up($m, 1.0, '攻', 'at'); }], [30, 6, 'メタルぎり', sub{ &_damage(shift, $ms{$m}{at}*0.4, '無', 1); }], [50, 5, 'がんせきなげ', sub{ &_damages(90, '攻', 1); }], [70, 50, 'いんせきなげ', sub{ &_damages(160, '攻', 1); }], [80, 10, 'まじんぎり', sub{ rand(2) < 1 ? &_damage(shift, $ms{$m}{at} * 3, '攻') : &_damage(shift, 20, '攻'); }], ); } } sub skill_2 { # 剣士 if($m{sex} eq 'm'){ return ( [5, 3, 'しんくうぎり', sub{ &_damage(shift, $ms{$m}{ag}*1.5, '攻'); }], [10, 4, 'みねうち', sub{ &_st_d(shift, '動封', '攻', 80); }], [10, 6, 'かえんぎり', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.2, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, 'やけど', '攻', 35); }], [50, 6, 'メタルぎり', sub{ &_damage(shift, $ms{$m}{at}*0.4, '無', 1); }], [80, 12, 'はやぶさぎり', sub{ my $y = shift; for my $i (1..2) { last if $ms{$m}{hp} <= 0; &_damage($y, $ms{$m}{ag}*2.2, '攻'); }; }], [100, 22, 'れんぞくぎり', sub{ my $v = int(rand(3)+2); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at} * 1, '攻'); }; }], ); } else{ return ( [5, 3, 'しんくうぎり', sub{ &_damage(shift, $ms{$m}{ag}*1.4, '攻'); }], [10, 4, 'みねうち', sub{ &_st_d(shift, '動封', '攻', 60); }], [20, 5, 'うけながし', sub{ $ms{$m}{tmp} = '受流し'; $com.=qq|<span class="tmp">$mは攻撃を受流すかまえをとった</span>|; }], [30, 0, 'かばう', sub{ my($y) = &_check_party(shift, 'かばう', '攻'); return if !$y || $y eq $m; $ms{$m}{tmp} = 'かばい中'; $ms{$y}{tmp} = 'かばう'; $com.=qq|<span class="tmp">$mは$yをかばっている</span>|; }], [50, 6, 'メタルぎり', sub{ &_damage(shift, $ms{$m}{at}*0.4, '無', 1); }], [80, 12, '鎧突き', sub{ &_damage(shift, $ms{$m}{at}*0.9, '攻', 1); }], [100, 22, 'なぎはらい', sub{ &_damages($ms{$m}{at}*1.3, '攻'); }], ); } } sub skill_3 { # 騎士 if($m{sex} eq 'm'){ return ( [1, 0, 'におうだち', sub{ $ms{$m}{tmp} = 'かばい中'; for my $y (@partys) { next if $m eq $y; $ms{$y}{tmp} = 'かばう'; }; $com.=qq|<span class="tmp">$mは仲間の前に立ちはだかった!</span>|; }], [5, 2, 'まもりをかためる', sub{ &_st_up($m, 0.4, '攻', 'df'); }], [15, 5, 'すてみ', sub{ $com.=qq|<span class="tmp">$mは守りを気にせずすてみで攻撃!</span>|; &_damage(shift, $ms{$m}{at}*2, '攻'); $ms{$m}{tmp}='2倍'; }], [25, 3, 'だいだいぼうぎょ', sub{ $ms{$m}{tmp}='『大防御』'; $com.=qq|<span class="tmp">$mは守りのかまえをとった!</span>|; }], [40, 7, 'スクルト', sub{ &_st_ups(0.25, '魔', 'df'); }], [60, 1, 'メガザル', sub{ $com.=qq|<span class="die">$mは自分の命をささげました!</span>|; for my $y (@partys) { next if $m eq $y; $com .= $ms{$y}{hp} > 0 ? qq|$yの$e2j{hp}が<span class="heal">全回復</span>した!| : qq|<span class="revive">$yが生き返った!</span>|; $ms{$y}{hp} = $ms{$y}{mhp}; }; &defeat($m); $ms{$m}{mp} = 1; }], [80, 18, 'グランドクロス', sub{ &_damages($ms{$m}{df} * 1.5, '攻'); }], ); } else{ return ( [1, 0, 'かばう', sub{ my($y) = &_check_party(shift, 'かばう', '攻'); return if !$y || $y eq $m; $ms{$m}{tmp} = 'かばい中'; $ms{$y}{tmp} = 'かばう'; $com.=qq|<span class="tmp">$mは$yをかばっている</span>|; }], [10, 30, 'きしのまもり', sub{ return if &is_bad_state('攻'); for my $y (@partys) { next if $ms{$y}{hp} <= 0; $ms{$y}{tmp} = '『攻軽減』'; $com.=qq|<span class="tmp">$yは守られた!</span>|;}; }], [15, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [25, 3, 'だいぼうぎょ', sub{ $ms{$m}{tmp}='大防御'; $com.=qq|<span class="tmp">$mは守りのかまえをとった!</span>|; }], [40, 7, 'スクルト', sub{ &_st_ups(0.35, '魔', 'df'); }], [64, 10, 'ベホイミ', sub{ &_heal(shift, 120+$ms{$m}{mp} * 0.2, '魔'); }], [80, 18, 'グランドクロス', sub{ &_damages($ms{$m}{df} * 1.3, '攻'); }], ); } } sub skill_4 { # 武闘家 if($m{sex} eq 'm'){ return ( [1, 0, 'せいしんとういつ', sub{ $ms{$m}{hit}=95; $com.=qq|<span class="st_up">$mは心を落ちつかせ命中率が回復した</span>|; }], [5, 3, 'みかわしきゃく', sub{ &_st_up($m, 0.4, '攻', 'ag'); }], [14, 4, '硬体術', sub{ &_st_up($m, 0.5, '攻', 'df'); }], [25, 3, 'あしばらい', sub{ &_st_d(shift, '動封', '攻', 65); }], [50, 25, 'げだんまわしげり', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.8, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '動封', '攻', 45); }], [70, 15, 'せいけんづき', sub{ &_damage(shift, $ms{$m}{at}*1.5, '攻'); }], [100, 20, 'ばくれつけん', sub{ my $v = int(rand(3)+3); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at} * 1, '攻'); }; }], ); } else{ return ( [1, 0, 'せいしんとういつ', sub{ $ms{$m}{hit}=95; $com.=qq|<span class="st_up">$mは心を落ちつかせ命中率が回復した</span>|; }], [5, 3, 'みかわしきゃく', sub{ &_st_up($m, 0.4, '攻', 'ag'); }], [14, 4, '練気法', sub{ &_heal($m, 100, '攻'); $ms{$m}{hit} = 95; }], [25, 3, 'あしばらい', sub{ &_st_d(shift, '動封', '攻', 75); }], [70, 15, 'せいけんづき', sub{ &_damage(shift, $ms{$m}{at}*1.5, '攻'); }], [80, 34, 'じょうだんまわしげり', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.5, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_death($y, '即死', '攻', 25); }], [100, 20, 'ばくれつけん', sub{ my $v = int(rand(3)+3); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at} * 0.9, '攻'); }; }], ); } } sub skill_5 { # 僧侶 if($m{sex} eq 'm'){ return ( [1, 3, 'スカラ', sub{ &_st_up(shift, 0.4, '魔', 'df'); }], [3, 2, 'キアリー', sub{ &_st_h(shift, '猛毒', '魔'); }], [6, 3, 'ホイミ', sub{ &_heal(shift, 30+$ms{$m}{mp} * 0.1, '魔'); }], [12, 4, 'バギ', sub{ &_damages(rand(25)+10+$ms{$m}{mp} * 0.1, '魔', 1); }], [24, 10, 'ベホイミ', sub{ &_heal(shift, 90+$ms{$m}{mp} * 0.2, '魔'); }], [45, 10, 'バギマ', sub{ &_damages(rand(40)+25+$ms{$m}{mp} * 0.2, '魔', 1); }], [60, 10, 'ザオラル', sub{ my($y) = &_check_party(shift, '蘇生', '魔'); return if !$y || $ms{$y}{hp} > 0; if (rand(5) < 4) { $com.=qq|なんと、<span class="revive">$yが生き返りました!</span>|; $ms{$y}{hp}=int($ms{$y}{mhp} * 0.5); } else { $com.=qq|しかし、$yは生き返らなかった…|; }; }], [90, 33, 'バギクロス', sub{ &_damages(rand(115)+90+$ms{$m}{mp} * 0.4, '魔', 1); }], [100, 33, 'ベホマ', sub{ &_heal(shift, 899+$ms{$m}{mp} * 0.5, '魔'); }], ); } else{ return ( [1, 3, 'スカラ', sub{ &_st_up(shift, 0.4, '魔', 'df'); }], [3, 2, 'キアリー', sub{ &_st_h(shift, '猛毒', '魔'); }], [6, 3, 'ホイミ', sub{ &_heal(shift, 30+$ms{$m}{mp} * 0.1, '魔'); }], [12, 4, 'バギ', sub{ &_damages(rand(25)+10+$ms{$m}{mp} * 0.2, '魔', 1); }], [15, 2, 'マホトラ', sub{ my($y, $v) = &_st_down(shift, 0.25, '魔', 'mp'); return if !$y; &_mp_h($m, $v, '魔'); }], [24, 10, 'ベホイミ', sub{ &_heal(shift, 110+$ms{$m}{mp} * 0.22, '魔'); }], [45, 10, 'バギマ', sub{ &_damages(rand(40)+25+$ms{$m}{mp} * 0.2, '魔', 1); }], [60, 10, 'ザオラル', sub{ my($y) = &_check_party(shift, '蘇生', '魔'); return if !$y || $ms{$y}{hp} > 0; if (rand(5) < 4) { $com.=qq|なんと、<span class="revive">$yが生き返りました!</span>|; $ms{$y}{hp}=int($ms{$y}{mhp} * 0.5); } else { $com.=qq|しかし、$yは生き返らなかった…|; }; }], [100, 30, 'ベホマ', sub{ &_heal(shift, 999+$ms{$m}{mp} * 0.5, '魔'); }], ); } } sub skill_6 { # 魔法使い if($m{sex} eq 'm'){ return ( [1, 2, 'メラ', sub{ &_damage(shift, 20+$ms{$m}{mp} * 0.1, '魔', 1); }], [4, 4, 'ルカニ', sub{ &_st_down(shift, 0.4, '魔', 'df'); }], [8, 5, 'ギラ', sub{ &_damages(25+$ms{$m}{mp} * 0.1, '魔', 1); }], [14, 7, 'マヌーサ', sub{ &_st_downs(0.2, '魔', 'hit'); }], [20, 8, 'メラミ', sub{ &_damage(shift, 70+$ms{$m}{mp} * 0.2, '魔', 1); }], [20, 0, 'きゅうけい', sub{ &_mp_h($m, 20, '魔'); }], [30, 8, 'ラリホー', sub{ &_st_d(shift, '眠り', '魔', 55); }], [55, 11, 'ベギラマ', sub{ &_damages(60+$ms{$m}{mp} * 0.2, '魔', 1) }], [90, 30, 'メラゾーマ', sub{ &_damage(shift, 220+$ms{$m}{mp} * 0.5, '魔', 1); }], ); } else{ return ( [1, 2, 'メラ', sub{ &_damage(shift, 20+$ms{$m}{mp} * 0.1, '魔', 1); }], [4, 4, 'ルカニ', sub{ &_st_down(shift, 0.4, '魔', 'df'); }], [8, 5, 'ギラ', sub{ &_damages(25+$ms{$m}{mp} * 0.1, '魔', 1); }], [14, 7, 'マヌーサ', sub{ &_st_downs(0.2, '魔', 'hit'); }], [20, 8, 'メラミ', sub{ &_damage(shift, 70+$ms{$m}{mp} * 0.2, '魔', 1); }], [30, 8, 'ラリホー', sub{ &_st_d(shift, '眠り', '魔', 55); }], [55, 11, 'ベギラマ', sub{ &_damages(60+$ms{$m}{mp} * 0.2, '魔', 1) }], [74, 10, 'ベホイミ', sub{ &_heal(shift, 90, '魔'); }], [90, 30, 'メラゾーマ', sub{ &_damage(shift, 220+$ms{$m}{mp} * 0.5, '魔', 1); }], ); } } sub skill_7 { # 商人 if($m{sex} eq 'm'){ return ( [2, 2, 'まもりをかためる', sub{ &_st_up($m, 0.4, '攻', 'df'); }], [7, 5, 'うちでのこづち', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.1, '攻'); return if !$y; $v = int($v * 0.2)+25; $m{money}+=$v; $com.="$v Gを手に入れました!"; }], [12, 6, 'すなけむり', sub{ &_st_downs(0.2, '息', 'hit'); }], [20, 0, 'とうぞくのはな', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); if ($y =~ /^@.+宝箱.$/) { my $item_name = $ms{$y}{get_money} eq '0' ? 'からっぽ' : $ms{$y}{get_exp} eq '1' ? $weas[$ms{$y}{get_money}][1] : $ms{$y}{get_exp} eq '2' ? $arms[$ms{$y}{get_money}][1] : $ites[$ms{$y}{get_money}][1]; $com.="宝箱の中身は $item_name のようだ…"; } else { my @smells=(qw/いい おいしそうな バラの あまい 変な やばい さわやかな ワイルドな/); my $v=int(rand(@smells)); $com.="$yは $smells[$v] においがする"; }; }], [35, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [45, 1, 'マホアゲル', sub{ my($y) = &_check_party(shift, '魔与', '魔'); return if !$y; my$v = int($ms{$m}{mp} * 0.5); $v = 100 if $v >= 100; $ms{$m}{mp} -= $v; $com.= qq|$mは$e2j{mmp}を$yに <span class="heal">$v</span> あたえた!|; &_mp_h($y, $v, '魔'); }], [65, 7, 'メダパニダンス', sub{ &_st_ds('混乱', '踊', 60); }], [80, 1, 'メガンテ', sub{ $com.=qq|<span class="die">$mは自爆した!</span>|; &_deaths('即死', '無', 60); &defeat($m); $ms{$m}{mp} = 1; }], ); } else{ return ( [2, 2, 'まもりをかためる', sub{ &_st_up($m, 0.4, '攻', 'df'); }], [7, 1, 'ゴールドハンマー', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*0.8, '攻'); return if !$y; $v = int($v * 0.1)+5; $m{money}+=$v; $com.="$v Gを手に入れました!"; }], [12, 6, 'すなけむり', sub{ &_st_downs(0.2, '息', 'hit'); }], [20, 0, 'とうぞくのはな', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); if ($y =~ /^@.+宝箱.$/) { my $item_name = $ms{$y}{get_money} eq '0' ? 'からっぽ' : $ms{$y}{get_exp} eq '1' ? $weas[$ms{$y}{get_money}][1] : $ms{$y}{get_exp} eq '2' ? $arms[$ms{$y}{get_money}][1] : $ites[$ms{$y}{get_money}][1]; $com.="宝箱の中身は $item_name のようだ…"; } else { my @smells=(qw/いい おいしそうな バラの あまい 変な やばい さわやかな ワイルドな/); my $v=int(rand(@smells)); $com.="$yは $smells[$v] においがする"; }; }], [35, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [45, 1, 'マホアゲル', sub{ my($y) = &_check_party(shift, '魔与', '魔'); return if !$y; my$v = int($ms{$m}{mp} * 0.5); $v = 100 if $v >= 100; $ms{$m}{mp} -= $v; $com.= qq|$mは$e2j{mmp}を$yに <span class="heal">$v</span> あたえた!|; &_mp_h($y, $v, '魔'); }], [65, 7, 'メダパニダンス', sub{ &_st_ds('混乱', '踊', 60); }], [70, 0, 'パフパフ', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='動封'; $ms{$y}{ten}=1; $com.=qq|$mは$yにパフパフをした!<span class="state">$yは動きが止まった!</span>|; }], [80, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.="$mは眠りだした"; &_heal($m, $ms{$m}{mhp}*0.5); }], ); } } sub skill_8 { # 遊び人 if($m{sex} eq 'm'){ return ( [1, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.="$mは眠りだした"; &_heal($m, $ms{$m}{mhp}*0.5); }], [4, 0, 'なげきっす', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='麻痺'; $ms{$y}{ten}=1; $com.=qq|$mは$yに投げキッスをし<span class="state">$yは痺れました!</span>|; }], [8, 0, 'うほ', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='猛毒'; $ms{$y}{ten}=1; $com.=qq|$mは$yにパフパフをした!<span class="state">$yは性病にかかってしまいました!</span>|; }], [12, 0, 'きけんなあそび', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='猛毒'; $ms{$y}{ten}=1; $com.=qq|$mの危険な遊びにより<span class="state">$yは猛毒になりました!</span>|; }], [18, 0, 'ちょうはつ', sub{ for my $y (@members) { next if $ms{$y}{hp} <= 0 || $m eq $y || rand(2) < 1; &tenshon($y); }; }], [24, 0, 'からかう', sub{ my $y = shift; ($y) = defined($ms{$y}{name}) ? $y : &_check_enemy($y, 'テン', '無'); &tenshon($y); }], [36, 0, 'いっぱつぎゃぐ', sub{ my @gags = ('教会に行くのは今日かい?','ルカナンでも唱えるかなん♪','そんなステテコパンツもうステテコい!','スカラを使ってすかられた','アンタそうりょかい?そうりょ','やくそうをこんがりやくぞう♪','賢者を発見じゃ!'); my $gag = $gags[int(rand(@gags))]; $com.="『$gag』…"; for my $y (@members) { next if $y eq $m; next if rand(3) < 1; $com.="$yは笑い転げた!"; $ms{$y}{state}='動封'; $ms{$y}{ten}=1; }; }], [50, 0, 'クールジョーク', sub{ for my $y (@enemys) { $ms{$y}{ten} = 1; }; $com.="全員のテンションが下がった…"; }], ); } else{ return ( [1, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.="$mは眠りだした"; &_heal($m, $ms{$m}{mhp}*0.5); }], [4, 0, 'なげきっす', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='麻痺'; $ms{$y}{ten}=1; $com.=qq|$mは$yに投げキッスをし<span class="state">$yは痺れました!</span>|; }], [8, 0, 'パフパフ', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='動封'; $ms{$y}{ten}=1; $com.=qq|$mは$yにパフパフをした!<span class="state">$yは動きが止まった!</span>|; }], [12, 0, 'きけんなあそび', sub{ my $y=$members[int(rand(@members))]; $ms{$y}{state}='猛毒'; $ms{$y}{ten}=1; $com.=qq|$mの危険な遊びにより<span class="state">$yは猛毒になりました!</span>|; }], [13, 3, 'ふしぎなおどり', sub{ &_st_down(shift, 0.4, '踊', 'mp'); }], [24, 0, 'からかう', sub{ my $y = shift; ($y) = defined($ms{$y}{name}) ? $y : &_check_enemy($y, 'テン', '無'); &tenshon($y); }], [36, 0, 'いっぱつぎゃぐ', sub{ my @gags = ('教会に行くのは今日かい?','ルカナンでも唱えるかなん♪','そんなステテコパンツもうステテコい!','スカラを使ってすかられた','アンタそうりょかい?そうりょ','やくそうをこんがりやくぞう♪','賢者を発見じゃ!'); my $gag = $gags[int(rand(@gags))]; $com.="『$gag』…"; for my $y (@members) { next if $y eq $m; next if rand(3) < 1; $com.="$yは笑い転げた!"; $ms{$y}{state}='動封'; $ms{$y}{ten}=1; }; }], [50, 0, 'クールジョーク', sub{ for my $y (@enemys) { $ms{$y}{ten} = 1; }; $com.="全員のテンションが下がった…"; }], ); } } sub skill_9 { # 盗賊 if($m{sex} eq 'm'){ return ( [3, 3, 'ボミエ', sub{ &_st_down(shift, 0.4, '魔', 'ag'); }], [6, 3, 'ピオラ', sub{ &_st_up(shift, 0.4, '魔', 'ag'); }], [12, 7, 'いしつぶて', sub{ &_st_ds('混乱', '息', 45); }], [20, 0, 'とうぞくのはな', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); if ($y =~ /^@.+宝箱.$/) { my $item_name = $ms{$y}{get_money} eq '0' ? 'からっぽ' : $ms{$y}{get_exp} eq '1' ? $weas[$ms{$y}{get_money}][1] : $ms{$y}{get_exp} eq '2' ? $arms[$ms{$y}{get_money}][1] : $ites[$ms{$y}{get_money}][1]; $com.="宝箱の中身は $item_name のようだ…"; } else { my @smells=(qw/いい おいしそうな バラの あまい 変な やばい さわやかな ワイルドな/); my $v=int(rand(@smells)); $com.="$yは $smells[$v] においがする"; }; }], [35, 9, 'あまいいき', sub{ &_st_ds('眠り', '息', 35); }], [50, 1, 'インパス', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); $com.="<br />$y $e2j{mhp}:$ms{$y}{hp}/$ms{$y}{mhp}, $e2j{mmp}:$ms{$y}{mp}/$ms{$y}{mmp}, $e2j{at}:$ms{$y}{mat}, $e2j{df}:$ms{$y}{mdf}, $e2j{ag}:$ms{$y}{mag}"; }], [70, 8, 'まひこうげき', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.2, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '麻痺', '攻', 30); }], [90, 22, '電光石火', sub{ my $y = shift; for my $i (1..2) { last if $ms{$m}{hp} <= 0; &_damage($y, $ms{$m}{at}*1.5, '攻'); }; }], ); } else{ return ( [1, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.="$mは眠りだした"; &_heal($m, $ms{$m}{mhp}*0.5); }], [6, 3, 'ピオラ', sub{ &_st_up(shift, 0.4, '魔', 'ag'); }], [12, 7, 'いしつぶて', sub{ &_st_ds('混乱', '息', 45); }], [20, 0, 'とうぞくのはな', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); if ($y =~ /^@.+宝箱.$/) { my $item_name = $ms{$y}{get_money} eq '0' ? 'からっぽ' : $ms{$y}{get_exp} eq '1' ? $weas[$ms{$y}{get_money}][1] : $ms{$y}{get_exp} eq '2' ? $arms[$ms{$y}{get_money}][1] : $ites[$ms{$y}{get_money}][1]; $com.="宝箱の中身は $item_name のようだ…"; } else { my @smells=(qw/いい おいしそうな バラの あまい 変な やばい さわやかな ワイルドな/); my $v=int(rand(@smells)); $com.="$yは $smells[$v] においがする"; }; }], [35, 9, 'あまいいき', sub{ &_st_ds('眠り', '息', 35); }], [50, 1, 'インパス', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); $com.="<br />$y $e2j{mhp}:$ms{$y}{hp}/$ms{$y}{mhp}, $e2j{mmp}:$ms{$y}{mp}/$ms{$y}{mmp}, $e2j{at}:$ms{$y}{mat}, $e2j{df}:$ms{$y}{mdf}, $e2j{ag}:$ms{$y}{mag}"; }], [80, 4, 'どくこうげき', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.1, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '猛毒', '攻', 50); }], [90, 15, 'アーマーブレイク', sub{ my($y) = &_check_enemy(shift, '破壊', '攻'); return if !$y; $ms{$y}{tmp}=''; $ms{$y}{ten}=1; $ms{$y}{df}=$ms{$y}{mdf}; $com.="$yの防具の強さを封じた!"; &_st_down($y, 0.1, '攻', 'df'); }], ); } } sub skill_10 { # 羊使い if($m{sex} eq 'm'){ return ( [1, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.=qq|<span class="state">$mは眠りだした</span>|; &_heal($m, $ms{$m}{mhp}*0.5); }], [3, 3, 'スカラ', sub{ &_st_up(shift, 0.4, '魔', 'df'); }], [10, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [20, 13, 'ころがる', sub{ &_damages($ms{$m}{df} * 0.9, '攻'); }], [40, 9, 'ねむりのうた', sub{ &_st_ds('眠り', '歌', 45); }], [60, 1, 'マホキテ', sub{ return if &is_bad_state('魔'); $ms{$m}{tmp} = '魔吸収'; $com.=qq|<span class="tmp">$mは不思議な光に包まれた!</span>|; }], [80, 7, 'ウールガード', sub{ &_st_up($m, 0.5, '無', 'df'); $ms{$m}{tmp} = '魔軽減'; $com.=qq|<span class="tmp">$mは魔法の光で守られた!</span>|; }], [100, 20, 'どとうのひつじ', sub{ my $v = int(rand(3)+2); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{ag} * 1.6, '攻'); }; }], ); } else{ return ( [1, 2, 'どくちりょう', sub{ &_st_hs('猛毒', '無'); }], [1, 0, 'ねる', sub{ $ms{$m}{state}='眠り'; $com.=qq|<span class="state">$mは眠りだした</span>|; &_heal($m, $ms{$m}{mhp}*0.5); }], [3, 3, 'スカラ', sub{ &_st_up(shift, 0.4, '魔', 'df'); }], [10, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df} * 1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [20, 10, 'ベホイミ', sub{ &_heal(shift, 90+$ms{$m}{mp} * 0.2, '魔'); }], [40, 9, 'ねむりのうた', sub{ &_st_ds('眠り', '歌', 45); }], [60, 1, 'マホキテ', sub{ return if &is_bad_state('魔'); $ms{$m}{tmp} = '魔吸収'; $com.=qq|<span class="tmp">$mは不思議な光に包まれた!</span>|; }], [80, 7, 'ウールガード', sub{ &_st_up($m, 0.5, '無', 'df'); $ms{$m}{tmp} = '魔軽減'; $com.=qq|<span class="tmp">$mは魔法の光で守られた!</span>|; }], [100, 20, 'どとうのひつじ', sub{ my $v = int(rand(3)+2); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{ag} * 1.6, '攻'); }; }], ); } } sub skill_11 { # 弓使い if($m{sex} eq 'm'){ return ( [5, 3, 'かげぬい', sub{ &_st_d(shift, '動封', '攻', 80); }], [10, 0, 'せいしんとういつ', sub{ $ms{$m}{hit}=95; $com.=qq|<span class="st_up">$mは心を落ちつかせ命中率が回復した</span>|; }], [20, 8, 'でたらめや', sub{ &_damages($ms{$m}{ag}*1.4, '攻'); }], [40, 4, 'ようせいのや', sub{ my($y, $v) = &_st_down(shift, 0.15, '攻', 'mp'); return if !$y; &_mp_h($m, $v, '攻'); }], [90, 20, 'ラリホーアロー', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.1, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '眠り', '攻', 45); }], [100, 24, 'みだれうち', sub{ my $v = int(rand(2)+3); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at} * 0.85, '攻'); }; }], [110, 18, 'ヘッドショット', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.4, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_death($y, '即死', '攻', 20); }], ); } else{ return ( [5, 3, 'かげぬい', sub{ &_st_d(shift, '動封', '攻', 80); }], [10, 0, 'せいしんとういつ', sub{ $ms{$m}{hit}=95; $com.=qq|<span class="st_up">$mは心を落ちつかせ命中率が回復した</span>|; }], [20, 8, 'でたらめや', sub{ &_damages($ms{$m}{ag}*1.4, '攻'); }], [40, 4, 'ようせいのや', sub{ my($y, $v) = &_st_down(shift, 0.15, '攻', 'mp'); return if !$y; &_mp_h($m, $v, '攻'); }], [60, 6, 'フラッシュアロー', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.2, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_down($y, 0.07, '攻', 'hit'); }], [70, 18, 'ドレインアロー', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y; &_heal($m, $v, '攻'); }], [110, 24, 'みだれうち', sub{ my $v = int(rand(2)+3); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at} * 0.85, '攻'); }; }], ); } } sub skill_12 { # 魔物使い if($m{sex} eq 'm'){ return ( [3, 2, 'ひのいき', sub{ &_damages(28+$ms{$m}{hp} * 0.25, '息', 1); }], [10, 7, 'もうどくのきり', sub{ &_st_ds('猛毒', '息', 50); }], [18, 5, 'かえんのいき', sub{ &_damages(70+$ms{$m}{hp} * 0.35, '息', 1); }], [32, 11, 'しびれうち', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.1, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '麻痺', '攻', 40); }], [50, 5, 'なめまわす', sub{ &_st_d(shift, '動封', '攻', 85); }], [80, 18, 'はげしいほのお', sub{ &_damages(160+$ms{$m}{hp} * 0.48, '息', 1); }], [110, 12, 'そうりゅううち', sub{ my $y = shift; for my $i (1..2) { last if $ms{$m}{hp} <= 0; &_damage($y, $ms{$m}{at}*1.6, '攻'); }; }], ); } else{ return ( [3, 2, 'ひのいき', sub{ &_damages(28+$ms{$m}{hp} * 0.25, '息', 1); }], [10, 7, 'もうどくのきり', sub{ &_st_ds('猛毒', '息', 60); }], [18, 5, 'かえんのいき', sub{ &_damages(70+$ms{$m}{hp} * 0.35, '息', 1); }], [32, 11, 'しびれうち', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.1, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '麻痺', '攻', 40); }], [50, 5, 'なめまわす', sub{ &_st_d(shift, '動封', '攻', 85); }], [80, 14, 'はげしいほのお', sub{ &_damages(110+$ms{$m}{hp} * 0.43, '息', 1); }], [110, 20, '捕食', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y; &_heal($m, $v, '攻'); }], ); } } sub skill_13 { # 吟遊詩人 return ( [5, 3, 'ふしぎなうた', sub{ &_st_downs(0.25, '歌', 'mp'); }], [15, 4, 'いやしのうた', sub{ &_heals(100+$ms{$m}{mp}*0.1, '歌'); }], [30, 5, 'めざめのうた', sub{ &_st_hs('眠り', '歌'); }], [40, 6, 'まもりのうた', sub{ &_st_ups(0.4, '歌', 'df'); }], [60, 9, 'ねむりのうた', sub{ &_st_ds('眠り', '歌', 50); }], [79, 30, 'はめつのうた', sub{ &_damages(150+$ms{$m}{mmp} * 0.4, '歌', 1); }], [85, 10, '強いやしのうた', sub{ &_heals(250+$ms{$m}{mp}*0.3, '歌'); }], [90, 10, 'たたかいのうた', sub{ &_st_ups(0.6, '歌', 'at'); }], ); } sub skill_14 { # 踊り子 return ( [4, 3, 'みかわしきゃく', sub{ &_st_up($m, 0.4, '踊', 'ag'); }], [9, 3, 'ふしぎなおどり', sub{ &_st_down(shift, 0.4, '踊', 'mp'); }], [16, 5, 'うけながし', sub{ $ms{$m}{tmp} = '受流し'; $com.=qq|<span class="tmp">$mは攻撃を受流すかまえをとった</span>|; }], [30, 9, 'ムーンサルト', sub{ &_damages($ms{$m}{at}*0.8, '攻'); }], [45, 1, 'メガザルダンス', sub{ $com.="$mの命をかけた踊り!"; for my $y (@partys) { next if $m eq $y; $com .= $ms{$y}{hp} > 0 ? qq|$yの$e2j{hp}が<span class="heal">全回復</span>した!| : qq|<span class="revive">$yが生き返った!</span>|; $ms{$y}{hp} = $ms{$y}{mhp}; }; &defeat($m); $ms{$m}{mp} = 1; $com.=qq|<span class="die">$mは力尽きた…</span>|; }], [70, 16, 'つるぎのまい', sub{ my $v = int(rand(3)+2); for my $i (1..$v) { last if $ms{$m}{hp} <= 0; &_damage(undef, $ms{$m}{at}*0.8, '踊'); }; }], [100, 12, 'ハッスルダンス', sub{ &_heals(140, '踊'); }], ); } sub skill_15 { # 黒魔道士 return ( [5, 6, 'ポイズン', sub{ $is_add_effect = 1; my($y) = &_damage(shift, 30+$ms{$m}{mp} * 0.1, '魔', 1); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '猛毒', '魔', 80); }], [10, 5, 'ファイア', sub{ &_damage(shift, 35+$ms{$m}{mp} * 0.1, '魔', 1); }], [20, 8, 'スリプル', sub{ &_st_d(shift, '眠り', '魔', 55); }], [40, 7, 'リフレク', sub{ my($y) = &_check_party(shift, '魔反撃', '魔'); return if !$y; $ms{$y}{tmp} = '魔反撃'; $com.=qq|<span class="tmp">$yは魔法の壁で守られた!</span>|; }], [60, 3, 'アスピル', sub{ my($y, $v) = &_st_down(shift, 0.2, '魔', 'mp'); return if !$y; &_mp_h($m, $v, '魔'); }], [70, 3, 'チャージ', sub{ $ms{$m}{tmp} = 'チャージ中'; $com.="$mは魔力をチャージした!"; }], [80, 16, 'ドレイン', sub{ my($y, $v) = &_damage(shift, rand(100)+50+$ms{$m}{mp} * 0.3, '魔', 1); return if !$y; &_heal($m, $v, '魔'); }], [100, 15, 'サンダー', sub{ $is_add_effect = 1; my($y) = &_damage(shift, 125+$ms{$m}{mp} * 0.3, '魔', 1); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '麻痺', '魔', 35); }], [130, 40, 'フレア', sub{ &_damage(shift, 260+$ms{$m}{mp} * 0.52, '魔', 1); }], ); } sub skill_16 { # 白魔道士 return ( [5, 5, 'ケアル', sub{ &_heal(shift, 60+$ms{$m}{mp} * 0.1, '魔'); }], [10, 2, 'ライブラ', sub{ my $y = shift; $y = $members[int(rand(@members))] if !defined($ms{$y}{name}); $com.="<br />$y $e2j{mhp}:$ms{$y}{hp}/$ms{$y}{mhp}, $e2j{mmp}:$ms{$y}{mp}/$ms{$y}{mmp}, $e2j{at}:$ms{$y}{mat}, $e2j{df}:$ms{$y}{mdf}, $e2j{ag}:$ms{$y}{mag}"; }], [15, 6, 'サイレス', sub{ &_st_d(shift, '魔封', '魔', 90); }], [30, 18, 'ケアルラ', sub{ &_heal(shift, 180+$ms{$m}{mp} * 0.2, '魔'); }], [60, 20, 'リレイズ', sub{ my($y) = &_check_party(shift, '復活', '魔'); return if !$y; $ms{$y}{tmp}='復活'; $com.=qq|<span class="tmp">$yは天使の加護がついた!</span>|; }], [80, 5, 'シェル', sub{ my($y) = &_check_party(shift, '魔軽減', '魔'); return if !$y; $ms{$y}{tmp}='魔軽減'; $com.=qq|<span class="tmp">$yは魔法の光で守られた!</span>|; }], [90, 24, 'ザコルガ', sub{ &_heal(shift, 250+$ms{$m}{mp} * 0.3, '魔'); }], [100, 30, 'レイズ', sub{ my($y) = &_check_party(shift, '蘇生', '魔'); return if !$y || $ms{$y}{hp} > 0; $com.=qq|なんと、<span class="revive">$yが生き返りました!</span>|; $ms{$y}{hp}=int($ms{$y}{mhp}*0.25); }], [140, 35, 'ホーリー', sub{ &_damage(shift, 180+$ms{$m}{mp} * 0.3, '魔', 1); }], ); } sub skill_17 { # 聖騎士 return ( [10, 0, 'かばう', sub{ my($y) = &_check_party(shift, 'かばう', '攻'); return if !$y || $y eq $m; $ms{$m}{tmp} = 'かばい中'; $ms{$y}{tmp} = 'かばう'; $com.=qq|<span class="tmp">$mは$yをかばっている</span>|; }], [20, 3, 'ホイミ', sub{ &_heal(shift, 30+$ms{$m}{mp} * 0.1, '魔'); }], [40, 6, 'マジックバリア', sub{ return if &is_bad_state('魔'); for my $y (@partys) { return if $ms{$y}{hp} <= 0; $ms{$y}{tmp} = '魔軽減'; $com.=qq|<span class="tmp">$yは魔法の光で守られた!</span>|; }; }], [60, 5, 'キアリク', sub{ &_st_hs('麻痺', '魔'); }], [100, 1, 'メガザル', sub{ $com.=qq|<span class="die">$mは自分の命をささげました!</span>|; for my $y (@partys) { next if $m eq $y; $com .= $ms{$y}{hp} > 0 ? qq|$yの$e2j{hp}が<span class="heal">全回復</span>した!| : qq|<span class="revive">$yが生き返った!</span>|; $ms{$y}{hp} = $ms{$y}{mhp}; }; &defeat($m); $ms{$m}{mp} = 1; }], [130, 20, 'グランドクロス', sub{ &_damages($ms{$m}{df} * 1.5, '攻'); }], [140, 20, 'ホーリーソード', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.3, '攻'); return if !$y; &_heal($m, $v*0.5, '攻'); }], [160, 40, 'ザオリク', sub{ my($y) = &_check_party(shift, '蘇生', '魔'); return if !$y || $ms{$y}{hp} > 0; $com.=qq|なんと、<span class="revive">$yが生き返りました!</span>|; $ms{$y}{hp}=$ms{$y}{mhp}; }], ); } sub skill_18 { # 天使 return ( [5, 2, 'キアリー', sub{ &_st_h(shift, '猛毒', '魔'); }], [15, 6, 'おどりふうじ', sub{ &_st_ds('踊封', '踊', 70); }], [30, 5, 'めざめのうた', sub{ &_st_hs('眠り', '歌'); }], [50, 5, 'マホカンタ', sub{ my($y) = &_check_party(shift, '魔反撃', '魔'); return if !$y; $ms{$y}{tmp} = '魔反撃'; $com.=qq|<span class="tmp">$yは魔法の壁で守られた!</span>|; }], [40, 6, 'マジックバリア', sub{ return if &is_bad_state('魔'); for my $y (@partys) { return if $ms{$y}{hp} <= 0; $ms{$y}{tmp} = '魔軽減'; $com.=qq|<span class="tmp">$yは魔法の光で守られた!</span>|; }; }], [70, 27, 'てんしのうたごえ', sub{ for my $y (@partys) { next if $ms{$y}{hp} > 0; if (rand(2) < 1) { $com.=qq|なんと、<b>$y</b>が <span class="heal">生き返り</span> ました!|; $ms{$y}{hp}=int($ms{$y}{mhp} * 0.5); } else { $com.=qq|しかし、<b>$y</b>は生き返らなかった…|; }; }; }], [90, 25, 'ベホマラー', sub{ &_heals(120+$ms{$m}{mp} * 0.3, '魔'); }], [100, 30, 'うつくしいうたごえ', sub{ &_heals(140+$ms{$m}{hp} * 0.4, '歌'); }], [120, 30, 'ザオリク', sub{ my($y) = &_check_party(shift, '蘇生', '魔'); return if !$y || $ms{$y}{hp} > 0; $com.=qq|なんと、<span class="revive">$yが生き返りました!</span>|; $ms{$y}{hp}=$ms{$y}{mhp}; }], ); } sub skill_19 { # 闇魔道士 return ( [4, 7, 'ルカナン', sub{ &_st_downs(0.25, '魔', 'df'); }], [8, 5, 'マホカンタ', sub{ my($y) = &_check_party(shift, '魔反撃', '魔'); return if !$y; $ms{$y}{tmp} = '魔反撃'; $com.=qq|<span class="tmp">$yは魔法の壁で守られた!</span>|; }], [16, 10, 'メダパニ', sub{ &_st_ds('混乱', '魔', 40); }], [25, 14, 'ザキ', sub{ &_death(shift, '即死', '魔', 20); }], [40, 10, 'マホトーン', sub{ &_st_ds('魔封', '魔', 70); }], [60, 18, 'ベギラゴン', sub{ &_damages(125+$ms{$m}{mp} * 0.3, '魔', 1); }], [70, 2, 'マホトラ', sub{ my($y, $v) = &_st_down(shift, 0.25, '魔', 'mp'); return if !$y; &_mp_h($m, $v, '魔'); }], [90, 32, 'ザラキ', sub{ &_deaths('即死', '魔', 20); }], [100, 3, 'チャージ', sub{ $ms{$m}{tmp} = 'チャージ中'; $com.="$mは魔力をチャージした!"; }], [110, 44, 'アバダケダブラ', sub{ $is_add_effect = 1; my($y) = &_damage(shift, 160+$ms{$m}{mp} * 0.4, '魔', 1); return if !$y || $ms{$y}{hp} <= 0; &_death($y, '即死', '魔', 44); }], ); } sub skill_20 { # 悪魔 return ( [4, 4, 'さそうおどり', sub{ &_st_d(shift, '動封', '踊', 85); }], [9, 6, 'レディウィップ', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y; $v = int($v * 0.1); &_mp_h($m, $v, '攻'); }], [16, 6, 'マジックバリア', sub{ for my $y (@partys) { return if $ms{$y}{hp} <= 0; $ms{$y}{tmp} = '魔軽減'; $com.=qq|<span class="tmp">$yは魔法の光で守られた!</span>|; }; }], [20, 9, 'あまいいき', sub{ &_st_ds('眠り', '息', 35); }], [36, 7, 'メダパニダンス', sub{ &_st_ds('混乱', '踊', 60); }], [50, 4, 'あくまのきっす', sub{ &_st_d(shift, '麻痺', '攻', 60); }], [60, 24, 'しのおどり', sub{ &_deaths('即死', '踊', 17); }], [100, 18, 'クィーンウィップ', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.7, '攻'); return if !$y; $v = int($v * 0.5); &_heal($m, $v, '攻'); }], ); } sub skill_21 { # バーサーカー if($m{sex} eq 'm'){ return ( [10, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df}*1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [50, 8, 'ちからをためる', sub{ &_st_up($m, 1.0, '攻', 'at'); }], [40, 12, 'おたけび', sub{ &_st_ds('動封', '攻', 60); }], [60, 5, 'すてみ', sub{ $com.=qq|<span class="tmp">$mは守りを気にせずすてみで攻撃!</span>|; &_damage(shift, $ms{$m}{at}*2, '攻'); $ms{$m}{tmp}='2倍'; }], [80, 6, 'もろはぎり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.8, '攻'); return if $v <= 0; &_risk($v * 0.05); }], [110, 9, 'みなごろし', sub{ my $y= rand(4)<1 ? $partys[int rand @partys] : $enemys[int rand @enemys]; $y=$m if $ms{$y}{hp} <= 0; my $v = int( ($ms{$m}{at} * 3.0 - $ms{$y}{df} * 0.4) * ((rand(0.3)+0.9) * $ms{$m}{ten}) ); $v = int(rand(2)+1) if $v < 1; $ms{$m}{ten}=1; $ms{$y}{hp}-=$v; $ms{$y}{hp}=0 if $ms{$y}{hp}<0; $com.=qq|<b>$y</b>に <span class="damage">$v</span> のダメージ!|; if ($ms{$y}{hp} <= 0) { $ms{$y}{hp} = 0; $com .= qq!<span class="die">$yを倒した!</span>!; &defeat($y); } }], ); } else{ return ( [10, 4, 'たいあたり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{df}*1.6, '攻'); return if $v <= 0; &_risk($v * 0.07); }], [20, 5, 'うけながし', sub{ $ms{$m}{tmp} = '受流し'; $com.=qq|<span class="tmp">$m は攻撃を受流すかまえをとった</span>|; }], [40, 12, 'おたけび', sub{ &_st_ds('動封', '攻', 60); }], [60, 14, 'かみつく', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*0.9, '攻'); return if !$y; &_heal($m, $v, '攻'); }], [80, 6, 'もろはぎり', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.9, '攻'); return if $v <= 0; &_risk($v * 0.05); }], [110, 9, 'みなごろし', sub{ my $y= rand(4)<1 ? $partys[int rand @partys] : $enemys[int rand @enemys]; $y=$m if $ms{$y}{hp} <= 0; my $v = int( ($ms{$m}{at} * 3.0 - $ms{$y}{df} * 0.4) * ((rand(0.3)+0.9) * $ms{$m}{ten}) ); $v = int(rand(2)+1) if $v < 1; $ms{$m}{ten}=1; $ms{$y}{hp}-=$v; $ms{$y}{hp}=0 if $ms{$y}{hp}<0; $com.=qq|<b>$y</b>に <span class="damage">$v</span> のダメージ!|; if ($ms{$y}{hp} <= 0) { $ms{$y}{hp} = 0; $com .= qq!<span class="die">$yを倒した!</span>!; &defeat($y); } }], ); } } sub skill_22 { # 暗黒騎士 if($m{sex} eq 'm'){ return ( [10, 5, 'あんこく', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.5, '攻'); return if $v <= 0; $ms{$m}{hp} > 999 ? &_risk($v * 0.1) : &_risk($ms{$m}{hp} * 0.1); }], [20, 9, 'めいやく', sub{ my $v = int($ms{$m}{df} * 0.5); $ms{$m}{df} -= $v; $com.=qq|$mの<span class="st_down">$e2j{df}が $v さがりました!</span>|; &_st_up($m, 1.0, '無', 'at'); }], [40, 16, 'ナイトメア', sub{ &_st_ds('混乱', '魔', 50); }], [70, 10, 'ダークブレイク', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.2, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_down($y, 0.1, '攻', 'hit'); }], [100, 40, 'あんこくけん', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*2.2, '攻'); return if $v <= 0; $ms{$m}{hp} > 999 ? &_risk($v * 0.2) : &_risk($ms{$m}{hp} * 0.2); }], [140, 50, 'だいあんこくけん', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*2.9, '攻'); return if $v <= 0; $ms{$m}{hp} > 999 ? &_risk($v * 0.2) : &_risk($ms{$m}{hp} * 0.2); }], ); } else{ return ( [10, 5, 'あんこく', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*1.5, '攻'); return if $v <= 0; $ms{$m}{hp} > 999 ? &_risk($v * 0.1) : &_risk($ms{$m}{hp} * 0.1); }], [20, 9, 'めいやく', sub{ my $v = int($ms{$m}{df} * 0.5); $ms{$m}{df} -= $v; $com.=qq|$mの<span class="st_down">$e2j{df}が $v さがりました!</span>|; &_st_up($m, 1.0, '無', 'at'); }], [40, 16, 'ナイトメア', sub{ &_st_ds('混乱', '魔', 50); }], [60, 15, 'ナイトブレイク', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at} * 1.1, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_d($y, '眠り', '攻', 55); }], [70, 10, 'ダークブレイク', sub{ $is_add_effect = 1; my($y) = &_damage(shift, $ms{$m}{at}*1.2, '攻'); return if !$y || $ms{$y}{hp} <= 0; &_st_down($y, 0.1, '攻', 'hit'); }], [140, 40, 'あんこくけん', sub{ my($y, $v) = &_damage(shift, $ms{$m}{at}*2.24, '攻'); return if $v <= 0; $ms{$m}{hp} > 999 ? &_risk($v * 0.2) : &_risk($ms{$m}{hp} * 0.2); }], ); } }

表示オプション

横に並べて表示:
変化行の前後のみ表示: