トップページ > 記事閲覧
汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity
投稿日 : 2016/11/04(Fri) 03:00
投稿者 sceawung◆MH.ms4.V3i2
ID情報 : nxfqqbdowvZukCGZbCz6o/
参照先 https://github.com/sceawung/source/wiki
当スレッドは上記エンジンで汎用的に機能するSSGや、逆にSSG化が難しい場合の代替手法などを扱います
ただし汎用性第一で解析寄りに拵えてあり抽象度が高いため、改造に用いるには迂遠な物もあります
それらはDIY精神よろしく御自身で解析される方向けに、プロセスメモリ全体からサーチするよりは簡便な手段の提供を目的とし
該当ゲームに関するリクエストや投稿の抑制を意図する物ではありません―が、スレッド作成者は汎用性に欠ける個別の案件には対応しかねます

当該エンジンの解析情報交換や、体験版での下準備などにもお使いください
タイトル個別の解析が煮詰まった暁には専用スレッドへの移行をお奨めします

当記事のSSG使用には、2018.11.06以降となるSpoilerALの修正パッチが必要です
とりわけ汎用性を追求したSSGの実現には不可欠でした、この場を借りてお礼申し上げます
参照先は当スレッド作成者による私的なTIPSとバックアップ―毎時反映―です


  1. ARCGameEngine 2017/04/29更新 スクリプト最適化、サンプル同封
    アーカムプロダクツ系列の流れを汲むエウシュリーなどで採用されており
    実行ファイル名が「AGE.EXE」、同フォルダに「AGERC.DLL」が存在、
    プロセスメモリにはビット演算でマスクされた値が格納されます

    [repeat]によりインクルードするだけで、ベースアドレスやマスク値を解決するSSLと
    これを利用しゲーム上の値で変動検索できるSSGを添付してあります(天結い以前用
    ただし情報一覧やギャラリーなどグローバルデータの本体は領域が異なります

    またサンプルとして天結いキャッスルマイスター体験版のSSGも同封。

  2. RPGツクールMV & RGSS 2018/10/24更新 No.55のRGSS汎用SSGを制式化
    大抵は実行ファイル「Game.exe」と、同フォルダに「package.json」(MV)あるいは「Game.ini」(RGSS)が特徴です

    XP,VX,VX Ace向けにはRGSS汎用SSGを同封してあるので、SpoilerALで開き情報タブを参照してください※Plugin配置も必須

    MVについては「www」フォルダにソースがあり、「package.json」の"main"URL末尾に「?test」付加でテストモードになりますが
    EXE単体に梱包されている事も少なくありません―しかしコレを展開する"Enigma VirtualBox unpacker"なるツールも存在します

    ChromiumベースのNW.jsでマルチプロセス、JavaScript制御によりメモリ管理はdoubleかつ超動的など、SSG対応は難があります
    基本のセーブフォーマットが圧縮されたJSONであること、エンジン自体に強力なデベロッパーツールが備わっている事などから
    HTA形式のリモートデバッグ機能付きセーブエディターを添付してあります※MV専用

    使用にはIE10(Windows7)以降が必要で、リモートデバッグには右上のボタンでポートスキャンしてエンドポイントを割り出し
    それからボタンでテストフラグON(CTRLで壁抜け、F9で変数)、更に右のボタンでDeveloperToolsを起動します(F8と同等
    ※エディタが応答結果で破棄されます。これはChromeのデベロッパーツールと同じ物で、当スレッドのNo.17に変数概要もあります
    DeveloperToolsのコンソールからJavaScriptコードを打ち込む事で、リアルタイム改造やコード次第で無限の可能性が広がります

    MV 1.6.xならnw.dllresources.pakNW.js(nwjs-sdk-v0.29.0-win-ia32.zip等)から置換、リモートデバッグは--remote-debugging-portを併用

    Windows7未満でも、editor.htaの拡張子をhtmlにして、他ブラウザでセーブエディター機能のみを使用する事は可能です
    リモートデバッグについては、コマンドプロンプトから「netstat -anop TCP | findstr /R 127\.0\.0\.1:.*LISTENING」などとし
    RPGツクールMVのプロセスIDと一致するエンドポイントを割り出し、ChromeWin/404003以前にてアクセスしてください

    端々でアップ/ダウンロードだの出ますが、ブラウザUIの利用故でオフラインツールです

  3. Unity 4.1~? 2018/07/26 微修正 03/07更新 以前に試作したmono用デスクライバの本式版を同封
    ※おおよそ改造向けとはいえず、ポインター経路やオフセット調査などの解析用です
    *_Data\Mono下にmono.dllが存在し、オープンソースで.NET互換なスクリプトエンジンを搭載しています
    それによりマシンコードがJITコンパイルで生成されますが、故に実行時型情報が満載です
    オブジェクトヒープはPAGE_EXECUTE_READWRITEで境界ベース検索が効率的です

    ManagedフォルダのDLLをILSpydnSpy等でデコンパイルし、プログラムをソースレベルまで復元できます
    (ILコードもAssembly-CSharp.dll改竄などに役立ちますが、IA-32(e)と違いレジスタモデルではなくスタックモデルです

    mono.dll内のgdb向け関数を呼び出しメモリレイアウトを吐かせるアプリを添付。
    ▼を押してプロセスを選択すると、静的フィールドを持つクラスの列挙ボタンに成ります
    (クラスは随時ロードなので、これを使い適宜更新します
    列挙されたクラスはダブルクリックか、選択してリターンで解析でき
    上部からオブジェクトアドレスや、値型のタイプとアドレスの入力も可能です
    (参照型オブジェクトは左でエンター、値型は右でエンターします
    タブを中クリックすると同タブを、ダブル右クリックで他の全タブを閉じます

    ※実装上セキュリティソフト等が反応する可能性があります、事前のセーブも忘れずに。
    先に挙げたツールで当アプリも覗けますが、C#で迂遠な処理はビルド後にIL実装しています
    また静的フィールドはルートの1つに過ぎず、スレッドスタック等も該当します


    同封のSSG版は過去の遺物です、static_data_array等のサンプル程度に


これらは特定タイトル専用SSGに流用するなども良し、ご自由にお使い頂けます
ただしMVセーブエディターはJSON編集部にApacheライセンスのライブラリを使用しており
RGSS汎用SSGはRubyソースを、Unity汎用SSGはmonoソースをそれぞれ参考にしているため
BSDスタイル的に怪しい物となっています、火種と成らぬようにも商用利用などはお控えください

記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.1)
投稿日 : 2016/11/04(Fri) 21:50
投稿者 amateur◆kR..xsXL6RU
ID情報 : 353DdNed7B0CZaxDzw1sL0
参照先
スレ立て&SSG等の公開ありがとうございます。
こういう汎用SSGやツールは、解析やってる人間には有難い限りです。
AGE汎用は、複雑な暗号化が壁になっていたエウ作品で威力発揮(うさみみ等で検索しなくて済むとか凄い・・・)、
MVは、SSG等のメモリ弄る方向からは私はほぼお手上げ状態でしたので完全に頼りきってます。(現行のChrome等でDevToolsに入れないのが気がかりですが)
Unity汎用SSGは、Unity製ゲームが今後増えていきそうなのでますます重宝しそうですね。
(Ninetail系に続き、どうやらunicorn-a・げーせん18もUnityに移行したみたいです)
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.2)
投稿日 : 2016/11/05(Sat) 01:19
投稿者 七星◆y3el2XfkmCg
ID情報 : t2vFXQ2H8Qqp6MTECPrk5/
参照先
XORはCPUからするとポピュラーな演算ですけど出鼻を挫くには効果覿面ですねぇ
しかしローテートは演算子がないほどマイナー過ぎて逆に特定しやすかったりも
ただSearchFormを複数使うとなんか挙動がおかしい気がします\(^o^)/

MVはどちらかというとエンジン自体普及するのか?って気もしますが
PixiJS周りの扱いでメモリリークしまくる記憶と、梱包しないとソース丸見え
プロトタイプチェーンとかより、3代続いたRubyの方が慣れた人は多いでしょうし

もっとも私は老いさらばえた所為かあまりゲームをやらなくなりました
UnityというかMonoは.NET互換ということで実装に興味があるだけだったり…
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.3)
投稿日 : 2016/11/05(Sat) 02:00
投稿者 amateur◆kR..xsXL6RU
ID情報 : 353DdNed7B0CZaxDzw1sL0
参照先
自分も最近[adjustment]をよく使う(といっても「search」だけですが)のですが、
確かに謎仕様みたいなのが多いですね。別スレでも書きましたが。
別の方の作成された某汎用SSGも、search補正使用のせいか(そのSSG自体が複雑極まりないのも原因かもですが)挙動が安定せずよく落ちますし。

私はゲームを楽しむというより、解析のために少しプレイするだけという末期症状に陥りつつあります・・・
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.4)
投稿日 : 2016/11/10(Thu) 00:38
投稿者 ガウ
ID情報 : 8Pfll7KPnDXzHd84DCgPy.
参照先
以前書かれていたツクールMVでpackage.jsonがない場合のデバックモードの起動方法でデバックモード起動しようとしたらデバックモード起動できないゲームがいくつかあったんですが、どうしたらいいのでしょうか?
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.5)
投稿日 : 2016/11/10(Thu) 01:57
投稿者 七星◆y3el2XfkmCg
ID情報 : 2g59tyikJgCCEcY.NoBmr0
参照先
>>4 ガウさん

リモートデバッグする方法ですね、NEExploiTさんの情報を元に精査した所
Win/404003以前のChromiumでないとコンソールが動かないようです
chrome-win32.zipの中に旧バージョンのchromeが一式入っています
(起動中にクエリ文字列更新できれば済みそうな気はするものの…

あるいは当該ゲームがEnigma Virtual Boxで梱包されている物なら
「Quickpost Enigma unpacker」で検索し、ファイル展開を試す方法もあります
(なにぶん海外の有志ツールですので、自己責任でという事になってしまいますが

それともアンチデバッグとして機能を削るなど対策されているケースでしょうか?
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.6)
投稿日 : 2016/11/10(Thu) 04:37
投稿者 (仔猫)◆KCezBilYINU
ID情報 : kG/YyE2NbKB6lyGtrPMSQ.
参照先
七星さん提供ありがとうございます。
一度に3つも!ありがたや!(どれから解析に使おうかな…)
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.7)
投稿日 : 2016/11/10(Thu) 23:33
投稿者 ガウ
ID情報 : 8Pfll7KPnDXzHd84DCgPy.
参照先
>>七星さん

無事解決しました
ありがとうございました
新しいクロームだと起動しないんですね^^;
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.8)
投稿日 : 2016/11/13(Sun) 06:02
投稿者 七星◆y3el2XfkmCg
ID情報 : 2g59tyikJgCCEcY.NoBmr0
参照先
>>6 仔猫さん
Unity用SSGはまだ些か迂遠な気もしてますが…

メソッドのネイティブコード追跡も画策しつつも
static_data_class_arrayは実質一定順序としても
目的のクラスにstaticフィールドが無ければ到達経路を
SSGでアドレスコーディングできるのか悩みは尽きなひ


>>7 ガウさん
解決して何よりです…がしかし、いちいち旧Chromeも面倒くさい…
よく考えたら自前でデバッギングプロトコル叩けば良いと思い至ったので
No.1の添付2を更新して直接コンソールを出す機能を付けました


AlmightやTyranoScript等、nw.jsなら何でも出せるっぽいものの…
ポートスキャンをActiveXに頼っているし、Chromeはデフォルト設定だと
ローカルファイルからCORSが通らない…Fetch APIとかの時代かしら
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.9)
投稿日 : 2016/11/14(Mon) 01:58
投稿者 NEExploiT◆1I03EIw9l9M
ID情報 : Tvk4MoNhhL2PGOq4ITg1t1
参照先
ポートスキャンがうちの環境だと上手く動かない…

自分用備忘録
PowerShell v3以降専用

$processList = gps | Select-Object Id,ProcessName
$str = netstat -aonp TCP
$r = @{}
foreach($s in $str.split("`n")){
if("${s}" -match "(127\.0\.0\.1:\d+).+LISTENING[^\d]+(\d+)$"){
$p = $processList | Where-Object Id -Eq $matches[2]
$r[$p.ProcessName] += @($matches[1])
}
}
$r | ConvertTo-Json


TyranoScript
コンソールにて対象を<topframe>からindex.htmlへの変更が必要
TYRANO.kag.stat.f
TYRANO.kag.stat.mp
TYRANO.variable.sf
TYRANO.variable.tf
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.10)
投稿日 : 2016/11/14(Mon) 22:23
投稿者 七星◆y3el2XfkmCg
ID情報 : 2g59tyikJgCCEcY.NoBmr0
参照先
setIntervalやらで待とうとすると終わらない事があったりなかったり?
ReadAll()だけでブロックする様なので任せて、グローバルマッチで複数検出に対応

こういう場合はPromiseとか使うのかな、ただでさえFileAPIやWebSocketで
ECMAScript要件が上がっている所に、Edgeのみとか笑えない
そもそもJavaScriptからnetstatをするのもちょっとアレですが
扱うものがJSONにWebSocketとなると他で実現するのも回りくどい

TYRANOもバージョンによって?<top frame>のみでそっちにあったり
まちまちっぽいですかね、MV以外で変数を調べるにはthisとかになるのかな
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.11)
投稿日 : 2016/11/15(Tue) 22:21
投稿者 (仔猫)◆KCezBilYINU
ID情報 : kG/YyE2NbKB6lyGtrPMSQ.
参照先
七星さん更新ありがとうございます。

HTA形式のセーブエディタを使ってみました。
テキストとツリーに分けられて見易い。ありがとうございます。

>Unity用SSG
>目的のクラスにstaticフィールドが無ければ到達経路を〜
自分の気に入ったゲームの解析してるときは迷宮入りが多いのです(泣
人の依頼だと結構うまくまとまるので…謎です。
(最近はもうポインタ決め撃ちして…後で困ったりと…。)
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.12)
投稿日 : 2016/11/16(Wed) 07:42
投稿者 七星◆y3el2XfkmCg
ID情報 : 2g59tyikJgCCEcY.NoBmr0
参照先
>>11 仔猫さん

エディタ部分はライブラリなのでファイルへの読み書きと
MVにちょっかいを出す機能をくっつけただけだったりしますが

Unityは…シングルトンとかなら確実にstaticにあるんですけど
まだ詳しく調べてないので適当な想像ですけど設計的に
スレッドスタックからしか辿れないパターンとかですかねぇ…
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.13)
投稿日 : 2016/11/19(Sat) 14:51
投稿者 (仔猫)◆KCezBilYINU
ID情報 : kG/YyE2NbKB6lyGtrPMSQ.
参照先
>Unityは…シングルトンとかなら確実にstaticにあるんですけど
七星さんアドバイスありがとうございます。
C#やmono関係の資料を集めながら勉強してます。

>スレッドスタックからしか辿れないパターンとかですかねぇ
情報ありがたや。
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.14)
投稿日 : 2017/01/16(Mon) 02:57
投稿者 amateur◆kR..xsXL6RU
ID情報 : 9gobaP0g3C8A9VOgd2zFK1
参照先
七星さん、便利なSSGやツールを公開していただいて有難うございます。
お陰さまでゲームの解析・改造が捗っています。

別の個別ゲームのスレで同じことを書いたのですが、多分ツクールMV全てに関わる話だと思いますのでこちらにも書かせていただきます。
スレッドトップ添付2個目のツクールMV用ツールの、
DeveloperToolsを起動する機能(とテストフラグONにする)について、
右上の+でデバッグポートスキャンして検索ボックスに表示されるURLですが、どうも間違っているのではないかと思います。
幾つかのMV製ゲームで何度試してもDeveloperToolsが起動しませんので。

そこで、以前七星さんが教えてくださったコマンドプロンプトからデバッグポートのローカルアドレスを調べる方法を使い、
判明したそのアドレス(ツールでスキャンした結果とは違う)をツールの右上のアドレス欄に入力すると、
DeveloperToolsが起動しました(テストフラグONも機能)。
私の環境では、ツールでスキャンすると必ず「127.0.0.1:65001」になるようなのですが・・・
この状態、私だけなのかな?
皆さんはポートスキャン→DeveloperTools起動が正常に機能しているのでしょうか。

私と同様の症状で悩んでいる方がいらしゃるかもですので、取り敢えずの対処法として、
以前七星さんが教えてくださったデバッグポートのローカルアドレスを調べる方法を以下に書いておきます。

--------------------------------------------------------
改造したいツクールMV製ゲームを起動した後、
コマンドプロンプトを実行して、下記のとおり入力(半角スペースも必ず入れる。コピーしてコマンドプロンプト上で右クリック→貼り付け、が便利)してEnter。
「netstat -ano | find "127.0.0.1"」

すると、下記のような記載が何行にもわたって表示される
TCP 127.0.0.1:55206 127.0.0.1:55205 ESTABLISHED 7680
TCP 127.0.0.1:55397 0.0.0.0:0 LISTENING 8316
TCP 127.0.0.1:65000 0.0.0.0:0 LISTENING 1328
TCP 127.0.0.1:65001 0.0.0.0:0 LISTENING 5884
TCP 127.0.0.1:65001 127.0.0.1:51324 ESTABLISHED 5884

上記のうち、右端から二つ目が「LISTENING」となっていて、かつ、
右端(「LISTENING」等の右)の数値(10進数)が、
ゲームのプロセスID(複数の同名プロセスの内、親プロセスのID。うさみみで確認可能※)と
一致するのが正解(プロセスIDはゲーム起動毎に変わるのでその度に上記を実行の必要あり)。
 ※親プロセスのID:いずれかのGame.exeをうさみみでプロセス選択→「ファイル」→「プロセスの各種情報を表示」→「実行ID」で親プロセスのIDが表示される
 ※下記の場合、うさみみで表示される16進数のプロセスIDは「207C」(10進数⇔16進数の変換は、Windows付属の電卓の「表示」→「プログラマ」で)
 
「 TCP 127.0.0.1:55397 0.0.0.0:0 LISTENING 8316 」

上記の「127.0.0.1:55397」(ゲーム起動毎にこれは変動します)を、MV用ツールの右上のアドレス欄に入力して、その二つ左(プラスマークの左)のアイコンをクリック
→ Developer Toolsが起動する。(!をクリックでテストフラグON)
--------------------------------------------------------
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.15)
投稿日 : 2017/01/29(Sun) 14:59
投稿者 七星◆y3el2XfkmCg
ID情報 : 2eDZI2tu1Ih6Pg4R6Y5Et.
参照先
>>14 amateurさん
返信が遅くなり済みません。ご指摘の件ですが起動しない場合は十中八九、間違っています
…が、実装的には仕様です。というのもTCP列挙後、絞り込みをIPと着信接続でしか行っていません。
そのためPC環境により127.0.0.1で待ち受ける別のアプリが稼働していると、それも拾ってしまいます。

現在のHTAソースでは合致した最後のエンドポイントがテキストボックスに入り、残りは入力候補となっています。
こうなっているのは怠慢なのですが、netstatのみでプロセス名を列挙しようとするとなぜか管理者権限が必要だったり、
そもそもプロセス名がGame.exeというのも絶対ではないので、片っ端からHTTP接続テストをするのも何だかなという次第で…

御無沙汰している間にまた様相が変わったようで…遠からず新しいAGEの体験版も出るでしょうし、ぼちぼち作り直すつもりではいます
記事編集 編集
Re: 【汎用解析】AGE、RPGツクールMV、Unity (No.16)
投稿日 : 2017/01/30(Mon) 00:45
投稿者 amateur◆kR..xsXL6RU
ID情報 : 7WD8G7AfhafWkXtCDDiaK/
参照先
>>15 七星さん
ご多忙の中、ご返信いただきまして有難うございます。
>そのためPC環境により127.0.0.1で待ち受ける別のアプリが稼働していると、それも拾ってしまいます。成程、そういう仕様なのですね。
私の環境ではそれに該当してしまっているので起動しないと・・・
取り敢えず、>>14の方法でDeveloperToolsを起動することは出来ており、
何とかなっていますので、これは環境次第の仕様ということで承知いたしました。
解説ありがとうございます。

>御無沙汰している間にまた様相が変わったようで…
そうですね、変態紳士さんがパッチで色々機能追加・強化してくださって使い勝手がさらにアップしました。
また、七星さんのご活躍を期待しております(私は頼ってばかりで済みません)。
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.17)
投稿日 : 2017/02/22(Wed) 21:50
投稿者 amateur◆kR..xsXL6RU
ID情報 : SVa40FTfkX4oI7WHe6ZLA.
参照先
最近、ツクールMV製ゲームの個別スレが立って、このスレのツールが紹介される例が増えてますが、
ツールでDeveloperToolsを起動しても改造方法が分からないという方もいらっしゃるかと思いますので、
以前、臨時掲示板に私が書いたのとほぼ同じ内容(「$gameTemp」の部分に追記しました)の情報を書いておきます。
 ※ DeveloperToolsでの改造は、セーブデータ改造と違ってリアルタイムでゲームに反映されます。

なお、あまり検証してないので下の情報には書いてませんが、
「$gameSwitches」「$gameVariables」あたり(「$gameSelfSwitches」については?)は、
どうも「テストフラグON」(ツクールVX等でのデバッグモードに相当)で操作できる変数を弄れるみたいです。
(以前試したゲームで、テストフラグONの方で変更したのと同じ内容の項目があった覚えがあります)

--------------------------------------------------------
ツクールMVのDeveloper Toolsで変更できる内容は大体、下記のようです。
「Developer Tools」を起動したら、右端の「Console」に、下記の「$gameParty」等の変数名を入力してEnterでOK。

$dataActors ;キャラ情報、初期レベル等
$dataClasses ;各職業の最大HP等の基本パラメータ、習得スキル等
$dataSkills ;スキル情報
$dataItems ;消費アイテム情報
$dataWeapons ;武器情報
$dataArmors ;防具情報
$dataEnemies ;敵の情報
$dataTroops ;敵グループの情報?
$dataStates ;状態異常等
$dataAnimations ;
$dataTilesets ;
$dataCommonEvents ;
$dataSystem ;基本ゲームシステム
$dataMapInfos ;
$dataMap ;
$gameTemp ;「_isPlaytest」を「false」から「true」に変えると、CTRL押しながら移動で壁抜け、F9で変数表示(回想出現などもここ?)
$gameSystem ;セーブ回数・戦闘回数等、セーブ・エンカウントの有無設定も?(saveEnabled、encounterEnabled)
$gameScreen ;
$gameTimer ;
$gameMessage ;
$gameSwitches ;
$gameVariables ;
$gameSelfSwitches ;
$gameActors ;各キャラのレベル・現在HP・装備品等の情報(ステータス値は職業で決まるので「$dataClasses」で)
$gameParty ;所持金・所持品・現在のパーティメンバー等
$gameTroop ;ターン数等の戦闘中の情報?
$gameMap ;現在いるマップの情報?
$gamePlayer ;マップ上の座標、キャラ移動速度(moveSpeed)、次のエンカウントまでの数値(encounterCount、減算型?)?、
$testEvent ;

--------------------------------------------------------------
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.18)
投稿日 : 2017/02/23(Thu) 21:43
投稿者 amateur◆kR..xsXL6RU
ID情報 : jx1meB3cWBYgaVbRT3sGD1
参照先
ツクールMV用のツールについて補足。
セーブエディタの方に「Tree」モードで表示される「System」「actors」「party」等は、
>>17に書いた「$gameSystem」「$gameActors」「$gameParty」に相当するようです。
$game の後ろの名称がセーブエディタの各項目名になっている?ような。
なので、>>17の情報を参考に、セーブエディタで表示される各項目で何が改造できるか大雑把に判断できるかと思います。

ちなみに、>>17の情報で「$dataActors」等、頭が「$data」となっているものは、
セーブには反映されない基本データ部分なので、セーブデータ改造の方とは関係ないようです。
逆に言うと、頭が「$data」の箇所は、セーブデータ改造では弄れないということですね。
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.19)
投稿日 : 2017/02/24(Fri) 21:48
投稿者 七星◆MH.ms4.V3i2
ID情報 : EO1F4.qa2sHkDF3axAhPO0
参照先
MVセーブエディタのTreeモードとTextモードの統廃合を行い、Codeモードに一本化しました
テキストベースですが、アウトラインでツリーの様になったり、ハイライト機能もあります
とても軽快です、しかしIEエンジンで動かしているとリアルタイム文法チェッカーは働きません

>>amateurさん
まとめ情報ありがとうございます、実のところ先日過去ログはどこいったっけなと探していました
掲示板でJavaScriptについて教えるというのも難しいので、DevToolsの指南は悩み所です…
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.20)
投稿日 : 2017/02/26(Sun) 02:33
投稿者 amateur◆kR..xsXL6RU
ID情報 : 1qn8RKmRCI4OP10knw5cO.
参照先
>>19 七星さん
更新ありがとうございます!
DevToolsのポートスキャンが私の環境でも正常動作するようになりました。
ますます便利になってますね。感謝です。
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.21)
投稿日 : 2017/04/06(Thu) 23:58
投稿者 ガウ
ID情報 : SswJvXANAc.2g7F9.unty1
参照先
ツクールMVについてなんですが
SetupOptionInvalid
というスクリプトをかわす方法はないでしょうか?

js内を弄る等してみたのですが、弄るところを間違っていたのか効果がありませんでした…
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.22)
投稿日 : 2017/04/07(Fri) 01:01
投稿者 七星◆MH.ms4.V3i2
ID情報 : BXfphnn2SudbHe170S9/m/
参照先
>>21 ガウさん
察するにpackage.jsonの"main"URLに「?test」等を付加すると、特定ゲームにおいて
テストモードを感知されて起動が阻害される、という事で宜しいでしょうか。

RPGツクールMVは「www/js/plugins.js」にてプラグイン管理を行っています。
"name":"SetupOptionInvalid"」に該当するプラグイン定義を「"status":false」とするか、
定義自体をコメントアウトすれば、チェックプラグインを無効化できると思います。

またソースを弄らずとも、MVセーブエディタで!ボタン→+ボタンのリモートデバッグが機能すれば
ゲーム起動後の途中からでも、テストモードと同等の状態へ持っていける筈です。
(これだとF8によるデベロッパーツール起動までは有効化しないので、更に右のボタンを使ってください
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.23)
投稿日 : 2017/04/07(Fri) 06:40
投稿者 ガウ
ID情報 : SswJvXANAc.2g7F9.unty1
参照先
コメントアウトはしてみたのですが、「?test」を付与しても画像のような画面になるだけで動作不可になります

CMDからのコマンド入力からのデバックもアドレスが表示されず有効化できませんでした

記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.24)
投稿日 : 2017/04/07(Fri) 07:29
投稿者 七星◆MH.ms4.V3i2
ID情報 : BXfphnn2SudbHe170S9/m/
参照先
>>23 ガウさん
堕ち姫ルーシア物語でしょうか?タイトルを伏せられると類推する事しかできません。
体験版だとなぜか2回定義されているようですが…製品版はどうでしょう?
いっその事「www/js/plugins/SetupOptionInvalid.js」の方で「'use strict';」後か即「return;」するとか。

実行ファイルがMV用ではなくオリジナルnwっぽく…--remote-debugging-portも効果がなさそう…?
待ち受けポートがない場合、リモートデバッグによる干渉は出来ないですね
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.25)
投稿日 : 2017/04/07(Fri) 21:43
投稿者 ガウ
ID情報 : iWNIuooBcDJs7MBYKndN8/
参照先
申し訳ない(>_<)

堕ち姫です

2回定義されてる場合はどの様に書かれているのでしょうか?

まだ出先なので帰り次第にでも一先ずもう一度plugins.jsを洗い直してみます
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.26)
投稿日 : 2017/04/08(Sat) 03:32
投稿者 七星◆MH.ms4.V3i2
ID情報 : BXfphnn2SudbHe170S9/m/
参照先 https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SetupOptionInvalid.js
>>25 ガウさん
体験版を見た限りですと、「www/js/plugins.js」の37行目と44行目で重複定義されていますね
ただプラグイン側で「if (!Utils.isNwjs())」となっていて機能してないようにも見受けられますが…
製品版で使われているのが参照先で配布されている物と同じかどうかも確認してみてください。

あるいは他のプラグインや独自のチェックが組み込まれてるのかもしれないですが…、
適当なMV実行ファイルにすり替えてリモートデバッグを使うのもアリかもしれません。
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.27)
投稿日 : 2017/04/08(Sat) 11:06
投稿者 ガウ
ID情報 : SswJvXANAc.2g7F9.unty1
参照先
すり替えるのは何を替えればいいのでしょうか?

「www/js/plugins.js」のプラグインの表記は50行前後なのに対して「www/js/plugins」フォルダ内のjsファイルが74…全部開いて検証してみるべきか…
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.28)
投稿日 : 2017/04/08(Sat) 12:01
投稿者 七星◆MH.ms4.V3i2
ID情報 : BXfphnn2SudbHe170S9/m/
参照先
>>27 ガウさん
適当なRPGツクールMVの(boxedでない)Game.exeをゲームフォルダに持ってきて、それを実行するということです。
基本構成は同じ筈ですので、依存していなければ問題なく動くと思います。「"toolbar": true,"height": 664,」等も有効に…
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.29)
投稿日 : 2017/04/08(Sat) 13:16
投稿者 ガウ
ID情報 : BOl.UG/tPgm0sGSI1DpjB.
参照先
ありがとうございます

夜にためしてみます

スクリプトの方は時間のあるときに今後のためにも色々試してみます
記事編集 編集
天結いキャッスルマイスター体験版 (No.30)
投稿日 : 2017/04/17(Mon) 01:46
投稿者 七星◆MH.ms4.V3i2
ID情報 : avY7ip41JN1Te5JnQrs0e1
参照先
改造SSGというよりもはや機能テスト的な。
memmove()+%-*sで桁揃えが捗るゥ。

No.0添付1のAGE.sslを同フォルダに配置する必要があります

修正:アイテムを微妙に小分けにしたり、装備のスキルや属性耐性を弄ったり
その他メモリ確保や処理を見直したりと、No.0添付1のAGE.sslも更新したので新SSG使用にはそちらも要更新

更に修正:獲得済みスキルを弄ったりなんだり、コードの最適化など。

※別々にダウンロードするのも何なので、サンプルとしてスレッドトップに同封しました
記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.31)
投稿日 : 2017/04/27(Thu) 04:31
投稿者 変態紳士◆G9/eqTtPaq.
ID情報 : 9M12DC5sPlOaTMiKj3t3D0
参照先
>>30 七星さん
お代官様のお好きなお菓子をお持ちしました。

記事編集 編集
Re: ARCGameEngine, RPGツクールMV, Unity 汎用 (No.32)
投稿日 : 2017/04/29(Sat) 16:48
投稿者 七星◆MH.ms4.V3i2
ID情報 : JtWREUO0JfssILUesRR3k/
参照先
>>31 変態紳士さん
ありがとうございます、新しい制御文も粗方実装が完了した感じでしょうか
関数も増え、複雑な式を書いても実によく動いています…誠にお疲れ様です
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine(エウシュリー), RPGツクールXP / VX / VX Ace + MV, Unity (No.33)
投稿日 : 2017/11/22(Wed) 01:44
投稿者 七星◆MH.ms4.V3i2
ID情報 : H/JWZdpve2emNqRE9yzuF0
参照先
何を血迷ったのかUnity向けツールの改修よりも
SSGの汎用化を推し進める習作として手を出した
RGSS向けSSGが煮詰まったので2番目のzipに同封しました

XPについてはゲームサンプルが不足している事もあったり
そもそもASTが深いのでデバッグメソッドの改竄は実装していません
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールXP / VX / VX Ace & MV, Unity (No.34)
投稿日 : 2017/11/25(Sat) 21:38
投稿者 七星◆MH.ms4.V3i2
ID情報 : H/JWZdpve2emNqRE9yzuF0
参照先
RGSS汎用SSGにおいてモジュールの特異メソッド列挙と変数を扱えるようにしました
といってもVX AceのBattleManagerやDataManagerくらいにしか使い道は無さそうです

それと書き忘れ…というより言及していませんがT_BIGNUM(多倍長整数)には対応していません
任意精度になるコレをSpoilerALからどう指定するかという問題もありますし
Rubyの実装仕様で1bit食われても、31bitあるT_FIXNUMの範囲を溢れるケースはそう無い…んじゃないカナ
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.35)
投稿日 : 2018/01/12(Fri) 00:31
投稿者 七星◆MH.ms4.V3i2
ID情報 : z9zL9z.rnFNg78a4Vj0T80
参照先
RGSS汎用SSGでプラグインを採用してUTF-8デコードやらクイックソートを実装しました
インスタンスの@nameやクラス名、シンボルやらも文字列としてフォーマットされます
とりわけゲームデータベースが把握しやすくなりました(そして便宜上undef指定は廃止されました

一部主要変数の改竄向けにショートカットも追加しましたが、
二刀流はスクリプト次第で如何様にも実装できるのでVX Ace未満には対応してません
VX Aceでは基本、装備スロットはGame_BaseItemですがアイテム等は想定されておらず
@classを参照することにしたので、装備済みスロットしか変更できません

プラグインソースも同封してありますが、暫定ということで未だ二次利用は想定していなひ…

2018/01/13
$RGSS_SCRIPTSのフォーマットとソース表示を実装しました※zal.dllプラグインも更新されています
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.36)
投稿日 : 2018/01/22(Mon) 13:02
投稿者  
ID情報 : vZzFKNdZ057FqwGM23PYe/
参照先
https://necocan-index.rick-addison.com/bbs/patio.cgi?read=4より移行して来ました。

>No.596
>スイッチ自体をメモリ操作しただけでは、キャッシュのようなモノが更新されず
>マップに反映されないのではないかと適当な想像

なるほど。
「ゲーム内スイッチ画面を開けた上で間違いなくそこからOnOff指定を行いました」的な
「画面反映更新フラグ待ち要素」なりが存在しているという事なのかもしれませんね。

ちなみにですが、SSG側で操作した後にゲーム内スイッチ画面を表示させる際
その表示項目にSSG側で操作した項目が含まれていなくとも
表示と同時に箱が未開封状態へと瞬時に更新された事から
とりあえず現状では

「SSG側で複数項目のOnOffを切り替えようとも、ゲーム内スイッチ画面を1回表示さえしてもらえれば、間違いなく指定したOnOffは全てデータとして即反映してあげるよ」

という状況である事が判明しました。

七星さんに今回作成頂いたスイッチSSG
https://necocan-index.rick-addison.com/bbs/upl/1516554590-1.ssg

これは素晴らしいという一言に尽きません。

例えばですが、もんぱらでは混沌の迷宮というダンジョンコンテンツにおいて
封印城エリアという「宝箱のみが1枚のマップ上に20個設置されているダンジョン」が存在するのですが

「これら20個の宝箱を全て開錠した後にSSG側で一括OFF(未開封状態)にし、ゲーム内スイッチ画面を1回表示する事で、瞬時に20個全てを未開封状態に戻せる」

なんて未来を想像出来たりします。
現時点では宝箱に対応した各スイッチを個別にチェックボックスを入れて対応していますが
それでも従来のゲーム内スイッチ画面操作の煩わしさから比べれば天地の差です。
この汎用スイッチSSGの効力もまた凄まじいですね。


それからNo.1にある2の汎用SSGを修正して頂けたとの事なので
こちらも動作確認して来ました。

結果から申しますと、$game_map.map_id選択時に無事右ウィンドウ内にリストが表示されました。
しかし残りですが

$game_actors
$game_variables
iv_tbl(zal.dllのアドレス57ADCF63でアドレス17CB2A90に書き込み違反、とエラー表示)
rb_global_tbl(zal.dllのアドレス57ADCF63でアドレス05A6B3A0に書き込み違反、とエラー表示)

の4項目に限っては相変わらず項目の隣に捕捉済の総数が計上されるのみでリストとして右ウィンドウ内は空欄のままです。
それ以外は総数の捕捉すら行われないようです。

また$game_switchesに限っては選択するとSpoilerそのものが停止します。

以上、報告となります。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.37)
投稿日 : 2018/01/22(Mon) 18:37
投稿者 七星◆MH.ms4.V3i2
ID情報 : z9zL9z.rnFNg78a4Vj0T80
参照先
>>36
お手数をお掛けします

その後、Aceのスクリプトソースを眺めてみましたが、案の定というか
スイッチ変更時のイベントハンドラにマップへの更新要求がありましたので
相当する処理($game_map.need_refresh = true)を組み込んでみました
(汎用SSGへはまた後日…修正パッチのアップデートに対する最適化など含め

>SSG側で一括OFF
この様な操作はダブルトグルならばリスト上で右クリックするとコンテクストメニューが出るので
汎用SSGだとShift(あるいはCtrl)+クリックやドラッグで範囲選択の後、一括操作も行えます
(ダブルトグルは内部でリスト生成が必要で、UTF-8→SJISの文字コード変換にプラグインが必須

しかしてその汎用SSGですが、修正パッチ version : 6.3 - 2018.01.22 以降もお使いでしょうか
件の現象が元々の不具合(結果としてプラグインへの引数が不正なものとなる)でしたが
一応、修正パッチに加え、添付したものもダウンロードし直して動作確認を行っているので
修正パッチも最新版である場合は手元で再現できない現象となり、些か対応は難しくなります
(タイトルやゲーム進行状況によって左右されるような組み方はしていない筈なので…

記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.38)
投稿日 : 2018/01/22(Mon) 20:41
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : dyZtQOYh6FhgEj3sK2aWY.
参照先
【RGSS汎用SSGについて】
使っている関数の性質上(?)SpoilerALの修正パッチの仕様に振り回されている感じが否めません。

吉里吉里解析ツールのように独自にC#あたりで(?)吉里吉里解析ツールのような木構造を軸としたツールを作ってみてはいかがでしょうか?
ほとんどの変数名が固定されているため、吉里吉里解析ツールよりは使いやすくなると考えています。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.39)
投稿日 : 2018/01/22(Mon) 22:24
投稿者  
ID情報 : vZzFKNdZ057FqwGM23PYe/
参照先
>>37
>汎用SSGだとShift(あるいはCtrl)+クリックやドラッグで範囲選択の後、一括操作も行えます

素晴らしすぎますね。これも確認します。

>汎用SSGですが、修正パッチ version : 6.3 - 2018.01.22 以降もお使いでしょうか

いえ、別スレで述べた通りVer6.3 2018.1.19のままです。


それにしても仕事が早くて頭があがりません。

早速>>37のSSGの確認も行ってきます。


>>38
お手数かけてしまい申し訳ありません、と同時に
対応ありがとうございました。これからもよろしくお願いします。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.40)
投稿日 : 2018/01/22(Mon) 22:25
投稿者 七星◆MH.ms4.V3i2
ID情報 : z9zL9z.rnFNg78a4Vj0T80
参照先
>>38 RICKさん
貴重なご意見ありがとうございます。ただ…SSGの不具合は実引数の評価バグに端を発するもので
修正パッチが更新といえども、プラグイン機構や関数呼び出しに仕様変更があった訳ではありません
(アップデートに対する最適化云々は自身で草案を組んだグローバル変数ローカル変数まわりです

また応急処置にしても、for文の式にカンマが使える様でしたが、私自身パーサに関しては浅学なので
これがC/C++よろしく順次評価演算子なのか、引数解析の副産物なのか、判断がついていませんでした
十分な確証を得ないままアドレスコーディングに記述していたので、とりあえず括っただけの物です


それはともあれ…単独アプリの開発に関しては、対象までのアドレスをどうSSGでコーディングするのかといった
記述サンプル的な側面もあるので(それにしては複雑でコメントも何も有りませんが)今のところは考えていません
SpoilerALにはツリーへ項目を追加して派生する動的実装は備えていないので、汎用としては難があるのも事実ですが…。
組み込みのRubyインタプリタにアタッチできるデバッガ等が存在すれば、車輪の再発明をせずとも利用できそうな気もします

Unityに対しては64bit対応問題などもあるので、過去に製作したmono用デスクライバの改良を検討しています(予定は未定
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.41)
投稿日 : 2018/01/22(Mon) 23:31
投稿者  
ID情報 : vZzFKNdZ057FqwGM23PYe/
参照先
>>40
>>37のSSGの確認をしてきました。

ゲーム内スイッチ画面を開く事無く
SSG側の操作した瞬間に箱の閉じる挙動が
アクティブwindouをSpoilerからGame.exeに移したと同時に
即マップ内にて反映された事を確認しました。

そしてもう1つですね、これは完全に私のゲーマー視点としての発見ですが
七星さんの汎用スイッチSSGにより実現で来てしまった事があるのでこれも報告します。

件のもんぱらにおける混沌の迷宮においては宝箱が4種類ありまして
赤・青・緑・銀、です。赤が一番レア度が低く、銀が最高レア度という仕様です。
銀箱から出る装備やアイテムは無論超レアor強力なものだけという事もあり
銀箱そのものにプレイヤーが遭遇する確率も相当低く設定されております。

つまり私が>>36にて述べた
「混沌の迷宮内の封印城エリア(箱20個中銀箱が5個もある超ボーナスエリアでこれも勿論遭遇率が低い)」
に遭遇したSSGプレイヤーは、スイッチ操作を駆使して何度も開けたいという衝動に駆られる訳です。

そこで、今回七星さんが修正にて対応実装して頂けた

>スイッチ変更時のイベントハンドラにマップへの更新要求がありましたので
>相当する処理($game_map.need_refresh = true)組み込んでみました

のおかげで「ゲーム内スイッチ画面を開く必要が無くなった事」を受けまして、ふと考えたんです。

(という事は?スイッチに付随する「値の固定」を、未開封状態であるOFFのままで固定した状態で開錠したらどうなる?)

結果はお察しの通りで

「開錠実行キーを連打出来る無限宝箱」

と化しました。
このもんぱら、というゲームはSSGユーザーでない限りはGを増やす為に
睡眠前にカジノにキャラを移動させ、スロットを開いた状態で一晩中自動実行させる為に
キーボード自動連打プログラムを使い、放置させたまま寝るというつわもの達が存在しています。

つまり七星さんのおかげで、まさに

「無限銀箱開錠自動連打環境が誕生した」

という事です。これ何気にといいますか、ツクール史上初の快挙だと私は思います。
どんな宝箱でも、Spoiler・汎用スイッチSSG・キーボード自動連打プログラムを用意し使うだけで
無限宝箱化するのですから。

貴方は英雄と呼ぶに相応しいです。
そしてRickさんにも感謝します。この場がなければ私はこうした感動的なSSGを頂く機会すら無かった事でしょう。

これからも引き続きこのスレッドの汎用SSGの検証に協力していきたいと思います。
ありがとうございます。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.42)
投稿日 : 2018/01/23(Tue) 04:48
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : fFpPtLQD.7MRRFpF/fJcp1
参照先
>>37 七星さん
>スイッチ変更時のイベントハンドラにマップへの更新要求がありましたので
>相当する処理($game_map.need_refresh = true)を組み込んでみました
こういう機能は私も知りませんでした。

>>41
大抵の宝箱はスイッチではなくセルフスイッチで管理される事が多いです。
セルフスイッチだとマップ切り替え後に同じマップが表示された場合、
アイテムが復活しない事象があるためその対策だと考えられますが、一応対応スクリプトはあるようです。

そういう意味ではもんぱらの混沌の迷宮の宝箱は特殊な分類といえるでしょう。

セルフスイッチはマップの数×マップ上のイベントの数×4ほどあるので実装する予定はないです。

【追記】
もんむすのSSGにも$game_map.need_refresh = trueと同等の機能をシステム関連に追加しておきました。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.43)
投稿日 : 2018/01/23(Tue) 06:35
投稿者 七星◆MH.ms4.V3i2
ID情報 : z9zL9z.rnFNg78a4Vj0T80
参照先
>>41
デバッグウィンドウと同等以上の効果が得られたようで何よりです
個人的にはツクールと聞くとコテコテのテンプレ感を抱くのですが(失礼
ネームバリューと作り込まれたゆえか前シリーズ並にヒットしたみたいですね

有志公開のスクリプトは知りませんでした。確かパッチスクリプトが露出していたように思うので
チェックサムをちょろまかしたパッチを自作した方が色々捗りそうですが…不作法カナ


>>42 RICKさん
このリフレッシュ要求フラグはXP世代から存在していて、VX Aceまで一貫して共通のようです
デバッグウィンドウからの働きかけは閉じる時に$game_map.refreshを直接コールしていたものが
Aceだとセルフスイッチ、スイッチ、変数のon_changeハンドラで設定する間接制御に代わっていました
(それ以外でもアクターとアイテムの増減時に設定している式が見受けられます

CRubyを紐解いてもツクール仕様には明るくないので、宝箱などの単独イベントオブジェクトは
セルフスイッチによる管理ではないのかなと些か疑問でしたが、そういう事情ですか
此奴は此奴で配列がキーのハッシュテーブルなので、それもまた厄介なところでしょうか
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.44)
投稿日 : 2018/03/07(Wed) 07:29
投稿者 七星◆MH.ms4.V3i2
ID情報 : YfqcAN4vkF098qIkTTgvA/
参照先 https://github.com/sceawung/source/wiki
計画しているしていると言いながら何時できるのだったUnity向けツールの改修が一段落しました
想定環境はSSE2が使える(NetBurst≒Pentium4以降の)CPUで動いているWindows XP以降です
(近代の64bit対応CPUなら問題ありません、また対象プロセスが64bitアーキテクチャでも対応します

もっとも追加した機能は既にSSGで実現できていた静的フィールドを持つクラスの列挙くらいのものですが
内部的な処理の実装としては大幅に変更を加えたので、実用に耐えうる安定性を獲得しました

CreateRemoteThreadで逐一ぶん投げていたものから、プロセス間通信用のスレッドを常駐、
monoスレッドとして振る舞わせ、例外発生時にローダーのデッドロックを回避する処理を入れました
これにより解析しようとしたアドレスが適切でなかったとしても対象がハングアップするような事態はなくなった筈です

とはいえ例外処理は相変わらずVEHによる実装で、SEHより早い段階でキャッチしてしまいますが
(Cライブラリはさておき)mono.dll自体は構造化例外処理をほぼ行っていないので、問題は顕在化しな…いでしょう
(SetUnhandledExceptionFilterはデバッガにアタッチされていると機能しませんし
 AddVectoredContinueHandlerがタイミング的には最適ですが
 ハンドラの戻り値に関わらず例外を再送する仕様ですし…
 RtlRestoreContextは64bitでしか使えませんし…RtlUnwindは使い方が解らんゾ

ちなみに対象と完全に同一の権限で実行する必要もなくなりました、同等以上の権限があればOKです


また先日スレッドトップの参照先も更新しましたが、SpoilerAL version : 6.3の概要を纏めました
動的スコープ変数はRGSS汎用SSGにでも組み込んでみてから記事を捏ねようと思っていましたが
スケジュール的にまた遅れそうなので、とりあえず私の提出した実装が意図する所をしたためました
ただ先見の明に乏しい事を自負しているので………互換性を失う仕様変更はされないと思いますが。
(オフセットを加算ではなく置き換え、更にはレキシカルな[replace]/[offset]も実装したいけど
 [define]に加え[scope]で必要性は低下している気もする…
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.45)
投稿日 : 2018/03/11(Sun) 20:50
投稿者 ユニコーン
ID情報 : cginJYCjMDDNa1cif5LBX/
参照先
バカで申し訳ありませんが、RPGツクールMVのお金だけでも変更出来る
汎用SSGってございませんでしょうか?理解出来ませんでした。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.46)
投稿日 : 2018/03/11(Sun) 22:18
投稿者 七星◆MH.ms4.V3i2
ID情報 : YfqcAN4vkF098qIkTTgvA/
参照先
>>45 ユニコーンさん
現状を端的に申し上げると、MV対応となるSSGは用意できておりません
やや語弊を生じますがコストパフォーマンスに見合わないという事で…

代替案として頭記事にある2番目のzipへセーブエディター(rpgsave\editor.hta)を同封しています
Game.exeから始め save\file1.rpgsave 等に保存される一般的な形式であれば使用できます
(MVの一般的なセーブファイルは、JSONと呼ばれる書式に従ったテキストが圧縮されたものです
 Loadから開いた後、CTRL+Fを押して所持金であれば「gold」等の英単語で検索するとすぐ見つかります

またゲーム実行中にリアルタイムで改造を行う場合、ゲームフォルダに「package.json」が存在すれば
メモ帳などで"www/index.html"という部分を"www/index.html?test"と加筆すればテストモードで起動します
この状態なら従来のようにCTRLキーで壁抜けしたり、F9キーでスイッチや変数を操作する画面を表示できます

そしてF8キーでDevToolsと通称されるデバッグツールが立ち上がります、操作にはJavaScriptの知識が必要ですが
No.17記載のようなパーティ変数を打ち込むだけでも中身が見れるので、エディタと同様の感覚で弄る事も可能です
$gamePlayer.reserveTransfer(MapID,X,Y)でマップ移動、$gameTemp.reserveCommonEvent(EvID)で任意イベント等も…

package.json」が露出していない場合は、ゲーム起動中セーブエディターの右上にある
ボタンを1,2回押して、検索ボックスにIPアドレス:ポートが入る様であれば
ボタンでテストフラグON、その右のボタンでDevToolsの起動が行えます

プラグイン等ゲーム側でテストモード阻止や、MV用Game.exeではない時など、小細工を要する場合もありますが
独自のセーブ形式には遭遇した事がないので、セーブ編集は何れのゲームでも一貫して行えると思います
(ブラウザ実行の場合ですとブラウザのローカルストレージ(主にSQLite)に保存されてしまいますが…

記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.47)
投稿日 : 2018/03/12(Mon) 14:11
投稿者 ユニコーン
ID情報 : cginJYCjMDDNa1cif5LBX/
参照先
七星◆MH.ms4.V3i2さん、ご指導いただきありがとうございました。
ぶじお金の改造が出来ました。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.48)
投稿日 : 2018/04/18(Wed) 01:37
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : DGBN9ALMQE89YRJ0hxyPB0
参照先
【SSGを投稿したり、ゲーム解析について語るスレ】のNo.101にあるツールでは、アイテムリストの自動生成に成功していますが、
下記のようにRGSSシリーズの各データベースの構造体の中から項目を選んで抽出し、CSV化するプログラムを作成することは可能でしょうか?
下記コードは【データベースとCSVの相互変換】を使って項目を選択して抽出する際に使用しているものです。


unless FileTest.exist?("Actors.csv")
actor=[:id,:name]
data=load_data("Data/Actors.rvdata").compact
CSV.save_data("Actors",data,actor)
end

unless FileTest.exist?("Classes.csv")
classes=[:id,:name]
data=load_data("Data/Classes.rvdata").compact
CSV.save_data("Classes",data,classes)
end

unless FileTest.exist?("Items.csv")
item=[:id,:name,:price,:note]
data=load_data("Data/Items.rvdata").compact
CSV.save_data("Items",data,item)
end

unless FileTest.exist?("Weapons.csv")
weapon=[:id,:name,:note]
data=load_data("Data/Weapons.rvdata").compact
CSV.save_data("Weapons", data, weapon)
end

unless FileTest.exist?("Armors.csv")
armor=[:id,:name,:kind,:note]
data=load_data("Data/Armors.rvdata").compact
CSV.save_data("Armors", data, armor)
end
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.49)
投稿日 : 2018/04/20(Fri) 16:36
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : AZ/QhEA3/MLwmZY5YWhYm/
参照先
rvdata解析した方が楽なんだけど(昔やったけど、ソース紛失)
メモリから読み込む利点あるのでしょうか?

飽きて放り投げたスクリプトなのでデータ構造ど忘れしてたり
適当なゲームが見つからなかったりでツラい

---
追記
意外とメモリ読み込みでも楽に出来ました。
rpg_export_csv.rb

ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
にて動作確認

再追記
rvdata読み込み思い出しました

RGSSはrubyなのでお手軽

bin = IO.binread 'Items.rvdata2'
items = []
begin
items = Marshal.load bin
rescue => ex
m = ex.message.chomp('::').match %r{undefined class/module (.*)$}
eval "class #{m[1]};end"
retry
end
items.each{|it| puts it.instance_variable_get :@name}
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.50)
投稿日 : 2018/04/21(Sat) 06:12
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : FnFVzWr6Ef/mLIXFiI3YC.
参照先
>>49 NEExploiTさん
最近「RPGツクールVXリーダー」や「RPG Maker Decrypter」が
使用できないゲームが増えてきて(Game.rgssXXが保護されれいる?)
リストの抽出もままらなかったため困っていました。
よって上記のプログラムは非常に助かります。
ご対応ありがとうございました。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.51)
投稿日 : 2018/04/23(Mon) 03:45
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : AZ/QhEA3/MLwmZY5YWhYm/
参照先
r*data+scriptの一部が偽装されてて面倒だった事は経験ありますが
rgss*dが展開できないというのは、ありえるのでしょうか・・・?

一応、apihook仕込むなりで可能なの…でしょうか?
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.52)
投稿日 : 2018/04/23(Mon) 06:26
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : 7kBfu97GxGYSZ.nwSLb7y0
参照先
>>No.51 NEExploiTさん
DLsiteで採用されているプロテクトで保護された作品が該当します。
Game.rgssXXが保護されいるようでアクセスそのものが弾かれます。

vxlib.rbについて
# 詳細はそのうち調べる
# symbol_table, global_vars
RGSS103J = RGSSSet.new 0x144514, 0x1452F0
#RGSS103J = RGSSSet.new 0x144534, 0x145310
RGSS104J = RGSSSet.new 0x1836BC, 0x184498
RGSS200J = RGSSSet.new 0x18A23C, 0x18B018
RGSS202J = RGSSSet.new 0x18A23C, 0x18B018
RGSS300 = RGSSSet.new 0x25a2ac, 0x2ac044, true
RGSS301 = RGSSSet.new 0x25a2ac, 0x2ac044, true

私は上記のように設定すると対応できました。
RGSS103J.dllには古いものと新しいものがあるようなので
[:(MName::RGSS103J.dll)+0x003BB6:]+0x019C30
で双方のglobal_varsに到達可能なようです。
symbol_tableはおそらく
[:(MName::RGSS103J.dll)+0x003BB6:]+0x018E54
だと思われます。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.53)
投稿日 : 2018/04/23(Mon) 09:41
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : AZ/QhEA3/MLwmZY5YWhYm/
参照先
あぁ、なるほどDRMですか
某電池だとデータファイルの先頭1byteを暗号化するみたいなのがあったような気もしますね

情報ありがとうございます
(どうせ、やろうと思えばini書き換えてDLL置換できるしなーとか思ってました)
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.54)
投稿日 : 2018/05/12(Sat) 18:05
投稿者 takumi
ID情報 : WkL8Wjv9OKaudJhQVJXcG1
参照先
2番目のzipセーブエディター
editor.htaをクリックしても有効なwin32アプリケーションではありませんと、エラーが出て使用できません
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールXP / VX / VX Ace) , Unity (No.55)
投稿日 : 2018/07/23(Mon) 23:13
投稿者 sceawung◆MH.ms4.V3i2
ID情報 : xa2Jwt8iuZDajonk3ndtc/
参照先
半ば私の実験場と化している代行パッチですが、一通り形になったので
新文法を使用してRGSS汎用SSGを組み直してみました。暫定版なのと
諸問題があるのでスレッドトップではなく参照先に添付してあります


3 * 2 ? 1 : 0」が間接参照、「$var++ ? 1 : 0」が前置になる不具合も見つけましたが
挙動変化を含め、パーサ自体に手を入れるのは荷が重いので放置してあります

ただ遅延展開は万能という訳ではなく、名称検索が一度展開されるまで使えません
また現状では毎回展開し直すので、閉じた後に検索して開くと位置がずれます
この実装仕様により開き直す時に値の固定も解除します(項目が作り直されるため

(作り直さないなら遅延展開はともかく動的生成の意義が薄れますし…
 遅延展開前から既に存在している項目の維持くらいはしても良いかもしれない?

それと浅慮だったのが[repeat]の開始値と終了値には不正な値の概念がないことです
自身の案で符号付きループが導入されたましたが、終了値0自体は6.1でも不正という程に非ず
増加値が0というのは有り得ないですが…後ろから解釈する訳にも…現状はNO_ERRORに限定しています
これにより此処だけシビアな評価になります(ヌルポが起きても評価は続行されるが、遅延展開は中止される)が
しくじって意図しないループ条件になるよりはマシかと。それとスコープ変数の疑似ロールバックを廃止しました
当時はトランザクション!!とか戯けて実装しましたが、ALでは実用上むしろ邪魔になりそうなので…


あとはSSG固有の問題ですが、インスタンスアドレスではなくインスタンス参照を格納するアドレスを保持していますが
しかしインスタンスや変数の再割当によって?格納アドレスも移動する模様。その際はツリーを開き直して下さい

P.S. 統一性の観点から名前をgithubに合わせました


>>54 takumiさん
ものっそい亀レスですが十中八九、環境問題と思われるので
.htaが正しくHTMLアプリケーションホストに関連付けられているか確認してみてください
また.htaを.htmなどとして一般ブラウザで実行する方法もあります
記事編集 編集
封緘のグラセスタ 体験版 (No.56)
投稿日 : 2018/10/21(Sun) 01:21
投稿者 sceawung◆MH.ms4.V3i2
ID情報 : qep7YSMwo.InghyMBE3gg1
参照先 https://dev.azure.com/SpoilerAL/b1994a7a-8882-40d3-bb41-8f34be1b434e/_build/latest?definitionId=12
※空行での[funnel]強制を修正するため最新のパッチ↑導入が必須

基本的には同じなれどコンパイル具合が様変わりした上
アイテム管理がスロット式なので面倒。暫定的な試作

適当な敵数が見当たらず…(倒すと減ってしまう

10/24 アイテムをサクっと追加できる様に
12/02 追加習得LV
12/03 メモリ使用量の微減、上昇不可スキルを修正から無効化へ

表示−現在値の描写が有効ならSSG作者モードを推奨

記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.57)
投稿日 : 2018/11/14(Wed) 12:42
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : Bs/azhcDO0qmMx0fn6pbo.
参照先
【改造依頼】セックス&ヴァーデンリッテのスレッドで、
nwjsのバージョンを当てているようですが、どのようにすればnwjsのバージョンを確認できるのでしょうか?
方法を教えていただけら幸いです。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.58)
投稿日 : 2018/11/25(Sun) 19:29
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : iwTZFROorDymNEouiHAUj0
参照先
MV用セーブエディタを改造?というよりはlorcaに移植してみた。
Google Chromeがインストールしてある環境ならばexeクリックで動くはず

http://firestorage.jp/download/4d119f86c9f148c78f2026cc1053bde59fa71d82
ダウンロードパスワード z06zq2cr
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.59)
投稿日 : 2018/11/28(Wed) 06:30
投稿者 名無し
ID情報 : LhhcyDmOpnzgdosFdJhY1.
参照先
※簡単かつ的確な>>57の確認方法が>>61で示されたのでここに書いた内容を削除しました。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.60)
投稿日 : 2018/11/28(Wed) 07:09
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : af1I1ZgUQZVC6drnsyC8R.
参照先
>>No.59 名無しさん
やはりタイムスタンプであたりをつける以外なさそうですか。

私は最近MVのゲームをプレイするようになりましたが、
NW.pakがある場合はスレッドトップにあるツールでDevToolを起動、
そうでない場合はlocalesフォルダと拡張子が*.bin *.dat *.dll *.pakのファイルを
適当なバージョンのNW.jsのSDK版に置換してからプレイしています。(F12でDevToolが起動)

実際、NW.pakがない場合、
現状0.30.X以前のバージョンではプロフィールエラーが発生し、
0.32.X以降では音源関係の警告が出る(DevTool上で)場合があります。
なので、大抵の場合0.31.5を導入しています(←ふりーむのマルチデプロイメントのやつとか)。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.61)
投稿日 : 2018/11/28(Wed) 08:02
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : iwTZFROorDymNEouiHAUj0
参照先
nw.dllを「process.versions['node-webkit']」で文字列検索
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.62)
投稿日 : 2018/11/28(Wed) 08:13
投稿者 RICK@管理人◆PIflJPH.oeY
ID情報 : af1I1ZgUQZVC6drnsyC8R.
参照先
>>No.61 NEExploiTさん
ご指摘の方法でNW.jsのバージョンを確認することができました。
ふりーむのマルチデプロイメントのやつは相当古いのが使用されているのですね。

P.S.
No.58のツールですが、△ボタンでポートスキャンがうまくいかない事象が発生しました。
「話しかけたら打ち上がるRPG」のふりーむのWindows版にNW.jsの0.31.5を適用した場合に発生します。
スレッドトップのhta版では上手く動作しました。(127.0.0.1:2684にアクセス)
とりあえず報告しておきます。
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.63)
投稿日 : 2018/11/28(Wed) 23:57
投稿者 sceawung◆MH.ms4.V3i2
ID情報 : ku2G7d8e7Y47AnNIdTZCn.
参照先
病によりくたばっていましたで候

ぶっちゃけpackage.json読み込み阻止やらブランクページにも右下へ一通り表示されます
API仕様など諸々はNW.js本元のWikiなりDocumentationをご覧になった方が宜しいかと

ポートスキャンはActiveX経由ゆえに仕様…ではなく自身を拾いそうな感じ
1.6以降や本家NW.jsでリモートデバッグ無効かつ無梱包が増えてきたので気にする程でもないか…ナ


ちなみにプロフィールエラーは%LOCALAPPDATA%\KADOKAWA\RPGMV\User Data\Default\Web Dataを共有する所為なので
本家版の場合はpackage.jsonにchromium-argsキーを追加し--user-data-dir='User Data'とかローカル保存が良いカモ

(MV用1.6未満は一様に古く場所が違うので無問題だが、後々は--profile-directoryなりでバージョン別に分けた方が?
記事編集 編集
Re: 汎用 【改造投稿】 ARCGameEngine (e.g.エウシュリー), RPGツクールMV & RGSS (RPGツクールVXAce / VX / XP) , Unity (No.64)
投稿日 : 2018/11/29(Thu) 20:52
投稿者 NEExploiT◆Li46agv7Gxg
ID情報 : iwTZFROorDymNEouiHAUj0
参照先
>>62,63
ありがとうございます。

せっかく独自APIを仕込んでやれるので
ポートスキャンよりもnw.dllをロードしているかで判定した方がいいかもしれませんね
(とは言いつつも需要について懐疑的なので多分やらない)
記事編集 編集
件名 スレッドをトップへソート
名前
メールアドレス
URL
ファイル添付


暗証キー
画像認証 (右画像の数字を入力) 投稿キー
コメント

- WEB PATIO -