記事一覧

【モンスター墓標 第1回】仕様を考える

ファイル 532-1.jpg

今回はちょっとだけ息抜きで、オリジナルの「モンスター墓標」を実装してみます。
MVPモンスターを倒したときに、討伐時間と討伐した人の名前が記される墓が建てられる、
という本家にあるシステムですが、あまり仕様を知らない状態でオリジナルで実装してみます。

簡単に実装方法を考えてみました。
 ・モンスターを倒した座標に一時的なNPCを生成できるようにする。
 ・倒したモンスターが時間経過で再出現したときに一時的なNPCを削除する。
 ・モンスター出現スクリプト(npc_monster_prtfild.txtなど)に生成するNPCを指定できるように拡張する。(duplicate指定)
 ・討伐時間、討伐者の情報は(仕方なく)ソース内でNPC依存変数を操作して渡す。

ミソは「モンスター出現スクリプトの解析時に一時的に生成するNPCスクリプトを解析させる」でしょうか。
このタイミングで解析させてしまえば、あとはNPCの座標をモンスターを倒した座標で更新させ、有効/無効を切り替えてしまえばすんなり行けてしまう気がします。

大体形はイメージできてきたので、あまり引っ張らずに次回あたりでソース公開といきます。

コメント一覧

akayu (09/24 21:26) 編集・削除

いつも楽しく拝見させていただいております。
好きなところにNPCを配置できるとなるといろいろ面白そうです。

インポートファイル小技

さてさて、前回紹介したインポートファイル。
今日はそのインポートファイルを使って、MAPを削る方法をご紹介しまーす♪

ここで紹介したいのが、「clear」コマンド。
==========================================
map: clear
==========================================
と「import/map_conf.txt」に1行を追加すると、
何と!それまでに読み込んだMAPを「無かったこと」にします。

「clear」の次の行からは正常に読み込んでいくので、
例として、
==========================================
map: map1.gat
map: map2.gat
map: clear
map: map3.gat
map: map4.gat
==========================================
と書くと、「map1.gat」「map2.gat」は無視されて、
「map3.gat」「map4.gat」は普通に読み込みされます。

もう1つのミソとして、Aurigaを起動したときの読み込み順序は、
confファイルを読み込んだ『後に』インポートファイルを読み込んでいくので、
インポートファイルの1行目に「clear」コマンドを使うと、confファイルのMAP読み込みが『全て無視』されます!



ここまで説明しちゃえば、カンの良い方はお気付きでしょう。
インポートファイルだけでMAPを削りたい場合は、
 ①「import/map_conf.txt」ファイルの1行目に「map: clear」を書く。
 ②「import/map_conf.txt」ファイルの2行目以降から、『使いたいマップ』の定義を書く。
となります。

②の『使いたいマップ』がいっぱいあったりして、かなり強引な気もしますが(汗)、
confファイルから定義をコピーすればさほど苦じゃない!…ハズ。



ちなみに、NPCを削りたいときも同じ考えです。
インポートファイルに↓をエイッ!とするだけです。
==========================================
npc: clear
==========================================
先頭が「npc:」となっているものだけ無視するので、MAP読み込みには影響ありません、ご安心を~♪

コメント一覧

プニル (09/04 08:44) 編集・削除

clearコマンド初めて知りました。
いつもは読み込ませないマップとかNPCがあれば
コメントアウトしていましたが、
場合によっては使えるかもしれませんね。

むらさき (09/04 10:27) 編集・削除

// でコメントアウトしてますた^^;

Xia (09/05 12:41) 編集・削除

そうなんですよねェ。
直にコメントアウトしたほうが早いし、確実ですよね……
(私も仕組みを知るまでは直で削ってました;)

それぞれ使いやすい方法がありますし、「こんなのがあったんだ!」とお伝えできただけでもうれしいです♪

>プニルさん
なんと、clearコマンドはDBにも使えることが分かりましたので、次回書いてみますねー!

インポートファイルの使い方

Auriga/conf/importにあるテキストファイル。
最初は中身がカラッポなんだけど、実はいろいろと便利な子です。

カンタンに説明しちゃえば、
confファイルとは別のファイルで、追加で設定を読み込ませるファイル
です。

たとえば「import/map_conf.txt」に
==========================================
map: mid_camp.gat
map: mid_campin.gat
map: man_fild01.gat
map: man_fild03.gat
map: spl_fild02.gat
map: spl_fild03.gat
==========================================
を追加すれば、異世界マップが読み込まれます。

……それだけだとconfファイルに追加すればいいじゃん!と思う人もいるでしょう。
いえいえ。インポートファイルが真の実力を発揮するのはパッチアップのときなのです!!

confファイルにオリジナルNPCなどの読み込み定義をしていると、
Aurigaを単純パッチアップしたときに、上書きされて定義が消えちゃった!ということに成りかねません。
それに比べて、インポートファイルは基本的にパッチ対象外のファイルなので、上書きされる心配がありません!(な、なるほど)

基本的にオリジナルのマップ、NPC読み込み、battleconfの変更などは、
インポートファイルに書き込んでいって、どこかにコピーで退避しておくと運営しやすくなるんじゃないかなー
Aurigaのスナップショットから再構築したい、というときにも便利かも♪



さて、ここまでは基本的な使い方の説明です。しょーじき小技でもな〜んでもないです。。

使っているうちに「MAPをデフォルトから削りたいのに、インポートファイルだと追加しかできないじゃん!」と不便に感じるかもです。
そ・こ・で!ここからが小技の本番!
「インポートファイルだけでMAPやNPC定義を削る方法」の紹介を……
は、また次回!

マップキャッシュ

Auriga起動時、「マップの読み込みに時間がかかるな~」と思う人、
マップキャッシュ機能を使ってますか?
「何それ?」という方!寄っておいで見ておいでー、
この記事を見れば幸せになれるかもしれません♪

マップキャッシュ機能を使うと、マップ読み込みが高速化されます。
使い方は簡単!
Auriga/conf/map_auriga.conf
↑のファイルのなかに、下の設定箇所があります。

==========================================
// マップキャッシュの使用
// 0 : 使用しない 1 : 非圧縮で保存 2 : 圧縮して保存
// 圧縮すると1MB程に縮まるようです。
// 全てのマップがキャッシュ内にあれば、grf を読み込まなくても起動できます。
read_map_from_cache: 0
==========================================
↑を「1」か「2」に設定。それだけです!
この設定後、Aurigaを起動するとAurigaフォルダ直下に
「map.info」というファイルが作成されます。
次回Aurigaを起動するとき、このファイルをgrfファイルの代わりに読み込んで高速化する、という仕組みみたいです♪

■どれだけ早くなるの?■
Aurigaの起動で、マップの読み込み時間を実際に計測してみました☆

「0:使用しない」の場合
22750ms(23秒ぐらい…)

「1:非圧縮で保存」の場合
485ms(0.5秒ぐらい!すごい!)

「2:圧縮して保存」の場合
1032ms(1秒ぐらい!)

※注意!「map.info」が作られる2回目以降の起動時間で計測
しょぼ~いPCで計測したので、実際にはもっと早いかも♪

■非圧縮と圧縮の違いって?■
↑の計測結果から、非圧縮の方が早くなるみたい。
だけど、キャッシュデータの「map.info」のサイズが大きくて、
非圧縮で58,592KB、圧縮すると1,700KBでサイズが軽くなるの。
速度重視の非圧縮か、ファイルが軽い圧縮のどちらが良いのかはお好みで、かな??

■gatを新しくしたけど、反映されない!■
キャッシュデータは「それまで読み込んでなかったgatは蓄積する」んだけど、
それまで同じ名前のgatファイルを更新した場合、キャッシュデータに新しいものが反映されないみたい。
その場合は、思い切って「map.info」を削除しちゃおう。
だいじょ~ぶ、Auriga起動時にもういっかい作成されるからね!



ちょっとだけ検証したいというとき、よくAurigaを起動するのが多い人はオススメ!
マップキャッシュなんて知らないって人も、試してみてね。便利だよ♪

コメント一覧

通りすがらない (08/08 17:17) 編集・削除

こういう基本的なことからやっていくのは良いですね。思わぬテクニックが隠れてそうですw
日記のネタに詰まったら、日常のなんてこと無いことでも書くといいのかも…?当たり前だと思ってても意外と反響があったり。オススメの寝相とか。

シア (08/09 01:08) 編集・削除

ええっ!?これって基本的なことだったの!?
ふぇぇ、ひとりで盛り上がってるみたいで恥ずかしいなー(=_=;)
でも!まだまだ未熟者なので初歩的なことから書いていきますね!基本大事!

日記ネタはいろいろと試行錯誤しているだけで、そのうち暴走しますのでよろしく!
ちなみに、好きな寝相は、ブリッジかなー。

ノマド (08/09 21:36) 編集・削除

恥ずかしながら,シアさんの記事で初めて知りました.
いつもマップの読み込み遅いなーっとブツブツ言っていたのに
1の非圧縮で保存を試した見たところ,余所見した隙に全ての読み込みが終わってて唖然としましたw

基本的なことからやっていただけると,すごくうれしいです.
これからも楽しみにしてますー(-m-*)

むらさき (08/09 23:43) 編集・削除

ペン3とかの時代に設定したけど、体感遅かったんで
そのあたりは最近触ってないな。
デバイス新しく新しくなってるし効果あるのかな?
今度試してみよう。

通りすがりなんだってばっ! (08/10 09:14) 編集・削除

知らなかった・・・orz。
毎晩立ち上げている私としてはうれしい情報です。
ありがとうございます。

シア (08/10 20:07) 編集・削除

みなさま
コメントありがとです♪
中にはお役にたてたみたいで、こういうコメント頂けると、
「書いてよかったー!」と実感します(*^_^*)

これからも役にたつか、役立たずか、分からないことを書いていきますね!

【BOTシステム 第1回】説明と仕様考案

ファイル 520-1.jpg

Aurigaにオリジナル要素を追加しようとすると、大抵はアイテム、モンスター、MAP、NPC・・・
どれもDBの追記やクライアント側のファイル追加、すなわち外部ファイルに対してのオリジナルばかりで、
Auriga自体に手を加える人は少ない傾向にあると感じています。

影響の範囲などを考慮すると、その理由も頷けるのですが、
もっとAurigaはこんなことも出来るんだぞー!とアピールすべく、
今回はオリジナル第3弾として「BOTシステム」を実装しようと思います。



タイトルだけ聞くと「は?」と感じられますが、
クライアント側でパケットを自動で送出してPCを制御する一般的なBOTクライアントの事ではなく、
Auriga(サーバー側)でPCに似せたキャラクターを自動制御させるBOTシステムです。
具体的にはオフライン状態でも疑似PCがマップ内をうろつき、狩りの邪魔をしてきたり、
設定次第では辻支援をしてきたりするようになります。

迷惑行為でトラブルの元になりかねない要素ですが、
プレイヤー共通の「敵」をサーバー側で用意してあげるのも、遊びの幅が広がるんじゃないかなぁ、と。

▼仕様を考えてみる

コメント一覧

通りすがり (03/03 23:09) 編集・削除

Koreの改造&配布してたぼくとしては
BOTの一番の悩みどころが、街から狩場へのルート移動時で如何に人間らしく移動させるか、というのが一番の悩みでしたよ。
単純に壁との距離(重み)を計算するのも大事でしたが、人間は他PCとすれ違う時相手キャラの移動先を瞬時に予測して避けて通ったりするのでそういうのの再現とか、
相手がMOBなら移動先の中間位置を予測し移動し殴ったりとか(それやらないと、移動先まで行ってまた戻って殴るとか変な動きを・・・)
あとは、縦置きFWを使うBOTも作ろうとしてましたが挫折した記憶が・・・(トオイメ

Akayumi (03/08 17:22) 編集・削除

これすごい面白そうです。
最近の3Dゲームとかだと、町MAPを出てすぐのところに
ガードマンみたいな、モンスターを倒して町に寄り付かせない兵隊とかがいると思うんですが、ラグナロクでは実装できなかったですが、このシステムがあれば、自動で町をまもってくれる兵隊さんもできそうですね。

siong (03/09 00:19) 編集・削除

β時代にいた3連BOTとか再現できたら楽しそうですね。

sak (06/28 12:30) 編集・削除

人がいなくて活気付けようと以前挑戦して挫折しました。
取ってきたアイテムをNPC露店とかと連動できれば
町が活気付きそう。

Auriga最新版とローカルの差分

ファイル 514-1.jpg
↑ 放置の結果

だ、誰かタイムマシン譲ってください。。

コメント一覧

(01/23 12:34) 編集・削除

「悪いなのび太、このマシンは一人乗りなんだ。」
と冗談はさておき、三次職の実装お疲れさまでした。

Blaze (01/23 22:46) 編集・削除

>三次職の実装お疲れさまでした。
ありがとうございます。

・・・と言っても、今回のパッチは定義だけなので
まだまだ全体の1割程度ですorz

プニル (01/24 09:13) 編集・削除

実装お疲れ様です。
まだ沢山することがあるでしょうが、
頑張ってください。
続きの実装を楽しみにしています。

chokoko69 (02/06 17:46) 編集・削除

3次職実装お疲れ様です。
修正箇所が多く大変だと思いますが、頑張って頂きたいです。

>3次職が落ち着いたら異世界クエストあたりも実装する予定なので、その際に御披露目できると思います。

バンザーイ∩(≧∇≦)∩ クエストリストの実装 楽しみにしております。

Auriga-0803-0804

Auriga-0803
泣き虫のミハイル、ババヤガの魔術クエスト実装
Auriga-0804
運命のカラスクエスト実装
-
大型パッチ前の在庫品セール中です。
なんと今回8ヶ月ぶりのパッチでした。

ファイルのタイムスタンプ見れば今年4月26日の年代物。
動作確認した覚えがないんだけど、だ、大丈夫だろうか(==

妙にモスコビアのクエスト調査に時間がかかった事だけは覚えてます。
最高でも6キャラ分の調査が必要、さらにランダム性の高いクエストなので
イワノフさんから船の修理代を何度もせがまれて涙目になってきたのはいい思い出です。

-
さてさて、在庫品セールはまだまだ続きます。
3次職実装も近々お披露目できそうなので、お楽しみに。

コメント一覧

chokoko69 (11/17 12:58) 編集・削除

お久しぶりです。インスタントアイテムなどのオリジナル機能実装でお世話になりましたchokoko69です。
いよいよAurigaにも正式に3次職実装される日が来るわけですね~♪楽しみです~♪
Auriga Forumでのクエストリスト実装案アンケートがあったので、自分の中では
クエストリスト実装→オリスクリプト作成で試行錯誤しながら3次職実装を待つ
的な流れを妄想してたので、先に3次職がくるとは想像してませんでした^^;
クエストリストの進捗状況が気になりますが、まずは、
予告されている3次職実装を楽しみにしてます^^
応援しかできませんが無理しない程度に開発に勤しんでください。
それでは、日々のAuriga開発に携わっている方々にこの場をかりて、ありがとう!!

Blaze (11/18 19:05) 編集・削除

クエストリストはシステム自体は出来ているんですけど、
同時実装しようとしていたNPCのエイドさんのイメチェンが激しいので、完全にタイミングを逃しました。。

3次職が落ち着いたら異世界クエストあたりも実装する予定なので、その際に御披露目できると思います。

さくっと3-2次職スキル

なんとか前回↓の3-1次職スキル予告から数ヶ月、一通り着手できました。
http://www.usamimi.info/~blaze/cgi-bin/diarypro/diary.cgi?no=496

というわけでこれからの新予告。おサボりだと思われるといけないので(略)
ファイル 505-1.jpg
ファイル 505-2.jpg
ファイル 505-3.jpg
ファイル 505-4.jpg
ファイル 505-5.jpg
ファイル 505-6.jpg
ファイル 505-7.jpg
ファイル 505-8.jpg

一応やる気は見せてるつもりですが、予定は未定。

Auriga-0534

最近Aurigaから離れすぎて浦島状態なので
今後の活動に役立てようと過去のパッチの思い出を振り返ってみます。

ということで、約2年前のAuriga初パッチ(0534)から。
・・・振り返りすぎとか言わない!

----------------------------------------
//0534 [2008/09/20] by Blaze

・パーティーの接続人数を返すスクリプト関数「getonlinepartymember」を追加
(script.c, script_ref.txt)

・魔王モロクNPC追加・モロクNPCの変更
(npc_town_morocc.txt)

・魔王モロクで変更されたNPCを対応
(npc_misc_inn.txt, npc_misc_board.txt, npc_misc_refine.txt,
npc_misc_zonda.txt, npc_quest_cooking.txt, npc_quest_ice.txt)

・魔王モロク追加マップの読み込み定義を追加
(map_auriga.conf)

・魔王モロク追加マップのマップフラグ設定を追加
(mapflag.txt)

・魔王モロク追加マップのモンスター出現情報を追加
(npc_monster_mocfild.txt)

・魔王モロク追加マップのワープ定義を追加・修正
(npc_warp_fild.txt, npc_warp_dun.txt, npc_warp_town.txt)

----------------------------------------

いわゆる魔王モロクパッチです。
AthenaとAurigaを梯子していた時代ですが、
Aurigaに完全移行の意も込めて、jROで実装されたばかりの魔王モロクを取り込んでみました。
とは言いつつもクエストが1種しかない、スクリプト関数に不具合ありと出鼻を挫く結果となってしまいましたが(==

ファイル 501-1.jpg

実は本当に苦労したのは魔王モロクアップデートで廃止されるダンデリオン依頼クエストの実装です。
Athenaでコツコツ実装していたのですが、かなり時間のかかったこと・・・
全26職業毎にメッセージが変わるNPC、2つのクエスト分岐and成功/失敗パターン、5人以上いないと登れないタナトスタワーでのパズル攻略、たまに起こるモロク襲撃イベント、etc...
このクエスト実装だけに1年くらい費やしたかもしれませんorz

ファイル 501-2.jpg

Aurigaでは0509にてCocoaさんがマージされていますが、
その直後、この0534パッチにて思い切って削除しています。。
我が子を捨て去るようで辛かったなぁorz
今となっては体験する機会も少ないと思いますが、
体験された事がある方は、この存在を少しでも思い出してみてください。あの頃の苦労が報われます。。

・・・と、いろんな意味で思い切ったパッチ、これからのAurigaを開発するうえで良い意思表現になった初パッチでした。

ちらっと3次職スキル

おサボりと思われるといけないので、たまには真面目な開発記も書いてみます(==

色々手を付けているのですが、中でも公開できそうなのは3次職のスキル実装でしょうか。
ちらっと状況を分かりやすく画像だけ載せてみます。

ファイル 496-1.jpg
ファイル 496-2.jpg
ファイル 496-3.jpg
ファイル 496-4.jpg
ファイル 496-5.jpg
ファイル 496-6.jpg
ファイル 496-7.jpg
ファイル 496-8.jpg
ファイル 496-9.jpg
日記の仕様上、画像9枚しか載せれませんでしたが、他にもぼちぼち。

色々と情報を集めているものの、やはり未判明部分が多く、ほぼ手抜き状態です。
スキル追加は簡単な方なので、箱だけ用意して後に有志の方が手直ししてくれることを祈りつつ・・・
気長にやることとします。

コメント一覧

どらごん (09/22 08:16) 編集・削除

おぉぉw
正式にAurigaに3次スキル実装するんですか!?
今独自でAurigaに実装中なのですが、
蔵が対応してないのかエフェクトが表示されないのが多々・・・w
Forumの方で3次スキルの話題をしていいものか微妙な感じなので、
少しだけでも正式実装されると盛り上がってくると思います!!

ruri (09/22 11:34) 編集・削除

はじめまして。
EAのほうで少しなら情報手に入りますよー。
デバッグな感じですがw