NScripter Ver.8.00
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/09/08(金) 21:39:40ID:/inm3Q++ゲームエンジンNScripterについて語るスレです。
技術的な質問も可。ただし最低限のマニュアルには目を通してね。
・本家
http://www.nscripter.com/
・うpろだ
http://andolf.hp.infoseek.co.jp/
・前スレ
Ver7.00
http://pc8.2ch.net/test/read.cgi/gamedev/1149639307/
Ver6.00
http://pc8.2ch.net/test/read.cgi/gamedev/1142593513/
Ver5.00
http://pc8.2ch.net/test/read.cgi/gamedev/1126791382/
Ver4.00
http://pc8.2ch.net/test/read.cgi/gamedev/1112550571/
Ver3.00
http://pc8.2ch.net/test/read.cgi/gamedev/1100029774/
Ver2.00
http://pc5.2ch.net/test/read.cgi/gamedev/1082131647/
初代
http://pc5.2ch.net/test/read.cgi/gamedev/1005121290/
その他関連リンクは>>2-4あたり。
0794名前は開発中のものです。
2006/11/26(日) 06:49:02ID:ML/b57yC移動させる物を作ってみようと思ったのですが難しい…。
void Drawでfor文とRenderSpriteを使って回せばいいっぽいんですが、
BOOL TimerとBOOL Messageの意味がさっぱり。
どなたかサンプルもしくはご教授頂けないでしょうか?
0795名前は開発中のものです。
2006/11/26(日) 17:08:30ID:vqJLN4cH分からなければ、
BOOL Timer(void){return TRUE;}
Message()は省略でいいんじゃない?
一抹の不安を感じるのは、for文で回すという表現・・・
複数スプライトということだよね? ね?
あとはT2氏にでも聞いてくれぃ
0796名前は開発中のものです。
2006/11/29(水) 14:30:36ID:N0ZZX3Zqbtnwait命令の後も定義が消えずに残る。
btntime 10000
btnwait %0
もう一度。
btnwait %0
if %0 = -2 end
\
二度目のウェイトで10秒待つと、何故か-5が代入される。
0797名前は開発中のものです。
2006/11/29(水) 15:20:32ID:mxgigb7U一度目の btnwait %0 の次行に btndef clear を入れたらタイマーちゃんと消える。
クリック待ちの設定は一度使った後にちゃんと消す習慣付けた方がいいよ。
あと時間切れで-5ってことはusewheel使用なんだろ? その検証スクリプト不親切すぎ。
btnwaitとbtnwait2の違いはボタン定義をクリアするか否かの違いだけど、
ボタン定義ってのはspbtnやexbtnのところであって、他の設定はクリアされない。
まあ何だ。自分で検証すればすぐ洗い出せるってこった。
0798名前は開発中のものです。
2006/11/29(水) 17:09:25ID:N0ZZX3ZqAPIのbtntime説明に『この命令を使った直後の……』とあるので、タイマーは直後のbtnwaitにしか効かないのかと思ってました。
-5は……、修正するの忘れてました。
(一旦-5で検証し、途中でusewheel付け忘れていることに気付いてスクリプトのifを-2に変えたが、その後文章を書く際にいつもの癖で-5と書いてしまった)
ともあれ、thxです。
0799名前は開発中のものです。
2006/12/03(日) 17:33:17ID:9p424y0t「こんにちわv」
と同時にごく短い音
「ピピピピピ」(言葉と同じ数)
を入れて、ボイス風にしたいなあと思ってるんですが、
「こwave"pi.wav":んwave"pi.wav":にwave"pi.wav":ちwave"pi.wav":わvwave"pi.wav"」
とやるしか思いつかないんです;;;;;;
何か他に良い方法はないものでしょうか?
0800名前は開発中のものです。
2006/12/03(日) 18:02:39ID:fn8YKsNw; ------------
dwaveloop 2,"pi.wav"
「こんにちわv」
dwavestop 2
; ------------
とやるけど?
0801名前は開発中のものです。
2006/12/03(日) 18:21:32ID:y+daOw1x過去ログ読んでみれば、何か分かるかも
0802名前は開発中のものです。
2006/12/03(日) 18:27:12ID:9p424y0tdですvv
0803名前は開発中のものです。
2006/12/03(日) 20:03:08ID:SJJz0gGb文字数測ってその回数分鳴らせばいいだけだし。
0804799
2006/12/03(日) 21:54:24ID:9p424y0tそれが一番楽でかつ無駄がないかも。やってみる。
文字数数えて変数に代入して、for文で変数の数だけ繰り返し音を鳴らせばいいんだよね?
dです。
0805名前は開発中のものです。
2006/12/03(日) 22:59:42ID:2EIIicKTカーソルキーでキャラを上下左右に動かすスクリプトを組みたいのですが、
キーの押しっぱなしを拾う方法ってないでしょうか?
下記のように組んだら一歩一歩止まってしまいます・・・orz
;---
btndef clear
getcursor
btndown 1
*loop
btnwait %0
if %0==-40 gosub *ue ;上移動
if %0==-41 gosub *migi ;右移動
if %0==-42 gosub *sita ;下移動
if %0==-43 gosub *hidari ;左移動
goto *loop
0806名前は開発中のものです。
2006/12/04(月) 09:39:05ID:TEFzC6i00807名前は開発中のものです。
2006/12/04(月) 18:21:27ID:VZVcvksQそれマウスの左だけじゃなかったっけ?違ったらスマン
0808名前は開発中のものです。
2006/12/04(月) 18:37:53ID:sUYGUBr70809名前は開発中のものです。
2006/12/04(月) 21:42:00ID:lc791S0aisdownでも無理みたい・・・orz
0810名前は開発中のものです。
2006/12/04(月) 21:54:42ID:guiZFhtv0811名前は開発中のものです。
2006/12/04(月) 22:05:59ID:lc791S0aそれだ!
なんで気付かなかったんだ自分・・・orz
ありがとうございます!m(_ _)m
0812806
2006/12/04(月) 22:54:28ID:2OuCIxzJつか、押しっぱなし判定しなくても止まらず普通に動くと思うんだけどなぁ。
逆に何で止まるのか知りたくなってきたかも。
*define
game
*start
lsp 0,":s#ffffff文字列",200,200
btndef clear:getcursor
*loop
btnwait %0
if %0==-40 gosub *ue ;上移動
if %0==-41 gosub *migi ;右移動
if %0==-42 gosub *sita ;下移動
if %0==-43 gosub *hidari ;左移動
goto *loop
*ue
msp 0,0,-10,0:print 1:return
*migi
msp 0,10,0,0:print 1:return
*hidari
msp 0,-10,0,0:print 1:return
*sita
msp 0,0,10,0:print 1:return
0813805
2006/12/05(火) 00:22:57ID:TiowdF+Mどうもthxです。
各動作ルーチンの中で
; -------------
*sita
mov %3,0
mov %1,%51
for %51=%1 to %1+24 step 4
resettimer:waittimer 30
if %3==0 lsp 1,":l;data\chara\001_D_01.bmp",%50,%51:print 1:mov %3,1:goto *sita_next
if %3==1 lsp 1,":l;data\chara\001_D_03.bmp",%50,%51:print 1:mov %3,0:goto *sita_next
*sita_next
next
return
; -------------
って感じの動作処理を入れて動かしてるんですけど、
それだと綺麗な動作にならずに一歩一歩止まってしまうんですorz
試しに左クリックで飛ばしてみると止まらずにスムーズに動くので
たぶん、キーボードの押しっぱなし判定は拾えてない気がします。。。
0814805
2006/12/05(火) 00:25:40ID:TiowdF+M動くことは動きますけれど、途切れ途切れで綺麗に動かないという意味です。
分かりにくくてすいません。。。
0815名前は開発中のものです。
2006/12/06(水) 16:18:21ID:0C2kjNYy0816名前は開発中のものです。
2006/12/06(水) 17:16:06ID:CTG7k8IZ*start
|
├┐
1 2
├┘
|
*end
こんな感じで一本道から二本道にgosubでシナリオを分岐させていたんですが、
「2」のシナリオ中にカスタマイズメニューで作った*startに戻る処理(goto処理)を実行させると
gosubネストがスタックしてしまいますよね?
ぽまいらはどうやって上記のようなシナリオを上手く処理しているのか、是非教えて下さいm(_ _)m
分岐
質問です。
NScripterの*start
0817名前は開発中のものです。
2006/12/06(水) 17:16:52ID:CTG7k8IZ0818名前は開発中のものです。
2006/12/06(水) 17:53:41ID:QkW9qfn+中には怒るプラグインがあるかも
俺は動けば怒らんけど
動かなくても怒るほど感性豊かじゃないけどな
0819名前は開発中のものです。
2006/12/06(水) 18:32:32ID:GHYK1kcQスタックを削りつつgoto文と同じ感覚で飛ばせる
本当に*startに戻したいだけだったらresetすりゃいい気もするが
0820名前は開発中のものです。
2006/12/06(水) 18:39:52ID:NHJUEQZp大抵はgotoで処理できるんだけどな
というか、シナリオ分岐ならgosubじゃなくてgotoでいいじゃん・・・
resetでもいいけど、タイトルや戻り先にラベル指定してgotoで飛ばせばいいだけ
0821名前は開発中のものです。
2006/12/06(水) 19:40:02ID:8JPJe2atでも例えば、シナリオをシーンごとにわけておいて
主処理ではそれをgosubで拾っていくって形にしてるなら、
やっぱStartへ戻す処理をresetかdefineresetにするのが常道だろう。
(俺はこっちをやってる)
0822名前は開発中のものです。
2006/12/06(水) 19:52:01ID:CTG7k8IZ例では簡単に書きましたが、現在作っているものは既存のギャルゲーよりも
シナリオマトリクスがかなり複雑なものでgotoではやり辛かったんです。
(出来ることは出来ますが、フラグで飛び先を管理する事を考えるとgosubジャンプはかなり楽なので…)
という訳で>>821さん良い命令をありがとうございます。
0823名前は開発中のものです。
2006/12/09(土) 00:03:05ID:9SY8F3UT0824名前は開発中のものです。
2006/12/09(土) 00:19:44ID:wM5/090q0825名前は開発中のものです。
2006/12/09(土) 17:39:51ID:5PLhcp5U複数のbarをパラメーターを弄らず一時的に消したいのですが該当する命令ってあります?
使用箇所としては、RPGの戦闘画面でbarをライフポイントとして使用しているのですが、セーブ画面、ロード画面をlspで表示している時だけ非表示。
セーブ画面、ロード画面から戻った時。RPGの戦闘画面に戻ったら再表示という形です。
セーブ・ロード画面に行く時にbarclearかけて、戻る時に再度パラメーター指定してバー表示しなきゃ駄目かな?
0826名前は開発中のものです。
2006/12/09(土) 18:02:08ID:j7BiLCsa俺もそれやりたいんだけど、一旦クリアして戻ったら再描画するしか無いみたいだ。。。
せめてbarをスプライトよりも後ろに表示できれば
スプライトを上に乗せて隠すことも出来るんだけどなー・・・orz
0827名前は開発中のものです。
2006/12/09(土) 18:09:55ID:0CsgNBHw確かにNscで、一度メニュー画面にしてから復帰した時って
画面の復元とかって面倒だよね。
俺もそれと似たような悩みがあった。
結局俺は画面切り替える時に自動セーブして、
復帰する時にロードで復帰させるようにした。
けど、テキストもページ先頭に戻っちゃうので工夫が必要になる。
オススメできない。
0828名前は開発中のものです。
2006/12/09(土) 18:23:54ID:5PLhcp5Uまじですか。レスありがとう
完全に上くるから再表示させるっきゃないんだよね。
戦闘画面からセーブ画面、ロード画面、武器変更画面、etc...ってあるから手間かかるんだよねぇ
まぁ気合でどうにかしてみます。どもでした。
0829名前は開発中のものです。
2006/12/09(土) 18:33:04ID:0CsgNBHw「あ、ミスった。……ロードして一手前からやりなおしっと」
って事にならんか?
0830名前は開発中のものです。
2006/12/09(土) 18:37:17ID:TgPhyKPXヌル機能は装備しといて、使う使わないはユーザ任せでいい
「このゲームはやりなおしがめんどくせぇ」と思われるのが一番危険かと
0831名前は開発中のものです。
2006/12/09(土) 20:07:14ID:j7BiLCsaSLGなら分かるけどRPGで戦闘中セーブはかなり珍しいだろ
0832名前は開発中のものです。
2006/12/09(土) 20:27:55ID:FHCAxNIk0833名前は開発中のものです。
2006/12/09(土) 20:55:26ID:sz65gKpYそれ次第だな。
0834名前は開発中のものです。
2006/12/09(土) 21:29:36ID:BUp208IWつか、直前のレスくらい嫁w つ>>825
0835名前は開発中のものです。
2006/12/09(土) 21:53:08ID:sz65gKpY0836名前は開発中のものです。
2006/12/09(土) 23:35:55ID:5PLhcp5U折角の休みを戦闘コマンド(主にスキルとスキルに対する効果処理)を組み込む私って一体・・・
0837名前は開発中のものです。
2006/12/10(日) 01:55:20ID:6hpjCAtB確かにNスクは画像やテキストの扱いが簡単だけど
0838名前は開発中のものです。
2006/12/10(日) 11:45:09ID:qKJYWy1fNスクの利点を挙げてHSPを薦める理屈が分からん
0839名前は開発中のものです。
2006/12/10(日) 11:48:11ID:cRaBySnMS スパッツ
P プリンプリン
0840名前は開発中のものです。
2006/12/10(日) 12:01:19ID:EMhp2oxSしり?
プリンプリン
0841名前は開発中のものです。
2006/12/10(日) 12:53:44ID:Kl/z74Au画像やテキストの扱いがNscより難しいけど
あんたならやれるんじゃねーの?
って意味だろ。
0842名前は開発中のものです。
2006/12/10(日) 15:02:43ID:+eBvq6CT食堂でカツ丼を注文して既に食べている人間に対して、
「カツ丼よりも天丼のほうがいいぞ!美味しくないけど。
カツ丼を食えるあんたなら天丼でも食えるだろ!」
と薦めるようなものだな。
0843名前は開発中のものです。
2006/12/10(日) 15:04:12ID:9wf2M1DS0844名前は開発中のものです。
2006/12/10(日) 15:06:54ID:Kl/z74Au0845名前は開発中のものです。
2006/12/10(日) 16:38:10ID:Y4KJ3Nly0846名前は開発中のものです。
2006/12/10(日) 20:16:28ID:UaEKDl2c――と思ったけど、あんま変わってないな。
0847名前は開発中のものです。
2006/12/10(日) 21:11:44ID:9FtxcCGV0848名前は開発中のものです。
2006/12/10(日) 21:36:48ID:px7Y2MTk0849名前は開発中のものです。
2006/12/12(火) 18:33:17ID:/AKi6u9o今頃になって気が付いたよ。
でもマスククロスフェードが遅くなってるけど。
0850名前は開発中のものです。
2006/12/12(火) 19:43:39ID:FPJbbEYE構成的に見栄え落ちるけど。
0851名前は開発中のものです。
2006/12/13(水) 10:27:31ID:ry02KVprやっぱキリキリなのかな
0852名前は開発中のものです。
2006/12/13(水) 10:34:01ID:f7kgVhyyようするにおまえ次第です
0853名前は開発中のものです。
2006/12/13(水) 11:17:06ID:ry02KVpr0854名前は開発中のものです。
2006/12/13(水) 11:30:43ID:Ca445vsY2DのRPG作るならどっちでも大してかわらんというか作り手に左右される。
吉里吉里でもNスクでもノベル用途で使うなら大してかわらんから同様。
結局、ID:ry02KVprがいいゲームを作れる奴ならどっちでも作れるし、
作れない奴ならどっち使っても無駄。
0855名前は開発中のものです。
2006/12/13(水) 19:58:11ID:X+zbSusn0856名前は開発中のものです。
2006/12/14(木) 01:46:12ID:tcxkhkDs2つのキャラを同時に動かして、
前になったり後ろになったりする処理をしたいんですけど・・・。
0857名前は開発中のものです。
2006/12/14(木) 01:53:51ID:YU1x+6Qg0858名前は開発中のものです。
2006/12/14(木) 01:55:05ID:pPXglL7W上と下で2種類用意すればいいんじゃない?
0859名前は開発中のものです。
2006/12/14(木) 02:00:03ID:MHG+YIAp出さないようには出来ないのでしょうか?
0860名前は開発中のものです。
2006/12/14(木) 02:07:33ID:YU1x+6Qgそういえばデバッグ切る命令ってなかったね
まぁ、キーボードでDを使わなければ切る意味もないと思うけど
0861名前は開発中のものです。
2006/12/14(木) 03:23:15ID:MHG+YIAp初歩的な事を質問してしまって済みませんでした。
それと教えて下さりありがとうございました。
0862名前は開発中のものです。
2006/12/14(木) 18:32:27ID:W0SuOJYE実際あったらどう思います?
0863名前は開発中のものです。
2006/12/14(木) 19:38:24ID:e2HRnJrL0864名前は開発中のものです。
2006/12/14(木) 19:49:28ID:KLZ7IHSSbreakで一度抜けて、もう一度頭からじゃだめなの?
簡単に組める命令を追加されてもなぁ・・・
つか、それがなきゃ困る状況って
あんまり想像つかないんだが
0865名前は開発中のものです。
2006/12/14(木) 19:54:29ID:bB5gRA+gfor文中に初期化したくなったら、for %0 = 0 to 5ならmov %0,0って
ループ数えてる変数に初期値代入するだけじゃダメなんだっけ?
とゆーか、862の言うスレってのが何の事かさっぱり分からない件。
0866名前は開発中のものです。
2006/12/14(木) 21:36:20ID:7tQMXZ1Eループ処理を動かしてる途中でtrapで抜けた場合とかに
ちょっと欲しいかも。
trap系の命令ってgosubじゃなくてgotoで飛ぶし。
0867名前は開発中のものです。
2006/12/14(木) 22:08:46ID:0zur3hXRラベルをgotoで繰り返せよ。回数指定は変数用意してif判定で済むんだし。
0868名前は開発中のものです。
2006/12/14(木) 23:14:57ID:7tQMXZ1Eそういうスタック消しの命令があればforでも組めるから楽だなって話。
gotoでループ組む方がバグの元という気もしないでもないけど、
gotoループもNスクでは普通なんだよなー。。。
0869名前は開発中のものです。
2006/12/14(木) 23:21:40ID:0zur3hXRいやNスク前提で、trap使用ならそのパターンしかなくね?
0870名前は開発中のものです。
2006/12/15(金) 01:34:50ID:JughAJ8Ctrapの飛び先でbreak *ラベル名ってすればおk
trap *a
for 〜
next
goto *b
*a
break *b
*b
こんな感じ。
0871名前は開発中のものです。
2006/12/15(金) 15:48:13ID:6z1/rwJIFate h/aって再現可能?
0872名前は開発中のものです。
2006/12/15(金) 15:59:55ID:RIvnUJAO0873名前は開発中のものです。
2006/12/15(金) 19:52:44ID:WS48s8K30874名前は開発中のものです。
2006/12/15(金) 19:58:07ID:pAS7czKG0875名前は開発中のものです。
2006/12/15(金) 20:20:00ID:vUGCXD6m0876名前は開発中のものです。
2006/12/15(金) 20:44:34ID:YNS80TP+0877名前は開発中のものです。
2006/12/15(金) 22:34:47ID:kAW7vEFGおぉ!
知らんかった。thx!
0878名前は開発中のものです。
2006/12/16(土) 01:30:11ID:/WmagKU7ちゃんと飛んでくれるのが便利だ・・・
と思ってたら、gosubルーチン内で使ったらエラーになった。
なんだか不安定な動きをするなこれ;;;
0879名前は開発中のものです。
2006/12/16(土) 01:51:45ID:XNan4rzS別に不安定なままで良いんじゃない?
0880名前は開発中のものです。
2006/12/16(土) 02:22:03ID:WrHDcd7Bヘタな使い方してるにも関わらずエラーがでなかったりするとヤバいぞ。
変な挙動しても、原因が突き止められん。
0881名前は開発中のものです。
2006/12/16(土) 03:06:47ID:gG5Xz9/1それ用の命令が欲しいな
0882名前は開発中のものです。
2006/12/16(土) 09:08:40ID:BwEJ2uC5そんな特異な処理やってるようじゃ潰しが利かんだろ。
スタック消しなんて命令を常時使ってるような言語、少なくとも俺は知らんが。
0883名前は開発中のものです。
2006/12/16(土) 11:21:40ID:M71D0nzTそもそもgosubには最初から関係ないだろ?
0884名前は開発中のものです。
2006/12/16(土) 13:38:06ID:8FVsW9Bsいや、gosubをbreakで抜けたいって意味じゃなくてだな。。。
何故かgosubで飛んだルーチン内でfor文を使わずに「break *ラベル」を使うとエラーになるんだわ。
gosubルーチン内じゃなければエラーにならんのだが。
理由は分からん。実際に試してみてくれ。
0885名前は開発中のものです。
2006/12/16(土) 13:40:30ID:BoWWvG6Ubreakで抜けれるのはあくまでfor-next。
for-next内のgosubから一気に外に飛ぼうとしたら、gosubのスタックに引っ掛かって当たり前。
他の言語だって、for処理やwhile処理内で呼び出した関数から直接外に出るなんて、普通ならまずしない処理だと思うぞ。
ずぼらせずに、gosubをdefsubにして、引数でtrap中断フラグ返して、その値でreturn後にbreak判定すれ。
それかfor-next使わず、ラベルgotoでループさせろ。それならgosub先からreturn *ラベルで一発で抜けれるんだし。
いつまでもgdgdとスタック消しクレクレ言ってる暇があったら、自分のスクリプト見直せ。
0886名前は開発中のものです。
2006/12/16(土) 13:42:19ID:BoWWvG6Uしかし、884読んでも何したいのかさっぱりわからん。for文無いのに、何でbreakしてんだ?てかbreak *ラベルって何?
0887名前は開発中のものです。
2006/12/16(土) 13:46:45ID:8FVsW9Bs別にクレクレじゃないっての(笑)
break *ラベルの仕様がどうなってんのかいろいろ試してみてるだけ。使用報告も兼ねつつ。
>>886
マニュアル嫁。
breakでラベルに飛ぶ命令
0888名前は開発中のものです。
2006/12/16(土) 13:53:05ID:BoWWvG6U0889名前は開発中のものです。
2006/12/16(土) 13:57:23ID:LDOYuU0Eヒント:新マニュアル\追加命令一覧.txt
0890名前は開発中のものです。
2006/12/16(土) 14:03:22ID:BoWWvG6Uでもやっぱり、for-next無いのに使うのがおかしいんじゃないのかな…
0891名前は開発中のものです。
2006/12/16(土) 14:04:47ID:ux/5bGeRきちんとreturnで戻るようにしとけばスタック消す命令は必要ないと思うけど
つか、for-nextの外でbreak使うこと自体がよろしくないでしょ
>>885も言ってるけど、同じ処理を別の方法で実装できるなら
for-nextを使う必要だってないわけだから
そこらへん、もうちょっと柔軟に考えた方がいいんじゃないかな
0892名前は開発中のものです。
2006/12/16(土) 14:24:50ID:M71D0nzT要するにただ、gosub中じゃなければエラーにならないのが不思議だってことね
別に妙機能を要望してるわけでも文句言ってるわけでもなく
0893名前は開発中のものです。
2006/12/16(土) 14:35:15ID:8FVsW9Bsで、この変な動きをなんとか便利に使う場所がないかと考えた結果、
「処理をtrapで抜けた場合に
for-nextループ内で抜けたのかそれ以外の場所なのかに関係なく
breakラベルで飛ばしておけば無関係にnextのスタックが消せる」
くらいかなぁ、と(;´∀`)
■ このスレッドは過去ログ倉庫に格納されています