したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

製作初心者講座スレ

1あなたの名前を入力してください:2018/12/17(月) 19:27:03 ID:XL3qFHUU
ここは全く製作したことの無い人達が一段階ずつ製作者へ目指していくスレです。
eraでこれが作りたいと思ったり、eraであれがやりたいんだ
といった情熱があっても、どうしていいかわからないといった方の参考になるべく立てられました
製作したいといった情熱があればぜひ目を通していってください。

情報提供されるの皆さまへ
このスレに書きこまれた、こうしたほうがいいといった発言やまとめはeraシリーズを語るスレ まとめWiki V3に掲載されるかもしれません。
そういった事を踏まえて初心者の方々に有益な情報の提供をお願いします。

このスレに書きこむ前にこちらをお読みください
スレのテンプレ>>1-3

※注 ・投下されたサンプルへの意見交換などは歓迎しますが、
    サンプル投下者への人格批判につながるものや、誹謗中傷に取られるものは禁止とします。
    また、議論も禁止とします。
    意見交換の際に、誰かから苦言を呈されたらいったんレスを止め、時間を置いて落ち着いてください。

305あなたの名前を入力してください:2020/04/08(水) 11:59:48 ID:T6nrJjHY
>>297
第1引数は文字列型なんだから直接指定するなら"リソース名"みたいにしなきゃダメなんじゃない?
画像使ったことないから詳しいことはわからないけど

306あなたの名前を入力してください:2020/04/08(水) 13:09:33 ID:W7W7XauY
>>305
こんな単純な見落としだったとは…

問題なく動くようになりました
ありがとうございます

307あなたの名前を入力してください:2020/04/17(金) 18:30:33 ID:SqmU6hEY
全てのERB内の命令で干渉される可能性のある変数(既に使われている変数)をリスト化して表示する方法ってないですかね?
使われていないTCVARだと思って使っていたらCSVファイルで変数名を命名されないまま整数指定で使われていたらしく干渉してバグになってたって事があったので…

正規表現Grep検索で探せないか試したんですが変数名がないのでTCVARと番号で探すしかなく、ARGやLOCAL等に代入されていた場合に対応できませんでした

308あなたの名前を入力してください:2020/04/20(月) 14:48:39 ID:aeZIA6No
使われてる変数一覧がみれる機能やツールは無かったと思う。
パッチや口上で使える変数が知りたいということだろうけど、諦めてERHで新たに変数を宣言するしかないんじゃないかな。
その場合TCVARと違ってBEGIN TRAINで初期化されないから必要ならその処理も書かなきゃいけないけど。

309あなたの名前を入力してください:2020/04/20(月) 20:49:14 ID:GXcBI6e.
>>307
楽しい愉しいリファクタリング作業がキミを待ってるぞ♪

310あなたの名前を入力してください:2020/04/20(月) 21:23:00 ID:pglTMQE.
>>308-309
やっぱりないんですね…
どうせ全コードへ目を通す必要があるので楽しみを先取りすると思って頑張ります

311あなたの名前を入力してください:2020/05/02(土) 14:36:12 ID:HtqroKaw
ちょっと質問なんですが


printbutton "ボタン1",1
print (%文字列表示関数%)
prints " "
printbutton "ボタン2",2
print (%文字列表示関数%)



こうやってボタンと文字列表示関数をセットで二個づつ並べて表示させる場合に偶数個目(表示で右にくる奴)を綺麗に揃えて表示する方法ないでしょうか?
単純に例の通りにやると文字列の字数で偶数個目のヘッダーがでこぼこして見映えがわるくなってしまって

312あなたの名前を入力してください:2020/05/02(土) 15:03:28 ID:z5ePdrHY
>>311
まず確認だけど、printじゃなくてprintformでいいんだよね?

で、やり方は色々あると思うけど、311の例を書き換えて実現するなら
FORM拡張構文を使うのが手っ取り早いと思う
https://ja.osdn.net/projects/emuera/wiki/exetc

printbutton "ボタン1",1
printform (%文字列表示関数(1),10,LEFT%)
prints " "
printbutton "ボタン2",2
printform (%文字列表示関数(2),10,LEFT%)

これで関数(1)が「あいう」、(2)が「えお」を返す場合

ボタン1(あいう  ) ボタン2(えお   )

ってなる。他にはPRINTBUTTONC/LCを使うのも手だね

313あなたの名前を入力してください:2020/05/02(土) 15:51:43 ID:HtqroKaw
迅速な解説ありがとうございます
そうですねformが抜けてました

form拡張構文でなんとか見栄えよくなるよういじってみます

314あなたの名前を入力してください:2020/05/02(土) 15:54:12 ID:yf2EK2WU
そこまでできているなら、括弧閉じをFORM構文の中に入れてしまえばOK
printbutton "ボタン1",1
printform (%文字列表示関数(1) + ")",10,LEFT%
prints " "
printbutton "ボタン2",2
printform (%文字列表示関数(2) + ")",10,LEFT%

315あなたの名前を入力してください:2020/05/07(木) 21:51:36 ID:fU3petyI
【質問】
・環境
 eraMegaten0.309+修正6+私家版パッチ纏め_Rev123 + Rev128
・質問内容
 あなた含むメンバーの中からランダム抽選をするにはどうすればよいでしょうか
・目的
 master対象のイベの最後に、陥落しているメンバーから一人をランダム抽選して今後のイベにつなげるフラグを付けたい
【サンプル投下】
#LOCALSIZE 1
#DIM LCOUNT
#DIM 対象
LOCAL = 0

;キャラ登録数が1以下の時は引き返す
SIF CHARANUM <= 1
RETURN 1

FOR LCOUNT, 0, CHARANUM
;レンタル中は除外
SIF CFLAG:LCOUNT:労役フラグ == 3
CONTINUE
;主人ならスキップ
SIF LCOUNT == MASTER
CONTINUE
;陥落していないキャラは除外
SIF !TALENT:LCOUNT:恋慕 == 1 || !TALENT:LCOUNT:親愛 == 1 || !TALENT:LCOUNT:淫乱 == 1 || !TALENT:LCOUNT:娼婦 == 1 || !TALENT:LCOUNT:服従 == 1 || !TALENT:LCOUNT:隷属 == 1
CONTINUE
NEXT
対象 = LCOUNT

CALLNAME:対象で描写と、その対象にフラグを付けたいんですが
ランダム抽選はよくわからず、とりあえず他の人が作ったのを真似していじってみるとエラー発生

エラー内容:キャラクタ配列変数CALLNAMEの第一引数(5)はキャラ登録番号の範囲外です

どうにも、ランダム抽選の仕組みが理解できてないんですが、WIKI見てもよくわからず……ご指導いただけないでしょうか

316あなたの名前を入力してください:2020/05/07(木) 22:22:35 ID:vZCUmrs6
>>315
http://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1498745115/93
↑を使う・・・・という、宣伝を兼ねた冗談はさておき。

パッと思いつく範囲でやり方は大きく二つ。
・キャラクター全員が入る変数に条件を満たすキャラのリストを格納し、その中からランダムで一人選ぶ
 ↑のライブラリで使用してるのはこの方式
・(条件を満たすキャラが一人以上いるのを確認した上で)とにかくランダムに1キャラ選び、条件を満たすか確認。
 満たさない場合は最初からやり直し

前者より後者の方が単純だが、遅くなる可能性があるし下手すると簡単に無限ループに入るな
個人的には前者がオススメだが、書くのけっこー面倒

317あなたの名前を入力してください:2020/05/07(木) 22:50:50 ID:fU3petyI
>>316
ありがとうございます
今のやり方で条件追加したりしていじってたら、たしかにループなるから終了しとけと言われたりもしてましたね…
ライブラリの内容、読んで勉強させてもらいます!

318あなたの名前を入力してください:2020/05/08(金) 12:59:39 ID:pLAxw03I
解決してるっぽいけど一応
>>315
対象 = LCOUNTがNEXTの外にあるから必ずCHARANUMが代入されてしまう
CHARANUM == 5の時CALLNAMEは0〜4までしかないので当然エラーになる

そもそもこの構文だとランダムじゃなくて登録番号順でキャラが選ばれてしまうぞ
>>316さんの後者の方式を使うならRAND:CHARANUMして選ばれたキャラが条件を満たしてなかったらループさせればいい
何回ループさせるかわからないのでFOR~NEXTじゃなくてDO~LOOPを使おう

あと
SIF !TALENT:LCOUNT:恋慕 == 1 は
SIF TALENT:LCOUNT:恋慕 == 0 か SIF TALENT:LCOUNT:恋慕 != 1って書いた方が良い
0か否かだけなら SIF !TALENT:LCOUNT:恋慕 だけでも良い

319あなたの名前を入力してください:2020/05/08(金) 15:06:10 ID:WpbsUk7w
>318
なるほど、アドバイスありがとうございます
見様見真似でやってるばかりであんまり理解しきれてないもんで、自分が貼ったものの問題点もご指摘いただけるのはありがたいです!

わざわざ == 1 とか、場合によっては書かなくてもちゃんと判別してくれるんですね
他の人の見てたらたしかに書いてないのも見てたんですが、なんでこれでいけるんだって?マーク浮かべてるだけでした…勉強になりますっ

320あなたの名前を入力してください:2020/05/08(金) 15:12:06 ID:fnXxv3SE
今のEmueraなら1次元配列限定で指定データ差し込んで配列ずらす、ARRAYSHIFTが使えるから
それでキャラリスト作ればいいんじゃないかな?

※スレでインデントするために全角スペース使用

; 何万回もADDCHARAする特殊例でも無い限り2^16で足りるはず?この例だとあふれたらエラー
#DIM DYNAMIC 堕落キャラリスト, 65536
#DIM 候補数
#DIM LCOUNT
#DIM 対象

候補数 = 0
; メンバー全員チェック
FOR LCOUNT, 0, CHARANUM
 SIF 除外する条件...
  CONTINUE
 ; 全ての例外に当てはまらなかったらリストに追加して、候補数+1
 ARRAYSHIFT 堕落キャラリスト, 1, LCOUNT
 候補数++
NEXT
; 完成したリストから1人抜き出す
対象 = 堕落キャラリスト:(RAND:候補数)

321あなたの名前を入力してください:2020/05/08(金) 15:14:21 ID:fnXxv3SE
・・・堕落になってら

322あなたの名前を入力してください:2020/05/08(金) 16:02:13 ID:Ae1yGuM6
陥落が一人もいなかった時の処理が入ってないぞ

323あなたの名前を入力してください:2020/05/08(金) 19:18:49 ID:WpbsUk7w
ひとまず例文をいただいた>320さんので動かしてみようとしてみました
なるほどこうやって候補を洗い出して、その候補の中からランダム決定させるんですね

これは>316さんの1つめのやり方で、もう一つのほうは>318さんが言うように先に対象を決めてその対象が条件合致してるか確認
ダメなら戻って別の候補選出って方法ってことでいいのかな?


あと、SIFで条件を絞っていっていると、陥落キャラのみを対象にしたい時にうまくいかないんですが、指定の仕方が間違ってるでしょうか

;陥落していないキャラは除外
SIF TALENT:LCOUNT:恋慕 != 1 || TALENT:LCOUNT:親愛 != 1 || TALENT:LCOUNT:淫乱 != 1 || TALENT:LCOUNT:娼婦 != 1 || TALENT:LCOUNT:服従 != 1 || TALENT:LCOUNT:隷属 != 1
CONTINUE

これで恋慕〜隷属のどれかがついてないと対象から外れるって認識だったんですが…

324あなたの名前を入力してください:2020/05/08(金) 19:52:56 ID:A1owIAPQ
その書き方だとどれかが0なら除外されない?

325あなたの名前を入力してください:2020/05/08(金) 20:43:47 ID:A1owIAPQ
というかeratenには@陥落って関数があるね
SIF !陥落(LCOUNT)
CONTINUE

326あなたの名前を入力してください:2020/05/08(金) 21:30:16 ID:WpbsUk7w
>324
AもしくはBだからいずれかが条件満たしてれば、とはならないってことですか…恋慕系、淫乱系、服従系でそれぞれIFで作らないとかあ

>325
そしてeratenこんな便利な関数が! あるもの把握して有効利用しないと自分が大変になるだけですね
>316さんのライブラリのも含め、有効活用できるよういろいろ試してみます。ありがとうございます!

327あなたの名前を入力してください:2020/05/08(金) 21:50:24 ID:enuCb1lY
>>326
323でOR(||)じゃなくてAND(&&)で書けば望み通りの動作になる

まぁ論理式は混乱しやすいから、ダサく見えてもIFを並べた方が間違いが無いとはいえる
結局は関数化するのが一番いいと思うけどね

328あなたの名前を入力してください:2020/05/08(金) 23:01:54 ID:FxufY.Jw
ド・モルガンとビット演算は覚えておくとできたハゲが治るくらいには便利だぞ
>>323はド・モルガンで変換すると
TALENT:LCOUNT:恋慕 != 1 || TALENT:LCOUNT:親愛 != 1 || TALENT:LCOUNT:淫乱 != 1 || TALENT:LCOUNT:娼婦 != 1 || TALENT:LCOUNT:服従 != 1 || TALENT:LCOUNT:隷属 != 1
⇔ !(TALENT:LCOUNT:恋慕 == 1 && TALENT:LCOUNT:親愛 == 1 && TALENT:LCOUNT:淫乱 == 1 && TALENT:LCOUNT:娼婦 == 1 && TALENT:LCOUNT:服従 == 1 && TALENT:LCOUNT:隷属 == 1)
⇔全ての陥落状態を満たす状態に近しい
ということになるからなんかおかしい、と気づける

というか、プログラミングってよっぽど変なことやらない限り、高校数学がかなり役に立つ
(よっぽど変なことの例:OS書くとかコンパイラ書くとか)

329あなたの名前を入力してください:2020/05/08(金) 23:36:22 ID:fnXxv3SE
わざわざORで繋げられるように(!恋慕)==1の形になってるのを
!(恋慕==1)と勘違いして恋慕!=1にしてしまったから起きたんだよこれは…

基本の論理式しか使わない人から見ると違和感のある記法だとは思うけど
後から条件の数が増えたり減ったりする可能性がある場合に都合のいい形だからこういう書き方をする

330あなたの名前を入力してください:2020/05/09(土) 00:04:09 ID:/mR0Pq82
悪い酒入って支離滅裂な事言ってる

331あなたの名前を入力してください:2020/05/09(土) 00:07:48 ID:nxuPXDiQ
>>329
>わざわざORで繋げられるように(!恋慕)==1の形になってる
なんでそんな変な書き方したし
(!恋慕)ってことはbool型を想定した書き方だし、なのに==1で比較してるし。間違えやすくなるだけやん

素直に↓でええやん
!TALENT:COUNT:恋慕 && !TALENT:COUNT:親愛 && !TALENT:COUNT:淫乱 (以下略

332あなたの名前を入力してください:2020/05/09(土) 06:46:06 ID:nx4RMyeE
>>329-330
ベロンベロンじゃねーか……しかも間違ってるてタチわるいな

333あなたの名前を入力してください:2020/05/09(土) 07:37:11 ID:pDvkornQ
みんなも禁酒しよう
タイポ事故が多発したから家ではもう3ヶ月飲んでない

334あなたの名前を入力してください:2020/05/09(土) 08:09:49 ID:x5CHAins
>315です
遅くなりましたが皆さんご指導ありがとうございます
こういうのいじるのもera始めてからで、WIKIや他の人のERB読みながら遊んでるもので、
基礎がきちんと理解できてなくお恥ずかしい限りです

これからも色々試しながらやっていこうと思います、ありがとうございます!

335あなたの名前を入力してください:2020/05/11(月) 20:05:38 ID:UgocxgVs
口上を作成しようとサクラエディタをDLしたのですが
そこからサクラエディタ用の設定ファイルもDLを試したのですがリンク切れをしていてDL出来ませんでした
この設定ファイルが無くても作成自体は可能ですかね
他の方と内容が違って構文の質問でなくてすみません…

336あなたの名前を入力してください:2020/05/11(月) 20:35:48 ID:k/v1Hpbo
>>335
eraロダ三号機の方に上げなおしてくれた人がいるよ。
http://book-shelf-end.com/up/dwlink.cgi?eraRx0060.zip

337あなたの名前を入力してください:2020/05/11(月) 20:54:49 ID:oz/MU2t2
>>335
>>336のはDO〜LOOPのLOOPに引数を指定しようとするとエラーみたいな表示になっちゃうけど気にしないように
もし直したいならERB.rkwをテキストとして開いて最後のほうの

//私家版
RxKey[094]=RKA,/^[ \t ]*(DATALIST|ENDDATA|ENDLIST|LOOP)(?=[ \t ])/k

から「|LOOP」の部分を消してから導入すればいい

338あなたの名前を入力してください:2020/05/11(月) 22:04:30 ID:qOyZl/gg
特定の文字列にマウスオーバーする事で吹き出しを表示する事は可能ですか?
素質・アイテム・呪文等の簡易ヘルプとして機能させる事を意図しています。

339あなたの名前を入力してください:2020/05/11(月) 23:02:19 ID:k/v1Hpbo
>>338
HTML_PRINT命令でボタンのタグを使えばツールチップってのを表示出来る。
https://ja.osdn.net/projects/emuera/wiki/exhtml#h5-button.2C.20nonbutton
ここのtitle属性ってのが表示内容。

他にもツールチップ関連の命令がいくつかあるからそっちも一応調べとくと良いかも。

340あなたの名前を入力してください:2020/05/11(月) 23:22:33 ID:UgocxgVs
>>336,337
ノートンにディフェンスされてDLに時間かかりましたけども
なんとかエラーも出ず無事カラフルになりました
教えて頂きましてありがとうございます!

341あなたの名前を入力してください:2020/05/12(火) 01:40:11 ID:YmbjpuE2
>>339
ありがとうございます!
試してみます!

342あなたの名前を入力してください:2020/06/18(木) 21:55:01 ID:yO0oojxE
自分でヴァリアント作ってみたくて
eracustomを四苦八苦しながら改造しているんですけど
ところどころに出てくる「LOCAL:n」(nは1,2,3...)や「A」「B」「C」が
処理の何に使用するための変数なのか読み解くのに苦労しています
今の所、なんとか理解できた部分はコメントを付けているのですが
変数名を自分で定義することはできるのでしょうか
(wshでいうdim xのような)

343あなたの名前を入力してください:2020/06/18(木) 23:08:04 ID:U6a5j7aw
>>342
できる
というか、eracustomならやってる場所あるはず

344あなたの名前を入力してください:2020/06/18(木) 23:24:09 ID:Flbz9S9k
emueraのwikiを読もう

345あなたの名前を入力してください:2020/06/19(金) 07:25:18 ID:ISfaZchE
むしろ今はLOCALや1文字変数は排除できるならそれに越したことはないって考えが広まってる、はず…
まさに質問通りの読み解き難さのせいで古くからあるバリアントやそこから派生したものでは未だに使われ続けてたりするけど
実際maouでも1文字変数をプライベート変数に置き換えた結果、別なところでその1文字変数を参照しててエラー吐いた…なんて例もあったしなぁ…

なので新規に変数を作るならいいけど、元にしたバリアントがLOCALや1文字変数を多用してる場合
全てを置き換えるのは大変かも…っていうのはどうしてもあるのよね…
質問の内容からはちょっとずれちゃってるけど

346あなたの名前を入力してください:2020/06/19(金) 22:04:42 ID:EBD1Him2
>>345
でもバグの原因が1文字変数だったりするから厄介なんだよなー
しかも大抵初期のコードに埋め込まれてるからデバッグが大変大変

347342:2020/06/20(土) 03:14:50 ID:57Xm2G6U
ありがとうございます。
emuera wikiの存在を知らなかったのですが
色んな仕様の詳細が書いてあって捗りそうです。
ひとまず、wikiとERBを並べて調べながら頑張ってみようと思います。
自分で実装する処理の変数には丹精込めて名前をつけてあげようと思います。

348あなたの名前を入力してください:2020/06/22(月) 08:39:35 ID:L8OgLseE
CDFLAGというものを見かけたのですが
お恥ずかしながら説明を読んだだけではどのような場面で活用するのか今ひとつ掴めません

CFLAGのようにキャラごとに持っていて(正確な表現かは自信ありませんが…)
CDFLAGの例えば0の中に更に受け皿があり、もう一段階複雑に数値を保管できると解釈していますが間違いないでしょうか

例えばつまり
キャラ003がキャラ004と、あなたの知らない所で逢瀬を交わしたとして
DIMでそれぞれ、密会者の番号をSEME、誘われた方の番号をUKEに代入して

CDFLAG:SEME:1:UKE += 1
CDFLAG:UKE:1:SEME += 1

とすれば、キャラ003のCDFLAG1の4に1加算(初密会ならCFLAG1,4,1)
キャラ004のCDFLAG3に1加算(初密会ならCFLAG1,3,1)となって
密会した数値をキャラ別に記録出来るという挙動になるのでしょうか

349あなたの名前を入力してください:2020/06/22(月) 09:40:33 ID:ljDFFiq.
>>348
だいたいあってる
例えばあるキャラに相手方をとるタイプのランダムイベントを起こして、それが特定の相手と一定回数を超えたら専用イベントを起こす、みたいな処理をしたい場合、各キャラとのイベント発生回数を保管しておける
eraPaSの恋人イベントではこの考えでCDFLAG使ってる
同じことはCFLAGでもできなくはないが、アホほど領域取るので今後の足かせになってよろしくない

まあ、要はデフォルトでSAVEDATAかかってるキャラ型配列ってだけなので、使い道は割とどうにでもなるよ

350あなたの名前を入力してください:2020/06/23(火) 00:33:06 ID:WiC/Oe9Q
>>349
了解です
拙い説明を汲んでくださり誠にありがとうございます

351あなたの名前を入力してください:2020/06/23(火) 20:36:24 ID:ZUSDvNik
eracustomについて質問です
CSVフォルダ内の先頭にアンダーバーが付いているものが幾つかあると思いますが
その理由は何でしょうか
(_default.config、_Rename.csvなど)
emuera側で予約されている単語だからかな?と推測しているのですが
他にも理由が有るなら教えていただけると助かります

352あなたの名前を入力してください:2020/06/23(火) 21:30:36 ID:u1u1rcGk
>>351
それらはeracustomに固有のファイルではなく、全てera(Emuera)の動作に関わるファイルです

名前にアンダーバーが付いていること自体に重要な意味は無いと思いますが、
他のCSVと同様に仕様で決められている名前ですので、違うファイル名にしたら読み込まれません
(他のCSVファイルとは目的が大きく違うファイルではあるので、区別をつける意味での命名かもしれませんね)

https://ja.osdn.net/projects/emuera/wiki/replace
https://ja.osdn.net/projects/emuera/wiki/exconfig

353あなたの名前を入力してください:2020/06/23(火) 21:36:29 ID:ZUSDvNik
>>352
特に命名規則は気にしなくても良いのですね
ひとまず、名前を気にせずに各々のファイルの役割を確認していこうと思います
wikiのURLもありがとうございます
とても助かりました!

354あなたの名前を入力してください:2020/06/25(木) 14:47:49 ID:alrV9s1E
あるキャラのCSVにて体型を指定する際
CSTR,0,\,尻,3\と代入して最初の「0,」移行を単純な文字列として代入し
体型の表記を行う関数@BODY(ARGS,ARG)を用意して
PRINTFORML BODY(%CSTR:TARGET:0%)とした場合
この命令で@BODY(,文字列,0)となり、第一&第二引数として処理を行うでしょうか

355あなたの名前を入力してください:2020/06/25(木) 23:57:13 ID:F.O4SmEo
>>354
ならない
構文解析は一度しか行われないから、"BODY(,文字列,0)"という文字列が表示されるだけ
つーか最初のカンマが邪魔でそもそも構造がおかしい

356あなたの名前を入力してください:2020/06/26(金) 08:29:17 ID:w3eTPJM6
次のようなことはできる
文字列から引数を2つ取り出す処理は別に必要かと
TRYCALLFORM "BODY", %STR%

357あなたの名前を入力してください:2020/06/26(金) 09:06:11 ID:nF/xjVI6
それ以前にeraのCSVでカンマエスケープできないでしょ

358あなたの名前を入力してください:2020/06/26(金) 13:52:13 ID:Y0AUs8As
>>354
SPLIT 文字列, 区切り文字, 代入先
を使うのじゃダメかい?

・CSV側
CSTR,0,尻/3

・ERB側
; ARG : 対象キャラクター
@BODY, ARG
SPLIT CSTR:ARG:0, "/"
; CSTR:ARG:0が"尻/3"ならば、RESULTS:0は”尻”、RESULTS:1は"3"(文字列)が入る

LOCAL = TOINT(RESULTS:1)
; そのままだと文字列なので数字になおす



359あなたの名前を入力してください:2020/06/26(金) 15:59:52 ID:ZnfrmcyI
ご説明ありがとうございます
私の構文への理解が足らずお恥ずかしい限りです

CSVにてCSTR:0を「尻/3」(要素と数値の間に区切るようの文字を挟む)

まずCSTRを要素と数値に分ける関数を作成
ERBにてSPLITでCSTR:0の文字列を/を区切りにして尻と3の文字に分ける
TOINTで文字列としてRESULTSに格納された3を数値としてローカル変数(LOCAL)に代入

要素と数値を参照して表記を返す関数@BODYを引数(RESULTS:0,LOCAL)で呼び出す

実行するとすればこのような形になるという理解でよろしかったでしょうか

360あなたの名前を入力してください:2020/06/27(土) 02:08:58 ID:hlRPCHag
>>358
SPLITって第三引数省略できたっけ?
あとCSTR:ARG:0だとCSTR:TARGET:ARGになっちゃわない?
>>359
それでもできるけど@BADYの中でSPLITすればいいんじゃないの?
あとLOCALに代入しなくてもBADY(RESULTS:0, TOINT(RESULTS:1))でいい。
そもそも@BADYの中で何するのかわからないけど、PRINTFORMする時は文字列で返ってくるなら%%で囲う。数値で返ってくるなら{}で囲わないと。
文字列で返ってくるならTOINTは二度手間になるかも。

尻という文字をどうするのかとか3って数字の意味が不明なのでスリーサイズを取得する式中関数に勝手に変えてしまうけども、
CSTR.CSVに
0,スリーサイズ
CHARA.CSVに
CSTR,スリーサイズ,90/50/80
って書いて
ERBで
@BADY(ARGS, ARG = TARGET)
#FUNCTION
まずARGがCHARANUM未満か確認する。CHARANUM以上だったらエラー出ちゃうので帰るようにする。
それからSPLIT CSTR:(ARG):スリーサイズ, "/", LOCALSする。
でARGSがBならLOCALS:0を、Wなら:1を、Hなら:2をTOINTして返すようにすればいい。
最後に、CSV書いたキャラが登録番号5番だとして、PRINTFORM 尻:{BADY("H", 5)}ってやれば尻:80ってプリントされる。
この場合ARGを省略してBADY("H")だけでもTARGETに入ってるキャラのヒップサイズが得られる。

と言うかここまで言っといてあれだけどCFLAGとかTALENTで用意したらダメなの?

361あなたの名前を入力してください:2020/06/27(土) 08:42:56 ID:hlRPCHag
違うわ
× CSTR:TARGET:ARG
〇 CSTR:(TARGET):ARG

しかもBODYが全部BADYになってるし寝ぼけ過ぎだろ俺

362あなたの名前を入力してください:2020/06/27(土) 09:47:36 ID:bCpWcwfI
>>360
うん、第三引数は省略しちゃダメだったね
少なくともEmueraではCSTR:ARG:XはCSTR:(ARG:0):Xと同じになるので問題ないよ

363あなたの名前を入力してください:2020/06/27(土) 13:39:12 ID:mEU/LRys
>>360

ご指摘ありがとうございます
具体的な目的を記載するのを忘れていました、申し訳ありません。先にこちらを説明致します
何分拙い発想ですので、非合理的な部分や根本的な見落としがあるかもしれません
 

元々は「TALNETの胸サイズに2を代入すると巨乳となる」みたいな処理について
TALENTの数値を参照する形だと都度、素質別にSELECTCASEで分岐させる方法しか知らなかったもので
「これだと元々0か1の処理に新しい分岐を持ち込むのは手間だな」
「地の文とかの代入数値別に分岐してる処理1つ1つ探して直さなくちゃならないな」と感じました

「尻のサイズとか髪型とかフレーバー要素の強い物はもっと簡略化できないか」
「後から部位表現の数値による分岐を気軽に追加できる関数にできないか」
「かつ、増やした後も、更新に対応していないキャラや既存の処理に影響が無いように」と思って自分なりに考えた結果です

切っ掛けは、キャラを作る時に例えば髪型の指定で
「ツインテキャラだけどロングのツインテな事を強調したい」
「でも要素内にツインテが既にあるのにロングなだけで新しく要素を使うのもな」となったとき
要素:ツインテに2と気安く代入して
素質表記する関数にSIFとかの簡素な命令を加えるだけで対応させたりできたらなと

最初はステータス表記する関数が単にキャラのCSTRを表示して…と考えたのですが
表現を作者に一任しては文字数とレイアウトの問題が起きそうですし
後からサイズ別に地の文や珠の取得が変わる処理とか入れにくいだろうなと

そこで、関数が部位と数値を参照して、引数に対応する文字列(引数が尻と3なら「巨尻」みたいな)を返す従来の形で
更にステータス表記だけ代入された値を細かく参照するようにして
地の文の分岐などは基本的に第二引数が一定以上ならまとめて同じ表記
(例の場合、尻が3以上なら巨尻対応の地の文、個別対応するならIF分岐で「>= 3 && ==5」といった形)

CFLAGでなくCSTRを選んだのはCSVから部位と数値を1要素のみで指定できれば
新たにキャラを制作する人が現れた時、制作が楽になるかなと
また例えば、CSTR:0が尻サイズ参照のためとした後でも
後に「尻周辺の特徴」に解釈を広げ、CSTR:0の第一引数が「肛門」、「太腿」だった場合の分岐を作れれば
「制作当初の想定によりCSTR:0〜9を部位サイズ指定用に設けてCSTR:10から別要素枠になっている」
「更に加筆しようとした時点で0〜9がほぼ使用済み」
という時にも要素数を圧迫せず、不自然に枠が離れる事も無いかなと
あと、指定したい部位を日本語で入力する方が、手間は増えても直感的な気がするというか
「俺は尻をいじるぞ」というモチベがはっきりして、後から他者が見ても伝わりやすいかなと

364あなたの名前を入力してください:2020/06/27(土) 20:43:27 ID:hlRPCHag
う〜ん、わかるようなわからないような

似たような属性の変数は数字が並んでいて欲しい(EXP:0〜3までABCVだとしてM(口)が9とかだと気持ち悪いし把握しにくい)ってのはわかる。
新しいバリアント作るならマジックナンバー使わずにTALENTNAMEとかを使うことを徹底すればいいけど古いバリアントだとそうもいかないしね。

だけど、CSTR使うなら数字で管理する必要なくない?
尻/3って言うけど『3』って言うのはマジックナンバーだから何を意味するのか調べないとわからない。尻なのはわかるけど尻の何なの?ってなる。
なら初めから巨尻書いてタグにしちゃえばいいでしょ。

例えばCSTR:髪って変数を作って、タグを入れる。タグはロングとかショートとかツインテとかポニテとかあとは色とか思いつく限り何でもいい。

CSTR:髪 = ロング/ツインテ/黒/リボン
この子を調教中にリボン取れて髪がほどけたならツインテとリボンを取って、また結んだならリボンとツインテをまた追加すればいい。
でイラマの時にIF STRFIND(CSTR:髪, "ツインテ") != -1ってやって真ならツインテをイラマハンドルにした!って地の文につなげばいい。

まぁ、この場合ツインテがほどけた時にこの子がツインテであったことを忘れちゃうから『ツインテ』タグを消すんじゃなくて『ほどけた』ってタグを追加するんでもいい。
その場合は先のIF文で『ほどけた』が無いことも一緒に確認する必要がある。

要するに中の数値がいくつなのかで判断するんじゃなくてタグの有無で判断させるって事。
巨乳と貧乳タグを同時に持ってるとかそういう矛盾が発生する恐れはあるけどそういうのはタグを付加する際に相反するタグを取り除くようにすればいい。
それと、『ベリーショート』と『ショート』ってタグを作るとショートかどうかチェックした時にベリーショートも反応しちゃうから『ベリショ』とかにして被る部分が無いようにする必要もある。
もしくはSTRFIND使わないで/でSPLITして完全一致させるか。
最後にREADMEとか仕様書とかにタグ一覧を載せておく。

こっちの方が直感的でわかりやすいと思うけどどうかな?
ちなみに似たようなライブラリが公開されてたと思うよ。このスレにもちょっと前にリンクが貼られてた気がする。

>>362
問題なかったか。
でも記述者の意図が分かりにくいからやっぱり()は付けといた方が無難かと思う。

365あなたの名前を入力してください:2020/06/27(土) 22:32:33 ID:VW1KL0fY
>>364
言いたいことはわかるが、それBOOL扱いのTALENT追加する方が楽じゃね?

366あなたの名前を入力してください:2020/06/27(土) 22:45:25 ID:RpfylVGU
CSTR:(TARGET):Xなんて書き方他で見たことないし、逆に困惑してしまうな
CSTR:(ARG:1):Xみたいな時は括弧要るんだから統一しようよ、っていう主張なら解らんでもないが

367あなたの名前を入力してください:2020/06/27(土) 23:29:42 ID:AFdHul4o
扱いを楽にしようとデータベース作成を頑張った結果
なにがどう便利なのかわかりやすくすることにハードル高を感じてCSVに戻ってくる罠が

368あなたの名前を入力してください:2020/06/27(土) 23:42:00 ID:hlRPCHag
>>365
そうだけど、そうしたくないからって話じゃないの?

>>366
まぁ、TARGETならそもそも省略できるから…って事ではないか。
ERBぐらいしか触らない初心者でしばらく離れてたりするとどっちなのか忘れてわからなくなったりするんだよ。
それに実際にはTALENT:ARG:V敏感とかって書くからそういう場合は間違えないんだけども。

369あなたの名前を入力してください:2020/06/28(日) 10:04:02 ID:OnlI9xZk
つかそこまで気にするなら
ttp://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1498745115/87
これの技術使えば解決できるんじゃないか?
今のろだにはアップされてたっけ?

370あなたの名前を入力してください:2020/06/28(日) 15:56:13 ID:JQSg20UE
>369
旧ロダに上げられたものは消えてるけど
emueraの作者様のHP上で公開されてますね
ttp://www.emuera.net/
ファイル置き場 > DictionaryList.zip

371あなたの名前を入力してください:2020/06/28(日) 16:27:06 ID:Jw3XORt2
eraIm@scgprov0.66 私家改造版Ver0.54を弄っています。
プレーヤーから見たキャラ一覧の表示順を任意で入れ替えできるようにしたいと思っています。
今のところどの場面でも常に登録番号順に表示されるので登録番号の並びを変更したいのですが、
どうも結構副作用が出そうな感じでどう対処するか悩んでいます。
で、お伺いしたいのですが
質問1 SWAPCHARA命令 (SWAPCHARA <数式>, <数式>) って正味のところ中では何をしているのかご存知の方良ければ教えていただけませんか。
質問2 一般論として登録番号をソートする場合、どこに影響出るかを洗ういい手立てって何かありますでしょうか。

そもそもEmueraで使われてる変数の構造全般が未だによくわかってないのですが、
今のところCALLNAMEの引数として参照されてる変数を抜き出してセーブされるものをケアしようとしています。
毎日の起床前のメニューでのみ並び替えが行えるようにしておけば、セーブロードも同メニュー内でしかできないバリアントなので
それ以外の変数はほっといていいかなという考えです。

372あなたの名前を入力してください:2020/06/28(日) 23:33:04 ID:RTveCKYI
>>371
・1
SWAPCHARAは書いてある通りキャラの登録番号が入れ替わる。
登録番号3 CALLNAME:3 == 花子 BASE:3:HP == 50
登録番号5 CALLNAME:5 == 太郎 BASE:5:HP == 60
この二人を入れ替えた場合
CALLNAME:5は「花子」になりBASE:3:HPは「60」になる。
CFLAGやTALENTなど他のキャラクター変数もすべて入れ替わる。

・2
影響としてはキャラ間の血縁関係や、二次元配列でエッチ回数なんかを記録してると登録番号がずれることで別のキャラとの関係に置き換わってしまうことがあげられる。
上の例で言うと登録番号10のキャラの母親FLAGに3が入っていた場合ソート前は花子だったのにソート後は太郎になってしまう。

解決方法として簡単なのは、キャラ一覧を表示する時だけ登録番号を入れ替えて一覧から出る時に元に戻す方法。
一度登録番号を入れ替えたら元の番号を忘れちゃうから一覧に入った時にあらかじめ記憶させるか、ADDCHARAの時に各キャラに固有のIDを順番に振ってすべてのキャラにIDを持たせるなりする必要がある。

もしくは、登録番号は動かさずにソート専用配列にARRAYSHIFTとかを使って特定要素の値順に登録番号を入れる関数を作るか。

あとソートしたいならSWAPCHARAじゃなくてそのままズバリなSORTCHARAを使った方が楽。

373あなたの名前を入力してください:2020/06/29(月) 22:14:12 ID:UJ6G1rMg
1.DIMでCHARADATAにできない三次元配列とかも問題が起きそうだとおもった
2.の効率的な洗い方はあったら知りたい、全体を調べまくるくらいしかわからない

質問者じゃないけど登録番号がどう使われてるかわからないバリアントの改変なら
「CFLAG:表示順」作ってソート順を保存してからIF 表示順=キャラ番号で表示する
FOR文って考えだったから>>372ためになった
色んなやりかた教えてくれてありがとう

374371:2020/06/29(月) 23:41:55 ID:dF6UyPqs
お二人ともありがとうございます。これ結構厳しいですね・・・
どうやら大半のバリアントの作りだと、emuera自体に機能があっても
登録番号弄っちゃうのはヤバいケースが多そうですね。
自分の欲しい操作性を実現する現実解は、お話を総合すると
>「CFLAG:表示順」作ってソート順を保存してからIF 表示順=キャラ番号で表示する
っぽいかなぁ。

375あなたの名前を入力してください:2020/06/30(火) 00:03:23 ID:KrLxs4r.
若干出遅れた感はあるが一応。

実は汎用性高いのは
「1キャラの位置を入れ替える」関数を書く→「それを使ってソート用の関数を書く」だったりする
特にこだわりがなければバブルソート書けばいい。ただし相応にめんどくさい
(手間の大半は現在のCFLAGの使用状況を調査することなので、>>372とそう変わらんが)

後は最初からNOで管理する手もある。(ランダム生成キャラの場合は生成時にユニークな通し番号を振る)
eraPaSの魔改造版が後者の思想だったな。後からその仕様になったからそうなってない箇所もあるが

376あなたの名前を入力してください:2020/06/30(火) 08:15:35 ID:BVn31qSo
>>373>>372を読んで効率的そうだと思ったのは先に保存して後で戻す方法
試してみたらうまくいった、12人くらいキャラ登録して↓をやってみた
----
PRINTL まず、NOが規則的だとうまく順番を保存できたかどうかわかりにくいので
PRINTL SWAPCHARAでNO内のキャラ番号を不規則にします。
PRINTL この順番がリスト表示前の正しい順番と考えます。
PRINTW リスト開始前にこの順番を保存して、後で元に戻せたら成功です。
DRAWLINE
SWAPCHARA 3, 7
SWAPCHARA 2, 5
FOR L_COUNTER, 1, CHARANUM
PRINTFORML COUNTER.{L_COUNTER}_NO.{NO:L_COUNTER}:%CALLNAME:L_COUNTER%
NEXT
DRAWLINE
FOR L_COUNTER, 1, CHARANUM
CFLAG:L_COUNTER:キャラ順 = L_COUNTER
NEXT
PRINTL CFLAG:キャラ順に現在のNO順を保存してみました。
PRINTW 次にリストの入れ替えを行います。「SORTCHARA NAME」で名前順にソートしてみます。
DRAWLINE
SORTCHARA NAME
FOR L_COUNTER, 1, CHARANUM
PRINTFORML COUNTER.{L_COUNTER}_NO.{NO:L_COUNTER}:%CALLNAME:L_COUNTER%
NEXT
DRAWLINE
PRINTL 名前順にソートしたので番号がぐちゃぐちゃになりました。
PRINTW 「SORTCHARA CFLAG:キャラ順」で元に戻します。
DRAWLINE
SORTCHARA CFLAG:キャラ順
FOR L_COUNTER, 1, CHARANUM
PRINTFORML COUNTER.{L_COUNTER}_NO.{NO:L_COUNTER}:%CALLNAME:L_COUNTER%
NEXT
DRAWLINE
PRINTL 元に戻せているでしょうか?
PRINTW リストから抜ける前に元に戻せたら登録番号を利用した変数が他にあっても大丈夫そうです。
----
注意はemuera.configの「キャラクタ変数の引数を補完しない」を
TARGET指定省略とかを検出するためにYESにしていると
SORTCHARAの「CFLAG:X」のような指定方法は読み込みできなくてエラーが出ること
デフォルト値がどっちかわからないけど_fixed.configでNOに設定すると安全そう

377あなたの名前を入力してください:2020/06/30(火) 13:00:16 ID:sl31G9sU
>>376
SORTCHARA等の指定でも「キャラクタ変数の引数を補完しない」が影響するのは想定外仕様なんじゃないかなと思わないではないけど、

SORTCHARA CFLAG:TARGET:キャラ順

みたいな指定でもちゃんと動くよ
(キャラ変数の第一引数はASSIでも0でも何でもいい 指定しても無視されるだけだと思う)

378あなたの名前を入力してください:2020/06/30(火) 19:58:50 ID:3Z.kxOzQ
>>364
数字に頼らなくても良いというのは盲点でした
タグについては全く関知していませんでした。ありがとうございます
まずはこちらの線で色々試してみます

>>369
>>370
情報ありがとうございます
こちらも追って手を付けてみようと思います

こちらは例えばCSTR:1をDictionary.ERBに利用するとして
キャラ001が
 CSTR,1,[髪型:ショート][髪色:緑][瞳色:青]
キャラ002が
 CSTR,1,[髪型:ベリーショート][髪色:黄緑][瞳色:紫]
とした時
仮にフェラ中のキャラ002に「褒める」や「頭を撫でる」等のコマンドを行ったとして地の文出力の際
#DIMS HAIR_COLORを予め用意して
TRYCALLFORM DIC_GET(CSTR:TARGET:1, 髪色)
IF RESULTS:0 != ""
 SELECTCASE RESULTS:0
  CASE 緑
   HAIR_COLOR == 青葉
  CASEELSE 黄緑
   HAIR_COLOR == 萌葱色

(中略)
PRINTFORMW %CALLNAME:MASTER%は%CALLNAME:TARGET%の%HAIR_COLOR%の髪をそっと撫でた

これで「あなたはキャラ002の萌黄色の髪を〜」
という挙動になるという理解で間違いないでしょうか
合っていれば確かにCSTR一つでおおよその要素を参照できますし
処理や分岐に関与している単語を別途一覧にまとめて知らせる事もできるので
かなり今の理想に近そうです

379369:2020/06/30(火) 23:30:05 ID:fzBYC8Dk
んー、不正解
基本的にこいつらFUNCTIONだったからTRYCALLは使わないし
式中関数はRESULTを介さないでそのまま数値や文字列が返ってくるよ
参照時は
 SELECTCASE DIC_GET(CSTR:TARGET:1, "髪色")
 CASE "緑"
 CASE "黄緑"
 ENDSELECT
等だな
※文字列を直接記述する時は""で囲う必要がある
※ついでに代入時は==ではなく=を使おう

そういう風にやるなら他の地の文でも同じ髪色描写を使い回せるように関数化してやって
 PRINTFORMW %CALLNAME:MASTER%は%CALLNAME:TARGET%の%SCENE_DESCRIPTION_HAIR_COLOR(TARGET)%の髪をそっと撫でた

これでできるかな
;地の文用の髪色描写文字列取得
@SCENE_DESCRIPTION_HAIR_COLOR(C_ID)
#FUNCTIONS
#DIM C_ID;登録番号を渡す
SELECTCASE DIC_GET(CSTR:C_ID:1, "髪色")
;髪色を参照した結果による分岐
CASE "緑"
 RETURNF "青葉"
 ;返ってくる文字列はコレ
CASE "黄緑"
 RETURNF "萌葱色"
CASEELSE
 RETURNF "濡羽色"
ENDSELECT

380あなたの名前を入力してください:2020/07/01(水) 21:49:46 ID:321Gp5Cw
>>379
そうだったのですか……
FUCTIONはまだよくわかってなくて……
実際に試す前によく調べてみようと思います

381あなたの名前を入力してください:2020/07/01(水) 23:29:49 ID:S5MJP/Kk
>>380
>>378のCASEELSEはELSEIFとは違うから引数を指定してはいけない。
ELSEIFじゃなくてELSEと同じだと思えばいい。
SELECTCASEの前にRESULTSの中身があるか確認してるけど何も入ってなければCASEELSEに行くだけだから確認する必要ないかな。

>>379
@SCENE_DESCRIPTION_HAIR_COLOR(C_ID)を、
@SCENE_DESCRIPTION_HAIR_COLOR(C_ID = TARGET)
って書けば引数を省略した際に初期値としてTARGETが代入されるので呼ぶ際にTARGETを省略できるよ。
引数を省略する場合でも()は付けなくちゃいけないけど。

382あなたの名前を入力してください:2020/07/02(木) 06:41:55 ID:eBF84YlE
>>381
事前に中身の有無をチェックするのはアリだよ
コード的に無意味でも構造的には意味があるからね

383あなたの名前を入力してください:2020/07/02(木) 16:53:42 ID:znrOPwc.
>>381
>>382
丁寧にご指摘ありがとうございます
まだまだ勘違いが多いですが精進していきたいと思います

384あなたの名前を入力してください:2020/07/02(木) 20:12:27 ID:C7Tjykxw
CASE文もまだはっきり知らないのに
辞書配列関数を読んだだけで試さなくても大まかに理解できているとか
地頭が良過ぎてのけぞる
>>377 それも知らなかった、ありがとう

385あなたの名前を入力してください:2020/07/03(金) 06:52:56 ID:nEIiOVIQ
>>381
繰り返し呼ばれる関数で初期値を代入させたいときは変数宣言のときにDINAMIC指定が必要だった気がする

386あなたの名前を入力してください:2020/07/03(金) 12:13:09 ID:WxfZGPio
>>385
ややこしい話だけど、引数の初期値はDYNAMICでなくても毎回指定値で呼び出される(もちろん引数省略時には、だけど)
引数ではないローカル変数の宣言時初期値指定については>>385の言ってる通り

引数の初期値は初期値というより、関数呼び出しでの省略時に毎回代わりに代入されるもの
だと考えれば分かるんだけど、ややこしい話ですよホント

387あなたの名前を入力してください:2020/07/24(金) 08:01:20 ID:soBpZw9k
ちょっと質問
CDFLAGのCSVの書き方ってどうすればいいんだ?
CDFLAG1.csvはともかく、CDFLAG2.csvがどんなフォーマットで何を書けばいいのか分からん・・・・
CDFLAG1の値に応じてCDFLAG2は違う定義にしたいんだが、できないんだろうか・・・・

388あなたの名前を入力してください:2020/07/24(金) 21:43:59 ID:Dcae3iqg
CDFLAG:XXX:YYYのYYY(の名称)を定義するのがcdflag2ってだけだから書式は他と一緒だよ

389あなたの名前を入力してください:2020/07/24(金) 22:19:51 ID:soBpZw9k
マジか
っていうことはCDFLAG1の値に応じて使い分けるとかできないんか

むぅ、使い勝手悪いなぁ・・・・

390あなたの名前を入力してください:2020/07/24(金) 23:06:32 ID:zNuYXdE.
何がやりたいのかわからんが、CFLAGをカテゴリ別に名前つけて整理したいとか思ってるのなら、
CDFLAGはそういう用途のものではないので使えない(想定してる用途は多分 >>348-349
今ならユーザー定義キャラクタ変数を用途別に定義して使った方がいい

391あなたの名前を入力してください:2020/07/24(金) 23:14:51 ID:Dcae3iqg
多次元配列が必要なら素直にERHで定義した方が使いやすいかもしれない

392あなたの名前を入力してください:2020/07/24(金) 23:38:30 ID:soBpZw9k
>>390-391
#DIM SAVEDATAで多次元配列宣言するとバイナリセーブデータしか使えんねん・・・・
しゃーない、定数きって使い分けるか

393あなたの名前を入力してください:2020/07/24(金) 23:56:09 ID:zNuYXdE.
なんでテキストセーブデータにこだわるのか興味がある
データ改変ならデバッグモード使った方がずっと楽だと思うんだけど
他にありそうなのはテキストセーブデータを読む外部ツールとかかな

394あなたの名前を入力してください:2020/07/25(土) 02:27:12 ID:WlU2o.Os
やり方を聞く前に
何がしたいのかを相談したほうがいいと思う

したいことに対してやり方や考え方が間違ってたら
根本的な解決にはならないからね

395あなたの名前を入力してください:2020/07/25(土) 10:22:00 ID:Ky4q/pZs
>>393
既にテキストセーブデータでリリースしてるから
既プレイユーザーのセーブデータ互換性吹っ飛ぶのは看過できんわー

>>394
構造体みたいにデータをある程度の塊で管理したいな、というのがそもそもの発端

396あなたの名前を入力してください:2020/07/25(土) 12:07:26 ID:eTyargvA
>>395
「セーブデータをバイナリ形式で保存する」をオンにしてもテキスト形式データの読み込みは可能ですよ
逆にバイナリ保存設定がオフの状態でもバイナリセーブの読み込みはできるから、この設定のオンオフだけでセーブデータ互換性が崩れることはない

397あなたの名前を入力してください:2020/07/25(土) 13:57:27 ID:TY1tKgHk
これ以上死体蹴りするのはやめようね!

398あなたの名前を入力してください:2020/07/25(土) 14:47:12 ID:Ky4q/pZs
>>396
マジ? 無理だと思い込んでた
すまん

399あなたの名前を入力してください:2020/07/25(土) 15:25:32 ID:764pd2DA
ここ初心者スレだし
死体蹴りっつうか知らなかったわありがとうで終わる話よ

400あなたの名前を入力してください:2020/07/25(土) 16:41:04 ID:eTyargvA
初心者じゃなくても、思い込みで勘違いしたままってのはよくあることだしね
自分で動かして確かめればすぐ気付く勘違いでも、いちど思い込んでしまったら試そうとすることもないからな…

401あなたの名前を入力してください:2020/07/25(土) 22:28:03 ID:Zg2v01e6
まあガイジが馬鹿にされるのは仕方ないしな
蹴られたくらい我慢しろって話

402あなたの名前を入力してください:2020/07/26(日) 01:38:33 ID:aIztF36U
口汚いのはNGに突っ込んで触手サッカーにする

403あなたの名前を入力してください:2020/07/26(日) 07:57:36 ID:FNOLWqdA
サッカーしようぜ、お前(触手)、ボールな! 的な?

404あなたの名前を入力してください:2020/07/26(日) 11:25:36 ID:Ic.5VtiQ
FF5にそういう名前のモンスターがいたな
女にしか攻撃してこないイカ


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板