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

【エミュレータ】Emueraスレ【+α】

1Emueraの人:2010/11/23(火) 01:41:51 ID:mrlVhh/.0
このスレはEmuera(エミューラ)に関する話題を扱うスレです。
Emuera本体に関する要望・バグ報告などありましたらこのスレでどうぞ。
各ERBスクリプトに関する話題はそのバリアントのスレでお願いします。

なおeramakerの作者である佐藤敏様はEmueraの製作には関与していません。
Emueraへのサポート要求等をサークル獏様や佐藤様宛てに送らないで下さい。

601名無しさん:2015/10/04(日) 01:06:49 ID:jdiRNgSk0
乙です
そういやこのスレは引っ越さないの?

602妊)|д゚):2015/10/21(水) 04:16:50 ID:WeozlXFA0
あまり重要な修正ではないけど
・1820+v3
ttp://ux.getuploader.com/ninnohito/download/430/Emuera1820%2Bv3.7z

・主な修正
場所指定のログ出力がどうやってもEmueraと同じフォルダにしかログを出力しないのを修正
ついでに、出力可能フォルダをEmueraのあるフォルダ以下に限定

>>601
ここはゆっくりなスレなので、スレが埋もれにくいこっちの方が現状はあってる気がしないでもないですね

603名無しさん:2015/10/25(日) 19:45:07 ID:5e1w2Ubc0
1821betaテスト版1でWin10に対応しましたが
修正内容重視で1820系を利用+Win10の環境ではウィンドウ上でマウススクロールが効かず地味に不便です
1820系へWin10マウススクロール機能を取り込んで欲しいです

604名無しさん:2015/10/26(月) 21:45:31 ID:vnJOmj9g0
とりあえずスクロールバーの上でならマウススクロール効くからしばらくそれで回避しようぜ

605妊)|д゚):2015/11/01(日) 03:24:23 ID:kUOiLj720
・1820+v4
ttp://ux.getuploader.com/ninnohito/download/431/Emuera1820%2Bv4.7z

・主な修正
1821betaのWin10でのホイールによるスクロール対応と同等の実装を行った

betaにはソースコードなんてないからベタ移植なんてものは存在しないのねん

606Emueraの人:2015/11/04(水) 01:15:35 ID:NY7TjMCw0
Emuera 1.821リリース
ttps://osdn.jp/projects/emuera/releases/
私家版Emuera1820+v4までの更新を取り込み
CALLEVENT命令の追加
GETCONFIG(str), GETCONFIGS(str)関数の追加
データロード直後、@SYSTEM_LOADENDが存在すればEVENTLOADの前に呼び出すようにフロー変更
描画インターフェースがTEXTRENDERERの場合、右端がスクロールバーに重なることがある不具合を修正
画面右端での折り返しが1文字早く行われる場合がある不具合を修正
Win10へ対応
システムオプション「キャラクタ変数の引数を補完しない」の追加

607名無しさん:2015/11/04(水) 10:08:18 ID:2diUHDgc0
乙です

608名無しさん:2015/11/04(水) 20:32:27 ID:xDAg7p9c0
いつもお世話になっております。

609名無しさん:2015/12/09(水) 09:48:38 ID:9jWaDEjo0
Win10への対応が進んできたけど、タブレットモード時のタッチ操作に対応する予定はありますか?

610名無しさん:2016/03/27(日) 06:51:16 ID:MYpTHLlk0
javascriptのV8エンジンを組み込んでは如何だろうか
変数領域を共有すればERBとjavascriptをちゃんぽんで管理できそう

611名無しさん:2016/06/08(水) 23:44:23 ID:CcIgnvpY0
ちょっとした妄想的希望
・JScript.NETのEvalを呼び出す関数が欲しい。CodeDom経由?
桁落ち桁あふれ管理を楽にするために、局所的にでも浮動小数点演算がしたいんです…
Eval内で色々できすぎてしまう点がリスクですが
・FORM文字列中の左右アライメント指定に文字式(変数)を使いたい
・SORTCHARAとかARRAYSORTなどの配列並べ替え関数で、
FORWARDとBACKに文字式(変数)か整数変数の真偽値を使いたい

612名無しさん:2016/06/10(金) 01:32:20 ID:UiST/ElE0
任意精度演算関数があれば小数演算のニーズは満たせそうな気がする

613611:2016/06/12(日) 17:41:15 ID:RiuZCsic0
任意精度演算で精度要件的にはOKで、実際に手ERBで作りかけてもみたけれど
桁管理と低級言語的なアルゴリズムの塊で、他人様バリアントのパッチとしてはうpできないなと
変数型をいじるのは大変だから、小手先で JScript.NET の eval を呼べると楽かなぁって

でも、”妄想”は無かったということで
eval内からCOM呼べるんはやはり致命的ですわ

614名無しさん:2016/06/29(水) 13:30:11 ID:I49B1/rM0
ARRAYSHIFT <対象変数>, <ずらす数>, <ずらしてできた空白領域の初期値>{, <ずらず配列範囲の初値>, <ずらす配列要素の範囲の数>}
ということですが、

#DIM HOGE = 1, 2, 3, 4, 5
で、

ARRAYSHIFT HOGE, 1, 0, 2
すると、
HOGE = 1, 2, 0, 3, 4
初値を含むそれ以降が一個後ろにずれる。初値は残る

ARRAYSHIFT HOGE, -1, 0, 2
だと
HOGE = 1, 2, 4, 5, 0
初値から一つ後ろ以降が一個手前にずれる。初値は消える

となるのはそういうものなんでしょうか?

615妊)|д゚):2016/07/05(火) 01:28:41 ID:j9J1WHRQ0
>>614
想定通りの挙動です
移動の結果、指定した配列範囲の外に移動した配列要素は消去されます

616名無しさん:2016/07/07(木) 00:23:49 ID:hn5DWaJM0
毎度お世話になっております
ログファイルはUTF-16で保存されますけど設定でUTF-8やShift_JISにできないでしょうか?
それから『ログを保存する』の時のファイル名の既定値を時刻ではなくERBで指定することができると助かります

617妊)|д゚):2016/07/24(日) 20:09:55 ID:xRmyyqk60
・1821+v1
ttp://ux.getuploader.com/ninnohito/download/434/Emuera1821%2Bv1.7z

・主な修正
1820+v2の修正がキャラクタ変数で漏れていたのを修正

>>616
理屈上は可能ですが、色々考えることがあるので一旦保留で

618名無しさん:2016/07/24(日) 23:32:37 ID:o7U/tXHE0


619名無しさん:2016/08/06(土) 16:44:06 ID:upSLuKLU0
開発者様にお伺いしたいのですが
三次元配列キャラクター変数CDFLAGをCHARA.CSVで定義するにはどうすれば宜しいでしょうか。
もし定義できないなら定義できるようにして頂きたいのですが、
実装は可能でしょうか。

620名無しさん:2016/09/08(木) 16:11:59 ID:hO8.G8OQ0
老婆心ながら、現行のソースに修正をかけてみました。
readmeにも書いてはありますが、現行の動作とほぼおなじではあるとは思われますが、
いかんせんテストの時間が取れてないので、保証しかねるところです。

// 修正の規模の割には、コンパイル通った→オッケーオッケー
// ちょこっと動かしてみる→動いた、オッケーオッケーなザル具合w

まぁ、何かの足しになれば幸いです。

ttp://era.moe.hm/cgi/era/upload.php?id=0002680

621名無しさん:2016/09/08(木) 16:23:04 ID:hO8.G8OQ0
なんか違うものが上がっていたっぽいので、上げ直しました
なれないものはするものじゃないなぁ orz

622妊)|д゚):2016/09/29(木) 17:21:06 ID:wJpSQKsg0
・1821+v2
ttp://ux.getuploader.com/ninnohito/download/435/Emuera1821%2Bv2.7z

・主な修正
大半のPRINT系命令がSKIPDISPフラグを無視して表示されてしまう問題修正
(CALLTRAINによる自動表示省略も該当するため、CALLTRAINでgdgdに)
一応画像表示等もSKIPも対象に

623名無しさん:2016/09/29(木) 18:59:18 ID:5lyYIMwE0


624名無しさん:2016/11/18(金) 03:29:25 ID:mmHFVDxI0
キャラクタ変数を変数使って呼びたいんですが、対応可能でしょうか?
%変数名%:TARGET:%能力名% みたいな書き方をしたいのです。

目的は、たとえば任意のキャラクタ変数をキーにソートできる汎用関数を作りたいのです。

625名無しさん:2016/11/21(月) 00:11:16 ID:6UXxn7wo0
#DIM REFについてですが、最初に渡した変数の参照をその後も保ち続けてしまう(二回目以降の呼び出しにおいて、参照がわたっていない)ように思われます。
たとえば
CALL FUNC_REF(LOCAL:1)
CALL FUNC_REF(LOCAL:2)

@FUNC_REF(HOGE)
#DIM REF HOGE
HOGE += 10

これはLOCAL:1とLOCAL:2に10ずつ加算されるはずですが、LOCAL:1に20が加算されました。
1820,1821,1821+v2で確認しました。

626名無しさん:2016/11/21(月) 02:40:09 ID:RNdXbXdk0
・関数の戻り値として、配列を使用することはできないのでしょうか?
・配列の要素数を変数で確保する(VBやBASICでいうREDIMに相当する)機能はないのでしょうか。

どちらも、配列に順々にフィルタをかけていって目的のデータに絞り込む、
Javaのラムダによく似た機能を実装しようとしています。

627名無しさん:2016/11/22(火) 22:10:39 ID:9v0VSMvo0
よく使われる、キャラクタ変数や配列での検索だけど、
FINDCHARAやFINDELEMENTなどの検索系命令・関数で 検索条件式 を指定できると
コードがすごくシンプルにできて個人的には嬉しいんだけれど、どうだろう?

記述方法はSELECTCASEと同じ、「IS <比較演算子> <値>」 と 「<値> TO <値>」が馴染みやすそう
例) FINDCHARA CFLAG:10, IS > 123

628Emueraの人:2016/11/26(土) 02:11:47 ID:hT1u8oD60
おひさです
数か月前の書き込みに今さらですがレス

>>616
ログファイルは緊急避難的な意味もあり、できるだけ単純化しときたいので弄りたくないところです。
特にERB内で任意のファイル名を指定できるようにすると>>6のような問題があるのでやりたくないです。
もしも目的がログ保存ではなく、csv出力とかerh出力に流用することであるならば、任意テキストをクリップボードに出力する命令とかどうでしょうか。

>>619
現バージョンではできません。
実装は不可能ではないですが対応予定はありません。
csvの内容はERBの動作とは関係なくメモリ上に保持し続けなければならないので二次元変数を保持させるのは大変なのです。

>>624
現バージョンではできません。
任意条件での並べ替えなら
REPEAT CHARANUM
CFLAG:COUNT:ソートキー = (ソート順)
REND
SORTCHARA CFLAG:ソートキー
とかで何とかなりませんか

629Emueraの人:2016/11/26(土) 02:12:35 ID:hT1u8oD60
>>625
その例ではLOCAL:1は変動せずLOCAL:0が20加算されていると思います。
誠に分かりづらくて申し訳ありませんが、それで正しい仕様です。
参照渡しは配列の一要素を参照させることはできず、配列まるごと渡すことしかできません。
CALL FUNC_REF(LOCAL:1)
CALL FUNC_REF(LOCAL:2)
の両方とも同じ意味に解釈され、両方ともHOGEにはLOCALがまるごと渡されます。
HOGEはHOGE:0の省略と解釈されるのでLOCAL:0が20加算されます。

>>626
>・関数の戻り値として、配列を使用することはできないのでしょうか?
現バージョンではできません。
前提としてerabasic言語には、例えば「LOCAL」と書くと「LOCAL:0」の省略とみなされるという仕様がありまして、「LOCAL:0」という配列の一要素ではなく「LOCAL」配列そのものを指すための書式が存在しません。
Emueraではどうしても配列そのものを指してもらう必要がある場面では、「LOCAL」も「LOCAL:1」も全て配列LOCALを指すと解釈することで対応しています。
これが上記の「CALL FUNC_REF(LOCAL:1)」「CALL FUNC_REF(LOCAL:2)」が同じ意味、という不条理な解釈の原因であり、プログラムになじみのある人、ない人の双方にとって非常に分かりづらい仕様だと思っています。
なのであんまり増やしたくないです。
で、戻り値を配列にすることは、#FUNCTIONの代わりに#FUNCTIONREF、RETURNFの代わりにRETURNREF命令とか作れば不可能ではないですが、追加の予定はありません。

>・配列の要素数を変数で確保する(VBやBASICでいうREDIMに相当する)機能はないのでしょうか。
現バージョンではできません。
そのうち追加するかもしれません。

>>627
関数に値ではなく条件式を渡すというのは内部的にすごい大変なのでかなり無理です。

630名無しさん:2016/11/26(土) 21:51:45 ID:KvdxxOf.0
>>628
ご教示の方法も検討しましたが、
・SORTCHARAは共通データであるキャラクタリストの値を変更してしまうため、副作用が怖い
・将来的に(メソッドそのものは分けるにしても)キャラ配列と通常の配列で同じ関数を使えるようにしたい
という理由から、使用を諦めた経緯があります

限られたキャラクタ変数であれば、関数の戻り値で配列を返せるようになれば可能性があるので、
・各キャラクタ変数のラッパー関数を作る
・ソート判定は関数名の文字列で与え、TRYCALLFORMで呼び出す
ことでなんとかできないか、研究してみようと思います。


>>629
なるほど、理解しました。確かに言語仕様上難しそうですね
(一応、VBの場合は配列の最初の要素のポインタを配列そのもののポインタとして使っていましたが・・・・)

最後の配列要素数については、実装を検討してもらえると助かります。

631617:2016/11/26(土) 22:27:13 ID:I8x99pCQ0
Emueraの人レスありです
> すごい大変なのでかなり無理です
パーサー部に、値でなく条件式を渡す構造を増設するのは、確かに大変ぽいですね

私家改造実験では、FINDELEMENTに「IS <演算子> < 値>」 と 「<値1> TO <値2>」の両ケースでパーサ部でエラーになるところをひたすら乗っ取らせて、
検索値代わりに検索条件クラスオブジェクト(==,!=,<,<=,>,>=,range(x,a,b), )を無理やり渡して動かしてみました。
が……動きはしますが…構造がぐっちゃぐちゃ……

その他の各配列検索関数にも展開にしたいので、上流のExpressionParser?で 「汎用の IS〜式」「汎用の 〜TO〜式」などを定義して、
delegate関数オブジェクト値を生成するクラスを作るほうが良さそうです

// Emueraで ラムダ式やLinqの使用は無し?

632〇627 ← ×617:2016/11/26(土) 22:56:13 ID:I8x99pCQ0
627でした

>>629
> で、戻り値を配列にすることは、#FUNCTIONの代わりに#FUNCTIONREF、RETURNFの代わりにRETURNREF命令とか作れば不可能ではないですが、追加の予定はありません。
とのことですが、RETURNFでもRETURNと同じく複数の引数を取る(=RESULT的な無名局所配列を生成する)ようにはできませんか?
今でも LOCAL = 1,2,3,4,5,6,7 みたいな代入ができているわけなんで、単純な代入式の右辺にある時には何とかならんだろうかと思えてしまうのですが。

数式中にある時に、何時破棄するかの管理は面倒ですが。参照カウンタ式にするのか、行単位で強制削除するのか…

633名無しさん:2016/12/25(日) 02:12:09 ID:Beb60obk0
式中関数内で、式中関数をTRYCALLFORM(あるいは類似の呼び出し)する手段はないのでしょうか?
通常の関数であれば、TRYCCALLなりなんなりできるのでしょうが、式中関数内ではそれもできず、呼び出す方法がないように見えます
また、CALLFORMFでは返り値が破棄されてしまうため、使用に耐えません
ご検討をお願いします

634名無しさん:2016/12/25(日) 10:17:40 ID:tqdSoilo0
はるか昔にもそのネタが出て却下された記憶があるけど
式中関数が見つからなかった場合はどういう処理させる前提なの?
0? 1? その数式行そのものを無視?

んで、式中関数にラッパー関数噛ませて
引数でTRYCALL相当の分岐させる処理とかじゃアカンの?

@FUNC(ARGS, ARG)
#FUNCTION
SELECTCASE ARGS
 CASE "FOO"
   RETURNF FUNC_FOO(ARG)
 CASE "BAR"
   RETURNF FUNC_BAR(ARG)
 CASEELSE
   THROW 未知の分岐引数%ARGS%を受け付けたため終了
ENDSELECT

635名無しさん:2016/12/25(日) 13:05:05 ID:Beb60obk0
>>634
他の開発者が任意に拡張できる、フレームワーク的な実装を作りたい、というのが要件。
んで、ラッパー関数入れると各開発者の修正箇所が増えるから、やりたくないんだよ

見つからなかった場合は無視でもいいが、ユーザーが指定できるようにしてもいいと思う
たとえば

    FOO = TRYFUNC(関数が見つからなかった場合の値,関数名,引数)

みたいな感じで。



・・・・ここまで考えて、これまんまEXCELのIFERROR関数やないけと気づいた

636名無しさん:2016/12/27(火) 14:16:48 ID:t6cKKnmA0
そもそもとして、無理に式中関数でやることないんじゃねってもある
式中関数でやるなら使い方間違うとエラー起きない計算程度の用途で使うかラッパー挟んで無理やりにやるかだと思うぞ

637名無しさん:2016/12/31(土) 16:15:35 ID:go1Ep4iM0
ツールチップの表示時間を指定、もしくは無制限にする事は出来ませんか
表示情報量が多いと読み終わる前に消えてしまうので

638名無しさん:2017/01/10(火) 15:36:12 ID:rsizOKBk0
#DEFINEの置換元にコロン(:)使うと、コロンより前の文字しか認識してくれずエラーになるのは仕様ですか?

639妊)|д゚):2017/01/12(木) 02:59:23 ID:xemqVZps0
>>637
ツールチップはモーダルとして実装されているので、該当ボタンにカーソルが乗っている限りは消えないはずなような…
一応、時間設定自体は可能ですが、その場合表示のされ方変わってしまうとかあるので、色々ややこしい

>>638
挙動的には何が起きてるかは理解できてますが、
そこらへんの処理は、Emueraのコードパースの基本処理とも絡んでくる部分もあるので
実装可能なのか、仕様とすべきなのか現状では判断が難しいところです

640妊)|д゚):2017/01/13(金) 01:49:22 ID:MpW5Hx960
・1821+v3
ttp://ux.getuploader.com/ninnohito/download/437/Emuera1821%2Bv3.7z

・主な修正
ツールチップの最大表示時間を設定する命令TOOLTIP_SETDURATIONを追加
書式等はreadmeに

641名無しさん:2017/01/13(金) 04:00:08 ID:SCmckZmI0
>>640
TOOLTIP_SETDURATIONの動作確認を行いました
表示時間をデフォルトより短くした場合、指定時間でツールチップが消えますが
長くした場合、指定時間を無視してデフォルトの時間でツールチップが消えてしまいます

Win10環境 複数台のPCで同症状を確認しました

642名無しさん:2017/01/13(金) 12:57:11 ID:LYvdoLjo0
不具合起きてる方も居るようですが、一応自分の環境では動いたと報告しておきます
デフォルト(約5秒)の2倍である10000msで指定して使ってみましたが、表示時間はちゃんと延長されていました
同じくWin10でデバッグモードはオフです

643名無しさん:2017/01/20(金) 21:16:28 ID:ewwSkzOM0
TOOLTIP_SETDURATIONの動作を再度確認しました
表示時間の設定がsigned 16bit上限である32767までなら期待通りの動作をするようです
設定を32768以上にするとデフォルトの時間でツールチップが消えます

644名無しさん:2017/01/20(金) 21:55:36 ID:NTFJj7Oo0
Windowsの仕様で32767ms≒32sまでしか対応してないみたいだね

645妊)|д゚):2017/01/21(土) 12:51:21 ID:ftuHB9xQ0
ふむふむ
うーむ、じゃあどうするかのぉ
こういうリファレンスにない仕様が頭痛の種になるのよねー

646妊)|д゚):2017/01/21(土) 13:04:25 ID:ftuHB9xQ0
てか、もしかしてTOOLTIP_SETDELAYも同じ問題抱えてるってオチまであるんじゃ…

647名無しさん:2017/01/21(土) 14:47:38 ID:/GlyWxlk0
サブメニューみたいに出しっぱなしにするとかそういうものでなければ
一定時間で消えるのが当たり前、と割り切って設定可能な時間に上限を
設けるくらいしかないのでは。

648名無しさん:2017/01/21(土) 18:41:42 ID:WO38780U0
まあツールチップに長文や重要な情報書く奴はおらんものと願おう

649妊)|д゚):2017/01/23(月) 02:18:54 ID:KYEgrLPU0
・1821+v3
ttp://ux.getuploader.com/ninnohito/download/438/Emuera1821%2Bv3.1.7z

・主な修正
命令TOOLTIP_SETDURATIONの引数がshortの最大値を超える場合に、shortの最大値と扱うように変更

TOOLTIP_SETDELAYは大きな値使う人居ないだろうしここではスルーで

650妊)|д゚):2017/01/23(月) 02:19:30 ID:KYEgrLPU0
間違えた
・1821+v3.1

651名無しさん:2017/02/18(土) 13:20:59 ID:fQJ9pAC60
最近始めたにわかなんですが、一つ要望出してみてよろしいでしょうか。

ウィンドウに余白が欲しいのです。
ウィンドウの際から文字が描画されているので少し見にくさを感じます。

特にウィンドウの左側と下側に多少のスペースが欲しいのです。
環境と好みによって余白の需要は変わるでしょうから、configで設定できると嬉しく思います。

652妊)|д゚):2017/03/17(金) 01:36:52 ID:sSmvZme60
>>651
処理実装上は可能な範囲ですが、パフォーマンスにどこまで影響出るか確かめてみないとかもです

653名無しさん:2017/03/25(土) 23:23:56 ID:tLnBw8r60
>>652
レスありがとうございます。
パフォーマンスに悪影響でないのでしたら、よろしくお願いします。

654妊)|д゚):2017/05/03(水) 17:35:28 ID:HXB2PiIE0
ユーザーエンド側には特に大きな変化はなし
>>651はうまい実装法が見つからず迷走中

・1821+v4
ttp://ux.getuploader.com/ninnohito/download/439/Emuera1821%2Bv4.7z

・主な修正
一部命令でのエラーメッセージがおかしいのを修正
解析モード時の出力行数を内部で規定

655名無しさん:2017/05/04(木) 10:11:02 ID:bvyhS.XE0


656名無しさん:2017/05/20(土) 15:29:00 ID:HxzrAV1c0
開発者用設定のコンフィグを,、パッチに間違って混入うpしてしまいがちなので提案を。
私家改造では ConfigData.cs の LoadConfig() でやってます。

「Debugモードの場合 かつ、debugフォルダがあって、かつ debugフォルダ内 に emuera.configがあるなら、そちらを読み込む。そうでなければ今までどおり」

657名無しさん:2017/07/07(金) 20:27:23 ID:ycnbzKBY0
Emuera1821.exeの報告です。

STRFORMに関して報告します。
FOR内でループ用変数をSTRFORMで拾おうとすると常に0になります。

FOR L_桁, 0, 10
LOCALS '= STRFORM("{L_桁}")
PRINTS LOCALS
NEXT

;出力
;0000000000
;0123456789にならない

658妊)|д゚):2017/07/24(月) 23:47:33 ID:eIq6/Eds0
・1821+v5
ttp://ux.getuploader.com/ninnohito/download/440/Emuera1821%2Bv5.7z

・主な修正
STRFORMが内部で全く正しく処理できていないのを修正

こんな超が付くレベルでクリティカルなバグが埋もれてたとはびっくりだぁねぇ

659名無しさん:2017/07/25(火) 10:25:47 ID:mXUoDbGY0


660名無しさん:2017/07/25(火) 16:52:15 ID:2vMFJcuw0
やや挙動不審っぽいものの報告です。
TOOLTIP_SETDURATIONしない場合はマウスの20pxほど下にツールチップの左上端が来るようなのですが、
TOOLTIP_SETDURATIONするとその場所がマウスと同じ位置になり、
自動的にマウスオーバー判定(?)になってマウスを動かさないとツールチップが点滅を繰り返すようになります(右クリックしながらツールチップ付きのコマンドを連続的に選択するときに頻繁になります)。
一応Windows10です。おま環なのかな?

661妊)|д゚):2017/07/25(火) 22:55:00 ID:218J0umQ0
>>660
TOOLTIP_SETDURATIONの設定の有無で表示処理が変わりますので、その影響ですね
手動で完全な再現は困難なので、疑似的な対応が精一杯というところでしょうか

662名無しさん:2017/07/30(日) 10:45:55 ID:eoclhQ/s0
ERHで宣言する定数や変数を他のERHで使用する場合、
使用できるか否かがEmuera上での読み込み順序に依存しているのはどうにかできませんか?

バリアント上最適な定義箇所にできず、可読性を損なっています。

663名無しさん:2017/07/31(月) 03:50:16 ID:xDumph4g0
昔なんか手を付けた気がするけどロダ掘り返したらなんかあるんじゃ

664妊)|д゚):2017/07/31(月) 13:41:14 ID:ypkFA8.o0
ここまでシステムの根幹部分になると、自分は手を出さないことにしてるのでEmuの人が動くの待ちになってしまいますね
(自分は私的に修正等をやって、結果的にそれが本家にも取り込まれているという形になっているだけなので、
 根幹部分をいじって将来的に互換性問題が起こりうるケースは避けるようにしてます)

665妊)|д゚):2017/08/01(火) 02:22:05 ID:.zr9EIQ.0
・1821+v5.1
ttp://ux.getuploader.com/ninnohito/download/441/Emuera1821+v5.1.7z

・主な修正
v5の変更で引数に文字列変数1つのみをとるSTRFORMが正しく動作しないのを修正
TOOLTIP_SETDURATION設定時のツールチップ表示位置を調整

666名無しさん:2017/08/01(火) 04:31:27 ID:J3dDizzk0
ログ掘り返した 去年の1月ぐらいにEmuの人が「#DELAY <識別子>でファイルのそれ以降を識別子が#DEFINEされるまで読み込みしないという宣言」とかいうemuera追加機能案出してた
実装されてない理由は知らん ・・・Emuera最新版はおととしだし

667名無しさん:2017/08/01(火) 09:09:40 ID:s3Tj37qQ0
>>665
助かります!

668名無しさん:2017/08/01(火) 22:07:30 ID:J3dDizzk0
>>662
ttp://era.moe.hm/cgi/era/upload.php?id=0002367
とりあえず、Emuera1321に対しそこをどうにかする私家改造版は昔作った人がいたからどうしても使いたかったらこれを自力で妊の人のとマージして使ってみればいいんじゃないかな
バグがないかは知らんが

669名無しさん:2017/08/29(火) 07:17:41 ID:/WvlW60I0
STRFORMや変数への代入時、
*** のような文字列でエラーが発生してしまいます。

TEST.ERBの21行目でエラーが発生しました:Emuera1821
LOCALS = ***
エラー内容:キャラクタ配列変数NAMEの第1引数(1)はキャラ登録番号の範囲外です

いろいろ試したところ、1821+v5.1で実行すると、
PRINTFORML %STRFORM("***")%
の場合はCALLNAME:0の内容が表示され、

PRINTFORML %STRFORM("+++")%
の場合はCALLNAME:1の内容が表示されました。

Emuera1821の場合はどちらも LOCALS = *** のときと同様のエラーが表示されました。

これはEmueraのバグなのか、それとも単に自分がこの書式付文字列を知らないだけで動作としては正常なのか、
どっちなんでしょう?

670名無しさん:2017/08/29(火) 07:23:30 ID:/WvlW60I0
>>669に訂正があります。
1821+v5.1
PRINTFORML %STRFORM("***")%
PRINTFORML %STRFORM("+++")%
ともに、表示されるのはCALLNAMEではなくNAMEの内容でした。


追記
Emuera1821で+++を評価するとCALLNAME:0が参照されるようです

TEST.ERBの66行目でエラーが発生しました:Emuera1821
PRINTFORML %STRFORM("+++")%
エラー内容:STRFORM関数:文字列"+++"の展開エラー:キャラクタ配列変数CALLNAMEの第1引数(0)はキャラ登録番号の範囲外です

671名無しさん:2017/08/29(火) 08:12:36 ID:DB9FZdf.0
三連文字列がNAMEとかCALLNAMEに展開されるのは、あなたが知らないだけで動作としては正常です。
気に入らないならコンフィグで「FORM中の三連記号を展開しない」をYESにしましょう。

ttp://cbaku.com/b/erakanon/eramacsv.htmlの最後とか参照のこと。

672名無しさん:2017/08/29(火) 09:08:57 ID:/WvlW60I0
>>671
ありがとうございます
そうなんですね。助かりました

673名無しさん:2017/08/31(木) 20:38:30 ID:ATa2t.4w0
Emuera1821+v5.1のバグ報告です

HTML_PRINTで画像を表示する際にwidthを負にして反転させると
後ろに配置したものがずれることがあります

自分でも何言ってるかわからないので実証コードです
ttps://www.axfc.net/u/3840362.zip
DLPass : era

未確認ですがConsoleImagePartクラスのXsubPixelの計算で絶対値をとっていないことが原因な気がします

674妊)|д゚):2017/09/30(土) 01:12:49 ID:BgNbEnQw0
ちょっとリクエストが入ったので

・1821+v5.2
ttps://ux.getuploader.com/ninnohito/download/442

・主な変更
あんま知られていない、REUSELASTLINEを用いて@USERXXXの後のシステム内部処理を一部スキップさせる手法の
REUSELASTLINEの引数が空白でない場合は、システム文字列の表示をスキップするように変更

675名無しさん:2017/09/30(土) 01:47:27 ID:JaThkKZI0
>>674
毎度乙です

676名無しさん:2017/10/07(土) 01:43:28 ID:29sYvR7k0
BEGIN命令について質問です。

EVENTTRAINやSHOW_STATUS内でBEGIN命令を使おうとしたところ「(当該場所で)BEGIN命令を使うことは出来ません」とエラーが出ます。
eratohoまとめwikiのQ&Aの中に「BEGIN命令ができないタイミングが存在する」という記載もあり、エラーメッセージからして仕様なのでしょうが、具体的にどのタイミングでは使うことができないのでしょうか。

677妊)|д゚):2017/10/07(土) 02:24:53 ID:IVRvo.qc0
基本的な理解としてはerabasicで区分けされる各セグメント内で
「ユーザーの入力結果を受けた処理を行う局面」においてはBEGINを受け付けるようになっており、
「システム内で閉じた処理を行う局面」ではBEGINを受け付けないケースが大半である
と考えていただければよいかと思います

ただし、一部@EVENTSHOPのような例外的に受け付けるものもあるので、実態は少しややこしいです

678名無しさん:2017/10/19(木) 01:42:28 ID:EGC1DZvE0
ttp://era.moe.hm/cgi/era/upload.php?id=0003204

イベントに合わせて
いつもの方々とは別の人による改造版です
C#にあるような名前空間を部分的にemueraに導入する改造 変数は現在未実装、また実装の隠蔽などは未実装です

バグあると思うので報告ください

679名無しさん:2017/11/02(木) 22:52:10 ID:CuzrVdNw0
>>678
使用させてもらってます!報告です!
名前空間中のユーザー定義式中関数をデバッグコンソールから呼び出そうとするとパースに失敗するのか呼び出せません

以下そのときのコンソールの内容
非コメント行数:14066, 全関数合計:186, 被呼出関数合計:125
GAMEMAIN.STRING_INSERT("1234")
'('に対応する')'が見つかりません

680妊)|д゚):2017/11/04(土) 02:18:49 ID:FYAB9U7Y0
例外踏み抜きパターンが見つかったので

・1821+v6
ttps://ux.getuploader.com/ninnohito/download/443

・主な変更
SORTCHARAをユーザー定義キャラ変数でやると華麗に.Net例外が返ってくるのを修正

681名無しさん:2017/11/06(月) 01:16:54 ID:6.Do4vGI0
>>679
ttp://era.moe.hm/cgi/era/upload.php?id=0003230
微妙に遅くなったけど反応があったのに気づいたので修正しました
あと、ソースコードの改変点が汚かったので治せないかと試行錯誤したら汚い場所が別の場所に移動しました

682名無しさん:2017/11/17(金) 23:43:57 ID:EmO1/WgY0
global.savが読み取り専用になっているなどの要因でSAVEGLOBAL命令が失敗すると、Emuera1821や1821+v6ではエラー落ちします。
Emuera1755では「グローバルデータの保存中にエラーが発生しました」が表示されるけど落ちません。
1821のソースでは"グローバルデータの保存中にエラーが発生しました"のあたりがコメントアウトされているようですが、これは
「グローバルデータが保存できてないことに気付かないままゲーム続行したら宜しくない」等の理由による仕様変更でしょうか?
それとも、何か例外処理を変更する都合上、こうなったのでしょうか?

セキュリティ対策ソフトか何かが偶然同じタイミングでglobal.savにアクセスしたりすると、
ttp://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1483621747/816
のような再現性のないエラーになったりすることもあるんじゃないかと思います。

一度の失敗で即エラー落ちではなく、例えば
・「失敗したら500ミリ秒待ってからリトライ」を10回繰り返す
あるいは
・無限ループ警告のようにダイアログを出して、リトライするか終わらせるかユーザーに選んでもらう
のような実装を検討していただくことは可能でしょうか?

683名無しさん:2017/12/02(土) 18:08:35 ID:Ly56bH3Q0
SPLITの逆関数にあたる関数とかリクエストしていいですか?(他の言語ではjoinとかimplodeとか呼ばれてるやつ)
関数のインターフェースはSUMARRAYとほぼ同じ(対象が文字列配列で出力も文字列)でいいと思います
ERBで書いてもいけますがSPLITと同じ理由で配列長が大きくなると速度が気になってきました

684妊)|д゚):2017/12/03(日) 02:10:42 ID:EK7rAOhw0
>>683
確かにないのが不思議なレベルですな(全く気づいてなかったことから目を背けつつ

というわけで
・1821+v7
ttps://ux.getuploader.com/ninnohito/download/444

・主な変更
文字列配列結合関数STRJOIN追加
 基本的にSUMARRAYと同じ
 キャラ配列版は現状未実装(必要があるか確証がないため)

685名無しさん:2017/12/03(日) 05:51:45 ID:HOYniHlg0
はええ!乙です!
しかし一晩してから今SUMARRAYと同じだとセパレータ文字列がなくてこれ逆関数にならねえ!しまった!と気づいてしまいました。
なのでセパレータ文字列を引数に追加してもらってもいいですか?

SPLIT "a,b,c", ",", LOCALS
LOCALS:1 '= "hoge"
PRINTSL STRJOIN(LOCALS, ",", 0, 3) ; a,hoge,c
こんな感じです

せっかく高速実装していただいたのにごめんなさい

686妊)|д゚):2017/12/04(月) 02:22:55 ID:4VCr/.v20
>>685
ういうい

・1821+v7.1
ttps://ux.getuploader.com/ninnohito/download/445

・主な変更
STRJOINに区切り文字引数追加
引数の順序が変わってるので要注意

687名無しさん:2017/12/04(月) 23:28:52 ID:DuoOCB7o0
ありがとうございました!助かります!
2度手間取らせてすみませんでした〜

688名無しさん:2017/12/07(木) 23:38:52 ID:gT7vtgXI0
ttp://era.moe.hm/cgi/era/upload.php?id=0003266
>>682のSAVEGLOBAL,LOADGLOBALでファイルアクセスに失敗すると即座に例外となる問題に対応してみました。
変更したEmueraのソースファイルを同梱してあります。取り込んでいただければ幸いです。

尚、global.savが読取専用になっていた場合はどうしようもないです。
想定できる発生条件としては、
・多重起動時にSAVEGLOBAL,LOADGLOBALが同時に発生する
・Emueraとは別のソフト(セキュリティ対策ソフトなど?)が偶然同じタイミングでglobal.savにアクセスする
あたりだと思います

689妊)|д゚):2017/12/08(金) 03:26:21 ID:x0JPZGCk0
あえてJavaScript的にしてみる

・1821+v7.2
ttps://ux.getuploader.com/ninnohito/download/446

・主な変更
STRJOINを数値配列変数にも対応(JavaScriptでいうArray.join的な感じに)
7.1で追加した区切り文字列の扱いに問題があったのを修正

690名無しさん:2017/12/17(日) 02:35:16 ID:Cn6Jr3yQ0
SAVECHARAおよびLOADCHARAってもしかしてDIM SAVEDATA CHARADATAした変数に対応できなかったりしますか?

691690:2017/12/17(日) 03:35:15 ID:Cn6Jr3yQ0
追記
生成されたdatを読んでみましたが、DIM SAVEDATA CHARADATAされた変数自体は存在していました
セーブ時に値が入っていないか、ロード時に読めていないかのような気がします

692690:2017/12/17(日) 20:28:09 ID:Cn6Jr3yQ0
連投すみません。

色々試した結果、SAVECHARAおよびLOADCHARAは問題なくDIM SAVEDATA CHARADATAした変数を読み書きできていました。失礼しました。
今回、ADDCOPYCHARAやCOPYCHARAによってコピーしたキャラをSAVECHARA、LOADCHARAに突っ込んでいました。
ADDCOPYCHARAのコピー元になったキャラとLOADCHARAによって生成されるキャラを比較して、変数が同一になっておらず、セーブロードがうまくいっていないと考えていました。
しかしさらに調べたところ、ADDCOPYCHARAやCOPYCHARAの時点で問題があるようでした。
コピー先のキャラで変数の内容が吹っ飛んでおり、SAVECHARA/LOADCHARAにおいても変数が空になっており、上記挙動のようになっていたようです。
お騒がせしました。

それで、ADDCOPYCHARAやCOPYCHARAがDIM SAVEDATA CHARADATAした変数の中身をコピーしないのは仕様なんでしょうか……

693妊)|д゚):2017/12/31(日) 04:40:18 ID:xyNAxzLE0
>>692
あー、そこらへん考慮から外れてるかも
ちょっと考えてみますか

694名無しさん:2017/12/31(日) 22:34:36 ID:lTrJszrk0
式中関数でエラーが発生したとき、そのエラーを無視して何もしない、と設定することは実現可能ですか?
BASICでいう、ON ERROR RESUME NEXTに相当する処理です

695妊)|д゚):2018/01/01(月) 13:43:04 ID:Sy6.64LI0
お年玉(バグが入っていないとは言っていない

・1821+v8
ttps://ux.getuploader.com/ninnohito/download/447

・主な変更
COPYCHARA、ADDCOPYCHARAがユーザー定義キャラ変数に対応してないのを修正

696妊)|д゚):2018/01/01(月) 13:45:44 ID:Sy6.64LI0
>>694
うーん、できないことはないですが、
典型的なerror-proneになりそうなので、あんまり乗り気にはなれないですかねぇ

697名無しさん:2018/02/20(火) 20:18:37 ID:TM7N44F.0
ttp://era.moe.hm/cgi/era/upload.php?id=0003424

いつもの人とは別の人によるEmuera改造版です
ERBで定数を使っていたところ定数で定数の値を与えることが出来なかったので前につくったERHの定数をいい感じに処理してくれる奴に追加する形で改造版作りました

698名無しさん:2018/04/11(水) 22:19:36 ID:J7M5CUcQ0
SETCOLORすると値によってフォントサイズが変わるみたい・・・・?
0xFF4500と0x504010、フォントサイズ17で数ドットレベルで違うのを確認

699名無しさん:2018/05/01(火) 23:36:28 ID:83x4HkOA0
HTML_PRINTで& # x a ;(表示されないっぽいのでスペース入れてます)等の文字参照による改行が<br>や\nによる改行と挙動が異なる
通常HTML_PRINTを行った後はLINECOUNTとしては1行扱いだが<br>の改行の分だけ以降の行は表示が下になるのに対し文字参照の場合以降の行はHTML_PRINTの行の直後になる
つまり文字参照で改行した場合以降の行で表示した内容と描画位置が被ったりする
さらにbutton系でposで表示位置を動かしていた場合<br>では左端に戻るが文字参照の場合前の行と左端は同じになる
後文字参照の改行はコンフィグで設定した行の高さは無視されて文字のサイズによるものになる
最期にbuttonとして反応するのは最初の行だけ

尚この仕様の方が表示出来る幅は広い
例えば複数行に跨る文字列AとBが有ったとして
Aより前面に何らかの画像それより更に前面にBと表示できるのはこの仕様の場合だけである
<br>による改行の場合Aを表示しきった後画像を表示してBを表示すると必然的にBはA以降の行にしか表示できないのである
ついでにコンフィグで設定した文字サイズと行の高さが互いの素なら大きな余白行が必要だが文字の表示位置をピクセル単位で操作も可能

700妊)|д゚):2018/05/05(土) 23:34:57 ID:IROg4Tog0
改行文字の文字参照まではキャッチしてませんからねぇ
対応自体はそんな大変ってわけではないけど、正直やる価値があるかは疑わしいかなー


新着レスの表示


名前: E-mail(省略可)

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

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

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

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