FANDOM


Scripters_cafeログ


08/04/19 編集

ビューアのソースをビルドする際に特定の定数を有効にして、多少の変更を加えることで、スクリプトの保存時にバイトコードのニーモニックをファイルとして保存することができました。


実際の変更箇所などは別途GOTTiのブログに一旦まとめたいと思います。


以下のようなデフォルトのスクリプトをそのまま保存すると、

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}

次のようなテキストが出力されました。

Function Args: 
Local List: 
Function Args: i
Local List: 
STATES
default:
EVENTS
state_entry()
PUSHE
PUSHBP
PUSHARGI 0
PUSHARGS "Hello, Avatar!"
PUSHARGE 0
PUSHSP
PUSHARGI 8
ADD integer, integer
POPBP
CALLLID llSay, 23
POPBP
RETURN

touch_start( integer $BP + 0 [total_number] )
PUSHE
PUSHBP
PUSHARGI 0
PUSHARGS "Touched."
PUSHARGE 0
PUSHSP
PUSHARGI 8
ADD integer, integer
POPBP
CALLLID llSay, 23
POPBP
POPRETURN


ここに現れるニーモニックについては、以下を参考にしてください。


実は今までも、ビューアのソースをコンパイルすることなく、スクリプトのコンパイル後に一時的にキャッシュフォルダに作成される LSO ファイル(バイナリです)の中身を見ることで、どのようなバイトコードになっているのかを解析することはある程度可能でした。

ですが、(よほどの修行を積んだ人でもない限り)バイナリのコードを見るよりもニーモニックを見る方が圧倒的に楽でしょうから、このような出力が得られるのはスクリプト作成者にとって有益だと思います。


ただ、いくつかのスクリプトで試したところ、ニーモニック出力時にビューアがクラッシュしてしまう場合があるようです。

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。

FANDOMでも見てみる

おまかせWiki