igun 説明書

igun について

某MMORPGに関連したツールです。*.gnd をbmp にコンバートしたりとか、現実味の無いオリジナルマップを作成したりとか、無駄な機能が多いです。某所*3(Athena , deufeufeu様 , 65様 全てGPLになってます)からソースを流用しまくって、足りない部分を某氏(迷惑がかからないように匿名にさせて頂きます)のソースを参考に自力で書いた手抜き代物なので、期待のしすぎは良くないですよ〜♪でも、細かいフォーマット解析、バグの修正等は自力でやる羽目になりましたが。

自ら率先して高度なマップを作成しながら、詳細なファイルの仕様を分析してくれて、おまけに実用的なアイディアを提供してくれたマップデザイナーの神に、この場を借りて感謝を申し上げます。その他、#WEMUの皆さん、テストに協力頂きありがとうございました。

バグ報告などの連絡事項は、http://usamimi.info/~aboon/までお願いします。無鉄砲な要望(3Dオブジェクト配置、効果音の配置、GUI 他)については、無条件で却下するつもりですが、何か?また、今後共同開発に移行するような状況になれば、そちらに参加させて頂くかもしれません。

導入方法

ご察しください。操作が直感で分からない人は、プログラムを使うのを諦めた方が賢明だと思いますよ〜。

ファイル構成一覧

igun.exe      : bcc32 でコンパイルしたバイナリ
bcc_make.bat  : bcc32 でコンパイルするためのバッチファイル
bcc_clean.bat : bcc32 でコンパイルしたゴミを消すバッチファイル
zlib.dll      : grfio.c で使うdll
conf/*        : データファイル等
src/*         : ソースファイル一式

コマンド操作方法

オプションは、コマンドの前に指定したものだけが有効になります。[expr] に * ? を使用した場合、検索対象(grf を読み込んだ場合は、resnametable.txt に指定されたエイリアスを除くgrf 内部のファイル。読み込まない場合はカレントフォルダにあるファイル。)の中から、[expr]にマッチしたもの全てに対して処理を行います。詳細な機能説明は割愛させて頂きます。

Usage: igun [command] [option] [files]

Commands:
    -map   [expr]    : *.ppj をマップファイルにコンバート
    -gnd   [expr]    : *.gnd をビットマップに変換
    -check [expr]    : *.gnd , *.gat , *.rsw の検査
    -spr   [expr]    : *.spr をビットマップに変換
    -info  [expr]    : *.grf 内にあるファイルの情報を表示
    -act   [expr]    : *.act をavi に変換コンバート(暫定)
    -rsw   [expr]    : *.rsw の編集
    -ppj   [expr]    : *.ppj をエキスパート仕様に変換
    -client          : デバッグ用クライアント起動

Options:
    -grf [file]       : 指定されたgrf ファイルを読み込む。
    -limit [count]    : ファイルを先頭の[count] 個だけ処理する。
    -depth [count]    : 出力ビットマップを16/24/32 bpiにする。標準:16

    -gnd のみ有効
        -size [SIZE]  : 1マスをsize x size ドットで出力。標準:16
        -angle        : 角度情報の出力
        -grid         : マスの区切りの追加

    -info のみ有効
        -md5          : ファイルのmd5 を計算する

    -check のみ有効
        -extra        : ファイルの詳細情報を表示する(デバッグ用)

使用例

igun -grf data.grf -gnd pro*.gnd
igun -grf data.grf -md5 -info *

おまけ機能

igun -depth (16 or 24 or 32) -spr hogehoge.bmp

と打つと、ビットマップのビット数を(8 or 24) -> (16 or 24 or 32) の間で変換できます。この手のツールが余り少ないので、場合によっては重宝するかもしれません。

主要な機能覧

オリジナルマップ作成

gmap.htmlにまとめてあります。

偽クライアント機能

とりあえず出来ること一覧。あまりにもしょぼいけど、飽きてきたので保留。緊急で何かあれば連絡してください。

  1. 発言(通常、パーティ、ギルド、耳打ち)
  2. 移動(指定したオブジェクト近くに移動、座標指定、方向指定)
  3. スキル使用(対象が座標の場合、操作キャラの近くに発動)
  4. パーティ関連(加入要請送信、要請の返信、離脱)
  5. ギルド関連(加入要請送信、要請の返信、離脱)
  6. アイテム交換(交換要請送信、要請への返信、OK自動押し、Trade自動押し)
  7. その他基本動作(攻撃、NPC 会話、座る / 立つ)

自動操作(BOT) について

開発者専用(w)と言われる程機能しょぼしょぼなのは仕様です、たぶん。追加要望等あれば、思考が複雑にならない限り追加するかもしれません。

自動移動 : 指定したキャラクターの後を追いかけます
自動支援 : 自分やパーティメンバーに、次のスキルを使用します。
           優先度は上ほど大きくて、下に行くほど小さくなります。
           ヒール(HPが70% 以下)
           リザレクション(キャラ死亡時)
           マグニフィカート(タイマー付き)
           速度増加(タイマー付き)
           ブレッシング(タイマー付き)
           エンジェラス(タイマー付き)
           イムポシティオマヌス(タイマー付き・操作キャラを除く)
自動ターンアンデット : エンシェントマミーにターンアンデット発射
自動ヒールボム       : 銃奇兵にヒール発射
自動攻撃             : モンスターを発見し次第攻撃

変更履歴など

igun

05/05/29 v0.12 by End_of_exam

・Unicode に対応
・Platinum 1.68fの読み込みに対応
・Platinum 1.60fのサポートを停止
・Kisa Yanashimoさん作のマップ作成マニュアルを添付
・その他細かい修正をたくさん(IO周辺の構造変更など)

05/03/25 v0.11 by End_of_exam

・英語化に向けて色々更新
・Platinum 1.60fの読み込みに対応
・Platinum 1.60f用の出力プラグインを同伴
  gmap.dllをPlatinumのplugins フォルダに突っ込み、igun.exe と zlib.dll を
  テクスチャーと同じフォルダに入れてください。その後、メニューからエクスポート。

 ★出力ファイル(ppj) がRIFF規格から少しずれている件

  あの神級ソフトを制作されている作者様の事だから、出力フォーマットにも
  それなりのこだわりがあると勝手に判断し、こっそりと報告しておきました。
  先ほど作者様から返信があり、次バージョンの修正予定に含まるらしいです。
  ppj のフォーマットが変更になる可能性があるので、注意してください。

・vram.cのαブレンド処理のバグを修正
・ディレクトリをUnicode で作成する機能を追加

05/03/19 v0.10 by End_of_exam

・エキスパートモードで鉛直手前方向のテクスチャーの位置が狂うバグを修正
  (thanks to kisaragiさん、gnd の仕様解析が不十分だったのが原因)
・エキスパートモードの解説のミスを修正

最近の大量のバグ発覚は、急いでigunを公開した弊害だったりもします。
当然まともなテストをする時間も消えてしまったし、人柱様にテストして頂く
時間さえも奪われてしましました。他にもバグが沢山あると思われる未完成な
代物ですが、きちんとした(初心者のミスと判断されない)バグ報告があれば、
修正するつもりです。ちなみに、要望に関しては某R氏の事件依頼お察s(ry

05/03/14 v0.09 by End_of_exam

・縦横のサイズが違うマップ変換で縮小マップが正しく出力されないバグを修正

05/03/01 v0.08 by End_of_exam

・rsw エディタのオブジェクト複製を使用すると、保存時に末端のオブジェクトが消えるバグを修正

05/02/28 v0.07 by End_of_exam

・一般公開に合わせてreadme他修正

05/02/28 v0.06 by End_of_exam

・エキスパート仕様変換の高さ2倍処理撤廃

05/02/28 v0.05 by End_of_exam

・gat 変換がおかしかったのを修正

05/02/28 v0.04 by End_of_exam

・通常仕様のマップをエキスパート仕様に変換する機能を追加

05/02/28 v0.03 by End_of_exam

・grfio 関連の整理
・rsw 出力ルーチンのパラメータを変更
・gnd 出力ルーチンが腐っていたのを修正
・縮小版マップの画質を向上させ、通過色を反映させる
・最上段のチップをカットするオプションのバグを修正
・エキスパートモードの追加(expert.ppj を参考に自力で解析してください。)
・vramコピールーチンで、正方形以外の転送をした時に落ちるバグを修正

05/01/20 v0.02 by End_of_exam

・209KB 7546行
・ppj 変換にオプションを追加
・rsw 編集機能を追加(余りテストしてないのでバグ入りかも)

05/01/07 v0.01 by End_of_exam

・183KB 6759行
・gnd 変換が正常に機能しないバグを修正

05/01/01 v0.00 by End_of_exam

・183KB 6759行
・gmap , botを統合してigun(胃癌)に改名
・誠意制作中なのでバグが多すぎるかもしれません

(igun v0.04からの改良点)

・act 変換(暫定)の追加
・ワイルドカードに対応させる
・出力するビットマップを16,24,32ビットから選べるようにする

 以下バグ修正。いくら何でもバグ修正が多すぎる気が。
 ワイルドカード対応でテストが楽になったので大量のバグが出てきましたとさ。

・サイズが0のvramが作成できたバグを修正
・gnd ルーチンがメモリリークしていたバグを修正
・spr 変換でRLE 圧縮の長さを見逃していたのを修正
・spr 変換のメモリリークを2カ所(!!)修正
・vram_copy でto_sizex , to_sizey が逆になっていたのを修正
・24ビットbmp 出力ルーチンのpadding ミスを修正

(bot v0.06 からの改良点)

・自動ターンアンデットのルーチンを修正

gmap

04/12/21 v0.04 by End_of_exam

・46.8KB 1812行
・256 色ビットマップが正常に読み込めないバグを修正
・*.spr を*.bmp に変換する機能を追加(RLE 圧縮はプロテクトに入らない気が…)
・*.grf のファイル一覧を表示する機能を追加(md5 計算も可)
・幅が奇数のビットマップを書き込むと、横に1ドットゴミができるバグを修正

04/12/13 v0.03 by End_of_exam

・某氏だけに限定配布したバージョン。
・gnd -> bmp 変換を修正

1.prt_in 他のマップを変換中に強制終了するバグを修正
 (縦横のサイズ比が違う90度回転の縮小拡大ルーチンのバグを修正)
2.セルが指定されていない所を黒く塗りつぶすようにした。

04/12/03 v0.02 by End_of_exam

・41.8KB 1610行(前のバージョンからほとんど増えて無い気が…)
・rsm 出力ルーチンが4バイトのゴミを出力していたバグを修正
・高さを設定可能にする。テストマップに立体感を出してみる。
・ファイルチェック機能の追加

04/11/29 v0.01 by End_of_exam

・39.2KB 1563行
・マップコンバート機能の追加、gndview に改名。
・某所で限定公開。使い心地のレポートとかバグ報告とか色々募集してみる。

gndview

04/11/24 v0.01 by End_of_exam

・17.4KB 659行
・初公開

bcc32 の悪魔が出てきて、デバッグにかなりの時間を費やす羽目に。

	BITMAPFILEHEADER *bmp_file = hogehoge;
	if(bmp_file->bfType != 'MB') {

ifが VC++ だと成立して、bcc32 だと不成立になる模様_| ̄|○。
値を直に書くか、memcmp()使うしか確実な方法は無いのでしょうかね。
grfio.c のwarning が気になる人は各自で修正してくださいませ。

04/11/19

・某所より*.gnd のフォーマットを発見。制作を始める。

bot

04/11/20 v0.06 by End_of_exam

・116KB 4244行(ついに4000行突破。出来る事が少ないのは糞ソースの証!)
・ステータスを表示できるようにする
 ASPDの計算式を適当に設定したので間違っている可能性大。200-(chara.st.aspd+5)/10
・キャラ死亡処理、リスタート処理の追加
・BOT の処理間隔を1.1秒から0.8秒にする
・距離計算ルーチンが間違っていたのを修正
・自動支援のタイマー間隔が110%になっていた問題を修正
・自動移動をBOT と思われないようにカモフラージュしてみる
・攻撃やスキル使用で射程外の時は移動した後行動するようにする
・NPC を選択したときに、パーティとギルドが表示される場合があるのを修正

04/11/16 v0.05 by End_of_exam

・105KB 3892行
・座標指定移動、方向指定移動の導入
・Wis の名前入力欄に自動で名前を入れるようにする
・今後の拡張のため、スキル一覧をタブ表示にしてみる
・コンパイラをbcc32 に変更

某A氏より要望があった戯言モードですが、個人的な理由から不採用となりました。
たとえば、プリ4体でパーティ組んで自動支援、自動ターンアンデットを有効にした後、

> globalmessage("@monster エンシェントマミー エンシェントマミー 10");
> wait(20)

という内容を繰り返すだけで、寝放置うまうま育成が出来るのは仕様です、たぶん。
つーか、@item, @monster, @refineとか権限大きすぎて、GM仲間とそれ以外の間で
明かな格差が生じているみたいですが、どうにかなりませんかね?>某鯖管理人様

Anyway, people say "the more stretching GMs' authority the higher his/her 
motivation for administrating servers" and I think it's vicious circle toward 
unsuccessful economy system. 

こんな滅茶苦茶な英作文しかできないので、海外行って修行したい気分なのは秘密です。

04/11/12 v0.04 by End_of_exam

・102KB 3784行
・リソースの整理
・タブを使用して切り替えを簡単にする
・メッセージが消去できないバグを修正
・フォーム関連処理をform.c/form.h にまとめる
・デバッグウィンドウを自動的に閉じるようにする
・NPC 選択時にコンテンツメニューが出ないバグを修正
・NPC 会話に仮対応
・テレポート、ワープポータルの場所選択に対応
・セルに使用するスキルを使う時に、場所をローテーションさせる
・ログイン時のキャラクターセレクトで、職業とレベルを表示させる
・cmd_say.cpp をcommand.c に統合する

04/11/10 v0.03 by End_of_exam

・95.9KB 3546行
・座れるようにした

04/11/10 v0.02 by End_of_exam

・94.2KB 3498行
・攻撃を出来るようにする
・BOT に自動攻撃の追加(手抜き処理大杉
・ログイン終了時にデバッグ情報を隠すように変更
・インターフェイスの大幅な改良(右クリックでメニュー他)
・移動座標がずれるバグを修正(long2pos()のポカミス)
・複数パスワードを入れると、ログイン時に選択できるように
・その他色々(忘れたりもするw

(ここから下の履歴は詳しくないです)

04/11/09 v0.01 by End_of_exam

・86.7KB 3212行
・BOT (自動ヒールボム)の追加
・制作に疲れたので某所で限定公開

04/11/08 v???? by End_of_exam

・83.7KB 3084行
・メッセージ一覧、取引処理の追加
・BOT (自動ターンアンデッド)の追加
・全体を汚すぎて吐き気がするC++ から、スパゲティ仕様のC 言語に書き換え

04/11/06 v???? by End_of_exam

・75.0KB 2602行
・移動の追加。
・パーティ、ギルドの処理の追加。
・BOT (自動移動、自動支援)の追加。
・その他色々追加して、BOT として何とか動かせるようにする

04/11/05 v???? by End_of_exam

・42.0KB 1481行 + α
・ログイン、スキル使用、全体発言だけのバージョン。

(この辺りの履歴は消滅)

04/11/02 v???? by End_of_exam

・制作開始

モンスター大量召還して撲滅させる実験用の軽いクライアントが欲しかったのと、
プリを操るBOT でも制作すればソロでもうまうま狩りができると考えた悪魔は、
前途多難な道を歩み始めることを決意したのであったとさ(って、既に終わってる?

某参考書と英語版MSDNを頼りに、たった1つのモードレスダイアログを作成するのに
何時間もかかるというWindows プログラミング超初心者に、この道は通れるのか。
成功の鍵は、全て制作者の気力にかかっていると言っても良いこの馬鹿げた挑戦は、
果たして成功するのだろうか。続報を(マテ