## CGIゲーム用掲示板

新規発言 ｜ 一覧 ｜ 過去ログ ｜ 検索 ｜ ＨＯＭＥ

`▼関連発言 │ └◆684:どんどんアイデアが湧いてきます。 [ケンシロ] 02/01 23:52 ├◆685:Re:どんどんアイデアが湧いてきます。 [鮎] 02/02 00:27 └◆687:Re:どんどんアイデアが湧いてきます。 [きりう] 02/02 15:06 └◆688:Re[2]:どんどんアイデアが湧いてきます。 [ケンシロ] 02/02 15:28 ├◆690:Re[3]:どんどんアイデアが湧いてきます [鮎] 02/02 16:03 └◆692:Re[3]:どんどんアイデアが湧いてきま [きりう] 02/02 16:40 └◆695:Re[4]:どんどんアイデアが湧いてきま [ケンシロ] 02/02 17:35 └◆696:Re[5]:どんどんアイデアが湧いてき [鮎] 02/02 17:45 └◆698:Re[6]:どんどんアイデアが湧いて [きりう] 02/02 18:34 ├◆700:Re[7]:どんどんアイデアが湧い [きりう] 02/02 19:43 │└◆704:Re[8]:どんどんアイデアが湧 [ケンシロ] 02/02 23:05 │　└◆705:Re[9]:どんどんアイデアが [きりう] 02/03 00:19 └◆703:Re[7]:どんどんアイデア [ケンシロ] 02/02 21:13 └◆706:Re[8]:どんどんアイデアが湧 [ケンシロ] 02/03 15:12 └◆707:Re[9]:どんどんアイデアが [きりう] 02/03 17:14 └◆710:Re[10]:どんどんアイデア [ケンシロ] 02/03 23:20 └◆712:Re[11]:どんどんアイデ [きりう] 02/04 00:51 ├◆713:Re[12]:どんどんアイ [ケンシロ] 02/04 00:54 └◆715:Re[12]:どんどんア [ケンシロ] 02/04 23:21 ├◆716:Re[13]:どんどんア [鮎] 02/04 23:57 │├◆717:Re[14]:どんどん [鮎] 02/04 23:59 │├◆718:Re[14]:どんど [クッキー] 02/05 16:01 │└◆720:Re[14]:どんど [クッキー] 02/05 17:03 └◆725:Re[13]:どんど [きりう] 02/05 18:45 └◆727:Re[14]:どんどん [鮎] 02/05 19:35 └◆729:Re[15]:どんど [きりう] 02/05 20:36 ├◆731:Re[16]:どん [鮎] 02/05 20:55 └◆732:Re[16]:ど [鮎] 02/05 22:45 └◆735:Re[17]:ど [きりう] 02/06 18:10 └◆737:Re[18]: [鮎] 02/06 19:13 └◆738:Re[19]: [きりう] 02/06 19:45`

``

``

No.684　 どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/01 23:52 味方の通信やっとできましたぁｗ 今回の改造でサブルーチンが少しわかったです。 改造中にもアイデアがどんどん出てきてどうしても判らないことが 三つありました。 1.マップを広げる方法 2.スタート地点を一定時間で禁止エリアにする方法 3.一定時間ごとに同エリアを禁止エリアにしたりしなかった り・・・(わかってもらえるのだろうか・・) 3.がかなり難しいかなと思いますが、ヒマなときにでも よろしくお願いします。`

``

No.685　 Re:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/02 00:27 >1.マップを広げる方法 私もしりたい。 >2.スタート地点を一定時間で禁止エリアにする方法 スタート地点を一定時間で禁止エリアにするのは大会など 以外ではあとから参加する人が死んでしまいます。 なので食事時間を使えばいいと思います。$status[4]だったかな？ それを利用し食事時間が一定の時間をきった場合分校にははいれないと（ifで…） >3.一定時間ごとに同エリアを禁止エリアにしたりしなかったり battle1.txtをうまく操作してみればできそうですが 私の中途半端な技術を利用して答えてみました。`

``

No.687　 Re:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/02 15:06 1.マップを広げる方法 2通りやり方があると思います。 ①、管理しやすい・②よりプログラムがメンドイ ②、①よりプログラムがちょっと楽・管理しにくい どっちがいいですか？ 2.スタート地点を一定時間で禁止エリアにする方法 新規登録時に$statusにスタート時間を追加（デフォだと[18]ですね） 「sub Move」で「time（現時間）-$status[18]」が一定時間を超えてる時に「$area==$s tart」ならエラーを出すって方法が一番簡単だと思います。 ただ、これだけだとスタート地点に放置されちゃうと厄介な事になっちゃうので、 btlrylcl.cgi の # 生存判定　の　# 禁止エリア判定　の下にでも }elsif($time - $status0[18] > 一定時間 && int($status0[3] / 10) == $start){ $death[$i] = 2; と追加してやったら、誰かがクラス名簿を見た瞬間にスタート地点に放置されてる人の 首が飛ぶようになります。 3.一定時間ごとに同エリアを禁止エリアにしたりしなかったり これって、例えば、1時間ごとに平地→禁止→平地→禁止…ってなるようにしたいって事 ですかね？`

``

No.688　 Re[2]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/02 15:28 1.うーむ・・・管理が楽なら多少難しくても頑張らせて頂きます！ ただ・・少し詳しめに教えてほしいな(ｵｲ 2.大体読み取ることができました。ただこれだと首輪が外れてる人が、 入ったときにも死ぬような・・・勘違いでしょうか? 3.大体そんな感じです。 これも、首輪解除は素通りできるようにしたいんです。`

``

No.690　 Re[3]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/02 16:03 ＞首輪外していても死ぬ場合。 if($status[9] == 1000){ 死ぬ処理 } じゃだめかな？ 私もマップの広げ方知りたいです。`

``

No.692　 Re[3]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/02 16:40 > 1 結構変更箇所が多いんで改造した物を配布にしましょうかねぇ… 今日中にはアップしますんで少々お待ちくださいね。 > 2 Σ(´ー｀;) ﾎﾝﾏﾔ… 鮎さんの方法でOKですね。 条件式に「&& $status[9] == 1000」（btlrylcl.cgiの方は「&& $status[9] == 1000」 ）を追加してください。 気付いてくれてありがとう（笑 > 3 これはもうちょっと待ってくださいね。 聞いておきたいのですが、$kinsi_onは0か1かどっちですか？ 0だとすごく楽かな～と思ったり。`

``

No.695　 Re[4]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ(汗 発言日： 2003 02/02 17:35 $kinsi_on・・・０とか１とか・・・・ 質問の意味が掴めないです・・・ごめんなさい(汗`

``

No.696　 Re[5]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/02 17:45 $kinsi_on = 1;# 禁止エリアに入ったら 1:死ぬ 0:入れない のことでは？`

``

No.698　 Re[6]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/02 18:34 マップを広げる方法ですが、俺の頭の中にあった①の方法だと何かとんでもない事になり そうなことに気付いたんで、真に勝手ながら②の方法にさせてもらいますm(_ _)m > kinsi_on = 1;# 禁止エリアに入ったら 1:死ぬ 0:入れない そう、それです。`

``

No.700　 Re[7]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/02 19:43 って事でアップしておきました。 http://kiriu.gi-ga.net/custom/15x15.zip ※btlryldt.cgiの改造は各自でやってください。 このファイルは各自の責任で使ってください。 このファイルを使って貴方の周りで如何なる損害が出ても俺は責任を持ちません。`

``

No.704　 Re[8]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/02 23:05 スクリプト試してみると、確かに15×15になりましたが、 移動がうまくいかず、急に別の所に飛んだり、海なのに山と表示されたり・・・ 試しに配布された物をそのままアップしたのですが、症状は同じでした。 ・・・・お手上げです(泣`

``

No.705　 Re[9]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/03 00:19 修正版アプしました。 双眼鏡もいじらなきゃいけないの忘れてたしボロボロですな (;´д｀)ﾄﾎﾎ http://kiriu.gi-ga.net/custom/15x15_syuusei.zip`

``

No.703　 Re[7]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/02 21:13 なるほどぉ！ それなら・・・・・・・・・1です。 ゴメソ(汗`

``

No.706　 Re[8]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/03 15:12 スタ地禁止エリア化のことです(汗 まず、btlryl.cgiの# 禁止エリアの部分に }elsif((time - $status[20]) > 60 && $area==$start && $status[9] == 1000 && $kin si_on){ $death = 'dangerarea'; $status[2] = 0; Out('禁止エリアに入って死んだ。'); と追加し、次にbtlrylcl.cgiの# 禁止エリア判定に }elsif($time - $status0[20] > 60 && int($status0[3] / 10) == $start){ $death[$i] = 2; と付け足せました。しかし、肝心の時間の取得の部分がわかりません。 @status = ($name,$pass,8 + int(rand 8),$start * 10 + int(rand4),time,time,0,0,$host,1000,1056,$i,$i,9064,1070,0,0,?); ちなみに$status[20]になっているのはアイテムの上限を上げたからです。`

``

No.707　 Re[9]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/03 17:14 最終行動時間（$status[4]）・最終食事時間にも（$status[5]）に「time」が入っている ように、現在時間は「time」です。 この場合なら新規登録時に$status[20]に「time」を入れてやればいいでしょう。 あと、 }elsif($time - $status0[20] > 60 && int($status0[3] / 10) == $start){ 「$time」←「$」は要りません。 m(_ _)m`

``

No.710　 Re[10]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/03 23:20 スタ地禁止エリア化できましたーｗ かなり時間かかったけど(ﾎﾞｿ 問3.について、首輪外れてたら、kinsi_onが0、1関係なく素通りできるなら、0でもいい っす。`

``

No.712　 Re[11]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/04 00:51 kinsi_onが0か1かで改造内容が少し変わってくるので、聞いておきました。 首輪が外れてたら問題なく素通りはできますんで安心してください。 今週からちょっと忙しくなるので、「一定時間ごとに同エリアを禁止エリアにしたりし なかったり」は週末まで待ってくださいね。`

``

No.713　 Re[12]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/04 00:54 わかりましたｗ 忙しい中申し訳ありません。`

``

No.715　 Re[12]:どんどんアイデアが湧いてきます。
`[返信] 発言者： ケンシロウ 発言日： 2003 02/04 23:21 お忙しい中大変申し訳ないのですが、 もうひとつ質問させてください　ヽ(´ー`)ノ（ｼﾂｺｲ 快速さんから大会版を落とさせてもらったところ、 強力双眼鏡というものがあり、これを15*15マップに適用したいのですが、 方法がわかりません。 多分持ってると思うんですけど、一応コメント出力以下のスクリプトを・・・ foreach(1..42){ next if($pos[$_] > 999 || !$pos[$_]); # 追加修正 # $used = 'すぐ近く'; if($pos[$_] && $_ != $num){ # $i = substr($status[3],1,1) || 10; $i = int($status[3] / 10); # 追加、自分の位置 my $k = int($pos[$_] / 10); # 追加、相手の位置 $j = substr($pos[$_],1,1) || 10; $used = '-'."$j"; # 追加 # if($i > $j){$used = '西'} # elsif($i < $j){$used = '東';} # $i = ($i != 10) ? substr($status[3],0,1) : substr($status[3],0,1) - 1; $j = ($j != 10) ? substr($pos[$_],0,1) : substr($pos[$_],0,1) - 1; # 追加修正 $j = ('A','B','C','D','E','F','G','H','I','J')[$j]; $used = $j.$used; # if($i > $j){$used = '北'.$used;} # elsif($i < $j){$used = '南'.$used;} $used = '同じエリア内' if($i == $k); # 追加 Out("$victims[$_]：<b>$used</b><br>\n"); } } $writestatus = 0; 長々とすいませんでした(汗`

``

No.716　 Re[13]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/04 23:57 間違ってる可能性があるので注意してください（笑 foreach(1..42){ >↑生徒人数を増やしたそうなので変えたほうがいいかも next if($pos[$_] > 999 || !$pos[$_]); # 追加修正 # $used = 'すぐ近く'; if($pos[$_] && $_ != $num){ >------ここから------ # $i = substr($status[3],1,1) || 10; $i = int($status[3] / 10); # 追加、自分の位置 my $k = int($pos[$_] / 10); # 追加、相手の位置 $j = substr($pos[$_],1,1) || 10; $used = '-'."$j"; # 追加 # if($i > $j){$used = '西'} # elsif($i < $j){$used = '東';} # $i = ($i != 10) ? substr($status[3],0,1) : substr($status[3],0,1) - 1; $j = ($j != 10) ? substr($pos[$_],0,1) : substr($pos[$_],0,1) - 1; # 追加 修正 >------ここまで-----１０って数字を15に $j = ('A','B','C','D','E','F','G','H','I','J')[$j]; > １５だからーＰまで追加かな？ $used = $j.$used; # if($i > $j){$used = '北'.$used;} # elsif($i < $j){$used = '南'.$used;} $used = '同じエリア内' if($i == $k); # 追加 Out("$victims[$_]：<b>$used</b><br>\n"); } } $writestatus = 0;`

``

No.717　 Re[14]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/04 23:59 すいません。。。PじゃなくてOまででしたね`

``

No.718　 Re[14]:どんどんアイデアが湧いてきます。
`[返信] 発言者： クッキー消しちゃったるか・ぶらいと 発言日： 2003 02/05 16:01 う・・・動かない(汗`

``

No.720　 Re[14]:どんどんアイデアが湧いてきます。
`[返信] 発言者： クッキー消しちゃったるか・ぶらいと 発言日： 2003 02/05 17:03 すいません・・・密かにパクらせてもらいました。`

``

No.725　 Re[13]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/05 18:45 > 鮎さん おお、ピンク色で見やすい。真似させてもらおう（笑 foreach(1..42){ next if($pos[$_] > 999 || !$pos[$_]); # 追加修正 > ↑　デフォルトでは休憩者の現在位置に+1000されます。なので、休憩者は映らない ように『現在位置が999未満』という条件があるわけです。 > 15x15verでは休憩者に+10000しているので、『$pos[$_] > 9999』に変更してくださ い。 if($pos[$_] && $_ != $num){ $i = int($status[3] / 10); # 追加、自分の位置 > ↑　ここの『/10』は現在位置の方角を削っているので、『/ 10』のままでいいです 。『/ 15』にはしないでください。 my $k = int($pos[$_] / 10); # 追加、相手の位置 > ↑　上に同じくです。 $j = substr($pos[$_],1,1) || 10; > ↑　ここはX軸を求めています。なので、『$j = $k % 15』に書き換えてください。 $used = '-'."$j"; # 追加 $j = ($j != 10) ? substr($pos[$_],0,1) : substr($pos[$_],0,1) - 1; # 追加修正 > ↑　こっちはY軸ですから『$j = int($k / 15)』になります。 $j = ('A','B','C','D','E','F','G','H','I','J')[$j]; > ↑　15x15ですから、A～Oまでですね。 $used = $j.$used; $used = '同じエリア内' if($i == $k); # 追加 Out("$victims[$_]：<b>$used</b><br>\n"); } } $writestatus = 0; こんな感じでしょうか。`

``

No.727　 Re[14]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/05 19:35 ちょっとはずれちゃったかな（笑 ちょこっと質問なんですけど『もってるアイテムの中に』 ってのはどのようにすればいいんでしょうか？？ if($status[16] = …だと8番目のアイテムになってしまいますし おねがいします。 ……$status[13]$status[14]$status[15]…って 全部かくこともできそうですけど`

``

No.729　 Re[15]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/05 20:36 foreach(9..16){ if($status[$_] % 100 == 0 && $status[$_] >= 100){){ Out('首輪を持っています'); } } とか foreach(@status[9..16]){ if($_ % 100 == 0 && $_ >= 100){ Out('首輪を持っています'); } } こういう感じのやつですかねえ？ ちなみに、↑のは持ってるアイテムの中（$status[9]～[16]）に首輪があったら『首輪 を持っています』と表示する処理です。 foreach(○..△)っていうのは、○～△間でループさせるってやつです。例えば、上のや つだったら『9..16』なので9・10・11・12・13・14・15・16と順番にループさせています 。 そして、『$_』には9・10・（中略）・16とループさせている数値が入ります。（日本語 変です）いわゆるカウンタってやつです。 要は、foreach(9..16)は9～16で回っているので、$status[$_]と書いてやれば$status[9 ]～$status[16]っていう意味になるってことです。 あと、オマケで foreach(9..16){ if($status[$_] % 100 == 0 && $status[$_] >= 100){){ Out('首輪を持っています'); last; } } こういう風に条件式の中に『last』とつけてやったら、条件式を満たしていればループ を終了させる事ができます。 条件を1回満たせばいい（特定のアイテムを1個でも持っていればいい）処理の時にでも 使ってください。`

``

No.731　 Re[16]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/05 20:55 なるほどー！！ どうもありがとうございます。 CGIの勉強になりました。 これからいろいろやっていきます。 いままでif($status[16] == 1097 || $status[15] == 1097… みたいに書いてましたから（笑＆恥`

``

No.732　 Re[16]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/05 22:45 質問なんですけどした下のようにやったらうまく動作せずに 『いいいいい』がでてしまいました。（当然首輪を持った状態で） if($location == 7){ foreach(9..16){ if($_ % 1000 == 0 && $_ >= 1000){ Out('あああああ'); }else{ Out('いいいいい'); last; } } } 1000っていうのがだめだったかもしれませんね 1000とか100とかいろいろ試しましたけど。 答えお願いしますm(＿ ＿)m`

``

No.735　 Re[17]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/06 18:10 if($location == 7){ foreach(9..16){ if($_ % 1000 == 0 && $_ >= 1000){ Out('あああああ'); }else{ Out('いいいいい'); last; } } } これだったら、どうあがいても『いいいいい』しか出ませんぜ (;´ー｀) > foreach(9..16){ > 　if($_ % 1000 == 0 && $_ >= 1000){ 問題はこの2行なんですけど、この場合『$_』は『9･10･11･12…』ってしかならないので 『%1000』しても『9･10･11･12…』としかなりません。『$status』を見てないって事です 。 解決法は > foreach($status[9..16]){ > 　if($_ % 1000 == 0 && $_ >= 1000){ ってするか > foreach(9..16){ > 　if($status[$_] % 1000 == 0 && $status[$_] >= 1000){ ってするかです。どっちでもいけます。`

``

No.737　 Re[18]:どんどんアイデアが湧いてきます。
`[返信] 発言者： 鮎 発言日： 2003 02/06 19:13 また質問なんですけど >foreach(9..16){ >if($status[$_] % 1000 == 0 && $status[$_] >= 1000){ これで首輪(1000)を持たせたらちゃんと動いたんですけど >foreach(9..16){ >if($status[$_] % 1000 == 0 && $status[$_] >= 1097){ で1097を持たせても変化がなく動作しませんでした。 何度もすみません！！おねがいします。`

``

No.738　 Re[19]:どんどんアイデアが湧いてきます。
`[返信] 発言者： きりう 発言日： 2003 02/06 19:45 97番のアイテムを持ってる時って事ですよね。 >foreach(9..16){ >if($status[$_] % 1000 == 97 && $status[$_] > 1000){ こうですね。 ちなみに、条件式の内容は > $status[$_] % 1000 == 97 アイテム番号が『97』 > $status[$_] > 1000 そのアイテムの使用回数が1以上（首輪の場合のみ『> 1000』では条件に引っ掛からない ため『>= 1000』としていました）`

``

`CGIROOM`