NScripter Ver.15.00
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/02/17(火) 21:45:59ID:6iLGJeMhゲームエンジンNScripterについて語るスレです。
・本家
ttp://www.nscripter.com/
・うpろだ
ttp://nscruploader.hp.infoseek.co.jp/
0658名前は開発中のものです。
2009/04/27(月) 17:23:47ID:DB/XzbQ3重要と思える部分のログを貼っておきます。
★DLLファイルをサブディレクトリに格納
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1068&mx=1067
nspng.dllとnslua.dllとnsogg2.dllは、dllフォルダからも読み込めるようにしました(起動時に読み込んでいるので、名前指定はちょっと面倒なので)。
他のユーザーさん製作のプラグインDLLに関しては、もともとファイル名で指定できるはずなので、大丈夫だと思います。
>出来ればenvdataも、savedir指定フォルダ内に作って貰えると有難いです。
これはちょっとめんどうそうなので(起動時にsavedirの設定はされていないため)、また時間が取れたときにということでー。
それでは、以上ご確認よろしくお願いします。
★セーブファイルのサイズダイエット法
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1026&mx=1003
使わなくなった変数は""でクリアするようにするとセーブデータの分量は減ると思います。
もし危なくなったら使ってみて下さい。
★saveonの記述位置
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1029&mx=1003
■saveonについて。
saveonはtexecの後で、textgosubからリターンする直前で使ってください。
システムカスタマイズの記述ではそうなっています。
あと僕の書いた商用のスクリプトも全部そうなってます。
saveoff/on回りの仕様は確かにごちゃごちゃで、luaを入れたときには処理が変わるようにしてるんですが、
レガシーなスクリプトが動かないのは困るので、全体をいじるわけには行かない状態です。
とりあえず、原則として、テキストが改ページされて次に一文字目から処理される瞬間には、saveonされているようにしておいてください。texecの後にsaveonするのが一番簡単です。
セーブポイントは基本的に表示文頭で処理されるものです。表示文途中でsaveon/offが入るのは避けてほしいです(タグ処理は表示文途中なので、pretextgosubのとび先でいじるのは避けてください。)
実際に実験して確かめてみてほしいのですが、スキップ速度や普段読み進める時の操作感覚がそれで極端に重くなることは、普通はないと思います。
0659名前は開発中のものです。
2009/04/27(月) 17:26:14ID:DB/XzbQ3★セーブポイントが設定される場所
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1031&mx=1003
前の仕様に戻ったと思います。つまりセーブポイントが更新されるのは、セーブモードがオン、かつ、
・表示文頭
・あらゆる命令文頭
のときになります。
btndefだけにしたかったのですが、btndefより前にsaveoffを入れてるスクリプトがあったので、やめました。
今後、*defineに一文設定することで、次のようなモードを付けようかと思っています。
セーブポイントが、
・savemodeがオンで、タグも含めた表示文頭、すなわちページクリア直後の表示文先頭
もしくは
・savemodeがオンで、btndef命令の直前
のときのみ更新されるようにしようかと。これなら普段はon,off気にしなくてもいいかなと。
★autosaveoff,savepoint命令
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1037&mx=1037
■autosaveoff,savepoint命令追加
表示文頭以外の自動のセーブポイント更新を停止します。
*define節で
autosaveoff
とすることで、saveon/saveoff命令は無視されるようになります。
(表示文頭ではセーブポイントは従来通り更新されます)。
表示文頭以外でセーブさせたい場合(たとえばクリッカブルマップなど)では、手書きでsavepoint命令を呼び出してください。
タイミングによってはデータがうまく復帰できなかったりするので、画面全体を読み込んで描画する直前をセーブポイントにするとか、うまく工夫してください。
0660名前は開発中のものです。
2009/04/27(月) 17:28:57ID:DB/XzbQ3★セーブファイルサイズ上限
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1020&mx=1003
とりあえず200KBにしておきます。
フルに100KB以上の変数データを持つスクリプトということですが、参考までにお聞きしたいのですが、どんな処理をしているのでしょうか?
セーブデータは内部的に頻繁に自動更新されるので(そのおかげであまりセーブ位置のことを気にしなくてもいい)、あまり大きいと重くなります。
とはいえ150KBくらいなら小さな画像程度の大きさですのでそれほど気にしなくてもいいかもしれませんが、一応プログラム的に上限掛けておきます。200KBにしておきますね。
★checkkey命令
http://www.nscripter.com/nsb/bs.cgi?ac=view&no=821&mx=794
btndefより前に、例えばcheckkey %0,"ENTER"としてリターンキーを取得し、押されていればskipoffすればいいと思います。
※checkkey
システムカスタマイズ時、自作でスキップモードを作った場合、
スペースキーやCtrlキーで、スキップ解除を行える
0661名前は開発中のものです。
2009/04/27(月) 17:30:16ID:DB/XzbQ3http://www.nscripter.com/nsb/bs.cgi?ac=view&no=1078&mx=1078
マウスの中ボタンをbexecで文字列"CCLICK"で取得できるようにしました。
ホイールボタンは多分ほとんどのマウスドライバで、中ボタンとして認識されます。
が、ここで注意していただきたいのは、マウスの中ボタンやホイールアップ/ダウン動作に役割を与えるときは、出来る限り他のボタンにも同じ役割を与え、その旨きちんと記載しておくべきだ、ということです。
マウスの中ボタンや、マウスホイールは、Windowsマウスが標準搭載しているものではないので、「無い環境がある」ということを忘れないようにしてください。
たとえば、ノートパソコンにはホイールも中ボタンも無いものが多いです。
それでもホイールで過去ログはあまりにも便利なので多くの商用ゲームが対応していますが、ホイールで出来る操作は必ず他の方法(たとえばロールアップ/ダウンキーや、画面上のボタンなど)で出来るようにしてあるものが多いと思います。
中ボタンに対応している商用ゲームはそれほど多くないのが現状です。ホイールをかねているデザイン上ボタンとして左右クリックより押しにくいものも多いですし、間違って押すことも結構あります。
あんまり中ボタンに重要な機能を割り当てるのはお勧めはしかねます(他に同じ機能をするキーがあって、中ボタンでも出来る、というのはありです)。
上記以外にも重要なログがあれば、補完よろしくです。
■ このスレッドは過去ログ倉庫に格納されています