トップページgamedev
1001コメント401KB

■吉里吉里/KAG/TJS雑談質問スレ■その22

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2010/10/01(金) 10:44:25ID:z47vESnT
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/

吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/

ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。

必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)

前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その21
http://hibari.2ch.net/test/read.cgi/gamedev/1274510516/
0340名前は開発中のものです。2010/10/23(土) 17:39:17ID:DXTMAmpE
ここにいる人たちって皆FATE並の演出できますか?
0341名前は開発中のものです。2010/10/23(土) 17:47:23ID:vgl86P9m
>>340
質問の意味がちょっと広いから切り分けて答えます。
・純粋に可能か不可能か、という意味での質問であれば「可能」と答えます。
・なら実際にやってるのか、という意味での質問であれば「いいえ」と答えます。

技術的にできるかできないかよりも、やりたい演出があって、それが期待通りの
動きを実現するまでトライアンドエラーを続けるだけの時間があるかどうかの方が問題です。
同人はどうか知らないけど、商業の方ではそんな研究期間を持てる会社はそれほど多くありません。
大金持ちのタイプムーンだからできる演出というのが私の見解です。
0342名前は開発中のものです。2010/10/23(土) 17:52:17ID:vt0DlvMi
>>340
ここにいる人 と 皆 とは同意義ではないでしょうか?
質問が破綻しているのでお答えできません
0343名前は開発中のものです。2010/10/23(土) 18:00:20ID:19BPjpEt
>>342
頭大丈夫?
0344名前は開発中のものです。2010/10/23(土) 18:05:00ID:aJz3ioYi
俺はFateはPC版のstay nightとhollow ataraxiaしかやっていないが
何年か前にFateのオリジナル続編の同人ゲー作ろうと思っていた時期があって
トランジションの仕方やメッセージレイヤーなどマクロ作って原作に似せた雛型のシステムは作った。
しかし>>314でも言っている拡大縮小と回転をαブレンドみたいなエフェクトが吉里吉里で実装できなくて
いつの間にかお蔵入りしていた。

もう詳しくは覚えていないが、今思えば静止画にブラーをかけたりして上手く演出したりしていたのかもしれない。
Fateのようなエフェクトが実現できたら是非やり方教えてくれ。
0345名前は開発中のものです。2010/10/23(土) 18:09:59ID:vt0DlvMi
>>343
頭がうれしくてたまりません
0346名前は開発中のものです。2010/10/23(土) 19:05:48ID:vt0DlvMi
>>344
民間放送でもNHKでも入社すればエフェクトの山だお
http://mar.2chan.net/jun/b/src/1287828326826.jpg
0347名前は開発中のものです。2010/10/23(土) 20:13:50ID:XaOI0Txy
>>333
作られたムービーを使ってMADを作るアマチュアならそうだろうけれど、
動画を作成したツールのプロジェクトファイルがあるならいくらでも再利用できるだろ??
0348名前は開発中のものです。2010/10/23(土) 20:29:20ID:SlOQpi4h
つまりエフェクト多用すればするほど僅かな違いの動画が山の様に出来上がる訳だな
0349名前は開発中のものです。2010/10/23(土) 22:20:06ID:LKrbEuI4
BGMに関しての質問です。
セーブデータAのBGMとセーブデータBのBGMが同じだった場合で
セーブデータAをプレイ時にセーブデータBをロードすると
BGMが最初から再生されてしまいます。
これを最初から再生せずに、途中から再生することはできないでしょうか?
0350名前は開発中のものです。2010/10/23(土) 22:30:45ID:vt0DlvMi
大量生産大量消費大量広告大量収入大量団塊大量就職大量流民
ものがあふれる現代が一番幸せなのを作ったのはど〜れ?
一本化しないと面倒くさい
0351名前は開発中のものです。2010/10/23(土) 22:45:39ID:gEKaiRvt
>>348
あー、それはちょっとダルい絵図だな
0352名前は開発中のものです。2010/10/23(土) 23:11:34ID:zt9Mo3QI
ちょっともうひとつ分からないところがあるんだけど、
プログラム言語経験があってTJSやってる人いたら、質問して構わない?

TJSの無名関数は上位のスコープが見えるクロージャとして働くの?
関数の返値を無名関数にして、イテレータとかは実装できる……のか?
実験してみたんだけどなんかうまくいかないんだが、自分のTJSに対する理解不足の可能性が高いので
0353名前は開発中のものです。2010/10/23(土) 23:20:58ID:I6HeHNlI
いいえ。TJSの無名関数のコンテキストは、その無名関数が定義されてるスコープでのthisと同じ。
無名関数の中から外側のローカルスコープは見えない。
0354名前は開発中のものです。2010/10/23(土) 23:21:18ID:1hKwhCiP
>>352
働かない
0355名前は開発中のものです。2010/10/23(土) 23:31:17ID:08nNitHY
>>352
働かないけど、上位のスコープの存在を明示出来るなら使えない事もない。
例えば
var foo = function(bar){
   System.inform(bar);
};
みたいな物を作ると、System.informを呼び出す時にエラーでコケる(Systemが見当たりません的な理由?)。
ただしこの場合、global.System.inform という風に修正するとちゃんと動く。
似たような理屈で、kagオブジェクトを参照したけりゃglobal.kag のように呼べば一応は扱える。

実際の所、無名関数の中で使われる変数や関数というのは、キチンと明示してならない限り
「その無名関数の中で定義された変数or関数orクラスオブジェクト」等のように認識されてるってこったね
0356名前は開発中のものです。2010/10/23(土) 23:31:51ID:08nNitHY
明示して"ならない"ってなんだ……。明示して"ない"ね
0357名前は開発中のものです。2010/10/23(土) 23:33:25ID:I6HeHNlI
function iterator() {
 var state = %[];
 state.x = 0;
 return function() { return x++; } incontextof state;
}

var it = iterator();
System.inform(it()); System.inform(it()); System.inform(it());
こんなかんじ?
0358名前は開発中のものです。2010/10/23(土) 23:42:58ID:zt9Mo3QI
>>353,354
とある説明でクロージャとして働くって書いてあったけど、
じゃあ執筆者のミスか無知って解釈でOK? さんくす
愚痴っても仕方ないけど、微妙に言語仕様が分かりにくいんだよな……

>>355
それはちょっと、美学的問題で避けたいかな?
まあクロージャが使えなくても、ちょっと迂遠な方法とればいいだけなので割り切る
0359名前は開発中のものです。2010/10/23(土) 23:53:10ID:1hKwhCiP
>>358
単に言葉の定義の問題。実行用の環境をプログラマブルに変更できるからクロージャの定義には合致する。
javascript とかの「レキシカルクロージャ」ではないだけ。
0360名前は開発中のものです。2010/10/24(日) 00:09:55ID:TxKihxNO
>>359
ああ、失礼
実質クロージャ=レキシカル〜みたいな認識だったから、つい
0361名前は開発中のものです。2010/10/24(日) 00:31:29ID:0z3YDA8C
TJSの仕様は確かに不明なことが多い
多分こういう実装だからこうなるだろう
と仮説を立てて実験してみることがしばしば
0362名前は開発中のものです。2010/10/24(日) 00:54:20ID:nDvkp2ZP
TJSリファレンスみてわからなかったことが無いんだが……。
実は読んでないだろ。
0363名前は開発中のものです。2010/10/24(日) 00:55:31ID:m7rrujuR
トリッキーな構文書いたときのことでしょ
0364名前は開発中のものです。2010/10/24(日) 00:59:05ID:nDvkp2ZP
Javascript に比べるとよっぽど素直なつくりだと思うけどなぁ。Javascript は仕様ごと変態だ。
0365名前は開発中のものです。2010/10/24(日) 01:09:03ID:TxKihxNO
>>364
世の中にはそういう変態的仕様が好きな人間がいて、
TJSでそれらを使う使う機会はないと分かっていても、それでも気になっちゃうというか……
さっきの質問もクロージャを吉里吉里で使いたいから聞いたわけじゃないんだ すまん
0366名前は開発中のものです。2010/10/24(日) 02:27:41ID:0z3YDA8C
たとえば関数の中に関数やクラス書いたらどうなるかリファレンスにかいてある?
オブジェクトを作った後にそのクラスのメンバが変更されたらどうなる?
スーパークラスではどう?
0367名前は開発中のものです。2010/10/24(日) 02:37:08ID:nDvkp2ZP
そりゃ「未定義」だろ?

iTJSDispatch2 の仕様からしてあきらかに未定義。その先のクラスがどう実装されてるかによって実際変わるし。
0368名前は開発中のものです。2010/10/24(日) 02:38:18ID:nDvkp2ZP
未定義が多い言語が嫌いだってことなら、そりゃご愁傷さまってことで
0369名前は開発中のものです。2010/10/24(日) 06:49:13ID:TQZtCv77
吉里吉里がやりたいことは分かる
要するにスクリプトだろ?
しかし、実際にWEBで個人で公開されてる吉里吉里入門では ほとんどがそのさわりだけで
セーブデータの作成方法や、ロードの方法、画面の座標指定、エフェクトの入れ方
音声の途中からの再生、ジョイスティックの対応方法、dll作っての拡張方法などなど
実際に誰もがでくわすような、すこ〜し入った問題になると途端に情報がなくなるか
更新がとだえる
0370名前は開発中のものです。2010/10/24(日) 07:33:03ID:TxKihxNO
>>367
平行線になりそうな気もするけど、
言語に実用性を求めるか美学(あるいは変態性)を求めるかが違うんだろ

そんなことをしても意味がないという意見はもっともだし、反論する気もないけど、
そもそもTJSそのものに魅力を覚えているから変態的になるという点は理解してほしい
別に互いに相容れないわけじゃない

>>366
そして調査結果があるのならぶちまけてほしいw
0371名前は開発中のものです。2010/10/24(日) 15:30:46ID:vkm4xYOz
>>36ダメやん、じゃあどないすればいいやねん
0372名前は開発中のものです。2010/10/24(日) 18:21:37ID:nBEFo5vd
君達、沢山議論していくと良いよ

バタン
0373名前は開発中のものです。2010/10/25(月) 01:15:40ID:svWzhBJm
初心者丸出しで申し訳ないんですが、ムービーの上に
テキストレイヤーを表示させる方法がわかりません。
過去記事漁ると、初期は無理だったけど今はムービー(例えばswf)を
レイヤーとして扱って出来ると書いてあるんだけど、
そっから先の情報が見当たらなく困ってます。
なんかプラグインが必要なんですか?
ちなみに吉里吉里2 2.32 安定版です。
0374名前は開発中のものです。2010/10/25(月) 01:16:26ID:svWzhBJm
あげてしまったゴメンナサイ。
0375名前は開発中のものです。2010/10/25(月) 03:27:20ID:PkLXARZb
>>283
今更でごめん

このスクリプト、自動改ページに対応させるとしたら、
KAGの挙動を拾わなきゃいけない気がするんだけど、それを実現しようとすればKAG改造必至?

あまり煩雑になるようなら自動改ページは諦めるけれども、
手出ししたことがないから作業量の見当がつかない……
0376名前は開発中のものです。2010/10/25(月) 05:17:04ID:GSVY/6PB
>>373
タグリファレンスのvideoタグ
0377名前は開発中のものです。2010/10/25(月) 09:36:09ID:Jf1ooYG7
>>373
前スレにレイヤー表示の書式が載ってる
03783732010/10/25(月) 16:10:07ID:svWzhBJm
>>376
>>377
回答ありがとうございました!
理解できてませんが望む処理はできました。
書籍買ったり本家サイト調べたりでも全然進まなかったのですが、
2ちゃんで聞けるって日本もまだまだいい国だと思いましたw
もっと勉強します。
0379名前は開発中のものです。2010/10/25(月) 20:04:09ID:YQ/4RBaM
>>375
KAG改造に手を出さなきゃ無理
中でもMessageLayerを扱うのはものすごく面倒だからcmタグをうったほうがいい
0380名前は開発中のものです。2010/10/25(月) 20:30:07ID:PkLXARZb
>>379
さんくす 地道にcm打つよ
0381名前は開発中のものです。2010/10/27(水) 07:35:47ID:ie4jGKEH
初歩的な質問でごめん。
RGBそれぞれでランダムに0〜255の数値を設定して、それを元にmcolorでカラーフィルターみたいにして使いたいんだけど、10進数を16進数に変換する方法がわかりません。
↓ここまでは書いたんですけど……

[eval exp="f.mc_r = intrandom(0, 255)"]
[eval exp="f.mc_g = intrandom(0, 255)"]
[eval exp="f.mc_b = intrandom(0, 255)"]
[eval exp="f.mc_all ='0x' + f.mc_r + f.mc_g + f.mc_b"]
[image layer=1 page=fore storage="black.png" visible=true opacity=25 mcolor="&f.mc_all" mopacity=255]

当然これだと数値が10進数のままなので上手くいきません。
分かる方いたらお願いします。
0382名前は開発中のものです。2010/10/27(水) 08:01:51ID:VFsURptl
f.mc_all = '0x%02x%02x%02x'.sprintf(f.mc_r, f.mc_g, f.mc_b)
0383名前は開発中のものです。2010/10/27(水) 08:40:13ID:ie4jGKEH
>>382
朝早くからありがとうでした!
おかげで上手くいきました。
0384名前は開発中のものです。2010/10/27(水) 15:07:11ID:ZZJZOYux
オクテット列って何に使うの?
0385名前は開発中のものです。2010/10/27(水) 15:45:31ID:wJtns5fV
なんか処理するプラグインでもかかない限りは使うところはない>オクテット
0386名前は開発中のものです。2010/10/27(水) 20:06:35ID:shLHFwGH
ネットワーク通信とか文字列エンコードとかするには必須。
0387名前は開発中のものです。2010/10/27(水) 22:00:23ID:OTLuPYax
長文ですみません。
メッセージウィンドウを「大モード」と「小モード」で任意に切り替えたいと
考えています。例えば、大の時には以下のように
ああああ
いいいい
と2行表示され、小のときには
いいいい
と最新の1行のみが表示されるようにしたい、というものです。
ウィンドウサイズの切り替え自体は出来たのですが、小から大に戻したときに
ああああ
いいいい
というように、過去の表示可能な文字列まで含めて表示させる(要するに
もとの大モードの時に表示されていた部分が再現される)ようにできません。
代替策として、messages[0]とmesssages[1]をそれぞれ大モード、小モード
として表示サイズを変え、両者に同時に同じ文字列を表示させつつ、
表示させておくのは常に片方のみにして、それを切り替えることで同じ効果が
出せないか、と考えましたが、両者を同期させる具体的なやり方がわかりません。
同じ効果が出せれば他の方法でも構いませんので、どなたか御指南頂ければ
幸いです。
0388名前は開発中のものです。2010/10/27(水) 22:16:46ID:QJ/JNCS5
kagをいじるのでなければ、何かマクロを作って
@macro name=mymacro
@layer message=1
@emb exp=mp.text
@r
@layer message=2
@emb exp=mp.text
@r
@endmacro
@mymacro text=あいうえおあいうえお
みたいな感じでやるのかね
0389名前は開発中のものです。2010/10/27(水) 22:18:14ID:QJ/JNCS5
ああ間違えた
吉里吉里しばらく使ってなかったもので
意図汲んで下さい
03903872010/10/27(水) 22:37:58ID:OTLuPYax
>>388
マクロを使ったことがなかったせいでkagをいじることしか頭になく、
その発想が抜けていました。
どうもありがとうございます。
0391名前は開発中のものです。2010/10/28(木) 22:47:19ID:W9YbV2fG
剛さんが商業に提供してるシステムは
表情変更非同期できるけどあれってKAGEX?
KAGならどうやってんだろう
0392名前は開発中のものです。2010/10/29(金) 00:34:09ID:6q2NwnUT
相談させて下さい。

hitThresholdを255に設定したレイヤで画面全体を囲って
半透明にして、調度カーテンの様に後のボタンなどを無反応にさせています。

このレイヤをクリックした時、メッセージレイヤのメッセージを進めるには、
どんな処理を呼び出したら良いでしょうか?。
このレイヤのonMouseUpイベントから呼び出したいので、TJS上からの呼び方を
教えて頂けるとありがたいです。
0393名前は開発中のものです。2010/10/29(金) 00:39:33ID:dh2v2l+i
kag.onPrimaryClick()
0394名前は開発中のものです。2010/10/29(金) 15:45:24ID:qI848ud6
>>391
KAGEXやね。キーワードは delayrun と nosync

KAGだとトランジション自体はもともと非同期だけど、コマンド実行を非同期に割り込ませる機構が存在しないので冒頭以外では無理
0395名前は開発中のものです。2010/10/29(金) 22:17:25ID:6q2NwnUT
>>393
ありがとう上手く行きました。
03963912010/10/30(土) 19:08:40ID:gAUPWccS
>>394
ありがとうございます。参考になりました!

やはりKAGじゃ無理か・・・
ならKAGEXの使用も視野に入れようかな
0397名前は開発中のものです。2010/10/30(土) 19:35:24ID:uNd48y/g
>>396
非同期に表情変更って意味が分からないけど
アニメーションで大概のことは出来るよ
0398名前は開発中のものです。2010/10/31(日) 02:20:26ID:IM608FeE
tjsで配列に文字が1文字づつ入っていて
これらをいちどにdrawtextで書き出すにはどうすればよいでしょうか?

var arr = new Array();
arr[1] = a;
arr[2] = b;
arr[3] = c;

として、abcと平易に出力したいのです。


今は無理やり、
while(arr[i]!=""){
kag.fore.layers[1].draw.text(10+20*i, 20, 0xfffff);
i++;
}

のように並べてるのですが…。。
0399名前は開発中のものです。2010/10/31(日) 02:21:36ID:IM608FeE
今は

while(arr[i]!=""){
kag.fore.layers[1].draw.text(10+20*i, 20, arr[i], 0xfffff);
i++;
}

とやっています。失礼しました。
0400名前は開発中のものです。2010/10/31(日) 02:23:14ID:IM608FeE
何度もすみません。
書き出したい配列の個数(文字列の文字数)は
1個〜約30個、とバラバラなので

forかwhileでうまく書きたいと考えています。
0401名前は開発中のものです。2010/10/31(日) 02:29:44ID:cnTkWzk2
join メソッドは、配列を結合し、一つの文字列にします。

構文 : join(<デリミタ>, <(予約)>, <空の要素を無視するか=false>)

 配列の各要素をデリミタで結合し、結合した文字列を返します。
 空の要素を無視するか、が true の場合は、要素中の void は無視されます。

例:
var ar = [ "a", "b", void, "d" ];
var s1 = ar.join(","); // s1 には "a,b,,d" が代入される
var s2 = ar.join(",",,true); // s2 には "a,b,d" が代入される
0402名前は開発中のものです。2010/10/31(日) 02:32:08ID:IM608FeE
たびたびすみません。疑問に思ったのですが


intrandom()について

http://homepage1.nifty.com/gutchie/kirikiri_kag/tjs_game002.html
こちら(いつもお世話になっています)に、

>KAGの関数intrandom()を使います。この関数はKAGからしか使えないため、あらかじめkag3\template\system\Util.tjsから該当コードをコピーしておきます。

とありますが、今自分が作っているもので何の宣言もなしにintrandom()を使ったところ、
ランダムで任意の範囲から整数値を取り出すことができたのですが、
このまま使って問題ないのでしょうか?
0403名前は開発中のものです。2010/10/31(日) 02:37:11ID:uC9ii1HW
上のレスでdrawTextがどうって言っているということは
KAGは使っているんじゃないのかな

そのリンク先のはKAGを使わずにTJSだけでやる場合の注意だと思うよ
0404名前は開発中のものです。2010/10/31(日) 02:43:04ID:IM608FeE
>>401
うおー!joinメソッドですか。ありがとうございます。
配列の1個目を無視して2個目以降のみを文字列にする方法をググっているところです。


>>403
TJSだけ使っているのですが、intrandom()が普通に使えてしまうのです。
まぁ、気にしなくて良い… のでしょうか。
0405名前は開発中のものです。2010/10/31(日) 03:21:22ID:IM608FeE
joinメソッド

構文 : join(<デリミタ>, <(予約)>, <空の要素を無視するか=false>)

この<(予約)>とは何でしょうか…?
0406名前は開発中のものです。2010/10/31(日) 03:27:47ID:55oPO1cS
将来引数追加するかもしれね〜からとりあえず引数用の場所取っておこうかな〜
ってことじゃないかな。とりあえず無視して ", ,"と飛ばしておけばok

ケツに付け足すことをせずにわざわざ予約としてる辺りこだわりを感じますなぁ
0407名前は開発中のものです。2010/10/31(日) 05:01:07ID:pWFZeHOU
今は使ってないが、昔は使っていたため、詰めると互換性が失われることから、
予約にして公開したという可能性も……配列の個数を指定していたとかw
0408名前は開発中のものです。2010/10/31(日) 05:23:52ID:EL1r7beH
>>404
>kag.fore.layers[1].draw.text(10+20*i, 20, 0xfffff);
とか見ると普通にKAG使ってると思うぞ。

Initialize.tjsでUtils.tjsを読み込んでるから
intrandom()を何処かにコピペしなくても使えるのは当然。
0409名前は開発中のものです。2010/10/31(日) 09:37:11ID:IM608FeE
>>405-406
なるほど。ありがとうございました。

>>407
失礼しました。自分が勘違いをしていたようです。

joinは配列全部をつなぐしか出来ないっぽいですね。
元の配列を変更することにします。本当にありがとうございました。
0410名前は開発中のものです。2010/10/31(日) 09:38:57ID:IM608FeE
レス番ミスりました。失礼しました。。
0411名前は開発中のものです。2010/10/31(日) 10:18:12ID:IM608FeE
たびたびすみません

Arrayクラスのjoinメソッドで実際にどう処理が行われているか確認して、
それを拡張したメソッドを作りたいなと思ったのですが

joinでいったい何が行われているか、はどこに書いてあるのでしょうか?
systemフォルダの中身を見ましたがjoinという文字列が見つからなかったのですが…。

そもそもやろうとしていることが頓珍漢ですか?
0412名前は開発中のものです。2010/10/31(日) 10:40:18ID:oOlVcsi7
吉里吉里開発サイトから吉里吉里のソースコードをダウンロードする
C++で書かれているので悪しからず
0413名前は開発中のものです。2010/10/31(日) 10:51:45ID:yJ/kOocJ
最初に自分で書いてる while の方法で別に間違いじゃないよと言っておく
count 見て for で回したほうがちょびっとだけ軽いだろうけど誤差の範囲
0414名前は開発中のものです。2010/10/31(日) 10:52:15ID:IM608FeE
>>412
ありがとうございます!

TJS_BEGIN_NATIVE_METHOD_DECL(/* func.name */join)
{
// join string with given delimiters.
// arguments are : <delimiter>, [<reserved>],
// [<whether ignore empty element>]

TJS_GET_NATIVE_INSTANCE(/* var. name */ni, /* var. type */tTJSArrayNI);
if(numparams < 1) return TJS_E_BADPARAMCOUNT;
tTJSString delimiter = *param[0];
bool purgeempty = false;
if(numparams >= 3 && param[2]->Type() != tvtVoid)
purgeempty = param[2]->operator bool();
// join with delimiter
bool first = true;
tTJSString out;
tTJSArrayNI::tArrayItemIterator i;
for(i = ni->Items.begin(); i != ni->Items.end(); i++)
{
if(purgeempty && i->Type() == tvtVoid) continue;
if(!first) out += delimiter;
first = false;
out += (tTJSString)(*i);
}
if(result) *result = out;
return TJS_S_OK;
}
TJS_END_NATIVE_METHOD_DECL(/* func.name */join)

見つけたけどお手上げでした∩(・ω・)∩
0415名前は開発中のものです。2010/10/31(日) 12:09:49ID:oOlVcsi7
そこは細かいこと省いてTJSっぽく書けば
var out = "", first = true;
for (var i = 0; i < array.length; i++) {
 if (!first) out += delimiter; first = false; out += array[i];
}
こういうことをしてるだけ。+=が実際にどういう動作をするかはtTJSStringの方を見ないとわからん。
0416名前は開発中のものです。2010/10/31(日) 12:34:08ID:USzuRT19
吉里吉里を落としてきてデスクトップに解凍したのですが起動できません。
試しにCドライブに移動させてみたら起動できました。

デスクトップだと起動できないんでしょうか?
0417名前は開発中のものです。2010/10/31(日) 12:35:15ID:USzuRT19
OSはvistaです。
0418名前は開発中のものです。2010/10/31(日) 12:42:56ID:yHE5VzNS
いつのまにか新バージョン出てたのか。
0419名前は開発中のものです。2010/10/31(日) 13:10:00ID:8W/Jpr0O
うわwマジだww永久凍結かと思ってたわwwwwww
0420名前は開発中のものです。2010/10/31(日) 14:26:08ID:Rd49nH45
BGM.tjsとかちょっと書き換えてるから、吉里吉里バージョンアップすると
全部書き換えしなおしで面倒臭いんだけど
何かいい方法無い?
0421名前は開発中のものです。2010/10/31(日) 14:58:47ID:uC9ii1HW
書き換える部分はafterinit.tjs等に書くようにする、というのが一番いい方法かと
0422名前は開発中のものです。2010/10/31(日) 16:20:05ID:CJvNHneF
便乗して聞いてみたいのだけれど、例えばsaveBookMarkWithAskの中の
var prompt = "栞 ";

var prompt = "Data ";
みたいに変えたいだけの場合は、Override.tjsに書くんだろうけど、どんな風に
書くのがスマートなんだろうか?
新しい機能を付け加えるのは出来るんだが、既存のものを上書きするやり方が
良く分からない。
0423名前は開発中のものです。2010/10/31(日) 16:23:48ID:cnTkWzk2
正直、その辺の定数は外部のTJSに切り出している仕様が良かったなあ……
初期にとりあえず書いたコードがそのまま続いちゃって、今更変えるのも
難しくなっちゃったんだろうけど
0424名前は開発中のものです。2010/10/31(日) 16:42:06ID:uC9ii1HW
最悪、array.loadでテキストとして読み込んで文字列置換→Scripts.exec
という荒業もあるな
0425名前は開発中のものです。2010/10/31(日) 18:40:15ID:VPkRpq9c
質問です。マクロの属性のデフォルトの値(|以下)を、変数で指定するにはどのように記述すればいいのでしょうか?
0426名前は開発中のものです。2010/11/01(月) 11:44:25ID:Va/KcZFc
>>425
省略値をありえない値にして、中で条件判断して、その値だったら変数に入れ替えたら?
0427名前は開発中のものです。2010/11/01(月) 11:55:53ID:l7ZbU1B+
>>425
[eval exp="mp.hoge=tf.huga" cond="mp.hoge===void"]
0428名前は開発中のものです。2010/11/01(月) 12:08:45ID:cfkfs1z8
>>425
スマートなやり方かは知らんが
@macro name="マクロ"
@eval exp="mp.属性 = f.デフォルト" cond="mp.属性 === void"
@tag *
@endmacro
な感じにかまたは
@tag 属性=&mp.属性!==void?mp.属性:f.デフォルト
ってやってる
0429名前は開発中のものです。2010/11/01(月) 16:47:45ID:bm5laGoi
マクロって静的なものだろ?
実行中の変数を動的にデフォルト引数にしたいってどんな状況よ?

とか思う俺は吉里吉里スクリプタ初心者ですかそうですか
0430名前は開発中のものです。2010/11/01(月) 17:11:25ID:l7ZbU1B+
>>429
何章かに分かれてて章毎に主人公の名前が変わるとか
0431名前は開発中のものです。2010/11/01(月) 17:14:57ID:3Kt0BjVD
それはマクロじゃなくて[emb]タグとかでやることでは
0432名前は開発中のものです。2010/11/01(月) 17:54:19ID:Ej9mMVf/
【ゲーム制作】サスペンスギャルゲー 『フクロマンス』 【スタッフ募集】
http://ex14.vip2ch.com/test/read.cgi/news4gep/1277294113/
0433名前は開発中のものです。2010/11/01(月) 19:00:18ID:MbsWO9By
>>432
>>全て私が独裁するので難しいコトは考えなくて構いません。

日本語<お前らは俺様の道具だから俺様のすばらしいプラン通りヤレ 売れたら俺様の手柄 売れなかったらおまえらのせい
絶対イヤです
0434名前は開発中のものです。2010/11/01(月) 19:03:04ID:3Kt0BjVD
フクロマンスにマジレスするおとこの人って……
0435名前は開発中のものです。2010/11/01(月) 19:10:31ID:wiljHGN3
>>430
そういうのはマクロの再定義をするのがあり方としては正しいんじゃない?
別に同じ内容を重複して書けってわけじゃなくて、
実際の機能を司る部分と、ラッパーとに分けて、ラッパーだけ定義しなおすとか
04364252010/11/01(月) 20:58:08ID:ImJv1JK2
>>427 >>428
ありがとうございました。

>>429
wait値なんかをまとめて定義しておいて、テストプレイ時の調整に
利用したいという、くだらない理由だったりします。
0437名前は開発中のものです。2010/11/02(火) 02:51:00ID:NgznsD08
プリプロセッサで静的に定義するか、ワークにwait値をつっこんで、そこを操作/参照するだけことじゃ…
0438名前は開発中のものです。2010/11/02(火) 03:03:28ID:twDpX0OI
日本語でおk
0439名前は開発中のものです。2010/11/02(火) 12:26:37ID:J8+ORhdD
>>438
いやこれは分かれよ
0440名前は開発中のものです。2010/11/02(火) 14:06:23ID:kWrcyxgP
話の流れとは関係ないんだけど
TJSのプリプロセッサって結構使われてるもんなの?
独立した組み込みのプリプロセッサがあるスクリプト言語なんて珍しいと思うけど
■ このスレッドは過去ログ倉庫に格納されています