スキルソース


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#=================================================
# スキル一覧
#=================================================
# 属性…物理攻撃→攻、魔法攻撃→魔、ブレス→息、踊る→踊
# 状態異常…麻痺、眠り、猛毒、混乱、魔封、踊封、動封
# 「$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);		}],
);
}
}