『正規表現』というのは簡単に言えば文字の操作のことです。厳密にはちょっと違ったりしますけど。
使わなくても大体のことはできてしまうのですが、あるに越したことは無いです。
@パーティの中でも結構使われているので意味が分かれば改造の幅も広がるはず。
とりあえず、使う頻度が高そうなものをまとめてみました。
- if ( $sample =~ /任意の文字/ ){}
/と/に挟まれた文字列が$sampleに含まれていれば後の処理を実行します。
$sampleに含まれる「文字1」という部分を「文字2」 に置き換えます。
このままだと置き換えは一度しか行われません。最後の / の後に g をつけるとすべての「文字1」を置き換えるようにしてくれます。
また、文字を指定するときにちょっと特殊な表現をしてみましょう。
記号 |
効果 |
例 |
^ |
その文字で始まる場合 |
if $sample =~ /^a/; |
$ |
その文字で終わる場合 |
if $sample =~ /a$/; |
[a-z] |
小文字アルファベット |
if $sample =~ /[a-z]/; |
[0-9] |
小文字アルファベット |
if $sample =~ /[0-9]/; |
まだまだ正規表現はたくさんの処理ができるのですが、正直このくらいしか使ってないのでここで終わりに。
気になる人は自分で調べてみてもいいかも。
最後にこれを使ってスキルを作ってみましょう。
[30, 40, 'スライムぎり', sub{my $y = shift; if ($ms{$y}{name} =~ /スライム/) {&_damage($y, $ms{$m}{at}*4, '攻', 1);$com.=qq|…スライムの核を傷つけた!|; } else {&_damage($y, $ms{$m}{at}*1.1, '攻');} }],
スキル効果はこんな具合。
習得SP |
消費MP |
スキル名 |
対象 |
効果 |
30 |
40 |
スライムぎり |
敵一体 |
相手の名前にスライムが含まれていれば超ダメージ、なければ中ダメージ |
最終更新:2010年04月21日 18:16