NScripter Ver.19.00

■ このスレッドは過去ログ倉庫に格納されています
2014/01/30(木) 22:41:08.23ID:BRbRh5DC
商業流通でなければフリーで利用可能な
ゲームエンジンNScripterについて語るスレです。

・本家
ttp://www.nscripter.com/

・うpろだ
ttp://nscuploader.wkeya.com/
103名前は開発中のものです。
垢版 |
2014/03/19(水) 16:55:59.57ID:ffvKRji2
>>102
ありがとうございます

しかし先週Nscripter始めたばかりでまだ良くわかってません。
もし良かったらもう少し具体的にお願いできないでしょうかm(__)m
2014/03/19(水) 17:27:18.23ID:NHl2z7g1
シスカマのソース内容を読んで理解できる程度のスキルを積む
変数の扱い方覚える

即物的に知っても意味無いから使い始めるなら
基礎は身に付けたほうがいい
そうすれば>>102が具体的な対処法を示してると分かるよ
105101
垢版 |
2014/03/19(水) 17:42:38.14ID:ffvKRji2
もっと簡単に考えてました。
102さんの言ってることは薄っすら分かるんですが、まさかシスカマまでいくとなると今の僕では出来なかもorz
2014/03/19(水) 17:53:56.88ID:yhFLOHMT
シスカマした方が楽だが、別になくてもできる。
select命令の前の行でisskipするだけで状態取得できる。
selectで飛んだラベルの先で判断してオートさせれ。
2014/03/19(水) 18:20:45.57ID:Zh+6lj+c
長年積み重なった便利命令が地味に色々ある
108101
垢版 |
2014/03/19(水) 19:36:35.24ID:ffvKRji2
レス下さった皆さん、有難うございます。
isskipで何とかなりそうです。
まだNスク一週間未満でシスカマは座敷が高いけど頑張ってみます。
2014/03/19(水) 22:23:54.34ID:bbbwfQ1W
>>98
これだと"st_noe"と"st_t1"は
スプライトセット名=""、スプライトセットのz値=10000のスプライトになってるね

スプライトの名前を"st:none"、"st:t1"にすれば期待した動作になると思うよ
2014/03/19(水) 22:32:39.58ID:e6HTnj1i
>>109
本当にすみません・・・全く気付きませんでした・・・

修正したら期待した動作になりました。

ありがとうございました。
2014/03/19(水) 23:39:42.03ID:e6HTnj1i
>>109
あれ・・すみません、よく見たら
>z値=10000のスプライトになってるね
とありますが、この10000というのはどこから出てきた数値なんでしょうか?

もしかしてスプライトのz値は属しているスプライトセットがあれば
スプライトセットのz値xスプライトのz値なのか?と思って

spset "gra",100
sp "gra:1",{name={"?テキスト,menu3","?テキスト,menu4"},x=350,y=530,z=8}
spset "sa",99
sp "sa:1",{name="a\test.png",x=300,y=0,z=10}

とやってみましたが、"sa:1"が"gra:1"より手前に表示されました

これってもしかして、スプライトセットのz値が高い(上の例で言うとspset"gra")ものに
属しているスプライト(上の例だと"gra:1")は、それよりz値が低いスプライトセットが
属しているスプライト(上の例だと"sa:1")より手前には表示できないのでしょうか?
つまり、セットが属しているスプライト自体のz値は、同じz値を持つスプライトセット間でのみ
意味があるような動作をしているように見えるのですが

つまり上記の"gra:1"というスプライトを"sa:1"より手前に表示させるには"gra:1"を"gra"という
スプライトセットから外すしかないんでしょうか?

なんかz値って単に0に近ければ手前にくるだけのものって言っても
spとspsetのネスト関係があるせいで思ったより複雑な動きしててよく分からなくなってきました

sp z値 nscripter2とかでググっても何も出てきませんでした・・・
2014/03/20(木) 22:34:39.30ID:R4YaCxNl
>>111
スプライトは必ずスプライトセットに所属します
明示的にスプライトセットを指定しない場合、スプライトセット名""のスプライトセットに自動で編入されます
スプラトセット""のz値はデフォルトでは、10000に設定されています

スプライトセットはz値にしたがってソートされます
数値の小さいほうが上で、数値の大きいほうが下になります

スプライトのz値は、所属するスプライトセットの中でのみ有効です
つまり、スプライトはスプライトセットを跨いだり飛び越えたりはしません

例:
spsetz "a",100
spz "a:a01",200
spz "a:a02",201
spsetz "b",101
spz "b:b01",10
spz "b:b02",11
spz "c01",1
とした場合

----"a"=100----
a:a01=200
a:a02=201
----"b"=101----
b:b01=10
b:b02=11
----""=10000----
c01=1

のように配置されます
マニュアル「NScripter2BASIC命令・関数表.txt」が参考になると思います
113helpよろしくです
垢版 |
2014/03/21(金) 22:13:47.94ID:NWe/nM23
アンドロイドの実機でプレイした時に出る左端の右クリック、左クリック
などのツールバーはどうすれば消せますか?
2014/03/22(土) 13:00:08.83ID:JSnWAC6M
>>112
ありがとうございます。
ちょっと今出張中なので試せないので、また触れるようになったら
試してみます
115初心者A
垢版 |
2014/03/23(日) 21:39:50.64ID:JwvyC9fe
bgmの音量を変えようとして
bgm "bgm\xxx.ogg":bgmvol 30,50  って入力したら
次の文章に,50が出てくるようになってしまったんだが、
,50を消すにはどうすればいいんでしょうか。
2014/03/23(日) 22:45:48.57ID:QacflObd
ていうかその50はなんなの?
bgmvol に指定できるパラメータはボリューム値ひとつだけじゃないの。
2014/03/25(火) 02:05:13.06ID:VBLVhYq7
vipで企画モノやってましたが、ポシャりそうなのでさっきテスト版的なのを
アップしてきました
ttp://iup.2ch-library.com/i/i1158160-1395674092.png

ここで解決できなければこのような作りは出来ない箇所が多々ありました。
スペシャルサンクスにこのスレを挙げさせて頂きました(まだ完成してないですけど)

>>112
すみません、あと一つ質問なのですが、ボタンの上にカーソルを置いた時にSEを
鳴らしたいのですが、エラーが出てエンジンが落ちます

リファレンスを見るとボタンにカーソルが乗った時に音を鳴らすには

BTN "sp4",{on="P(sp1,0)P(sp2,1)"}
on="スプライト操作文字列"
 ボタンにカーソルが重なったときに実行する処理を指定します。
"S(test.ogg)" そのサウンドを再生します。

とあります。 つまり

btn "test",{on="S(sound\test.ogg)"}

とすればいい認識なのですが

↓続きます
2014/03/25(火) 02:13:15.07ID:VBLVhYq7
sp "title:start",{省略}

btnclear "title"
btn "title:start",{on="S=(sound\test.ogg)"}

;ボタン判定
btnexec %ret,"title"

とすると、btnexecの箇所でエラーが出てNS2が落ちます。
しかもなぜか、たまにエラーが出ないケースもありました(セーブデータを消したりしてると)。

ただ、どちらのケースでも鳴らしたいSEは鳴りませんでした

この理由が分かりません

btn "title:start",{on="S=(sound\test.ogg)"}

↑この記述が間違っているとしか考えられないんですが
リファレンス通りに書いてるつもりなんですが、どこかおかしい所ってありますか?
2014/03/25(火) 06:44:16.54ID:UqbPk9jC
VIP企画ものは即時成果物が鍵だぜ
>bexec
2014/03/25(火) 09:33:44.66ID:UqbPk9jC
あ、すまん2か
音鳴らす箇所削った状態では正常動作してる?
2014/03/25(火) 22:13:21.73ID:tr1BN4ke
>>118
これはバグっぽいね

応急処置でよければ、「system.lua」の2346〜2348行付近の
(1)
btn_f.btnse:stop()

basic_func.SESTOP(15)
--btn_f.btnse:stop()

(2)
btn_f.btnse:play{name=prm}

basic_func.SEPLAY(15,prm)
--btn_f.btnse:play{name=prm}

の2ヶ所を置き換えれば音が鳴るようになります
(SEの15chをボタン音用に割り当ててます)

あと一応
>118の
S=(sound\test.ogg)は構文エラーで、エラー吐かないけど音でないです
>117の
S(sound\test.ogg)こっち正解です
2014/03/25(火) 22:20:56.65ID:VBLVhYq7
>>120
レスありがとうございます。
exec削ったら普通に動作しますね・・・
2014/03/25(火) 22:24:27.43ID:VBLVhYq7
>>121
レスありがとうございます。

>記述ミス
すみません、ミスです
両方試しましたが、S(sound\test.ogg)だと強制終了しました
強制終了しなかったのは間違えて=付けてたせいでした
混乱させるようなレスすみませんでした

これって公式にメールでフィードバックした方がいいですよね?
2014/03/25(火) 22:49:42.50ID:tr1BN4ke
>>123
>これって公式にメールでフィードバックした方がいいですよね?
ですねえ
正式公開版を待ってもいい気もするけど
お手数でなければ123さん、公式へ報告お願いしますm(_ _)m
2014/03/25(火) 22:57:17.97ID:VBLVhYq7
>>124
了解しました。
メールを送ってみます。
ありがとうございました。
126名前は開発中のものです。
垢版 |
2014/03/26(水) 04:04:23.62ID:VNyvE/Qt
http://toro.2ch.net/test/read.cgi/gamedev/1175423459/719
↑  ↑  ↑  ↑  ↑  ↑
2014/03/26(水) 20:42:35.06ID:s6+6jsN2
>>124
さっきメール来てsystem.luaの修正が完了したので更新ました、との事です
導入してみると確かに修正されていて、ちゃんとSEがなるようになっていました

ただボリューム値が_sevolではなく、独自で存在しているようで
同じファイルでもボタンSEと通常のseplayでは3倍ほど違ってしまいちょっと使いづらいので
>>124さんの内容で修正したsystem.luaの方に戻してしまいましたが・・・
2014/03/26(水) 20:53:29.33ID:s6+6jsN2
すみません、3行目以降はコピペミスです
無視して下さい
2014/03/26(水) 21:08:22.31ID:HHkiILLd
ど、どんなコピペミスやねん
2014/03/26(水) 21:09:23.03ID:HHkiILLd
ちょっと小さめの効果音ファイル別途に用意する手もあるのよ、解決してるならそれでいいけど
2014/04/08(火) 15:58:36.83ID:6pHi/JlU
オフィシャルガイドを見ながら作ってます

movie "test.avi",async,loop@
movie stop
movie "test2.avi",async,loop@

繋ぎ目をクロスフェードするにはどうしたらよいでしょうか?
あと、動画が最前面に表示されるので、一番後ろにやって
ボタンやテキストウィンドウを表示したいので、
ヒントだけでもいただけないでしょうか?
2014/04/09(水) 00:28:31.03ID:XImuKzOO
・間の繋ぎをムービーでないアニメーションで疑似的にやる
・ムービー二つ編集で繋げた方が早い
・ムービーが最前面ってのはNScripterの仕様、dllで何かあったかもしれんが忘れた
2014/04/19(土) 07:17:09.66ID:7P5Isnlo
NS2での暗号化のやり方を教えて下さい
もしくは、サイトを教えてもらえませんか?
2014/04/21(月) 14:45:13.08ID:4xw8EZGS
>>133
上で何度もNS2の質問をしていた者ですが暗号化って
中身をユーザが見れないようにするパッケージングの事ですか?
それなら付属のDOSツールで一発で出来ますけど、それではなく?
2014/04/21(月) 20:13:18.89ID:JYbuQDvo
>>134
レスありがとうございます
スクリプトを書いたテキストをプレイヤーに見えないよう、暗号化したいのですが
旧作のnscmake.exeを使ってみたものの、ダメだったので、
2専用のツールが必要なのではと思うのですが、わからず、放置中です。
2014/04/21(月) 20:23:02.07ID:4xw8EZGS
NScripter2開発ツールフォルダ内に入っていますよ
nscr2.exeがそれです

起動後、1を選択→各ライブラリがあるフォルダを選択すればパッキングできます
2014/04/21(月) 20:54:44.53ID:JYbuQDvo
>>136
今、出来ました。ようやく発表できます。
親切にありがとうございました。
2014/04/24(木) 01:47:29.30ID:HncA30jl
TwitterでNスクのダメキャンペーンされてる
今残ってるサイト主ってかなり情報公開してるだろ
変数仕様すら満足に公開されてない暗黒時代の手探りを知らんのだろな
2005年頃のあの一寸先は闇の感覚は今はないってのに贅沢だなw
2014/04/24(木) 02:25:18.91ID:DXX4yPcJ
何書かれてるのか知らんが、NSLuaならまだほんのちょっと分からんでもない
けど、素のNScripterってノベルエンジンの中じゃユーザーコミュニティのカバー率屈指のレベルだと思うが
2014/04/24(木) 02:36:03.22ID:HncA30jl
素のNスクのサンプルコードの公開を上級者が渋ってるって主張みたい
上級になるための橋渡しが足りないとさ
そんなの、言ってる本人が公開しないのと同じような理由で講座の主が公開してないだけだろ
2014/04/24(木) 03:00:47.23ID:9+Ivo/uW
ただの基地外だろそいつ
Nscはかなり講座とサンプルが充実してて
ちょっと頑張れば独自のゲームだって作れた
2014/04/24(木) 03:42:16.24ID:2ELeME/V
Twitterで反論キャンペーン張ればいいだろ
ここれでやるならせめて元の発言を貼るかなんかしないとわからん

中級者用の情報が足りてないって話なら見たけど
>>138が言うようなダメキャンペーンはどこでやってるのか知らん
2014/04/24(木) 03:55:10.95ID:HncA30jl
こんな所に特定出来るように貼れってか。ひでーやつだな
直接言わずにここで文句言う糞の自覚あるけど、さすがにそこまではできんわ
2014/04/24(木) 10:40:55.59ID:gaL2tK0V
バカッターの面目躍如だな
2014/04/24(木) 11:11:22.85ID:DXX4yPcJ
上手く使うためのテクニック類って相当そこら中に解説転がしてくれてあるけどな。numalias %0とかその筆頭じゃん、俺最初に見て感動したぞ
2014/04/24(木) 14:10:02.55ID:53hHxCxX
NS2もはやくNS1と同じくらい情報揃えばいいんだけどな
2014/04/24(木) 14:25:56.56ID:DXX4yPcJ
仲良く公式マニュアル待ちだろうな
高橋さん自身が個人開発ゲームエンジンの将来にだいぶ悲観的な点気になりはするけど、上で使ってる人もいたしぽつぽつ使用例出てくるんじゃね。講座揃うのはまだまだ先だろうな
2014/04/24(木) 16:36:31.55ID:oR1QVALy
>>146
俺自身がNS1ほど熱心に使いたいと思わないのもあるけど
他人任せじゃなくて自分から調べて情報開示しようと思わん辺りに
NS2の先行きの厳しさを感じる
2014/04/24(木) 23:39:44.29ID:DXX4yPcJ
NScripterで十分色々出来ちゃうのが逆に移行の遅れを生んでるってのもあるな
2014/04/26(土) 22:46:02.07ID:ztot7jCC
Nsc1のbspで拾えるキーなんだけど、Dキーがデフォルトでデバッグモード起動が割り当てられてて使えない…
デバッグ起動しないようにして使える方法ってある?
2014/04/26(土) 22:47:39.97ID:ztot7jCC
bspじゃなかったbexecだった
2014/04/26(土) 23:35:29.85ID:0txbynpo
デバッグって、nscript.datにしたら自動で起動しないようにならなかったっけ?
だから、本番用のコードなら問題ないよ。
今もウィンドウが出たり消えたりするだけで、普通にDキー自体は取得できてるでしょ?
2014/04/27(日) 01:54:57.52ID:kUL9IkVg
確認しました!wasdキーの十字操作諦めるとこだった…ありがとう!
2014/04/27(日) 01:58:03.88ID:so/GINLJ
お、アクションゲームでも作るのかい
2014/04/27(日) 17:39:33.83ID:kUL9IkVg
ちょっとしたRPG作ろうと思って
2014/05/01(木) 00:03:26.41ID:50PAktXV
セーブデータの上限は200kbまでなのかな。
セーブが大きすぎるってエラー落ちしたんでちょっと検証してみた

*define

for %0 = 0 to 94
dim ?%0[20][20]
next

game
*start

ああああああ\
savegame 1
ああああ\
end

出てきたセーブは198kb、forループを95に増やしたらエラー落ちした。
あと21*21=441文字分の文字列変数で同じ事やったら190までループできた。出てきたセーブは199kb
2014/05/01(木) 00:05:02.51ID:NYB/CjUK
上限については公式でアナウンス済み
2014/05/01(木) 01:12:13.43ID:E0PYgtWG
上限は200KBだよ。以前はもうちょい少なかったけど何かのタイミングで拡張してくれた
元々NScrの配列変数で多次元配列使いまくらない限りはまず超えない値だったから、現在ではほとんど見掛けないエラーになったと思う
配列変数の値は保存しておきたい感じ?
2014/05/01(木) 07:48:11.23ID:6qfZNsE3
セーブファイルのサイズ上限(200KB)は
過去ログ15のレス660にも書かれてるね
2014/05/01(木) 17:36:27.18ID:50PAktXV
失礼、やはり既出情報だったのね。配列セーブに残ると聞いて無計画に使いまくってた
2014/05/01(木) 18:04:00.53ID:E0PYgtWG
配列変数作ること自体が容量肥大化させるからね…
普段は,や/区切りで一つの文字変数にぶち込んでおいて使う時だけsplitしてもいいのよ、操作頻度や今まで書いた量にもよるけど
2014/05/01(木) 22:29:10.31ID:JR86h75D
>>156
いい検証スクリプトだな。乙だ
2014/05/14(水) 18:09:51.24ID:e6ELFxDF
luasubでluaに飛んだ先のコードの中でNスクのスクリプトへgosubする方法ってないですか?
下のコードで言うとあいうえおスプライトを表示する前に*test2へ行って戻って来たいんですが。

function NSCOM_test1()
NSGosub ("*test2")

NSExec([[lsp 0,":s/18,20,0;#FFFFFF"+"あいうえお",100,100]])
NSExec([[print 1]])
NSClick()
end

もしかしてluaは基本function~endまでNスクには戻れない様な設計なんですかね?
NSGotoもNSGosubもluaの途中からNスクへ行けるものと思っていたんですが使ってみたら挙動が違くて・・
2014/05/14(水) 23:24:45.60ID:qWatNS0P
lua側からNScr側のサブルーチンに飛ぶ方法はないです。
NSGotoやNSGosub、NSReturnは、NScrの制御状態をlua側から書き換える為の命令です。

NScr側のサブルーチンとlua側の関数を利用する処理は、NScr側でまとめるといいかもです。

;00.txt
*define
defsub test1
luasub test1_lua
game
*test1
gosub *test2
test1_lua
return

--system.lua
function NSCOM_test1_lua()
NSExec([[lsp 0,":s/18,20,0;#FFFFFF"+"あいうえお",100,100]])
NSExec([[print 1]])
NSClick()
end
2014/05/14(水) 23:32:55.77ID:CPI+kYSJ
どうしてもluaでやりたいという変態さんは
NSCOM_test1()をNSGosub ("*test2")の前後で分割して
続きを呼び出すNスクのサブルーチンをNSGosub()した上で
NSGosub ("*test2")をしてreturn

関数を分割せずにコルーチンを駆使すれば
あたかもNスクと同期実行されているように書ける
(それでも形式的でナンセンスな記述は残る)

なお理論上できるというだけで実際やったことはない
2014/05/15(木) 01:15:12.20ID:9JL1CUtN
>>165も言ってるけどコルーチンはNスクにreturnしても稼働状態で残るはず(俺も試したことはないが)、だから該当箇所をコルーチン化すればどうにかならないでもないけどやや面倒よ
"「コルーチンがなければ生成、あればコルーチン実行」→Nスクにreturn"という関数作れば一応動きそうじゃね
167名前は開発中のものです。
垢版 |
2014/05/15(木) 04:06:19.02ID:f8gwu8O3
http://toro.2ch.net/test/read.cgi/gsaloon/1345029300/316
  ↑  ↑  ↑  ↑  ↑ 
168163
垢版 |
2014/05/15(木) 06:32:41.56ID:LzCNjPYY
ぬう・・やっぱりちょっと難しいのですね。
コルーチン組むにしても手間が増えて煩雑になってしまいそうなんで、やはりNスク側にまとめてluaはdefsubの延長のような使い方にしようかな。
ありがとうございました!
2014/05/23(金) 15:11:23.36ID:jUQbPQPM
*define
numalias data,0:dim ?data[6][1]
numalias hoge,1
mov ?data[0][hoge],7
mov ?data[1][hoge],1
mov ?data[2][hoge],2
mov ?data[3][hoge],3
mov ?data[4][hoge],4
mov ?data[5][hoge],5
mov ?data[6][hoge],6
game
*start
debuglog 1:click

if ?data[0][hoge] >= ?data[1][hoge] && ?data[0][hoge] >= ?data[2][hoge] && ?data[0][hoge] >= ?data[3][hoge] && (専ブラに行長すぎと怒られたんで改行)
?data[0][hoge] >= ?data[4][hoge] && ?data[0][hoge] >= ?data[5][hoge] && ?data[0][hoge] >= ?data[6][hoge] mov %0,1
数値%0\

if ?data[0][1] >= ?data[1][1] && ?data[0][1] >= ?data[2][1] && ?data[0][1] >= ?data[3][1] && ?data[0][1] >= ?data[4][1] && ?data[0][1] >= ?data[5][1] && ?data[0][1] >= ?data[6][1] mov %0,2
数値%0\

if ?data[0][hoge] >= ?data[1][hoge] && ?data[0][hoge] >= ?data[2][hoge] && ?data[0][hoge] >= ?data[3][hoge] && ?data[0][hoge] >= ?data[4][hoge] && ?data[0][hoge] >= ?data[5][hoge] mov %0,3
数値%0\

if ?0[0][hoge] >= ?0[1][hoge] && ?0[0][hoge] >= ?0[2][hoge] && ?0[0][hoge] >= ?0[3][hoge] && ?0[0][hoge] >= ?0[4][hoge] && ?0[0][hoge] >= ?0[5][hoge] && ?0[0][hoge] >= ?0[6][hoge] mov %0,4
数値%0\
2014/05/23(金) 15:28:07.46ID:jUQbPQPM
しまった、書き込みミス。スクリプトだけ先に書いてしまった
デバックしてて気になったんだけど、numaliasを使った配列の比較を5回以上重ねた辺りからデバッグログの表示がおかしくなる現象にあいました。
上の検証スクリプトの1回目のif比較の?data[0][hoge] >= ?data[1][hoge]のログは
エイリアスdataへアクセス:値0
エイリアスhogeへアクセス:値1
配列変数?0へアクセス:値7
エイリアスdataへアクセス:値0
エイリアスhogeへアクセス:値1
配列変数?0へアクセス:値1
と問題なく表示されてるんだけど、

?data[0][hoge] >= ?data[5][hoge] 以降から
エイリアスdataへアクセス:値0
eへアクセス:値1
=?0へアクセス:値7
Aスdataへアクセス:値0
Aスhogeへアクセス:値1
=?0へアクセス:値5

と表示の挙動がおかしくなりました。
numalias hogeやdataを使わない2回目、4回目のif比較は問題なく表示
if文後のmovはどれも問題なく数値が代入されていたので実行上は問題ないのかもと思ったけどなんか妙な挙動してそうで怖い…
&の条件絞込の回数制限とかってあったっけ?
2014/05/23(金) 15:30:09.79ID:jUQbPQPM
あ、使ったverは最終更新版の2.96です
2014/05/25(日) 22:29:41.56ID:L8XimEmS
検証できる環境がないので分からないけど、バッファオーバーフローぽいね。
1つの命令文が長すぎるのが原因だと思う。
命令文を80〜120文字以内くらいに収めた方がいいと思うよ。

フラグ用の変数を用意してif分を分割するか、for-next使うといいと思う。
2014/05/26(月) 12:50:59.42ID:ArU/je5h
すみません、NS2の質問です。
NS2はサンプルのテキストがウィンドウ表示なんですが
これを全画面表示になるようサンプルスクリプトを自分で考えて改造しました。

通常の表示は問題なく行えるようになったのですが、バックログ機能を使うと
表示がおかしくなります。

多分ですが、そもそものやり方が悪いと思うのですが
今のやり方以外思いつかず、しかもこのバックログ表示バグの修正案も
思いつかずで詰まっています。

どなたか解決策か、もしくは根本的におかしい場合別のやり方を
教えて頂けないでしょうか

↓改造した00.txtの一部(問題と思われる箇所)
2014/05/26(月) 12:53:45.95ID:ArU/je5h
@text
param %tag,%text

〜voiceとか、この辺はデフォルトから変えていませんので省略〜

; 改ページ記号がある場合、改ページ実施
if line == 16 or %text == "改ページ_" then
spfill "window:text1",0,#00000000 ; テキストを消す
spfill "window:text2",0,#00000000 ; テキストを消す
spfill "window:text3",0,#00000000 ; テキストを消す
spfill "window:text4",0,#00000000 ; テキストを消す
spfill "window:text5",0,#00000000 ; テキストを消す
spfill "window:text6",0,#00000000 ; テキストを消す
spfill "window:text7",0,#00000000 ; テキストを消す
spfill "window:text8",0,#00000000 ; テキストを消す
spfill "window:text9",0,#00000000 ; テキストを消す
spfill "window:text10",0,#00000000 ; テキストを消す
spfill "window:text11",0,#00000000 ; テキストを消す
spfill "window:text12",0,#00000000 ; テキストを消す
spfill "window:text13",0,#00000000 ; テキストを消す
spfill "window:text14",0,#00000000 ; テキストを消す
spfill "window:text15",0,#00000000 ; テキストを消す
; 何行目かの情報をクリア
line = 0
%kaipage = 1
endif
2014/05/26(月) 12:54:56.78ID:ArU/je5h
endif
; フォントがMSゴシックの場合
if _font == 0 then
if line == 1 then
if %text <> "改ページ_" then
; 1行目表示
spputtext "window:text1",0,%text,{font="text",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
endif
else if line == 2 then
if %text == "改ページ_" then
; 改ページ判定の場合は2行目を1行目に表示
spputtext "window:text1",0,%text,{font="text",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
endif
; 2行目表示
spputtext "window:text2",0,%text,{font="text",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
else if line == 3 then
; 3行目表示
spputtext "window:text3",0,%text,{font="text",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
※以下15行目まで同じ処理です。長すぎるので省略
endif
endif
endif
; フォントがMS明朝の場合
else
2014/05/26(月) 12:55:33.61ID:ArU/je5h
if line == 1 then
if %text <> "改ページ_" then
; 1行目表示
spputtext "window:text1",0,%text,{font="text2",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
endif
else if line == 2 then
if %text == "改ページ_" then
; 改ページ判定の場合は2行目を1行目に表示
spputtext "window:text1",0,%text,{font="text2",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
endif
; 2行目表示
spputtext "window:text2",0,%text,{font="text2",wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
※以下15行目まで同じ処理です。長すぎるので省略
2014/05/26(月) 12:57:25.93ID:ArU/je5h
endif

; 何行目かの情報を+1して次の行へ移行
line = line+1

return

;スクリプト改造箇所終わり

これをバックログで実行すると
http://iup.2ch-library.com/i/i1203511-1401076566.png
こうなってしまいます(当然といえば当然ですが・・・)

何かいい方法があれば教えて頂けないでしょうか・・・
2014/05/26(月) 22:47:15.90ID:eYuz/ba5
変数_fontを、_font="text"とか_font="text2"としてあげると
spputtext "window:text",0,%text,{font=_font,wait=(9-_textspeed)*10,w=28,h=20},{font="rubytext"}
が効くので、if文がいらなくなって便利ですよ。

ノベル形式にするには色々やり方があると思いますが、一例として、
まずsystem.luaのfunction basic.text(stag,stext)を少しいじります。

--特殊:basic.textは表示文に対応しています。登録の必要はありません。
t_text = ""
function basic.text(stag,stext)
if stag==nil and stext==nil then return end
if stext ~= "p" then
t_text = t_text..stext.."\\n"
return
end
local logtbl={tag=stag,text=t_text}
basic.backlog[basic.backlogheader]=logtbl
basic.backlogheader=basic.backlogheader+1
if basic.backlogheader>BACKLOGSIZE then basic.backlogheader=1 end
basic.exec_call("@text",stag,t_text)
t_text = ""
end
179178
垢版 |
2014/05/26(月) 22:49:05.47ID:eYuz/ba5
次に、02.txtの@title_startの辺りのスプライトの設定を適当な大きさと位置に変えます。
sp "window:window", {name="*800,600,#88333333",x=0,y=0,z=1000}
sp "window:text", {name="*672,504,#00000000",x=128,y=64,z=10}

使い方:
行頭の半角文字の「>p」で改ページするようになります。
例:
ああああ
いいいい
>p
うううう
>p
2014/05/26(月) 23:45:59.03ID:ArU/je5h
>>179
レスありがとうございます。

ただやってみたのですが、バックログの話ではなく、通常表示において
>pがある場所に来ると、それ以降文章が全く表示されず、かつ最後までクリックを全く待たず
シナリオが進んでしまうようです。

肝心のlua層の記述(>>178の部分)について、私がluaの事を全く理解できてないので
その記述のどこが問題なのか分かりませんが、returnやendを削除したり、>pの記述を
変えてみたりなど、その程度の事はやってみましたが、どうも上手く行きません。

>p以降全く文章が表示されないのは
if stext ~= "p" then
t_text = t_text..stext.."\\n"
return
end

あたりのendが関係している?のでしょうか?
2014/05/26(月) 23:48:10.42ID:ArU/je5h
ああああああ
ええええええ

てすと

次で改行

>p


bg 背景1

ららららららら


てすとその2

bg 背景2

quit ;終了

などとすると、「次で改行」までは普通で、それ以降の「らららら」や「てすとその2」が表示されず
背景だけが背景1→背景2と自動で切り替わって、最後のquitにたどり着くようで、そのまま終了されてしまいました。
182178
垢版 |
2014/05/27(火) 23:53:33.57ID:2Rb3MHi3
「>p」のタイミングで文章を表示してるので、「>p」必須です。

例:
bg 背景1
ららららららら
てすとその2
>p
bg 背景2
quit ;終了

動作の説明:
表示文字列を、表示せずに一旦「\n」で連結して保存しています。
「>p」で「@text」に飛んで、
・テキストウィンドウのクリア
・(保存した)表示文字列を(一括して)表示
・クリック待ち
という動作になってます。

なるべくスクリプトを改変せずにノベルっぽくできるようにしましたが、
完全にノベル用のスクリプトにするには
「system.lua」をいじらないと難しいと思います。
2014/05/28(水) 00:41:39.57ID:Wvo5+9lJ
>>182
レスありがとうございます。
>p〜>pで囲まないといけなかったんですね。
そのようにしたら、確かに表示はできましたが、>p〜>pの間の文章って
「_」とか「click」などの命令が一切効かなくなるようです。
>p〜>p間の文章は全てクリック待ちが発生せず進んでしまいました。

とりあえずこの機能完璧に実装するにはlua使えないと話にならなそうですね・・・

諦めてNS2のサンプルと同じウィンドウ方式でいくか、>>177のバグ放置にするか、
lua頑張って勉強して実装するかのどれかにします。
すみません、ありがとうございました。
184183
垢版 |
2014/05/28(水) 15:56:39.32ID:Wvo5+9lJ
すみません、一応解決しました。

頭悪い方法ですが、"改ページ_"と書いた改ページ判定文字を"  "と全角2つにしました。
それなら一応、バックログ時に"改ページ"という明らかな単語は見えませんので
見た目的には解消しました。

お騒がせ致しました。
2014/05/30(金) 18:40:40.10ID:adRzL+Ku
bspやspstrの制御文字列Pの連番も使えたら便利なんだけどなあ
2014/05/30(金) 19:55:19.34ID:3jaSQaQ2
maxkaisoupageの最大値って50なんですかね?
50以上の数値にすると50より前のログが表示されない…
2014/05/31(土) 03:06:23.48ID:KsEa33Em
調べてないが常識的に考えてそんな使わんだろ!?みたいな数値が上限になってることは時々ある
50ページ以上ログ辿るようなゲームだと独自システム組んだ方が色々楽になりそう
2014/05/31(土) 10:43:37.05ID:eNzJVy6Z
サンプルシステム流用してるだけじゃなければ
どこ弄ればいいか分かりそうなものだけど
2014/05/31(土) 17:21:06.95ID:fyBjK6Lw
>>188
そういうのいいんで…
2014/05/31(土) 22:03:36.48ID:pmss1cBx
>>186
最大値は50ではありません。もっと上です
2014/06/03(火) 18:28:46.21ID:7Mkr3K2a
基本的なことなのですが、調べてもさっぱり分からないのでどなたか教えてください。
スプライトボタンにマウスオンしたときに、セル1に切りかわると同時に効果音が鳴るようにしたいのですが、

bsp 11,"P11,0","P11,1,",""

この状態からどうすればいいんでしょうか?
192191
垢版 |
2014/06/03(火) 20:16:40.31ID:7Mkr3K2a
自己解決しました!お騒がせしました。
2014/06/17(火) 01:27:33.60ID:B7W5c+ys
nscripterようのリファレンスでrubyon2が非推奨になってるけどなんでだろう。
使いたいけどちと恐いな
2014/06/17(火) 04:11:05.49ID:eZOJzlkB
非推奨命令も動くものは動くからな、数値ラベルなんかはサイズ指定にバグ抱えてるけど2.96で動く
ある程度ポピュラーだった命令ではっきり動かなくなったのってzenkakkoくらいじゃね
2014/06/17(火) 08:14:50.83ID:sDrVF1qP
rubyon2って管理面倒くさくね?
196ろだ
垢版 |
2014/07/17(木) 00:29:58.88ID:4sIE6b1L
鯖が急になくなってしまったので取り急ぎ移転しました
数日間サイトが見られない状態になっていたことをお詫びします
http://nscuploader.daiwa-hotcom.com/
2014/07/17(木) 00:43:01.20ID:ybCj6cxu
乙やで
2014/07/17(木) 01:08:42.94ID:+YKoHZc/
サーバが無くなっちゃ仕方ないね
乙です
2014/07/21(月) 07:02:22.99ID:ovSqCMGK
【レビュー】手持ちの「NScripter」製ゲームをChrome上でプレイ可能にするWebアプリ“NscPlayer” - 窓の杜
http://www.forest.impress.co.jp/docs/review/20140718_658306.html
2014/07/21(月) 16:45:25.20ID:WoyXgCW0
NaClを利用するというのは技術的には面白いけど
何というか始まる前から終わっているみたいな
2014/07/21(月) 21:22:11.53ID:w3Bnkfww
俺はこういうの見ちゃうと逆に仮想環境じゃ絶対動かないゲーム作りたくなる
2014/07/21(月) 21:33:28.62ID:yAAtgJ7M
すげーな。マルチプラットフォーム一番実現したエンジンがNScripterになるとは
や、文法同じなだけで、別物のエミュレーターみたいなもんだけどさ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況