私設SoS2オーナー応援BBS

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

No.1823  Re[3]:タイムリミットボスの導入
発言者: moon
発言日: 2014 11/13 20:33
> > 1. ボスデータファイルを読み込んで時間(有効期限)を確認する。
> > 2. 有効期限を過ぎていたらボスのユーザーデータファイルを作り直し、
>
> 時間(有効期限)を確認するには、どういう書き方をすれば良いのでしょうか?今まで時間制限のあるものを作ったことが無く、全く分かりませんでした…

データファイルの構造をどうするかにもよるのですが、例えば「有効期限<>参加者ID-1△参加者名-1,…,参加者ID-n△参加者名-n」のようにしたとします。
この場合はまず「my $expires = (split(/\Q<>\E/o, $data))[0];」として有効期限部分を取り出します。
そして、現在時刻(time)と取り出した$expiresを比較(if(time>$expires){期限切れの処理})すれば良いです。

> > ボスデータファイルを更新する。
> $〜のフラグが無い場合、どうやってファイル更新すべきか分かりませんでした…

有効期限切れで新しいボスを作成したタイミングなので、有効期限と空の参加者データが保存できれば良いです。
ですので、「&writedat(データファイルのパス, join('<>', time + ボスの存在期間, ''));」のような処理になります。(実際は、timeを変数に代入しておき上記の判定とここの両方で使用したほうが良いと思います。)

> > 3. $fgにボス戦前用の値(例えば'RB')をセットしてボスの画面を表示する。
>
> 恥ずかしながら$fgの使い方も分かっておらず…
> $fg='RB';
> みたいな感じでいいのでしょうか…?

そうです。
そして、この後にボスの画面を表示することになるのですが、それは以下のような処理を行えば良いと思います。
1. $Fm{'pd'}にボスのIDをセットする。
2. 変数を用意してフラグを立てる。
3. sub play_formでフラグが立っていたら「require 'pl/normal_action.pl';」の代わりに「require 'pl/contact_action.pl';」を行う。

なお、$fgに関してはScript of Saga II Wiki(およびR)のリファレンスマニュアルに説明が書いてありますので参考になるかと思います。

▼関連発言

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