本スレQ&Aまとめその2

Last-modified: 2008-05-15 (木) 22:11:50

Q&A

公式HPの変更で何か変わった?

387 名前:名前は開発中のものです。 投稿日:2008/04/25(金) 20:45:38 ID:tcVmPwXu
OHPのBBS廃止だってね
廃止項目に今は過去ログからしか見られない
SYS4BBSは入ってないんだけどどうなるんだろう

 

389 名前:名前は開発中のものです。 投稿日:2008/04/25(金) 22:42:58 ID:/srk9Aeb
ユーザークラブのHPにアクセスすら出来ないんですが、アクセス出来てる人はいらっしゃいますか?
SYSTEM4.0の開発キット関係とかも、このまま非公開になるのかな。

今作ってるゲーム公開出来ないとかいう事態は…

 

390 名前:名前は開発中のものです。 投稿日:2008/04/30(水) 16:43:48 ID:ByDPwmWP
ttp://alicesoft.wikia.com/wiki/User:Afker/ImageUseEmail
によると、サイトでのCG使用だとHPで下げたCGでも
年代を明記すれば当時の条件で使用できるらしい。

今作ってるゲーム公開できないという事にはならないと思うが、
これからのSDK配布が現在の再配布のみになると結構つらいかも。

SDK再配布している所で残っているのは2サイトだけだったと思うし
片方は更新停止で有料サーバー使っていたから……。

 

391 名前:名前は開発中のものです。 投稿日:2008/04/30(水) 21:02:44 ID:sweUUkvx
再公開や規約についてアリスにメールしてみた。
が、よく考えたら連休入ってるのでBBSに書いたほうがよかったかもしんない。

 

394 名前:名前は開発中のものです。 投稿日:2008/05/09(金) 21:07:27 ID:HnUniTjP
ひそひそ掲示板の方はまだ生きてるけど、多分見てないだろうしなー。
http://www.alicesoft.com/cgi-bin/club/sdk/cbbs.cgi

 

395 名前:名前は開発中のものです。 投稿日:2008/05/10(土) 01:38:23 ID:A9JOpr/J

393
アリスの2次創作リンク集の方では規約は現状維持という返信が来たらしく
SYS4の再配布とか始めてたんで、公開とかは問題ないと思う。

 

396 名前:391 投稿日:2008/05/10(土) 18:20:42 ID:qhgdgpWf

395
ほんとだ、サイトは知ってたがそこまで見てなかった。

これでおいらの問題は解決。

 

398 名前:名前は開発中のものです。 投稿日:2008/05/13(火) 20:39:49 ID:GHV14UvK
公式からダウンロードできなくなってるけど、公開やめたのかい?

 

399 名前:名前は開発中のものです。 投稿日:2008/05/13(火) 20:46:36 ID:C6ocw5GY
やめたのだよ。

いや、多分ポポリタンのページに繋げばDLできる気はするけど、
クラブページに繋げないからポポリタンのページのアドレスも分からんのね。
再配布しているところからDLしてちょ。

 

400 名前:名前は開発中のものです。 投稿日:2008/05/13(火) 20:56:35 ID:GHV14UvK
トンクス。やめちゃったのか
公開やめちゃったシステム使うのは少し不安が残るな……

 

MSG_DRAW_LAST();で再描画するには……

376 名前:名前は開発中のものです。 投稿日:2008/03/11(火) 09:50:35 ID:g0w5Ny2+
チュートリアルのセーブロードの件で質問です
ロード時にセーブ直前に表示されたメッセージ再描画のため
MSG_DRAW_LAST();
を使用していたので、再現するため
game_main(){
'アブドゥル'A;
MSG_DRAW_LAST();
}
上記ソースでテストしたところ

「アブドゥル」改頁待

のような実行結果となってしまいました。
どうもMSG_DRAW_LAST();が無視されているとしか思えないのですが
再びボスケテいただけないでしょうか

wiki・・もうちょっとSACTも触れて欲しいです

 

377 名前:名前は開発中のものです。 投稿日:2008/03/11(火) 18:53:50 ID:RYZ2rlb8
MSG_DRAW_LAST関数は「最後に表示されたメッセージを再描画」するから、

'アブドゥル'A;

MSG_DRAW_LAST();
なんつってしたら同じものが出てくるんじゃないかい?

SACTのセーブロード関数のサンプルで
「セーブ直前に表示されたメッセージテキストを再表示」と表現されてるのは、
SACT_RESUME_SAVE関数とMSG_DRAW_LASTの間で何もメッセージを表示させてない、
つまりセーブ直前のメッセージが出てくるということだと思うんだけど。

 

378 名前:名前は開発中のものです。 投稿日:2008/03/11(火) 18:57:51 ID:RYZ2rlb8
とまあ書いてはみたけど、
実際は俺も知らなくてMSG_DRAW_LASTでSDKフォルダに検索かけただけだったりする。
機能説明のコメントは一通りついてるし、検索できると便利かもよ?

 

380 名前:名前は開発中のものです。 投稿日:2008/03/12(水) 10:42:34 ID:jSbN2KRJ
記述不足っぽいすんません。

'アブドゥル'A;

MSG_DRAW_LAST();
と書いたからには

「アブドゥル」
「アブドゥル」

と表示されて欲しいわけです。
ロード時のメッセージ復帰に使用しようと思ってたんですが上手くいかず
とりあえず上記ソースでテストを行った結果、メッセージが重複して表示されなかったので
MSG_DRAW_LASTの使い方に問題があったのかと、質問させていただいた次第です。

 

382 名前:名前は開発中のものです。 投稿日:2008/03/12(水) 19:13:47 ID:dlKyug8T

380
A;はメッセージをクリアするとか、そういうことではない?
解釈が違ってたらごめん。
最初に改行が入るけど、二つ表示したいなら
R;'アブドゥル'B;
MSG_DRAW_LAST();A;

MSG_DRAW_LASTが描画するのは、最後にA;B;C;等で
描画したメッセージで、それには改行も含まれてるから
MSG_DRAW_LASTの先頭だけを改行したいなら
自分でMessageManager_tを操作する必要がありそう。

 

383 名前:名前は開発中のものです。 投稿日:2008/03/12(水) 20:21:30 ID:S8LKkQV2
あ、俺も試してたらひらめいた。

'アブドゥル'A;

MSG_DRAW_LAST();

の後にA;つければいいんでね?
サンプルはセーブ用の関数だから抜けた後でなんか処理してるだろうけど、

376はgame_mainだからそのまま通過して終わっちゃう。

 

384 名前:名前は開発中のものです。 投稿日:2008/03/12(水) 20:53:48 ID:Mg3Kgq5m

376
376のソースで実行してみたけど、普通に
「アブドゥルアブドゥル」
と表示されてしまった。(改行に関してはお好きに)

多分、383で言われているように、「MSG_DRAW_LAST();」の後に「A;」ついてないので瞬時に画面消えて見えなかったとか、
その辺の理由だと思います。(うちのマシンは遅いので、二つ目のアブドゥルも少し見える)

 

385 名前:名前は開発中のものです。 投稿日:2008/03/13(木) 09:02:11 ID:/XRlrfF9
皆さんありがとうございます。再現できました。俺がアホでした。

一応報告

結果
 別にA;をあとにつけなくても再現できてしまった。
 ただし改行とか改頁されないので
 MSG_DRAW_LAST();A;
 と記入するのがいいっぽい。

再現できなかった原因
scenario_func.jaf にて
 void A(void){
B;
SACT_A();
}
 メッセージ送りの快適さのためにこんなことしてた。

orz
ゴメンナサイ。

 

sys4で録画する方法

371 名前:名前は開発中のものです。 投稿日:2008/03/09(日) 08:31:00 ID:SkvlBWml
ニコ動に、作ったものを投稿したいのだけれど
sys4で録画する方法が分かりません。どうすればいいんでしょう。

 

372 名前:名前は開発中のものです。 投稿日:2008/03/09(日) 19:13:29 ID:Cz82xsvA
sys4と関係ない一般的な話だから、Windows板かソフトウェア板にでも行って
DirectXでもキャプチャできるソフトを探せ

 

373 名前:名前は開発中のものです。 投稿日:2008/03/09(日) 23:03:46 ID:SkvlBWml
それがキャプチャーできんのです。flapでもdxtoryでも。
SYS4の場合、DirectX系の動画キャプチャーでは無理っぽいのですが。

 

374 名前:名前は開発中のものです。 投稿日:2008/03/10(月) 01:04:50 ID:/kCN8Glm
戦国ランスのキャプチャ動画あったはずだから何かしら方法があるんじゃない?

 

375 名前:名前は開発中のものです。 投稿日:2008/03/10(月) 23:52:10 ID:PZZg9K26
最近のグラボにはよくS端子出力とかが付いてるから、
デッキを経由したりキャプチャボードに繋げばVGAサイズくらいでコピれるかも

 

381 名前:名前は開発中のものです。 投稿日:2008/03/12(水) 18:06:04 ID:AF6l4+VD
ttp://www.microsoft.com/japan/windows/windowsmedia/9series/encoder/default.aspx
マシンパワーがいるが、プレー動画が撮れる。

 

REGISTER_MESSAGE_CALLBACKとSACT_MESSAGE_REGISTの使い方

367 名前:名前は開発中のものです。 投稿日:2008/02/14(木) 15:33:24 ID:lFvH5fEb
SACT2関数の
REGISTER_MESSAGE_CALLBACKとSACT_MESSAGE_REGISTの
使い方が良くわかりません。
サンプルコードを試してみたがマニュアルにあるコードの実行例を再現できない。

ボスケテ

 

368 名前:名前は開発中のものです。 投稿日:2008/02/16(土) 01:56:37 ID:OruBd+lh
サンプルコードとは違うけど、コールバック関数内のreturnを消して、
一番最後にSACT_MESSAGE_REGISTを追加すれば、再現はできるよ。

 

369 名前:名前は開発中のものです。 投稿日:2008/02/16(土) 02:16:48 ID:IniXt8yd
ボス 決して走らず急いで歩いてきて そして早く僕らを助けて…か! むう lFvH5fEb…なんて難しい注文を!

蛙でございます。
void game_message_callback(ref int nMsgNum,int nNumofMsg, ref string sText){
if(sText=="主人公"){
sText="ランス";
nMsgNum = -1;
}
SACT_MESSAGE_REGIST(nMsgNum, sText);
}
void 初期化(){
REGISTER_MESSAGE_CALLBACK(&game_message_callback);
}

SACT_MESSAGE_REGIST関数が''内の文字を表示させる関数っぽい。しかしmessage関数の処理を見たらユーザー定義コールバック呼出が設定されているときに、このSACT_MESSAGE_REGIST関数が処理されない感じだった(たぶん)。
SCAT弄るの嫌なのでユーザー定義のコールバック関数の方に追加。
なお、ソース見たらsact_message_callback_tは関数型だったので、REGISTER_MESSAGE_CALLBACKの引数はsact_message_callback_t型の関数を使えということだろうと。
多分マニュアルの単純な記述ミスだと思います。

関数型って何なんだ…って所から始めたので、正直合ってる自信がないけど、一応動いたことは動いたので、取りあえず動けばいいやってことでしたら。
正しい説明は他の人お願いします。

 

16進法で返す方法

353 名前:名前は開発中のものです。 投稿日:2008/01/03(木) 00:22:17 ID:J9suxAsk
初歩的な質問で申し訳ないけど……。
整数を16進数で返す方法ってありますか?

 

354 名前:名前は開発中のものです。 投稿日:2008/01/03(木) 09:20:17 ID:fZeOkcpH
Sys4に限らないと思うけど、
2進数も10進数も16進数も、表記法が違うだけで中身は同じだよ。

10進数16が、16進数0x10という見た目になるだけであって
どちらもint型変数に格納できる。

 

355 名前:名前は開発中のものです。 投稿日:2008/01/03(木) 10:31:39 ID:J9suxAsk
はい。つまり表記で返すやり方を知りたいのです。
例としては、整数65535 を 文字列"FFFF" で返すということです。

 

356 名前:名前は開発中のものです。 投稿日:2008/01/03(木) 16:11:12 ID:X7Gj3bxx

355
プログラムの中で返したいの?

って、変換した奴だけ使いたいなら、いくらでもソフトあるか。

 

357 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 08:38:05 ID:bR+AzSYo

355
いろいろ試してみたけどむずかしい。10→16なら簡単なんだけどね。
方法を予想してみると、とりあえず16進数の桁数だけ領域を取った一次元のint配列に
「1-15」までの要素を入れ、最後にくっつけるやり方がスマートかもしれない。10進数から
16進数の桁数を算出する方法と、要素に16進数での値を入れる方法さえ分かればできると思う。
(俺はわからない)

 

358 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 12:15:27 ID:Bc3fruj+
"%x"とかじゃ駄目なんか

 

359 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 13:36:14 ID:ZvrZQLG7
間違えた。16→10だ。
つまり"FFFF"を 65535 にするならWIKIを参考にできるんだが。

358
"%x"って何だっけ?
出力変換なら、そういうのは無かったように思う。

 

360 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 14:18:47 ID:Bc3fruj+
適当にググったらCめいた出力変換が出来る様なことが書いてあったよ
ttp://www.geocities.jp/akt_trade/sys40/ScenarioVar.html
俺はsystem4.0使ってないから無責任な発言ですまんが

 

361 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 15:48:13 ID:VVEb3/k/
れつとれさんとこのは使い方が違うような……
蛙のダンジョンさんとこのソースがいいんじゃない?

 

362 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 17:04:16 ID:i/Zwdvnb
蛙のだんじょん!ところの人です。
頑張ってソース書いたけど、れつとれさん所の解説読んだら、出力変換できました。
以下ソース。(パラメータあんまりよく分かってません)

void 10→16進数(){
int 元=RAND(2147483647);
string 結果="%0X" % 元;
'10進数:'NH(元);R;
'16進数:'S(結果);A;
}

 

363 名前:名前は開発中のものです。 投稿日:2008/01/04(金) 19:34:30 ID:ZvrZQLG7
おおほんとうだ。マニュアルには
int値変換%d float値変換%f string値変換%s char値変換%c bool値変換%b
しか書かれてなかったから試さなかった。すまん>358。

"%X"は2バイト文字ではなく大文字になるみたいだね。
ありがとう熾憂さん。

 

364 名前:名前は開発中のものです。 投稿日:2008/01/09(水) 20:42:47 ID:oVZERYj2

356-363
遅くなりましたが有り難うございます。
おかげで型sz、引数intの関数をつくれました。

 

構造体同士のメンバ変数全部加算したい

351 名前:名前は開発中のものです。 投稿日:2008/01/02(水) 18:38:49 ID:yjODYZJu
構造体同士のメンバ変数全部加算させるみたいな事出来ないものか・・・

 

352 名前:名前は開発中のものです。 投稿日:2008/01/02(水) 22:03:35 ID:vVbqFkaY
演算子のオーバーロードがやりたいなら、無理だ。

普通に、構造体を2つ渡す関数を用意するのじゃ駄目かね?

 

母さん、戦国ランスのソースとってくれ

337 名前:名前は開発中のものです。 投稿日:2007/12/24(月) 10:38:52 ID:TLPoSiAJ
戦国ランスのソースとかってないのか?
戦国みたいなゲーム作りたいがどこがどうなってるのかよく分からん(´・ω・`)

 

338 名前:名前は開発中のものです。 投稿日:2007/12/25(火) 21:41:17 ID:rTg9VkUH
ない。

具体的に、ココがこう判らん、という話なら
教えるなり議論するなり、話の種くらいにはなるかもしれないが

 

339 名前:名前は開発中のものです。 投稿日:2007/12/26(水) 05:49:19 ID:ZQpX3LBN
ココがこう判らん
それがわかれば問題の8割は解決済みだ

 

340 名前:名前は開発中のものです。 投稿日:2007/12/26(水) 06:02:44 ID:iWoIrrsz
プログラムの常識かsysytem4の仕様か分かんなくてうやむやなとこが一番つまづいた

 

341 名前:名前は開発中のものです。 投稿日:2007/12/26(水) 20:03:45 ID:Mctx91sa
「作りたい物」を分割&抽象化して、
ソースコードと対になる設計にまで持ち込む作業ってコーディングより難しい。
というか、そこまでがゲームプログラムのキモだし。今更言うようなこっちゃないけど。

なんで、とりあえずお題を決めて何か喋ろうぜ。

 

345 名前:名前は開発中のものです。 投稿日:2007/12/28(金) 23:22:01 ID:KfUqS68a

338
やっぱり無いのか(´・ω・`)

じゃあ質問なんだが
戦国で相手の行動パターンってどんなかんじで作ってあるんだ?
交戦状態のときとか兵数が一定以下になったら攻めるのをやめるみたいな感じなんだろうけど
どういう風に書けば良いのかわからん

 

346 名前:名前は開発中のものです。 投稿日:2007/12/28(金) 23:45:23 ID:MhwWZ8rw
説明が難しいな……。国データと直結している。
多分国データの内部にある武将データが関係。

 

347 名前:名前は開発中のものです。 投稿日:2007/12/29(土) 00:35:25 ID:kfiiBsKO
struct 武将{
 兵数
 種別(前衛or後衛)
}
struct 軍団プリセット{
 種別[6]
}
struct 国{
 武将配列、軍団プリセット配列
}
軍団プリセット 全部忍者 = {忍者、忍者、忍者、忍者、忍者、忍者}
軍団プリセット バランス[1] = {武士、僧兵、なし、弓、巫女}
軍団プリセット バランス[2] = ・・・

void ターン(){
 for(国ID=0 ; 国ID<国数 ++国ID){
  if(交戦中フラグ[国ID]){
   国行動( 国ID )
}}}
国行動( 国ID )
{
 if(合戦回数=1)
  rerurn 全部忍者
 
 for(int i=0 ; i<試行回数 ; ++i)
  if( 派遣できる?関数( 国データ,バランス[ramdom] ) ) return バランス[ramdom];
 return 待機
}

ごめんかなり適当に考えた
複数回行動は定数とか割合を基準にして適当に計算したら楽だけど
SLG作るならもっとスマートにやらなきゃいかんのかな・・・ 定数使うのは意外とアリだと思うけど

 

348 名前:名前は開発中のものです。 投稿日:2007/12/30(日) 15:11:34 ID:8hcAIO7D
SLG作る際に重要な機能ってなんだ?

 

349 名前:名前は開発中のものです。 投稿日:2007/12/30(日) 17:34:45 ID:iIx8r+UB
構造体かな?
あと関数呼び出しのオブジェクト(関数ポインタだっけ)。
RPGでも重要だけど、思考ルーチンはSLGの方が重視されがちだし。