« MemoPeta & CapMail バージョンアップ | メイン | 日本語仕様のYouTubeガジェット見つけた ~こんなガジェット見つけましたその2~ »

UserAction Extension でオレオレスクリプトのススメ (2) このエントリーをはてなブックマークに追加

みなさん、ドラクエ 4 、やってますか?
謎の人です。こんにちわ。好きな AI は「ガンガンいこうぜ」ですよ。

前回、UserAction を記述するひとつの選択肢として Perl を提案させて頂きましたが、それ以降
「やっぱり画面周りは JavaScript で書きたいよね」
「せっかく作ったんだから、たまには公開したいかも」
という内なる声に悩まされ、眠れない毎日です。

目に触れる部分は JavaScript で記述して、JavaScript では難しいことを Perl でやって、気軽に公開/配布できればモア・ハッピー?

というわけで、本日はちょっと強引な合わせ技を。

以下、簡単な手順。

  1. ActivePerl をインストール
  2. PAR をインストール
    
     ppm install PAR
    
  3. PAR 付属のコマンド「pp」を使って Perl スクリプトを exe 化する
    
     pp --gui -o hogehoge.exe hogehoge.pl
    
  4. plugin/scripts に、js ファイルと exe ファイルを設置
  5. Sleipnir オプション >> ユーザインタフェースでメニューやマウスジェスチャに追加

最大の難関は、PAR のインストール。ややこしい話になるので詳細割愛させて頂きますが、みなさん苦労されているようですので、つまずいた方は検索してみてください。
それを乗り越えれば、後は簡単です。

  • メリット
    • Perl と JavaScript 、それぞれの得意分野で開発できます
    • 利用するだけであれば、ActivePerl 不要。ScriptEngine.ini の書き換えも不要
  • デメリット
    • exe のファイルサイズが巨大になります。。。2MB とか 3MB とか
    • 実行時、最初だけ少し時間がかかります
    • スクリプトによっては、exe 化できないものもあるようです

こんな事もできるよ、ということで、今回も最後に動作サンプルを掲載します。ご参考までに。

技術的な文章は難しいですね。次回はドラクエ 4 のレビュー。。。は叱られるので、UserAction Extension のシメとして、何か役立つ情報をご提供できれば、と思っていますよ。

ありがとうございました。

sample.js


String.prototype.escapeHTML = function() {
return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;').replace(/\'/g, '&#39;');
};

function getJsonValue() {
var json = new Object;
try {
var s = new ActiveXObject("Sleipnir.API");
var progPath = s.AppPath+'..\\plugins\\scripts';
var program = progPath+'\\sample.exe';

var w = sleipnir.CreateObject("WScript.Shell");
var stdout = w.Exec('"'+program+'"').StdOut;
var string = stdout.ReadAll();

json = eval('('+string+')');
}
catch(e) {
json.ERROR = e.number;
}

return json;
}

function somethingToDo(json) {
var str = '';
for ( key in json )
str += key.escapeHTML()+' : '+json[key].escapeHTML()+"\n";
alert(str);
}

var json = getJsonValue();
if ( json.ERROR )
alert('error: ' + json.ERROR);
else
somethingToDo(json);

sample.pl


#!perl
use strict;
use warnings;

print '{"name":"Nazo", "age":"Nazo"}';

exit;

トラックバック

このエントリーのトラックバックURL:
http://www.fenrir.co.jp/blog/mt-tb.cgi/118

コメント (2)

domo:

ドラクエ4はファミコン版でやりました。名作です。しかしリメイク版は便利・易しいという印象があります。ファミコン版のドラクエ2をやってみなさいっていいたいです。今のようなセーブポイントで簡単安心ポンじゃないんですから…。復活の呪文をメモしなきゃいけないんだから!しかも必ず復活できるとは限らないし…。

謎の人:

謎の人です。こんにちわ。

domo さんへ。
ドラクエ 2 、私の中では「ベストストーリー オブ ドラクエ」です。
復活の呪文に涙したり、
橋を渡った途端、理不尽に強くなるモンスターたち。
メタルスライムを初めて倒したときのうれしさ。
社会の厳しさと優しさを教えてもらった気がします。

ありがとうございました。

コメントを投稿

このコメント欄でのご質問、ご要望には、開発チームから回答できない場合があります。
ご質問、ご要望は「User Community」内の該当するフォーラム、または「Sleipnir | サポート」までお越しください。






あわせて読みたい

Sleipnir ユーザーリング

Sleipnir People
Sleipnir People

はてなブックマーク

フィードメーター - Developer's Blog
Feed 一覧 | お問い合わせ | プライバシーポリシー | サイトマップ
Copyright © 2006-2010 Fenrir Inc. All Rights Reserved