私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

No.1820  タイムリミットボスの導入
発言者: YOUME
発言日: 2014 11/12 15:00
いつのお世話になっております。

表題の通り、実装できるのか不安なくらい…
難しそうなものにチャレンジしたいと思っています…!
(いわゆるレイドボスの導入…)

正直よくわかっていない部分が多いため、
moonさんにご教授いただきたいです!

以前、moonさんに教えて頂いた内容を自分なりに解釈してみました。

> 1. ボス用のデータファイル(時間と参加者を保存)を用意する。
空のdatを用意するイメージで大丈夫でしょうか?

> 2. 誰かのログイン処理時に条件を満たしていたらボス用のユーザーファイルを作成してデータファイル内の参加者をクリアする。

探索時に、ある一定の確率でボスを発見するような形をとれますでしょうか?
現在、find_item内にトラップが出るような仕組みが入っていて、
それを応用できないかなぁと…

仕様としては、
-TRAP-等をアイテム部分に追加すると、
そのアイテムはトラップ扱いになり、
ダメージを受けたり、回復されたり、殺されてしまったり、
毒を受けたり、霊つきになったりします。

これと同じような感じで-TRAP_BOSS-と書かれたものを見つけた場合、タイムリミットボス出現!…という感じにしたいと考えています。

▼find_item 一部抜粋
    elsif ($idt =~ /-TRAP-/)
    {
        $pinm = $inm;
        if($uimg){$inm = "<img src=$iimgdir$uimg>$inm"}
        if ($sp =~ /-TRAPCS-/)
        {
            push (@msg,"<FONT color=#f3baa7>$inmが現れた!<br>加護によりダメージを受けずにすみました。</FONT>");
            $findar .= "<FONT color=#f3baa7>$pinmが現れた!<br>加護によりダメージを受けずにすみました。</FONT>" if $findi_rec;return;
        }
        if ($idt =~ /-T_DEATH-/)
        {
            $hp = 0; $av = "dead";
            push (@msg,"<FONT color=#f3baa7 size=+1>$inmだ!殺されてしまった・・・</FONT>");
            $findar .= "<FONT color=#f3baa7 size=+1>$pinmだ!殺されてしまった・・・</FONT>" if $findi_rec;return;
        }
        $damg = substr($idt,8,3); $damg++; $damg--;
        if ($idt =~ /-T_HEAL-/)
        {
            $hp += $damg;
            $hp = $xp if $xp < $hp;
            push (@msg,"$inmだ!$damg回復した!");
            $findar .= "$pinmだ!$damg回復した!" if $findi_rec;
        } else {
            $hp -= $damg;
            $hp = 1 if $hp < 1;
            push (@msg,"$inmだ!<FONT color=#f3baa7>$damg</FONT>のダメージをうけました。");
            $findar .= "$pinmだ!<FONT color=#f3baa7>$damg</FONT>のダメージをうけました。" if $findi_rec;
        }
        if ($idt =~ /-T_POISON-/)
        {
            if($sp =~ /Np/)
            {
                push (@msg,"<FONT color=#FFA500>$inmの毒を無効化しました</FONT>");
                $findar .= "<FONT color=#FFA500>$pinmの毒を無効化しました</FONT>" if $findi_rec;return;
            }
            $av = "poison"; push (@msg,"<FONT color=#caaded>$inmに毒をかけられた</FONT>");
            $findar .= "<FONT color=#caaded>$pinmに毒をかけられ毒化した</FONT>" if $findi_rec;
        }
        return;

> 3. sub fightの先頭のほうで、相手がボスの場合は時間を確認して期限切れならボス用のユーザーファイルを削除して戦闘を行わない。(この時contact_action画面に戻ると不都合なのでnormal_action画面に戻るようにする)
> 4. sub fightで相手がボス、かつ、相手を倒した場合は各参加者の所持品にアイテムを追加し、ボス用のユーザーファイルを削除する。(この時も同様にnormal_action画面に戻るようにする)
> 5. sub fightで相手がボス、かつ、相手を倒していない場合は参加者を更新する。
  ※ 時間は必要に応じて更新する。

これらの処理については、どうすればいいのか分からず…

お時間のある時にご教授頂けたら幸いです。
何卒よろしくお願いします!

▼関連発言

1820:タイムリミットボスの導入 [YOUME] 11/12 15:00
 └1821:Re:タイムリミットボスの導入 [moon] 11/12 20:27
  └1822:Re[2]:タイムリミットボスの導入 [YOUME] 11/13 09:44
   └1823:Re[3]:タイムリミットボスの導入 [moon] 11/13 20:33
    └1824:Re[4]:タイムリミットボスの導入 [YOUME] 11/14 10:27
     └1825:Re[5]:タイムリミットボスの導入 [moon] 11/14 19:15
      └1826:Re[6]:タイムリミットボスの導入 [moon] 11/14 19:54
       └1827:Re[7]:タイムリミットボスの導入 [YOUME] 11/17 11:37
        └1828:Re[8]:タイムリミットボスの導入 [moon] 11/17 19:09
         └1829:Re[9]:タイムリミットボスの導入 [YOUME] 11/18 09:43
          └1830:Re[10]:タイムリミットボスの導... [moon] 11/18 19:54
           └1831:Re[11]:タイムリミットボスの... [YOUME] 11/19 11:04
            └1832:Re[12]:タイムリミットボス... [moon] 11/19 18:55<-last

  返信フォーム [引用]
名 前 保存
題 名
発 言
PASSWORD
投稿確認必ずチェックを入れてください。こちらにはチェックを入れないでください。
書き込む
◇題名は、短くわかりやすく書いてください。
◇過去に同じ内容が投稿されていないか検索してから書き込んで下さい。
◇管理人の判断により相応しくない投稿は削除します。

Pass 保存


CGIROOM