トップページgamedev
439コメント144KB

◆◆SRCについて語ろう◆◆(゚Д゚)

■ このスレッドは過去ログ倉庫に格納されています
0001ななしの01/11/07 03:09ID:???
http://www.src.jpn.org/

さぁ、語ってくれ。
0271名前は開発中のものです。2008/03/11(火) 07:05:33ID:j1ubW7kj
>>270
おもしろいw
後で試してみるよ。
0272名前は開発中のものです。2008/03/11(火) 20:14:52ID:VBlxwbo9
>>270
基本アイディアはこのままに、少々アレンジを加えて、無事望んでいた動作になったよ。
そのままだと援護攻撃時なんかに問題が起こるので、メッセージデータに直接組み込んだ。

参考までに。

攻撃属性=非表示 脱L1 バシルーラ (!バシルーラ制御)

バシルーラ, $(Call(バシルーラ処理))
バシルーラ(クリティカル), $(Call(バシルーラ処理))
バシルーラ(ダメージ), $(Call(バシルーラ処理))
バシルーラ(回避), $(Call(バシルーラ処理))

バシルーラ処理:
If Not Skill(対象パイロット, バシルーラ制御) Then
 SetSkill 対象パイロット バシルーラ制御 -1
Else
 ClearSkill 対象パイロット バシルーラ制御
Endif
Return

ちなみにバシルーラ(命中)でClearSkillすると、その後にクリティカル判定が来るのでダメだった。
何はともあれアイディアに感謝です。
0273名前は開発中のものです。2008/03/11(火) 21:22:16ID:IvbkVCZP
メッセに仕込む場合は、
沈黙状態みたいにメッセが強制的に変わる場合には対応できないって欠点があるんだよね。

援護時に処理されないのはそれ以上にどうしようもないけど。
0274名前は開発中のものです。2008/03/11(火) 22:24:33ID:VBlxwbo9
>>273
そういう問題があるのか…。知らなかった。一長一短だな。
メッセージが変わるのは沈黙と恐怖、混乱?
恐怖と混乱は確かメッセージを定義してなければ変わらなかったとは思うけど。

二重措置として、使用イベントでそれらの状態にあるかどうかを判定して、
Skillを制御してやればマシになるかな。
特殊状態で援護攻撃されたらアウトだけど。
0275名前は開発中のものです。2008/03/11(火) 23:02:55ID:IvbkVCZP
とりあえず、もしも処理が抜けてもメッセージ以外には支障が出ない無いように
脱L0にしておいた方が良いんじゃない?
0276名前は開発中のものです。2008/03/11(火) 23:06:35ID:XSFy1AvP
しかし、この手の質問と回答を纏めておける場所が無いってのは色々と辛いよな
0277名前は開発中のものです。2008/03/12(水) 00:33:51ID:f36mXThy
本家Wikiのシナリオ作成応用編…に載せるには特殊すぎるよなぁ。
0278名前は開発中のものです。2008/03/17(月) 17:12:15ID:fS12muy3
アビリティの射程って延長できない?SPなり特殊能力なりで
0279名前は開発中のものです。2008/03/19(水) 04:27:45ID:+pfn8F4C
> 277

 いや、いいんじゃねぇの?
0280名前は開発中のものです。2008/03/19(水) 09:19:31ID:Gyfysq60
2001年から2008年まで生き延びたスレか
0281名前は開発中のものです。2008/03/20(木) 01:48:48ID:6bFObjdJ
 279の続き。
 SRC Wikiには「これ以上は特殊すぎる」なんて下限はないだろう。
 むしろ今はまだ、追加ペースが寂しい→既存執筆者も力が沸かんことが問題で、書けば他の執筆者の励みになると思う。

 それに、このままでは特殊でも、書けば誰かが手を加えて「敵が使わない武器を使わせる方法」とでもするかもしれない。
0282名前は開発中のものです。2008/03/20(木) 03:01:40ID:PqIuvE3+
あそこ「あらかじめ意見交換掲示板で書く内容を吟味しなければならない」って
ルールが無かったっけ?どこかの小が付いて一が付いて郎が付くバカがごねたせいで。
0283名前は開発中のものです。2008/03/20(木) 14:25:14ID:e8BoqiTL
ないない。
例えそんな話でまとまっていたとしても、ルールとして明文化されてなければ無意味

少なくとも今すでにある応用編とかを追加していく分には大丈夫。


>>281
だが、小数点以下レベルの挙動みたいな特殊すぎる話ばっか載ってると
他の情報が載せづらいんだぜ、気分的に。

VBの仕様がどうだからこうなってる、なんてのは
SRC使う分には全く意味が無いんだからコメントアウトでいいだろうと。
0284名前は開発中のものです。2008/03/21(金) 00:55:04ID:5unyiL01
> だが、小数点以下レベルの挙動みたいな特殊すぎる話ばっか載ってると
> 他の情報が載せづらいんだぜ、気分的に。

 「ヘルプファイル補足」のほうは性質上、特殊な話が多くなるもんだろう。
0285名前は開発中のものです。2008/03/21(金) 01:13:02ID:5unyiL01
 というか、「ヘルプファイル補足」で、特殊でない話をどれだけ載せれるんだろう。
 どうしても、特定の特殊能力とか特定のコマンドとかの話がほとんどになりそうな
気がする。

 「よくある質問集」のほうは現状あんまり特殊でないので、「他の情報が載せづら
い」というのはよくわからん。
0286名前は開発中のものです。2008/03/21(金) 01:20:14ID:5unyiL01
> VBの仕様がどうだからこうなってる、なんてのは
> SRC使う分には全く意味が無いんだからコメントアウトでいいだろうと。

 283が削除編集するか、削除提案をコメントに入れたら?
0287名前は開発中のものです。2008/03/31(月) 19:45:31ID:ui6wfclk
For文で無限ループさせるにはどうしたらいいんだ?
最初はFor i = 1 to (i + 1)で出来るかと思ったら2回しか実行してくれないし。


あと、
For i = 1 to 12
Local X$(i) = 1
Next
というふうにX1〜X12という変数に次々と数値を代入していくような処理もしたいんだけど、
上手くいかない
0288名前は開発中のものです。2008/03/31(月) 20:43:59ID:UkrJ9JsZ
Forで無限ループされる必要がどこにある。
素直にDo使うんじゃだめなのか?

X$(i) = 1 なんて書き方は無理。
色々間違いすぎてるからヘルプの変数やら式やらを読み直せ
0289名前は開発中のものです。2008/03/31(月) 23:20:53ID:ui6wfclk
>>288
ありがとう、Doならカウンターの数を変更しなければ無限ループに出来るんだな、
上手くいった。

>X$(i) = 1 なんて書き方は無理
となると、For文内などで次々と連続する変数に数値を代入するには、どうしたらいいんでしょう?
0290名前は開発中のものです。2008/03/31(月) 23:46:31ID:UkrJ9JsZ
そもそも、
>X1〜X12という変数
は連続する変数とはみなされない。
X1とX2はSRCのプログラムにとってはまったく別の変数であって、関連しているものとして扱ってはくれない。


…X1〜X12みたいにやろうと思ってできないことはないはずだけど、
もっと単純で一般的な方法として配列を使うのが普通。

変数のページと、少し凝ったシナリオのeveを眺めてみた方が良いよ
0291名前は開発中のものです。2008/04/01(火) 01:31:26ID:dgppVkw4
ごめんなさい、ありがとうございました。
配列というものを使ってみたらNum[$(i)]という形で変数に数値を代入することが出来ました。

あと2つだけすみませんが教えてもらえないでしょうか?
1:前提:Args(1) = 240、Args(3) = -500、figures = -500の桁数(3)

Local kariX = Args(1) - (figures * 16 / 2)
For i = 1 To figures
 Local posX = kariX + 16 * (i - 1)
 Local Num[$(i)] = RoundDown((Abs(Args(3)) Mod (10 ^ i)) / (10 ^ (i - 1)))
Next

こういう状況で、Args(1)、Args(3)、figures、kariXにちゃんと数字が入っていることをConfirmで確認しているのに、
常にposXに0が代入されてしまいます。また、Args(3)の各桁の数字をNum[$(i)]に代入しようと
4行目を描いたのですが、こちらも常に0が代入されてしまいます。何故でしょうか?

2:前提:posX = 前述どおり、Args(2) = 240、PPopt = 透過 フィルタ RGB(0,0,255) 50%

PaintPicture bitmap\Event\numPicture0.gif posX Eval(Args(2)) PPopt

こういう形でPaintPictureのオプションを変数で指定しようとしたのですが、"PPopt"や$(PPopt)にしても
エラーが出てしまいます。PaintPictureのオプションを変数で指定するにはどうすればいいのでしょうか?
0292名前は開発中のものです。2008/04/01(火) 02:42:18ID:q4rOSi+J
正直ツッコミどころが多すぎてどこから指摘していいか分からないのだが


Num[$(i)] = 〜〜
って書き方は普通しない。
つまり、$()の使い方が理解できてないんだよな? 式の所をちゃんと読み直すこと。
読んで理解してれば
>"PPopt"や$(PPopt)にしても エラーが出てしまいます。
なんて頓珍漢なことを書かなくても済む。

Localコマンドはサブルーチン中に一度で十分。

Confirmで確認って言うが、その確認するときに間違ってるってオチはないよな?
こっちが試す限りposXに数値は入ってるわけだが。

>Eval(Args(2))
わざわざEval関数を使っている理由が知りたい

オプションを変数で指定しようとする前に、
>PaintPicture bitmap\Event\numPicture0.gif 240 240
で表示されることは確認したか?
慣れてないうちは欲張らず、一つ一つ段階を踏んでやっていくべきだと思うんだが。
PaintPictureコマンドに限らず。


ところで、動かない原因を特定する努力をどれだけしたのか知りたいわけだが。…まあいいか
0293名前は開発中のものです。2008/04/01(火) 03:27:45ID:dgppVkw4
>Num[$(i)] = 〜〜 って書き方は普通しない。
と、するとどのように記述すればよいのでしょうか?Num[Eval(i)]?

>つまり、$()の使い方が理解できてないんだよな? 式の所をちゃんと読み直すこと
確かに、よくわかりません。ただどうも$()でくくってやらないと計算をするときに
数値と認識してくれないみたいなのでつけておいたのですが……

>Confirmで確認って言うが、その確認するときに間違ってるってオチはないよな?
Local kariX = Args(1) - (figures * 16 / 2) の直後に
Confirm "$(kariX) $(Args(1)) と posXとArgs(1)"
その直後のFor文内にある
Local posX = kariX + 16 * (i - 1) の直後に
Confirm "$(posX)"
を代入していますが、前者は正しく数値が代入されているので多分確認間違いではないと思います。

>わざわざEval関数を使っている理由が知りたい
どういう状況でなら変数が代入されている数値として認識されるのかさっぱりわからず、
とりあえず$()やEval()でくくると動くみたいなのでくくってみました。

>PaintPicture bitmap\Event\numPicture0.gif 240 240
こちらは一通り確認してみました。


一応ヘルプファイルを片手に組んでいたのですが、正直ヘルプの内容が省かれすぎで
よくわからないです……
0294名前は開発中のものです。2008/04/01(火) 03:28:51ID:dgppVkw4
×Confirm "$(kariX) $(Args(1)) と posXとArgs(1)"
○Confirm "$(kariX) $(Args(1)) と kariXとArgs(1)"
0295名前は開発中のものです。2008/04/01(火) 13:41:06ID:q4rOSi+J
それで、ヘルプの式のところは読んだのかと。

確かにヘルプの記述は省かれてる所が多いが、
書いてあるものを読み飛ばしてるんならそれはヘルプの問題じゃないぞ。


@式
>「"」で囲まれた文字列に「$(式)」という文字列が含まれていた場合、その部分が式の値に置換されます。
>これにより式の値を利用した文字列を簡単に記述することができます。この機能を式置換と呼びます。

@イベントコマンド
>イベントコマンドの引数は式として扱われます。従って引数に変数や関数を使うこともできます。

これらが原則。


コマンドによってはこれらの原則と違うことがあるが、そういう場合はヘルプに書いてある。
例えばTalkコマンドの場合
>メッセージ内に「$(式)」という文字列を入れることで任意の式の値を表示することもできます。
Askコマンドなら
>書式1の場合、選択肢は直接記述します。選択肢に「$(式)」という文字列を入れることで任意の式の値を表示することもできます。

裏返せば、これらの場合は$()で囲まないとメッセージ/選択肢中に式は使えないって事でもある。


原則と違うのに書いてなかったら記述抜けだからバグ報告板池
0296名前は開発中のものです。2008/04/01(火) 14:17:45ID:dgppVkw4
>これらが原則
すみません、そこは一応理解しています。
ただ、そもそも「式の定義がなにか」ということと、式置換の使いどころがよくわかりません。

今回の例で言うと、
PaintPicture 〜.gif posX Args(2) PPopt
と記述した場合PPoptがオプションとして認識されないので、「$()でくくって
実際の値になおしてやらないといけないのか?」と思い""や$()でくくってみたのですが……

それと、Num[$(i)] = 〜〜 はどのように記述するのが普通なのでしょうか。
0297名前は開発中のものです。2008/04/01(火) 16:02:21ID:DluGZjWi
一応どころか全然理解してないねwww
0298名前は開発中のものです。2008/04/01(火) 20:50:17ID:YtIbi2Yc
>>296
Num["$(i)"]とか、"Num[$(i)] "とかかな。

俺も最初は全然分からなかったから、ひたすら手探りで使えるパターンを試していったよ。
$()でいい場合もあれば、""でくくってやる必要がある場合、Evalをつかってやる必要がある場合など様々だ。
ひたすら試行錯誤していけば、使えるパターンが蓄積されていくから、あとはそれを使い回していけばいい。

ちなみに似たような処理(?)で俺はこんなことをしている。

Set 仮変数["$(Count(仮変数) + 1)"] 〜〜
0299名前は開発中のものです。2008/04/02(水) 00:56:44ID:wqwJMVAd
>>288-298
回答ありがとうございます。
posXについては、うっかりLocal宣言を二回繰り返していました。凡ミスすみません。
あとは
Local Num[$(i)] = RoundDown((Abs(Args(3)) Mod (10 ^ i)) / (10 ^ (i - 1)))

PaintPicture
の動作が上手くいけばほぼ完成なのですが……
PaintPictureのオプション引数に変数を指定する場合どういう形で指定する必要があるんでしょうか?
PPopt、"PPopt"、$(PPopt)、Eval(PPopt)、あるいはPPopt = "透過 フィルタ RGB(0,0,255) 50%"を括りをとったり
$()でくくったりも試したのですが、イベントデータが不正と吐き出されてしまいます。

>>298
ありがとうございます。しかし、Num[""$(i)]や"Num[$(i)]"ですとエラーになってしまうみたいです。
提示された例文の処理は、仮変数[1]、仮変数[2]が定義されている場合、次の処理では
仮変数[3#配列の要素数=2個 +1]に値が代入される、ということでしょうか
0300名前は開発中のものです。2008/04/02(水) 01:37:49ID:0giqmtIE
問題:""で囲まれた文字列のうち、$()で囲まれてない部分はどう扱われるでしょうか?
答えは、
「$()で囲まれてる部分は式として扱われる」んだから、
「$()で囲まれてない部分は式として扱われない」

式として扱われないんだから、"PPopt"は、 PPopt が変数だろうとなんだろうと、
「PPopt」と言う文字列として扱われて、変数名としては扱ってくれない。
だから、エラーが出て当然。変数として扱われる方が変、おかしい、異常事態。

これはっきり言って基本。これが理解できないうちはインクルなんて組まない方がマシ。
凝ったものなんか作ろうとしないでサンプルシナリオ改変して作れるぐらいの初歩的なイベントだけを使って、
その中でいかに面白いものを作るかを目指すべき段階。
君がやろうとしてるのは、ヨチヨチ歩きしかできないのに全力疾走しようとしてるようなもん。気が早いにもほどがある

別に頭で理解しなくても、色々試行錯誤しながら覚えてもいいわけだけど、
少なくとも「"PPopt"ってやったけどだめでした」なんて言っちゃてるのは、「私は全く読解力がありません」って言ってるのと同じだよ。

$()は""で囲まれた中で使うのが原則。""で囲まれてない所で使うほうが例外。


そして君は全く原則を理解してない。まずそこを自覚しろ。
かけらもわかってないくせに「一応理解してる」なんて見栄を張って何がしたいんだ?

繰り返して言う、
君は全く理解できてない。理解するための努力をしろ


ちなみに、二つ以上の引数を一つの変数で指定するのは無理。
理由を説明するのめんどくさいし、しても理解できないだろうから書かない。
0301名前は開発中のものです。2008/04/02(水) 01:44:45ID:jPHeUSId
>300
そうカリカリすんなよ
四月馬鹿にでも引っかかったのか?
0302名前は開発中のものです。2008/04/02(水) 01:49:01ID:wqwJMVAd
>>300
失礼ですが。
>なお、一つの引数に複数のオプションを指定することが出来ます。
>例 変数optに"透過 白黒"を代入しておき、PaintPictureコマンドの引数にoptを指定する。
とはっきりヘルプに書かれています。

PPopt と記述して認識されないのですから多分使わないだろう、と思っていても
考えうる全ての記述の仕方を試してみることがいけないことなのですか?

ヘルプでは""の中で$()を使う。確かにそう記述されていますが前述の
Num[i]みたいに$()でくくってやらないと動かない場合もあるのですから、
とにかくだめもとで試してみるのは質問する前の当然の義務だと思ってやったのですが、いけないのでしょうか。
0303名前は開発中のものです。2008/04/02(水) 04:57:16ID:bZtm8gMY
なんつーかさあ
なんでSRC始める奴にはヘルプも読まずに始めて
他人に頼るだけ頼って逆ギレする奴が多いんだろうなあ

だからいまいち盛り上がらないんだよな、SRCの界隈って。
0304名前は開発中のものです。2008/04/02(水) 13:18:06ID:FACUuKFr
>>302
ごちゃごちゃ書いてあって何が聞きたいのかさっぱりわかんないけど、
Num[$(i)]
なんて表記しないで
Num[i]
じゃうごかんの?
0305名前は開発中のものです。2008/04/02(水) 21:12:46ID:0giqmtIE
考えうるすべての記述の仕方を書いてるんだから、
Num[i]は真っ先に試してダメだったから聞いてんじゃないの?


RGB関数や#******以外のオプションは変数に入れて大丈夫だな。
読み落とした癖に偉そうに言ってた。そこはスマン

ただのバグだと思った
0306名前は開発中のものです。2008/04/02(水) 21:58:04ID:BJXT/qrB
>>278
もう解決しているかもしれないが、
射程以外同じものを複数つけて必要技能で細かく条件づけすれば良いかと
SPでやる場合はインクルードも絡めて地道にやるしかないと思う

===
ケアル,  回復Lv1, 3, -, 10, -, 魔術 (!AVI射程延長Lv1)
ケアル,  回復Lv1, 4, -, 10, -, 魔術 (AVI射程延長Lv1 !AVI射程延長Lv2)
ケアル,  回復Lv1, 5, -, 10, -, 魔術 (AVI射程延長Lv2)
0307名前は開発中のものです。2008/04/02(水) 22:10:41ID:SPBR0ZwE
>>308
なるほど、やはりその手の力技しかないか…。
種類が多いと面倒すぎるね。
0308名前は開発中のものです。2008/04/03(木) 03:04:06ID:JPUvLOkB
外道エムブレムという作品ではもっとすごい力技で独自のシステムを構築していたな
アレを見てからじゃちょっとやそっとの力技じゃ驚けなくなった
0309名前は開発中のものです。2008/04/10(木) 07:34:54ID:mt4yUcEz
独自システムと言えば、バトルコンフィグがいまひとつ良く解らんのだが

デフォルト式はなんとか弄れるんだが「命中率・CT率を5%以下にしない
(最低値を設定する)」とか、少し捻ろうとするとすぐ詰まるんだなこれが
0310名前は開発中のものです。2008/04/10(木) 11:54:19ID:gEZZQ0Va
最終命中率
Max(最終値,5)

でダメのかね
0311名前は開発中のものです。2008/04/10(木) 20:45:02ID:mt4yUcEz
命中率の式の中に組み込む訳じゃないのか。
試してみる。サンクス
0312名前は開発中のものです。2008/04/13(日) 22:15:23ID:GXNUN5cd
命中修正
100 + 命中 + 反応 + 運動性 + 攻撃値

↑このデフォルト計算式から運動性を抜いてみたんだが、それでも運動性が命中率に影響してしまうっぽい。
運動性の高いユニット、低いユニットで明らかに命中率に差が出る。
なんでだろ?
0313名前は開発中のものです。2008/04/13(日) 22:59:30ID:S6GW1o8H
命中修正じゃなくて命中補正
0314名前は開発中のものです。2008/04/14(月) 12:30:25ID:xdGdpIPn
マジか!でも回避と合わせていじっていて、反映自体はされていたようなんだけどな。
また後で試してみます。
0315名前は開発中のものです。2008/04/15(火) 11:00:50ID:inNtLV1a
SRCでファミコンウォーズみたいな戦略シミュレーションを実現させた例ってある?
ちょっと考えてみたんだけど、CPUに拠点の占領、防衛や
状況に合わせた生産といった概念を教え込むのは無理があるかな。
0316名前は開発中のものです。2008/04/15(火) 11:19:27ID:/SNrefSS
一見無理っぽいものを力ずくで実現してるシナリオって意外と多いからなぁ。
とはいえファミコンウォーズ的な戦術SLGの実例を俺は思い当たらないわけだが


可能かもしれないが、CPUのルーチンをイベントファイル上で一から組みなおす事になるだろうから
少なくとも作る手間はすごくかかると思う。

CPUの思考ルーチンに関しては最近の意見交換で話題に挙げてる人がちらほらいたと思うけど・・・
さっぱり意見が付いてなかった気もするな。
SRC的には未開拓&需要が無い分野なのかしらん
0317名前は開発中のものです。2008/04/15(火) 11:32:19ID:inNtLV1a
やっぱそうだよなあ…。
基本的な仕組みは作れても、肝心のCPUがお馬鹿じゃ遊んでもおもしろくないからな。
0318名前は開発中のものです。2008/04/15(火) 21:16:24ID:a4K/gt/L
敵が拠点占領やユニット生産を行ってくるシナリオというと
「アズラエルの野望」というシナリオが結構すごいよ
あとは「天魔召喚」とか「カプセルモンスター」もすこし毛色は違うがこのタイプ
ほかにもあるかもしれないけれど俺が思い出せるのはこれくらい
参考にしてみたらどうかね
0319名前は開発中のものです。2008/04/15(火) 22:54:43ID:I46+prEV
アズラエルの野望と野望アトラリス?だかアトラリウスだか忘れたけど、
この二つのシナリオで使われているインクルをアレンジすれば、
巨大作品による戦略シミュレーションの制作も可能かもな
0320名前は開発中のものです。2008/04/15(火) 22:56:13ID:s3/A6HD5
>>318
ありがとう、ちょっと覗いてみたけどなかなか参考になるな。
0321名前は開発中のものです。2008/04/26(土) 06:58:49ID:zzmnaLqc
>>315
軍板SRCはどうだ?
思考ルーチンはお馬鹿だが
基本的システムは出来上がっている
03223152008/04/27(日) 09:37:22ID:NIM4yEgx
そんな板にスレあるのかw
ちょっと見てくる。実はこっちも自前でそこそこ動かせるようにはなってる。
0323名前は開発中のものです。2008/04/29(火) 04:20:47ID:cVxvum1B
昔あった。今は無い。経緯は察しろ。
0324名前は開発中のものです。2008/04/29(火) 08:14:22ID:6Ga1O83p
経緯は分からないけど(過疎?)まとめサイトは残ってたからシナリオは見れたよ。
なかなかがんばって作ってあるな。
目指すものが近くても、人によって実現方法が違うのがおもしろい。

今試行錯誤しながら作っているけど、最初考えていたほど複雑なインクルは要らなくて、
発想+ヘルプの熟読でなんとかなることが多い。
0325名前は開発中のものです。2008/05/25(日) 21:50:46ID:s4Y1NuMK
>>324
頑張れよー
03263152008/05/27(火) 16:22:37ID:0K3WDbBo
実はすでに身内、というか知っている人向けに仮公開してます。
いろいろ教えてもらったので、ここでも報告した方がいいのかなーとも思ったけど、
まだ試作段階だし、わざわざ宣伝するような真似をしなくてもいいだろうと思って。
0327名前は開発中のものです。2008/05/28(水) 12:06:45ID:gPSHUrGn
まあ、匿名掲示板なんて利用したい時に利用したいように利用すればいいのさ。
他の住人の邪魔さえしなければ

よいSRCライフを
0328名前は開発中のものです。2008/05/28(水) 16:03:58ID:eUxBOJii
なんという良スレ
0329名前は開発中のものです。2008/06/07(土) 18:04:10ID:vaLzD+Jx
あらかじめ入力された配列A、B、Cがあるとして、それらをAskコマンドなどで任意に選択した際、
Countコマンドを使って選択した配列の要素数を確認しようとしているのだが、

Count(選択)

のようにしても選択した配列(例えばA)を認識してくれない。
この場合「選択」が配列名として認識されてしまうらしく、返り値が「0」になってしまう。
$つけたりEvalつけたり""で囲ってみたり色々やってみたが、どうしても式の値に置換してくれない。
何かいい手はないかな?

「選択」に配列名が格納されていること、各配列名に直接Countを当てると正常に返り値が出ることなどは確認済み。
0330名前は開発中のものです。2008/06/07(土) 18:30:08ID:Yk7mYAWv
if 選択 = "配列A" then
 count(配列A)〜〜
elseif 選択 = "配列B" then
 count(配列B)〜〜
elseif 選択 = "配列C" then
 count(配列C)〜〜
elseif …


endif

じゃまずい?
0331名前は開発中のものです。2008/06/07(土) 19:00:19ID:jpvH5wZr
とりあえずこんな感じでどうだろうか
多分もっとうまく出来る手段があるだろうけど

set あるふぁ[0] "あ"
set べーた[0] "あ"
べーた[1] = "あ"
set がんま[0] "あ"
がんま[1] = "あ"
がんま[2] = "あ"
set しーた

Ask どれ?
あるふぁ
べーた
がんま
End

Switch 選択
Case 1
しーた = Count(あるふぁ)
Case 2
しーた = Count(べーた)
Case 3
しーた = Count(がんま)
EndSw

Talk システム
$(しーた)
End
0332名前は開発中のものです。2008/06/07(土) 19:41:51ID:vaLzD+Jx
>>330-331
即レス感謝。一括処理は無理ってことですね、やっぱり。できそうでできない…。
配列数20以下だし、お二方が提示されたような並列処理に頼ることにします。
0333名前は開発中のものです。2008/06/09(月) 15:29:28ID:myHKuzUF
>>332
Countのカッコの中は一切式が使えないみたいだね。だからEvalも無効
だから
 Local カウント用
 Copyarray Eval(選択) カウント用
で、配列ごとコピーしておけば
Count(カウント用) で、選択した配列の要素数が取れる。

要素数が多くてLocal変数の作成数制限に引っかかりそうなら
イベント処理の最後に
 Unset カウント用
で。


亀気味レススマソ
0334名前は開発中のものです。2008/06/09(月) 18:59:04ID:fg4i9IZl
>>333
おお、こりゃ目から鱗。試してみたところちゃんと動作しました。
Copyarrayコマンドなんて使ったことがないので、こんな方法思いつきもしませんでしたw
一人で根詰めて考えて分からない問題も、こうやって他の人の視点を借りると
意外な解法が分かって本当にありがたいです。
0335名前は開発中のものです。2008/07/01(火) 20:16:15ID:7+c09EXk
ヴァルゴ更新キタ━━━━━━(゚∀゚)━━━━━━━!!!
0336名前は開発中のものです。2008/07/02(水) 17:57:12ID:04u4/6uB
誤爆?
0337名前は開発中のものです。2008/07/02(水) 18:46:25ID:XjyI++VS
反応不要だと思う。
0338名前は開発中のものです。2008/07/02(水) 18:50:08ID:k0f1W9Q+
ヴァルゴって何だ?と思って調べてみたら、数年前から更新停止してる化石シナリオじゃん
あんなシナリオよりもナインナンバーとかスーパーロボット大戦BBSとかの方が面白いよ
0339名前は開発中のものです。2008/07/05(土) 18:50:48ID:10D5WWQf
ここもまだ製作に使えないって事は良く分かった
いい試金石をありがとう>>553
0340名前は開発中のものです。2008/07/17(木) 21:13:23ID:RTSrFJ0t
敵ユニットって合体できんの?
0341名前は開発中のものです。2008/07/17(木) 21:47:59ID:LowcFbwc
味方ユニット以外はルーチン的にやらない=できない
0342名前は開発中のものです。2008/07/17(木) 22:15:35ID:RTSrFJ0t
レスはええw
CPUが自動で合体を行うことはないというのは分かるけど、
Combineコマンドなどシステム的なことを用いても不可能ということかな。
ちょっと面倒だけど何かしら擬似的な方法に頼るしかないか。
0343名前は開発中のものです。2008/07/17(木) 23:10:30ID:LowcFbwc
ゴメン、敵であってもCombine前にUnitで合体後のを作っておけば大丈夫っぽい。
0344名前は開発中のものです。2008/07/18(金) 08:58:48ID:5ulojfPS
RemoveとCreate使った方が早いと思うけどな。
0345名前は開発中のものです。2008/07/18(金) 09:35:46ID:eELt0fyD
>>344
単発のイベント絡みなら確かにそっちで十分だと思う。
実はダンジョンでランダム精製されるザコ同士の合体だから、
システム側で処理してもらった方が確実っぽいんだ。
まだいろいろ試してみないと分からないけど。

Unitコマンドで作られるのは味方ユニットだと思っていた。
0346名前は開発中のものです。2008/07/18(金) 11:47:53ID:nmF6NkkK
Unitコマンドで作られるのは味方だよ。
それが例外の一つとして、敵をメインにCombineで合体すると敵になる。

ただ、合体先をUnitで作ってそのままにしてると、
インターミッションセーブデータには存在する味方のはずなのにユニットステータス画面に表示されないみたいだね
0347名前は開発中のものです。2008/07/18(金) 13:50:33ID:eELt0fyD
>>347
なるほど。
今回のこととは関係ないけど、例えば機体入手のイベントを作る時
Unitコマンドで精製するだけではダメということなのか?
0348名前は開発中のものです。2008/07/18(金) 13:51:49ID:eELt0fyD
あ、「合体先」というのがミソなのか
0349名前は開発中のものです。2008/07/18(金) 14:32:34ID:nmF6NkkK
サンプルシナリオでちょっと試してみた。

1.ユニットステータス画面に表示されないがセーブデータに残る場合。

・味方以外の合体元ユニットが存在する時に、Unitコマンドで合体後ユニットを作成し、その後一度もCombineしないでマップを終了する。
   例
    Create 敵 キャリバーン 0 ジェイド=ソウマ 1 1 1
    Unit エクスカリバー 0
    Continue

・味方の合体ユニットが分離した後に、分離後ユニットが全員それぞれ個別に味方以外になる。
    Create 味方 キャリバーン 0 ジェイド=ソウマ 1 1 1
    Create 味方 ヴィヴィアン 0 アリス 1 1 1
    Unit エクスカリバー 0
    Combine ジェイド=ソウマ エクスカリバー
    Split ジェイド=ソウマ
    ChangeParty ジェイド=ソウマ 敵
    ChangeParty アリス 敵
    Continue

*味方以外の合体ユニットが分離した後に、分離後ユニットが全員それぞれ個別に味方になった場合は、合体後ユニットを改めてUnitで作成する必要がある
    Create 敵 キャリバーン 0 ジェイド=ソウマ 1 1 1
    Create 敵 ヴィヴィアン 0 アリス 1 1 1
    Unit エクスカリバー 0
    Combine ジェイド=ソウマ エクスカリバー
    Split ジェイド=ソウマ
    ChangeParty ジェイド=ソウマ 味方
    ChangeParty アリス 味方
    Continue
0350名前は開発中のものです。2008/07/18(金) 14:33:47ID:nmF6NkkK
続き

2.パイロット不在のユニットとして、ユニットステータス画面に存在する
・敵味方問わず合体元ユニットが存在しない時に、Unitコマンドで合体後ユニットを作成し、その後一度も合体しないでマップを終了する。
    Unit エクスカリバー 0
    Create 敵 キャリバーン 0 ジェイド=ソウマ 1 1 1
    Create 味方 ヴィヴィアン 0 アリス 1 1 1
    Continue


なんか複雑だが、
・味方以外用の合体後ユニットをUnitで作成したら、一度はCombineさせる。
・合体元ユニットの陣営を変更する場合には、できるだけ合体状態で行う。
を守れば変なことは起きないハズ
0351名前は開発中のものです。2008/07/18(金) 15:33:07ID:eELt0fyD
細かく検証乙です。
ちょっとややこしいけど、ちゃんと敵の合体にも対応できるようにシステムが作られているんですね。
確認ですが、「合体後ユニット」の定義はユニット用特殊能力の「分離」を持っているということでおkですか?
0352名前は開発中のものです。2008/07/19(土) 22:23:27ID:MJ32axWs
なんとかできたっぽいです。
Unitコマンド挿入でデフォルトユニットが変わってしまうのをうっかりして、
てこずってしまった。
いろいろ教えてくれた方々感謝です。
0353名前は開発中のものです。2008/08/26(火) 15:47:23ID:fsHkGMIb
Talkコマンドのcharacterは変数使用不可かな?

Ask
パイロットA
パイロットB
パイロットC
End
Talk $(選択)
〜〜〜
End

↑のような使い方を想定している。
Evalや$()で試していたがうまくいかないようだった。
例によって並列処理ならば何の問題もないのだけれど、可能ならば何かと手間が省けるかなと。
どうも無理っぽい気はするが。
0354名前は開発中のものです。2008/08/26(火) 16:38:42ID:y74bsupJ
つ「Askコマンドの説明を読み直す」
つ「変数"選択"に何が入ってるか確認する」
03553532008/08/26(火) 17:50:36ID:A+YcdBNb
あああああごめん例が間違ってた。
実際には別のやり方でやってたのだけれど、
例としてはAskコマンドを使った方が分かりやすいと思ったので。
Talkで使う変数にパイロット名が格納されていると仮定してください。ごめんなさい。
0356名前は開発中のものです。2008/08/26(火) 18:13:27ID:y74bsupJ
じゃあ本当にちゃんと変数にパイロット名が入っているか確認するところから。

解決しないなら、エラーメッセージが出てるだろうからその内容を
03573532008/08/26(火) 19:28:06ID:83/pTZiU
厳密に言うと変数ではなくて関数でした。
Foreach 味方
 Talk $(Info(パイロット, 対象パイロット, 愛称))
 〜〜〜
 End
Next

こんな具合です。
で、「$(Info(パイロット, 対象パイロット, 愛称))というパイロットが定義されていません」
というようなエラーメッセージが出ていました。

…今試していたところ、$()を除いて
 Talk Info(パイロット, 対象パイロット, 愛称)
 〜〜〜
 End
としてやったところ、ちゃんと動作しました。
$()やEvalをつけた方がいいだろうという誤った先入観で、そっちはチェックしていませんでした。
どうもお騒がせしました。回答ありがとうございます。
0358名前は開発中のものです。2008/09/18(木) 10:22:07ID:oWtIp+tv
Foreach 味方
 Talk Pilot()
 〜〜〜
 End
Next

これで動くだろ
0359名前は開発中のものです。2008/09/18(木) 13:36:10ID:ch2bbe4a
そんな話はしてない
0360名前は開発中のものです。2008/09/18(木) 14:26:44ID:Q0xaiqz3
解決済みだと書いてるのに今更レスというのもどうかと
0361名前は開発中のものです。2008/10/01(水) 22:51:50ID:9n+f1I7A
>>176-184あたりの件で、マップ兵器の攻撃に対し同種の処理を仕込む場合、何かいい方法はないのだろうか。

例:パワーダウン, 0, 1, 4, -10, -, 30, -, AAAA, +50, M投L1識

単体攻撃なら使えたメッセージデー組み込みは、マップ攻撃では
命中メッセージが表示されない=処理も発生しないのでダメ。
アニメ組み込みはアニメカットされるとダメ。
まだ試していないけれど、命中判定用のSPを使うにしても一体にしか使えないのでおそらくダメ。
0362名前は開発中のものです。2008/10/01(水) 23:21:41ID:KK42E0aH
まず、状態異常じゃない威力0の武器はクリティカルしないみたいだな。
表示が100%でも影響を受けなかった、で終わる。

それはさておき一般論としては…
アニメとエフェクト両方に記述ってダメだっけ?
0363名前は開発中のものです。2008/10/02(木) 00:16:38ID:wW4J6Uk3
的外れな見解かもしれんが、攻撃後イベントに
If 対象ユニット使用武器 = "(武器名)"と
Condition関数を利用して擬似的な状況を作り出すことはできんかな。
…面倒だし容量食うか。
0364名前は開発中のものです。2008/10/02(木) 03:08:56ID:EMrWnkcK
>363
それだと使ったかどうかの判定にはなっても、
当たったかどうかとかクリティカルしたかどうかの判定はできないと思うぜ。


そういえば暫く前の意見交換で戦闘結果を取得できる新たなシステム変数を、って話が出てた気がするんだがあれどうなった?
まあリクされてても実装までは果てしなく遠い気がしてしまうんだが
0365名前は開発中のものです。2008/10/02(木) 10:37:57ID:1dduHeT4
>>362-364
回答ありがとう。みんないつもこのスレチェックしてるの?
常に過疎ってるから、毎回返事まで数日くらいはかかっても当然だと思ってるのに、ほぼ即レスw

>>362
そうなんだよ。だから単体攻撃の場合も武器名(クリティカル)じゃ読み込んでくれない。
武器名(命中)で読み込んで、自前でクリティカル判定をしなきゃいけない。ちと不便。
一応脱L0みたいな発生しても影響のない特殊効果をつけておけば、システム側でクリティカル判定ができるけど、
前に話に出たように「気力を下げた」というメッセージが残ってしまう。
ちょっと別の話になるけど、熱血がかかった状態だと攻撃力0の武装が使用できなくなるなんていう仕様もある。
尽属性などで実際には攻撃力が発生していても、基礎攻撃力が0だとダメ。

で、アニメとエフェクトの両方への記述という方法だけど、ヘルプによると
「戦闘アニメの表示がオンになっている場合、戦闘アニメデータによる指定が優先される」
とあるのでちょっと無理だと思う。
03663612008/10/02(木) 22:14:37ID:bjhDkkRq
命中判定用SPのサブルーチン内で再び命中判定用SPをかける、という方法を思いついたのだが、
マップ兵器だと持続期間命中のSPでもイベント読み込みをしてくれない。手詰まりだ。

>>363の言ってることが今になって分かったんだけど、シナリオ内で使っていない適当な特殊効果を武器に付加しておいて、
攻撃後イベントでその特殊状態にあるユニットに対してイベントを実行すれば、一応動作可能だな。
問題はやはり特殊効果発動時のメッセージ。メッセージさえ出なければその案がかなり有力だと思うのだが…。
03673632008/10/03(金) 23:17:32ID:66m9ZsgH
>>361
言葉足らずで済まないと思っているが、意図を察してくれて補足まで入れてくれて感謝している。
確かに言うとおり>>363の方法だとシステムメッセが邪魔でどうしようも無かったな。

もう一つ、実現可能な感じの案を思いついたので提示させてもらうよ。

effect.txtファイルを作成し、その中に、
(マップ攻撃の武器名)(命中)(解説),$(Call(サブルーチン名))
特殊効果の(解説)がメッセージと同様に使えるのを利用したものだ。
実際にサブルーチンにSP絆ルーチンを入れて試してみたが、ちゃんとマップ兵器対象の全敵に命中時にド根性アニメがかかっていたんで動作は問題ないと思う。
…泣き所はこの方法がクリティカル判定時に対応していないことだな。
もし構想している方法が命中判定だけで妥協できるのなら…。
03683672008/10/03(金) 23:41:56ID:66m9ZsgH
補足。
わざわざeffect.txtを使ったのは、>>361が懸念している戦闘アニメのオフを想定して。
animation.txt内の同武器の命中に関わる処理を消しておけば、該当部分だけエフェクトを優先させることもできるよ。
命中アニメーションはサブルーチンのイベント内に纏めて組み込めば問題ないだろうしね。

…ああ、このスレの過去にクリティカルの手動判定の方法は載ってたんだっけ。
これでいけ…るのかな?自分は試してないけど。
03693612008/10/04(土) 14:48:31ID:X8Vsy6f5
>>367
実は自分でも昨日の晩effect.txtへの記述を試して、解決できそうだということに気付いた。
どうも勘違いしていたようで、animation.txtがある場合、effect.txtは読み込まれないだとか、
右クリック押しっぱでキャンセルされたらアウトだとか思い込んでいた。
よくヘルプを読んだら
>この式置換の式評価は上記の引数評価と異なり、
>戦闘アニメの表示がマウスの右ボタンクリックでキャンセルされてもキャンセルされません
とちゃんと載ってあるんだね。
部分的にeffect.txtが読み込めるということも、全然知らなかった。これでおそらく解決できると思う。
今晩あたりやってみます。どうもありがとう。

蛇足だが、戦闘アニメ内には(解説)じゃなくても式置換は使えたはず。
それと、クリティカル判定はバトルコンフィグの計算式をそのままイベントファイル上で再現して判定している。
…式がどこか間違っているらしくて、妙に表示数値と結果が合わないような気がしているけど。
バトルコンフィグをいじったらその度反映させなくちゃいけないし、本体側で判定できればベストなんだが。

結局一番最初にレスしてくれた>>362が正しかったようです。
よく検討もせずにあしらってしまってごめんなさい。
03703612008/10/04(土) 15:06:00ID:X8Vsy6f5
アニメデータやメッセデータに記述するやり方について、以前どこかで見たような気がして確認してみたら、
SRCwikiで触れられていた。

>似たようなことは、戦闘アニメデータ・特殊効果データでも可能ではあります。
>しかし、これらはプレイヤーの設定により切り替えるものだから、
>他の人に公開するシナリオではおすすめできません。

とあり、メッセージデータを用いる方が推奨されている。
どうもこれも先入観の一つになっていたようだ。
それともまだ何か他に問題があるのかな?
■ このスレッドは過去ログ倉庫に格納されています