# ↓一日の予定を組みます(餌を与えられてから24時間のスケジュール) # 上から順に0〜1時間、1〜2時間となっています。 # その間に表示させたい画像を以下に指定します。 # ただし、画像は全て同じ大きさのものを使用してください。 # 変更する場合は→'画像ファイル名',でワンセットですので、 # 点を間違って削除したりしないよう注意してください。 # かならず24時間分指定してください。 # 24時間以上経つとペットはお腹を空かせ、後はずっと鳴いた画像が表示されます。 @scheduleimg = ( 'name.gif', # ←ペットAの画像に変更する 'tume.gif', # ←ペットBの画像に変更する 'neteru.gif', # ←ペットAの画像に変更する 'neteru.gif', # ←ペットBの画像に変更する # 中略 24時間分設定する。 ); # ↓上の画像のリストと対になっています。 # 画像が表示される時の説明文です。 # かならず24個用意してください。 @schedulemsg = ( '自分の体をなめています', # ←ペットAのメッセージに変更する '爪をといでいます', # ←ペットBのメッセージに変更する '寝ているようです', # ←ペットAのメッセージに変更する 'いびきをかいて寝ています', # ←ペットBのメッセージに変更する # 中略 24時間分設定する。 ); # ↓更に上と対になっています。 # その時間帯にペットが一番やってほしいこと(もしくは効果があること)。 # play = 遊ぶ,pat = なでる,feed = 餌をやる,hit = しかる,out = 外に出す。 # ない場合は点の間を空白。 # 複数ある場合は'play_pat',のように間を_で繋ぐ。 @scheduledsr = ( 'pat', # ←ペットAのやって欲しいことに変更する 'play', # ←ペットBのやって欲しいことに変更する 'pat', # ←ペットAのやって欲しいことに変更する 'pat', # ←ペットBのやって欲しいことに変更する # 中略 24時間分設定する。 ); # 更に続きます。 # その時間帯に来客者がやっては行けないことです。 # ただし、やってほしい事とやってはいけないことを重複させないようにしてください。 @schedulednt = ( 'hit_out_feed', # ←ペットAのやってはいけないことに変更する 'hit_pat_out_feed', # ←ペットBのやってはいけないことに変更する 'hit_out_feed', # ←ペットAのやってはいけないことに変更する 'hit_out_feed', # ←ペットBのやってはいけないことに変更する # 中略 24時間分設定する。 ); |
# もうすぐ終わりです。 # アクションを起こした後のそれぞれの反応を設定します。 # ↓良いときの画像。左辺は変更しないでください。 # ペットA用↓ %good_img = ( 'feed' , 'esa.gif', 'pat' , 'jare.gif', 'play' , 'fun.gif', 'hit' , 'keikai.gif', 'out' , 'dash.gif', ); # ↓悪い時の画像。 %bad_img = ( 'feed' , 'tukare.gif', 'pat' , 'bite.gif', 'play' , 'tukare.gif', 'hit' , 'dash.gif', 'out' , 'soppo.gif', ); # ↓どっちでもないときの画像。 %else_img = ( 'feed' , 'soppo.gif', 'pat' , 'soppo.gif', 'play' , 'boo.gif', 'hit' , 'bite.gif', 'out' , 'soppo.gif', ); # ↓良いときのメッセージ。 %good_msg = ( 'feed' , 'おいしそうに食べてます♪', 'pat' , 'お腹をみせて喜んでいます♪', 'play' , 'とても楽しそうに遊んでいます♪', 'hit' , 'ちょっといじけてますが、大丈夫でしょう', 'out' , '喜んで外に飛び出していきました♪', ); # ↓悪いときのメッセージ。 %bad_msg = ( 'feed' , 'いくらなんでも与え過ぎですよ', 'pat' , '触れられるのを嫌がっています', 'play' , 'とてもそんな気分じゃないようです', 'hit' , '脱兎のごとく逃げていきました', 'out' , '無理やり外に放り出しました', ); # ↓どっちでもないときのメッセージ。 %else_msg = ( 'feed' , 'あんまり食べたくないみたいです', 'pat' , 'ダルそうにあっちに行ってしまいました', 'play' , '全く興味なさそうです', 'hit' , 'ムカついて噛み付いてきました', 'out' , 'しぶしぶ外へ出て行きました', ); # ペットA用↑ # ↓良いときの画像。左辺は変更しないでください。 # ペットB用↓ %good_img2 = ( 'feed' , 'esa.gif', 'pat' , 'jare.gif', 'play' , 'fun.gif', 'hit' , 'keikai.gif', 'out' , 'dash.gif', ); # ↓悪い時の画像。 %bad_img2 = ( 'feed' , 'tukare.gif', 'pat' , 'bite.gif', 'play' , 'tukare.gif', 'hit' , 'dash.gif', 'out' , 'soppo.gif', ); # ↓どっちでもないときの画像。 %else_img2 = ( 'feed' , 'soppo.gif', 'pat' , 'soppo.gif', 'play' , 'boo.gif', 'hit' , 'bite.gif', 'out' , 'soppo.gif', ); # ↓良いときのメッセージ。 %good_msg2 = ( 'feed' , 'おいしそうに食べてます♪', 'pat' , 'お腹をみせて喜んでいます♪', 'play' , 'とても楽しそうに遊んでいます♪', 'hit' , 'ちょっといじけてますが、大丈夫でしょう', 'out' , '喜んで外に飛び出していきました♪', ); # ↓悪いときのメッセージ。 %bad_msg2 = ( 'feed' , 'いくらなんでも与え過ぎですよ', 'pat' , '触れられるのを嫌がっています', 'play' , 'とてもそんな気分じゃないようです', 'hit' , '脱兎のごとく逃げていきました', 'out' , '無理やり外に放り出しました', ); # ↓どっちでもないときのメッセージ。 %else_msg2 = ( 'feed' , 'あんまり食べたくないみたいです', 'pat' , 'ダルそうにあっちに行ってしまいました', 'play' , '全く興味なさそうです', 'hit' , 'ムカついて噛み付いてきました', 'out' , 'しぶしぶ外へ出て行きました', ); # ペットB用↑ |
# ↓ペットは時に予想もつかない行動を取ります。# ペットA用 $rnd_border = 1; # 何割かの確率で違う(マイナス)アクションを起こさせます。(0.1〜3) $rnd_img = 'keikai.gif'; # その時の画像 $rnd_msg = '今日はいつもと違って様子が変です'; # その時のメッセージ # ↓ペットは時に予想もつかない行動を取ります。# ペットB用 $rnd_img2 = 'keikai.gif'; # その時の画像 $rnd_msg2 = '今日はいつもと違って様子が変です'; # その時のメッセージ ### その他の画像 ###ペットA用 $dead_img = 'dead.gif'; # 死んだ画像 $cry_img = 'naku.gif'; # 鳴いてる画像 $tired_img = 'tukare.gif'; # 餓死寸前(死亡一日前) $gone_img = 'gone.gif'; # 外出中の画像 $angry_img = 'ikaku.gif'; # 威嚇している画像 $caution_img = 'keikai.gif'; # 警戒している画像 ### その他の画像 ###ペットB用 #$dead_img2 = 'dead.gif'; # 死んだ画像 # 未使用 #$cry_img2 = 'naku.gif'; # 鳴いてる画像 # 未使用 #$tired_img2 = 'tukare.gif'; # 餓死寸前(死亡一日前)# 未使用 #$gone_img2 = 'gone.gif'; # 外出中の画像 # 未使用 $angry_img2 = 'ikaku.gif'; # 威嚇している画像 $caution_img2 = 'keikai.gif'; # 警戒している画像 ### その他のメッセージ ###ペットA用 $out_msg = '外出中のようです'; # 外出中 $hungry_msg = 'うるさく鳴いています'; # 空腹時 $tired_msg = 'なんだかぐったりしていますよ'; # 餓死寸前(死亡一日前) $enemy_msg = 'はあなたを敵とみなしています'; # 敵視 $caution_msg = 'はあなたを警戒しています'; # 警戒時 ### その他のメッセージ ###ペットB用 #$out_msg2 = '外出中のようです'; # 外出中 # 未使用 #$hungry_msg2 = 'うるさく鳴いています'; # 空腹時 # 未使用 #$tired_msg2 = 'なんだかぐったりしていますよ'; # 餓死寸前(死亡一日前)# 未使用 $enemy_msg2 = 'はあなたを敵とみなしています'; # 敵視 $caution_msg2 = 'はあなたを警戒しています'; # 警戒時 ### スペシャル画像&メッセージ ###ペットA用 # スペシャル画像1 $delight_img = 'love.gif'; # (サンプル)来訪者を喜んでいる画像 $delight_msg = 'あなたが来たことをすごく喜んでいます'; # その時のメッセージ # スペシャル画像2 $friend_img = 'friend.gif'; # (サンプル)友達と遊んでいる画像 $friend_msg = '今日はお友達のピヨちゃんと遊んでいます'; # その時のメッセージ ### スペシャル画像&メッセージ ###ペットB用 # スペシャル画像1 $delight_img2 = 'love.gif'; # (サンプル)来訪者を喜んでいる画像 $delight_msg2 = 'あなたが来たことをすごく喜んでいます'; # その時のメッセージ # スペシャル画像2 $friend_img2 = 'friend.gif'; # (サンプル)友達と遊んでいる画像 $friend_msg2 = '今日はお友達のピヨちゃんと遊んでいます'; # その時のメッセージ |
# お腹が空いている時の処理 if ($hungry > 0) { # お腹が空いて餓死寸前 if ($hungry >= $deadline - 1) { &petnow($tired_img,$tired_msg); } else { &petnow($cry_img,$hungry_msg); $swfurl = $img . 'catvoice.swf'; if ($voice == 1) { &flash($swfurl); } } $plusfeed = 'feed'; $minusfeed = 'hit_pat_play_out'; return; } # 食後の経過時間を$timeafterに代入 # $timeafter = int((time - $lastfeed)/3600); # ラブポイントがある基準以下の場合、威嚇画像を表示 if ($bad - $good - $love > 5) { &petnow($angry_img,"$petname$enemy_msg"); $swfurl = $img . 'catvoicerage.swf'; if ($voice == 1) { &flash($swfurl); } return; } # スペシャル画像1 if ($love > $special1) { if ($timeafter == $specialtime1a || $timeafter == $specialtime1b) { &petnow($delight_img,$delight_msg); return; } } |
# ------------------------- # # Sub Pet Data # ペットデータ # ------------------------- # sub petdata { # 何日以上か面会がない場合、ペットの機嫌が下がる if (&checkday($lastvisit) >= $novisit) { $good--; } # 何日間食べていないか。 $hungry = &checkday($lastfeed); # ゲストが何日ぶりの来訪かをチェックし、ラブ数を減らす # $love-- if $love - &checkday($gdate) > 1; $love = $love - &checkday($gdate); $agetotalday = &checkday($birth); &gettime($lastfeed); # 食後の経過時間を$timeafterに代入 # 挿入場所はどこでも構いません $timeafter = int((time - $lastfeed)/3600); &tabletop; print "名前:$font2$petname</font></td>\n"; print "<td>性別:$font2$sex</font></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>名付け親:$font2$godfather</font></td>\n"; print "<td>年齢:$font2生後$agetotalday日</font></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td colspan=2>最後に餌を食べた日:$font2$date</font>\n"; &tablebottom; } |
# ------------------------- # # Sub Condition # ペットのコンディション # ------------------------- # sub condition { print "</td>\n"; print "</tr>\n"; # 一定期間餌をあげないと死んでしまう。 if (time >= $lastfeed + $daysec * $deadline) { $noaction = 1; $deadover = &checkday($lastfeed); print "<tr>\n"; print "<td>\n"; &tabletop; &petnow($dead_img,"$petnameは死にました。<br>死後$deadover日経っています。"); print "<tr>"; print "<td align=\"right\">\n"; &input('hidden','mode','nopet','',''); &input('hidden','name',$FORM{'name'},'',''); &input('hidden','pass',$FORM{'pass'},'',''); print "新しいペットを飼う\n"; &input('submit','','OK','',''); &tablebottom; print "</td>\n"; print "</tr>\n"; return; } # 外出中の処理 if ($out == 1 && (time - $outdate) < $dayhour[$comeback]) { &petnow($gone_img,$out_msg); $noaction = 1; return; } else {$out = 0;} # お腹が空いている時の処理 if ($hungry > 0) { # お腹が空いて餓死寸前 if ($hungry >= $deadline - 1) { &petnow($tired_img,$tired_msg); } else { &petnow($cry_img,$hungry_msg); $swfurl = $img . 'catvoice.swf'; if ($voice == 1) { &flash($swfurl); } } $plusfeed = 'feed'; $minusfeed = 'hit_pat_play_out'; return; } # 食後の経過時間を$timeafterに代入 # $timeafter = int((time - $lastfeed)/3600); # ラブポイントがある基準以下の場合、威嚇画像を表示 if ($bad - $good - $love > 5) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($angry_img2,"$petname$enemy_msg2"); } else { &petnow($angry_img,"$petname$enemy_msg"); } $swfurl = $img . 'catvoicerage.swf'; if ($voice == 1) { &flash($swfurl); } return; } # スペシャル画像1 if ($love > $special1) { if ($timeafter == $specialtime1a || $timeafter == $specialtime1b) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($delight_img2,$delight_msg2); } else { &petnow($delight_img,$delight_msg); } return; } } # スペシャル画像2 if ($love > $special2) { if ($timeafter == $specialtime2a || $timeafter == $specialtime2b) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($friend_img2,$friend_msg2); } else { &petnow($friend_img,$friend_msg); } return; } } # ラブポイントが一定以上でノーマル画像 if ( $love >= $bad - $good ) { &petnow($scheduleimg[$timeafter],$schedulemsg[$timeafter]); return; } # どれにも当てはまらない場合、警戒画像を表示 if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($caution_img2,"$petname$caution_msg2"); } else { &petnow($caution_img,"$petname$caution_msg"); } } # ------------------------- # # 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; # 一回きりのイベントで追加した改造はこの辺り if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || # ←上にif文分があるときは、elsifにする $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &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"; } else { &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; } |
# ------------------------- # # 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(10) + 1); $fa = $FORM{'mode'}; if ($fa eq 'play') { $lastplay = time; } if ($fa eq 'out') { $out = 1; $outdate = time; } # その他の改造はこの辺りにあるはずです。 if ($rnd <= $rnd_border) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($rnd_img2,$rnd_msg2); } else { &petnow($rnd_img,$rnd_msg); } $love--; } elsif ($FORM{'good'} =~ /$fa/) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($good_img2{$fa},$good_msg2{$fa}); } else { &petnow($good_img{$fa},$good_msg{$fa}); } $love++;$good++; if ($fa eq "feed") { $lastfeed = time; } } elsif ($FORM{'bad'} =~ /$fa/) { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($bad_img2{$fa},$bad_msg2{$fa}); } else { &petnow($bad_img{$fa},$bad_msg{$fa}); } $love--;$bad++; } else { if ($timeafter == 1 || $timeafter == 3 || $timeafter == 5 || $timeafter == 7 || $timeafter == 9 || $timeafter == 11 || $timeafter == 13 || $timeafter == 15 || $timeafter == 17 || $timeafter == 19 || $timeafter == 21 || $timeafter == 23) { &petnow($else_img2{$fa},$else_msg2{$fa}); } else { &petnow($else_img{$fa},$else_msg{$fa}); } } &openoutpetdata; $goodbye = time - (60 * 60 * 24 * $goodbye); $newlove = $love; &openinuserdata('action'); &openoutuserdata; $actionflag = 1; # 飼い主ランキングのリンクを表示 &bodybottom; &footer; } |