トップページgamedev
986コメント422KB

WOLF RPGエディター 質問スレ 其の2

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/06/05(土) 01:49:44ID:LuX88AyW
フリーソフトのRPG製作ソフトWOLF RPGエディターの質問者のためのスレッドです。
教えられる方はできる範囲で教えてあげてください。

・質問初心者の方は、質問の仕方を学んでいってください。
・質問の答えと合わせて、模範的な解決法が示されることもあります。
・慣れたら公式で質問しましょう。
http://www.silversecond.com/WolfRPGEditor/BBStree/wforum.cgi?list=tree

WOLF RPGエディター公式サイト
http://www.silversecond.com/WolfRPGEditor/

以下公式より。これらで自学自習も可能です。

【講座・テキスト】
◆ウディタ講座 オススメ!
http://su-labo.sakura.ne.jp/kouza/
  超初心者向けウディタ講座
  これだけは必ず習得しましょう
◆サルディタ [ウディタ講座]
http://sarudita.web.fc2.com/
  理解度に応じた処理の解説

- 解説テキスト -
◆困ったときは 【WOLF RPGエディター パーフェクトガイド】
http://www.silversecond.com/WolfRPGEditor/Guide/
 逆引き解説集です。分からないことがあれば、とにかくこれを見てください!
 まだまだ執筆途中ですが、初心者の人には十分に役に立つはずです。
◆機能を知りたい人へ 【公式マニュアル】 [ウディタ機能仕様書]
http://www.silversecond.com/WolfRPGEditor/Help/
 レベル問わず、イベントコマンドの細かい仕様や裏技を知りたいならこちら!
0133名前は開発中のものです。2010/07/04(日) 00:10:19ID:Q+/kYNau
>>118の考え方を汲みつつ、問題点、解決方法を述べる。

問題点
1/ 文字列変数をセルフ変数に代入している。
2/ 次のキャラ判別への送り方が間違っている。

解決方法
1/ セルフ変数に代入するのをセルフ文字列変数に代入すれば良い。
  できれば一気に全員分取得するのではなく、逐一呼び出して取得すれば、最大2つしかセルフ文字列変数を使用しなくて済む。
2/ 最初から文字列変数を入れるのではなく、カウント用の変数を作り、それを利用してDBから読み込めば良い。
ex)
Cself0 = 0 ; カウント用変数Cself0の初期化
ループ回数 i
l DB読込: Cself5 = CDB[0:Cself0:0] ; Cself0番の主人公の名前をCself5に入れる。
l Cself1 = 0 ; カウント用変数Cself1の初期化
l ループ回数 j
l l Cself2 = Cself1 + 10 ; 実際の敵の番号をCself2に入れる。
l l DB読込: Cself6 = CDB[8:Cself2:0] ; Cself2番の敵の名前をCself6に入れる。
l l ここでCself5とCself6の名前が同じか調べる。同じだった場合は仲間にする。
l l Cself1 += 1 ; 次の敵へ送る。
l ループ回数 j へ戻る。
l Cself0 += 1 ; 次の主人公へ送る。
ループ回数 iへ戻る。
0134名前は開発中のものです。2010/07/04(日) 00:26:57ID:Q+/kYNau
>>132
最初に呼び出してから数字を加算するのと、呼び出す前に数字を加算してから呼び出すのは全く違う。
例えばCself5 = うるふ;Cself6 = えでぃたー;という文字列変数があり、それぞれの文字列をCself7、Cself8に呼び出したいとする。
ここで、>>132のやり方は

1/ Cself7 = Cself5;
2/ Cself8 = Cself5 + 1;

となる。本来、2/行のような表現はできないが、それは無視する。
これでCself7,Cself8を呼び出した場合、次のようになる。

Cself7 = うるふ
Cself8 = うるふ1

これを回避する為には、呼び出し値を呼ばずに加算して、その後呼び出せば良い。

1/ Cself7 = Cself5;
2/ Cself0 = 1600000 + 1; データを呼ばないにチェックを入れる。
3/ Cself8 = V[Cself0];

本来、3/行のような表現は文字列変数ではできないが、それは無視する。
これでCself7,Cself8を呼び出した場合、次のようになる。

Cself7 = うるふ
Cself8 = えでぃたー
0135名前は開発中のものです。2010/07/04(日) 00:28:23ID:Q+/kYNau
あ、ごめん、
2/ Cself0 = 1600000 + 1; データを呼ばないにチェックを入れる。
じゃなくて
2/ Cself0 = 1600005 + 1; データを呼ばないにチェックを入れる。
だわ
0136名前は開発中のものです。2010/07/04(日) 00:32:19ID:WYFNxaYN
>>132
コモンセルフ0にキャラ名を表す文字列のデータが入っていることを期待するのであれば、+100という操作は不可能になる
例えば "ウルファール" に 100 を足したら何になるだろうか

+100 ってのは「変数呼び出し値を」+100したいわけだよね?
ならば、コモンセルフ0には変数呼び出し値を表す「数値」が入っていないとおかしい

もちろんそのまま比較はできないから
>実際は1100000000番の変数の値との比較がしたいのだろうから、X番の変数呼出を挟む必要がある
となる

>どこらへんを触ればいいんですか?
ユーザーデータベース触ればいいんじゃないの?
敵キャラのデータに直接増やしてもいいし、新しくタイプ増やしてもいい
新しく増やす場合はIDの設定方法をDB指定にするといいよ
0137名前は開発中のものです。2010/07/04(日) 00:41:16ID:WYFNxaYN
文字列変数の場合「X番の呼び出し」じゃなくて「ロード位置を変数で指定」だった
0138名前は開発中のものです。2010/07/04(日) 00:43:58ID:Q+/kYNau
間違って変数処理でやっているからややこしくなるだけで、文字列変数用の処理を混ぜたら別段ややこしくないよな。
■ このスレッドは過去ログ倉庫に格納されています