NScripter Ver.17.00
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/06/04(金) 04:57:28ID:tnAvyTGmゲームエンジンNScripterについて語るスレです。
・本家
ttp://www.nscripter.com/
・うpろだ
ttp://nscruploader.hp.infoseek.co.jp/
0039名前は開発中のものです。
2010/06/14(月) 19:07:57ID:sA7DNrSSmov $0,"*func"+$1
gosub $0
仮に%hennsuu値が0〜99の計100通りあるとして、変数値に対応した関数に飛ばすのは、
NScripterだと上の3行のように簡単に浮かぶんですが、Luaだとどうやればいいんでしょう?
if (hennsuu == 0) then
func0()
elseif (hennsuu == 1) then
func1()
:
:(以下略)
:
end
例えばこのように100個分書くしかないんでしょうか?
0040名前は開発中のものです。
2010/06/15(火) 00:04:31ID:CI01wHbq関数をテーブルに登録してから使う
例)
ーー テーブルに登録
funclist = {}
funclist[1] = func1
funclist[2] = func2
ーー 登録した関数を呼び出す
funclist[hennsuu]()
解決策その2
グローバル環境から直接呼び出す
例)
_G["func"..hennsuu]()
自分が思い付いたのはこんくらい
0041名前は開発中のものです。
2010/06/15(火) 01:19:13ID:SsCjxNvlありがとうございました!!!
loadstringでやるんだろうけど全然分からない…と頭抱えてましたがそんな手が。
0042名前は開発中のものです。
2010/06/15(火) 20:45:53ID:GCIj6DV1最大の吊りはネタ振りした>>18が文頭で自己完結してること
0043名前は開発中のものです。
2010/06/15(火) 22:44:34ID:F36LUjZ+場所によって説明部分の項目わけ見難くない?
ld
cl
tal
とか並んでた後に各説明してるけど記述ミスかと思った。
なんか分かり辛い。
0044名前は開発中のものです。
2010/06/16(水) 23:52:57ID:2QZI1yfg0045名前は開発中のものです。
2010/06/17(木) 03:59:31ID:Yk0zxlSE0046名前は開発中のものです。
2010/06/17(木) 20:10:02ID:Pgc3arsR阿呆にしか構われてなくて(´・ω・`)カワイソス
monk氏のなら変数渡す命令あるから、開いてからプレー前にNSCR側で値渡しとけ。
あとはその値使ってASでオブジェクトの音量調整しる。
0047名前は開発中のものです。
2010/06/18(金) 03:23:15ID:gxgftqir0048名前は開発中のものです。
2010/06/18(金) 20:03:10ID:4L+f8l2u何年後かに同じ問題を抱えてこのスレにたどり着い
0049名前は開発中のものです。
2010/06/18(金) 20:11:52ID:e+asXxDo0050名前は開発中のものです。
2010/06/18(金) 20:35:02ID:wWVtzK6X0051名前は開発中のものです。
2010/06/22(火) 22:20:42ID:0zbDgGf4>>43
見づらくてごめんなさい
0052名前は開発中のものです。
2010/06/22(火) 23:04:26ID:gSEtITheいつも乙なんだぜ
0053名前は開発中のものです。
2010/06/23(水) 01:07:24ID:wpzghC4rうpろだ更新乙
漏れとしては逆に>>43がまとめた非公式マニュアルとやらを見てみたいとオモタ
0054名前は開発中のものです。
2010/06/23(水) 14:13:19ID:hG/HC6IL乙です。
やべ、昔うpした「デバッガに文字列を渡す、ただそれだけのプラグイン」、再配布用に
添付したプログラムがLZHファイルだった…。
0055名前は開発中のものです。
2010/06/23(水) 18:50:43ID:anCNnIDA>添付したプログラムがLZHファイルだった
今のところ気にしないでいいと思うよ
0056名前は開発中のものです。
2010/06/25(金) 00:26:26ID:Hh4mdT4d0057名前は開発中のものです。
2010/06/25(金) 15:55:12ID:MRfhp4verarはリカバリーレコード付けられるから変わる物が出ない限りまだ残るだろうな
7zは圧縮率高いしいいとは思うが対応するソフトがあれだし今の現状的にこの先も細々だろうな
lzhはもう過去の遺物だよね
0058名前は開発中のものです。
2010/06/28(月) 17:00:34ID:cPfwVkfa0059名前は開発中のものです。
2010/06/28(月) 17:18:49ID:gu7Nmw4Yそれは、そう長くは残らないだろうという意味だな、と思った俺は変ですか。
0060名前は開発中のものです。
2010/06/28(月) 18:01:00ID:d6FvnlhINScripterの対応OSは何だ?
それが答えだ。
世界中の人がWindowsを窓から投げ捨てたら変わるかもしれないが。
0061名前は開発中のものです。
2010/06/29(火) 02:34:38ID:Ib+bDGp30062名前は開発中のものです。
2010/06/29(火) 02:51:36ID:1eDTWC7Cいや、そもそもデフォルトのNScripterのmovie命令って、そのライブラリ使ったものじゃねーの?
0063名前は開発中のものです。
2010/06/29(火) 06:11:36ID:QM9o4Djd…初心者に厳しすぎんだろこの本
他言語やり始めてようやく簡単に思えてきたわ
0064名前は開発中のものです。
2010/06/29(火) 09:37:21ID:d8rJE9J7他言語やったことあるとカス言語仕様に気づくわ
どっちにしろ言語としてはひどい
0065名前は開発中のものです。
2010/06/29(火) 16:36:16ID:gIXkGtc/>>64
RPGツクールから流れてくると夢のような言語に思えてくるぞ
0066名前は開発中のものです。
2010/06/29(火) 17:49:16ID:/i3N+9lCここまで何の美学も無く場当たり的に作れるのはすごいと思う
言葉は悪いけど決して悪い意味ではありません
0067名前は開発中のものです。
2010/06/29(火) 18:24:57ID:1eDTWC7Cシスカマなんてエンジン開発当初は今みたく一般ユーザがやること想定しなかったくさいしな。
いい加減許せない範囲に至ったからこそのエンジンのリデザインなんだろSGEって。
そういや、Nスクを囓ってるとC学んでもポインタで詰まることは無くなるっつー妙な効果があるw
0068名前は開発中のものです。
2010/06/29(火) 18:36:31ID:AVeOmIQF0069名前は開発中のものです。
2010/06/29(火) 18:41:07ID:OLRCrzRbどの行を読んでるか理解しないと組めない。
特にセーブポイントは変なタイミングで使うとロード時に死ぬる。
0070名前は開発中のものです。
2010/06/29(火) 19:11:16ID:1eDTWC7C変数が連番だから、リングバッファみたいのやってると勝手に身に付く
0071名前は開発中のものです。
2010/06/30(水) 05:21:30ID:/Pk1c5B20072名前は開発中のものです。
2010/06/30(水) 07:50:10ID:cE4y6Z/P美しさを求めるには、まず美しいものも醜いものもたくさん知らなければならない。
長く続けるなら、いずれ必ずどこかでリデザインが必要になるよな。
0073名前は開発中のものです。
2010/06/30(水) 09:31:49ID:I2oDBqgF0074名前は開発中のものです。
2010/06/30(水) 10:18:54ID:brGzW97w0075名前は開発中のものです。
2010/06/30(水) 17:10:03ID:/Pk1c5B20076名前は開発中のものです。
2010/06/30(水) 20:26:17ID:OuaQmCfC製作そのものをやめてしまうこと なので
だらだら組めてとりあえず動くってのは魅力
0077名前は開発中のものです。
2010/07/02(金) 22:24:37ID:ZBuzY+bBあれからLuaで組み直したところ、あっさり解決しました。
お騒がせして本当に申し訳ありませんでした。
原因は結局わからないのですが、とりあえず使えてるソースを貼っておきます
(nds('play|bgm1|sound.ogg|v8000p-10000f2000') みたいな感じに書く)。
function nds(val)
local ndsExec=
function (...)
local tmp=''
for lp=1,select('#',...) do tmp=tmp..select(lp,...)..'|' end
NSExec('exec_dll "dll\\NScripterDS.dll'..tmp:sub(1,#tmp-1)..'"')
end
local nds_Vol_Pan_Fade=
function (val)
if val then
NDS.vol=val:match('v(%d+)'); NDS.pan=val:match('p(%-?%d+)'); NDS.fade=val:match('f(%d+)')
end
if (not NDS.vol) then NDS.vol=10000 end
if (not NDS.pan) then NDS.pan=0 end
if (not NDS.fade) then NDS.fade=0 end
end
NDS={split('|',val);}; NDS.code='/'..NDS[1] -- ※split:nscrのsplitと同じ。
if NDS[1]=='play' or NDS[1]=='playloop' then
NDS.resource=NDS[2]; NDS.file=NDS[3]; nds_Vol_Pan_Fade(NDS[4])
ndsExec('/Load',NDS.resource,NDS.file); ndsExec('/Volume',NDS.resource,NDS.vol)
ndsExec('/Pan',NDS.resource,NDS.pan); ndsExec(NDS.code,NDS.resource,NDS.fade)
end
return NSExec2('#getret') -- ※NSExec2:nscr命令の返り値(ブーリアン)。
end
0078名前は開発中のものです。
2010/07/05(月) 01:09:45ID:nkPrX3tK( ゚д゚) …イミワカラネエ…
( ゚д゚ ) ショシンシャ ニハ ムリダロ コンナノ…
トイウカ ブッチャケ ジョウキュウシャ デショウ?
0079名前は開発中のものです。
2010/07/05(月) 01:20:19ID:Lz7doMz3Luaで投げちゃったユーザーも多いんだろうな
一から覚えなおすとは言わないけど、違い物があるだろうし
0080名前は開発中のものです。
2010/07/05(月) 01:44:38ID:Empq/jZMNscの機能自体を使いきってもいないしやりたいことはまだ出来る範囲だしなぁ
008177
2010/07/05(月) 19:20:02ID:jP+hcOQkif (not NDS.vol) then NDS.vol=10000 end の辺りも NDS.vol=NDS.vol or 10000でよさげだし、
ndsExec関数もテーブル作って table.concatのほうが短くていい。
>>78
自分もここにいる人に比べたら、超初心者だよ。まだまだ勉強することがいっぱい。
Lua触るのは単純に楽しいの。元々 defsubで命令作るの好きだったからかもしれない。
可変引数使えるし、defsub使う人は取り入れたほうが個人的に楽だとは思う。↓のようなことも簡単にできるしね。
値の型をあんまり気にしなくていいのも嬉しい(atoiとかitoaみたいなことを自動でやってくれる)。
-- 新ボタン命令のクリア&定義を一行で行う関数。書式:bset "[制御文字列]"
-- 例:bset ""(何もしない) bset "dct1000" (bdown/bcursor/btime 1000適用)
function NSCOM_bset()
local val=NSPopStr() -- # valにnscrからの値を受け取る。
NSExec('bclear') -- # 通常のボタンクリア。
if val~='' then -- # 条件文: valが空白以外の時に実行
local bdown,bcur,btime=val:match('d'),val:match('c'),val:match('t(%d+)')
-- # match関数は正規表現のように文字列を検索し、マッチした値を返す。
-- なければ nil。括弧で囲むとその部分だけ返す。
-- # 条件文は false / nil以外の時に真となる。
if bdown then NSExec('bdown') end --# val内に dがあれば真
if bcur then NSExec('bcursor') end --# val内に cがあれば真
if btime then NSExec('btime '..btime) end --# val内に t数字があれば真。
end
end
0082名前は開発中のものです。
2010/07/05(月) 21:13:50ID:TUeklOLjちょっと信じがたいんだけど
0083名前は開発中のものです。
2010/07/05(月) 22:42:49ID:fqdG0uhp0084名前は開発中のものです。
2010/07/06(火) 10:10:25ID:Exhl2hqU0085名前は開発中のものです。
2010/07/06(火) 15:57:34ID:BOnBixlD0086名前は開発中のものです。
2010/07/07(水) 23:03:52ID:Ge0tRqvd一時的に停止する方法はないかな?
動画再生時やプラグイン使用時の安全対策で止めたい
0087名前は開発中のものです。
2010/07/07(水) 23:13:35ID:RtvNR7qJそれでも問題が出るならスクリプト側で一時停止したところで解決するような話じゃない
0088名前は開発中のものです。
2010/07/07(水) 23:32:37ID:Ge0tRqvdごめん。わかりにくかったかも
ユーザーが任意に切り替えるのを一時的に防止できればな、と思って
バチンバチンと切り替えられると危険なタイミングがあるので
0089名前は開発中のものです。
2010/07/08(木) 00:08:14ID:nH0TYLLz0090名前は開発中のものです。
2010/07/08(木) 00:17:33ID:EaBXqWLU俺もそれは気になってるんだが、ユーザーさんの良心に期待して諦めてる。
クレーム来たら、頻繁に切り替えないでどっちかでやってくださいと返答するしかないよね。
0091名前は開発中のものです。
2010/07/08(木) 06:39:47ID:qrA7sN8V気になる気持ちは分かるがれあどめにでも一言書いておいてユーザーに任せればいい
0092名前は開発中のものです。
2010/07/09(金) 21:23:53ID:AQxoEIY70093名前は開発中のものです。
2010/07/09(金) 21:45:02ID:ydHJD2xV0094名前は開発中のものです。
2010/07/09(金) 22:48:18ID:iu0sUGMgJavaScriptがわかれば使える。
>>88とかめっちゃ簡単なことしかしてないし。
0095名前は開発中のものです。
2010/07/09(金) 22:49:15ID:iu0sUGMg0096名前は開発中のものです。
2010/07/09(金) 22:57:46ID:NMuxcdxI0097名前は開発中のものです。
2010/07/09(金) 22:58:42ID:5rNnzp5jまあ、まじめに言語仕様の話するならluaの方が簡単。
ただ実装のことばかり気にしすぎで分かりづらい部分もある。
0098名前は開発中のものです。
2010/07/09(金) 23:02:08ID:OddDcyGNメジャーな言語の中ではかなり覚えることが多い部類に入る
0099名前は開発中のものです。
2010/07/10(土) 02:55:17ID:nw+80oDi0100名無しさん@そうだ選挙に行こう
2010/07/10(土) 21:42:55ID:3TpXoUDX>>97も言ってるけど、激しく実装を前提とした仕様なので
どういう風に実装されてるのか想像できないと理解しづらい部分が多々ある
0101名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:08:45ID:Rn436zlANScripterでは下のように書くところを……
*define
dim ?0[9]
numalias test,0
game
*start
mov ?test[1],100 :mov ?test[2],200
itoa $1,?test[1] :itoa $2,?test[2]
mesbox "?test[1]:"+$1+" ?test[2]:"+$2,"title"
Luaではこんなふうにできちゃう。便利ですね。
test={100; 200;}
NSOkBox('test[1]:'..test[1]..' test[2]:'..test[2],'title')
0102名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:39:23ID:X35yY+hV0103名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:49:28ID:nw+80oDi0104名無しさん@そうだ選挙に行こう
2010/07/11(日) 09:23:06ID:UHElVP4C0105名無しさん@そうだ選挙に行こう
2010/07/11(日) 14:49:49ID:WD7kG47q0106名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:05:31ID:d8J+Fh8ZうぃんどみるのCS2のVRAM丸見え仕様とか俺は好きだぞ。
透過性があって。
0107名前は開発中のものです。
2010/07/13(火) 22:33:38ID:NO3GlMLZいまさらですが使わせてもらってます
ありがとう
0108名前は開発中のものです。
2010/07/16(金) 17:41:35ID:v3Z7eo96NSLuaと普通のLuaは別物なんだよね?
NScripterで普通のLuaは使えない、で間違ってないよね?
0109名前は開発中のものです。
2010/07/16(金) 18:26:22ID:ULunZi1T2ちゃんの同じページ見るのだってブラウザ毎に挙動が違うだろ?
言わせるなよ恥ずかしい。
0110名前は開発中のものです。
2010/07/16(金) 18:34:40ID:v3Z7eo96NScripterでLua使う時はNSLuaだけとりあえず覚えればいいよね
0111名前は開発中のものです。
2010/07/16(金) 20:01:03ID:QWYPdaNk>>109は的を射てないので忘れていい。
0112名前は開発中のものです。
2010/07/16(金) 20:23:08ID:v3Z7eo960113名前は開発中のものです。
2010/07/18(日) 10:50:46ID:ojldv6BXLuaの使い方としてはむしろ普通
0114名前は開発中のものです。
2010/07/18(日) 14:59:49ID:ay0n2T2rSGEみたいにDSLの上にフレームワークのっけて使うのはheavy weightなコードへの依存が減るからどっちが普通とか言う問題じゃないんだが。
0115名前は開発中のものです。
2010/07/18(日) 17:25:51ID:tsgcpv3Aそんな俺にはいつかNSLuaがSJIS対応してくれればそれでいい
PureLuaの文字列部分だけSJIS対応したのをどっかで見かけたけど
そっちでnslua.dll作るのって無理なんだろうか?
Windowsの出力コードに欠陥コードを採用したMicrosoftが憎いっす
0116名前は開発中のものです。
2010/07/19(月) 13:22:20ID:j1IIIaSf多言語対応がイマイチなのはLuaに限らずあちらの人が作ったものはだいたいそう
0117名前は開発中のものです。
2010/07/19(月) 17:38:59ID:usW/5S7a0118名前は開発中のものです。
2010/07/19(月) 18:56:41ID:xJW3+rJf0119名前は開発中のものです。
2010/07/20(火) 07:46:44ID:xlGN9ufN0120名前は開発中のものです。
2010/07/20(火) 11:28:24ID:J+uC/37A難しくて挫折しそう
0121名前は開発中のものです。
2010/07/20(火) 21:04:17ID:H/HgPWAcNSLuaとLuaの違いは、
普通のLuaにNScripterとの連携用の命令をいくつか追加して、
現在あるほとんどのLuaライブラリ(特にC言語と連携してる奴)が
読み込めなくなった奴だから、まあ違うと言えば違うけど、
Luaでできることはたいがいできるんだがなあ。
0122名前は開発中のものです。
2010/07/22(木) 15:16:34ID:qzikjij3プログラマじゃないからこういうのがアリなのかナシなのかよくわかんないぜ……orz
0123名前は開発中のものです。
2010/07/22(木) 22:57:13ID:ORDy9OO0ちゃんと動いててプレイヤーに特に不都合が出たりしなければいいだろ
0124名前は開発中のものです。
2010/07/22(木) 23:10:11ID:vq6wE6Pl今は反省している。何を基準にすればいいかもわからない。
0125名前は開発中のものです。
2010/07/25(日) 11:42:55ID:GiaQ0Q0P動くんならいーじゃん。てか、そんなことができたとは知らなかった。
具体的な構成とか見せてくれ!
0126名前は開発中のものです。
2010/07/25(日) 13:45:44ID:lMkbOTyIhttp://luaforge.net/にビット演算とか色んなライブラリがMITライセンスで公開されてるから、
ソース拾ってきてcygwin上でビルドしてdllを作成。意気揚々とrequireしようとしたらエラー。
---------------------------
コンポーネントが見つかりません
---------------------------
lua51.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
---------------------------
なくてだめなら置けばいいかと思って、SGEからdll引っ張ってきてlua51.dllとリネームしたら動いた。
0127名前は開発中のものです。
2010/07/26(月) 00:10:27ID:wfwqNlPz0128名前は開発中のものです。
2010/07/26(月) 13:35:03ID:E6LD27dLそのためにSGEがあるんじゃないのか?
0129名前は開発中のものです。
2010/07/28(水) 21:21:48ID:SM9hF7KJ0130名前は開発中のものです。
2010/07/30(金) 22:41:16ID:wVZ1niE5今のSGE単独じゃさすがに厳しいと思うんだ
0131名前は開発中のものです。
2010/07/31(土) 14:03:03ID:tDksP9+OCSじゃないから今の富豪PCならlua自体はアクションゲーできるくらいには速い。
0132名前は開発中のものです。
2010/07/31(土) 21:35:09ID:YwZExUnd0133名前は開発中のものです。
2010/08/01(日) 15:29:42ID:T3hFDf8k0134名前は開発中のものです。
2010/08/01(日) 20:45:14ID:gKxA7jHF0135名前は開発中のものです。
2010/08/01(日) 20:52:22ID:T3hFDf8kもちろん偶数バイト調整前提だけど
0136名前は開発中のものです。
2010/08/01(日) 22:13:04ID:dOp3Nendだれも2Dに限定してないだろ
0137名前は開発中のものです。
2010/08/02(月) 08:58:47ID:2TXH48Sx0138名前は開発中のものです。
2010/08/02(月) 11:00:03ID:SfJiL7x8■ このスレッドは過去ログ倉庫に格納されています