# ------------------------- #
# Sub Pet Form
# ペットフォーム
# ------------------------- #
sub petform {
&checkname;
if (!$petname) { &nopet;exit }
&header;
&title;
&bodytop("ペットデータ($num代目)");
&petdata;
&condition;
if ($noaction == 0 && $enter != 1) {
print "<tr>\n";
print "<td>\n";
&tabletop;
&input('radio','mode','feed',' checked','餌をあげる<br>');
&input('radio','mode','pat','','なでる<br>');
&input('radio','mode','out','','外に出す');
print "</td>\n";
print "<td>\n";
&input('radio','mode','play','','遊ぶ<br>');
&input('radio','mode','hit','','しかる<br>');
&input('radio','mode','owner','','飼い主ランキング');
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td colspan=\"2\">\n";
print "<div align=\"right\">\n";
&input('hidden','name',$FORM{'name'},'','');
&input('hidden','pass',$FORM{'pass'},'','');
&input('hidden','good',"$scheduledsr[$timeafter]$plusfeed",'','');
&input('hidden','bad',"$schedulednt[$timeafter]$minusfeed",'','');
&input('submit','','OK!','','<br>');
print "</div>\n";
&tablebottom;
} else { $actionflag = 1 }
&bodybottom;
&openoutpetdata;
&footer;
}
|
# ------------------------- #
# Main Program
# メイン処理
# ------------------------- #
&decode;
&openinpetdata;
&titlecheck;
if ($FORM{'mode'} eq "end") { &error("$endmsg") }
elsif ($FORM{'mode'} eq "newpet") { &newpet }
elsif ($FORM{'mode'} eq "nopet") { &nopet }
elsif ($FORM{'mode'} eq "owner") { &ownerlist }
elsif ($FORM{'mode'} eq "entername") { &petform }
elsif ($FORM{'mode'} eq "back") { &petform }
elsif (!$FORM{'mode'}) { &entername }
else { &action }
exit;
|
# ------------------------- #
# Sub Action
# アクション
# ------------------------- #
sub action {
$playmsg = "$playtime時間" if $playtime != 0;
$playmsg = "$playminute分" if $playtime == 0;
&checkname;
&error("まだ$playmsg経過していません") if $enter == 1;
&header;
&title;
&bodytop("ペットデータ($num代目)");
&petdata;
srand(time);
$rnd = int(rand(100) + 1); # Amend Ver 2.2
$fa = $FORM{'mode'};
if ($fa eq 'play') { $lastplay = time }
if ($fa eq 'out') { $out = 1; $outdate = time }
if ($rnd <= $rnd_border) {
&petnow($rnd_img,$rnd_msg);
$love--;
}
elsif ($FORM{'good'} =~ /$fa/) {
&petnow($good_img{$fa},$good_msg{$fa});
$love++;$good++;
if ($fa eq "feed") { $lastfeed = time }
}
elsif ($FORM{'bad'} =~ /$fa/) {
&petnow($bad_img{$fa},$bad_msg{$fa});
$love--;$bad++;
}
else {
&petnow($else_img{$fa},$else_msg{$fa});
}
&openoutpetdata;
$goodbye = time - (60 * 60 * 24 * $goodbye);
$newlove = $love;
&openinuserdata('action');
&openoutuserdata;
$actionflag = 1; # 飼い主ランキングのリンクを表示
&bodybottom;
&footer;
}
|
# ↓良いときの画像。左辺は変更しないでください。
%good_img = (
'feed' , 'esa.gif',
'pat' , 'jare.gif',
'play' , 'fun.gif',
'hit' , 'keikai.gif',
'out' , 'dash.gif',
);
# ↓良いときのメッセージ。
%good_msg = (
'feed' , 'おいしそうに食べてます♪',
'pat' , 'お腹をみせて喜んでいます♪',
'play' , 'とても楽しそうに遊んでいます♪',
'hit' , 'ちょっといじけてますが、大丈夫でしょう',
'out' , '喜んで外に飛び出していきました♪',
);
|
新たにコマンドを追加する場合は、簡単に説明すると、 1.コマンド名を決める(メイン処理の条件式に引っかからないモノ) 2.良い反応、悪い反応(feed_pat_hitと書いてあるところ)に新しいコマンドを追加する(必要があれば) 3.良い画像、悪い画像、どちらでもない画像、 良いメッセージ、悪いメッセージ、どちらでもないメッセージにも、 新しいコマンドの分を追加する。 |
まずは、設定の所から。
# その時間帯にペットが一番やってほしいこと(もしくは効果があること)。
# play = 遊ぶ,pat = なでる,feed = 餌をやる,hit = しかる,out = 外に出す。fight = 戦う。
# ない場合は点の間を空白。
# 複数ある場合は'play_pat',のように間を_で繋ぐ。
# 追加場所は適当です、各自のスケジュールに合わせてくださいね。
@scheduledsr = (
'pat',
'play',
'pat',
'pat',
'pat',
'pat',
'out_fight',
'out',
'out',
'',
'pat',
'hit',
'',
'pat',
'play',
'fight_hit',
'out',
'out',
'out',
'fight',
'pat',
'hit',
'play',
'',
);
# 更に続きます。
# その時間帯に来客者がやっては行けないことです。
# ただし、やってほしい事とやってはいけないことを重複させないようにしてください。
@schedulednt = (
'hit_out_feed',
'hit_pat_out_feed',
'hit_out_feed',
'hit_out_feed',
'hit_out_fight',
'hit',
'hit',
'hit',
'hit',
'hit_pat_play_out',
'hit_out',
'pat_fight_play',
'hit',
'hit_out_feed',
'hit',
'fight_pat_play',
'hit',
'',
'fight',
'hit_out_pat',
'hit_out',
'pat_play',
'hit',
'hit',
);
# もうすぐ終わりです。
# アクションを起こした後のそれぞれの反応を設定します。
# 新しいコマンドの分は、必ず追加してください。
# ↓良いときの画像。左辺は変更しないでください。
%good_img = (
'feed' , 'esa.gif',
'pat' , 'jare.gif',
'play' , 'fun.gif',
'hit' , 'keikai.gif',
'out' , 'dash.gif',
'fight', 'fight.gif',
);
# ↓悪い時の画像。
%bad_img = (
'feed' , 'tukare.gif',
'pat' , 'bite.gif',
'play' , 'tukare.gif',
'hit' , 'dash.gif',
'out' , 'soppo.gif',
'fight', 'fight.gif',
);
# ↓どっちでもないときの画像。
%else_img = (
'feed' , 'soppo.gif',
'pat' , 'soppo.gif',
'play' , 'boo.gif',
'hit' , 'bite.gif',
'out' , 'soppo.gif',
'fight', 'fight.gif',
);
# ↓良いときのメッセージ。
%good_msg = (
'feed' , 'おいしそうに食べてます♪',
'pat' , 'お腹をみせて喜んでいます♪',
'play' , 'とても楽しそうに遊んでいます♪',
'hit' , 'ちょっといじけてますが、大丈夫でしょう',
'out' , '喜んで外に飛び出していきました♪',
'fight', 'やる気満々のようです',
);
# ↓悪いときのメッセージ。
%bad_msg = (
'feed' , 'いくらなんでも与え過ぎですよ',
'pat' , '触れられるのを嫌がっています',
'play' , 'とてもそんな気分じゃないようです',
'hit' , '脱兎のごとく逃げていきました',
'out' , '無理やり外に放り出しました',
'fight', 'シカトされました',
);
# ↓どっちでもないときのメッセージ。
%else_msg = (
'feed' , 'あんまり食べたくないみたいです',
'pat' , 'ダルそうにあっちに行ってしまいました',
'play' , '全く興味なさそうです',
'hit' , 'ムカついて噛み付いてきました',
'out' , 'しぶしぶ外へ出て行きました',
'fight', '迷っているようです',
);
次にペットフォーム(sub petform)に「戦う」を追加します。
# ------------------------- #
# Sub Pet Form
# ペットフォーム
# ------------------------- #
sub petform {
&checkname;
if (!$petname) { &nopet;exit }
&header;
&title;
&bodytop("ペットデータ($num代目)");
&petdata;
&condition;
if ($noaction == 0 && $enter != 1) {
print "<tr>\n";
print "<td>\n";
&tabletop;
&input('radio','mode','feed',' checked','餌をあげる<br>');
&input('radio','mode','pat','','なでる<br>');
&input('radio','mode','out','','外に出す');
print "</td>\n";
print "<td>\n";
&input('radio','mode','play','','遊ぶ<br>');
&input('radio','mode','hit','','しかる<br>');
&input('radio','mode','fight','','戦う<br>');
&input('radio','mode','owner','','飼い主ランキング');
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td colspan=\"2\">\n";
print "<div align=\"right\">\n";
&input('hidden','name',$FORM{'name'},'','');
&input('hidden','pass',$FORM{'pass'},'','');
&input('hidden','good',"$scheduledsr[$timeafter]$plusfeed",'','');
&input('hidden','bad',"$schedulednt[$timeafter]$minusfeed",'','');
&input('submit','','OK!','','<br>');
print "</div>\n";
&tablebottom;
} else { $actionflag = 1 }
&bodybottom;
&openoutpetdata;
&footer;
}
|