記事一覧

Auriga-1104:タコ洞窟に行ってみました♪

Auriga-1104で実装されました「暴窟王の洞窟」のレポートを書いてみます♪

「暴窟王の洞窟」は通称タコ洞窟やタコDと呼ばれるメモリアルDです。
本鯖の実装時は経験値がおいしく、メモリアルDのクールタイムも無くて大賑わいなマップでした。
その後、規制やRR化を経て経験値が見直しされてクールタイムも約1週間に延び、今では過疎マップと化してます(;;

そんなタコ洞窟ですが、マラン島のダンジョン「星明りの珊瑚礁」から行くことができます。
ファイル 562-1.jpg
珊瑚礁マップの北の方にいる「ヒトデ」にパーティーを組んだ状態で話しかけます。
このヒトデ、小さくて見つけづらいので注意><
パーティーリーダーが「洞窟に入りたい」を選択すると、メモリアルDが作成されます。

ファイル 562-2.jpg
メモリアルDが作成できたら、ヒトデのすぐ上にある「不思議な通路」からタコ洞窟に入ることが出来ます。
この入口も見つけにくい><

ファイル 562-3.jpg
タコ洞窟に入ったらいきなり歓迎のメッセージが!
最初のマップにはワープポイントが5つあって、
北西・北東・南西・南東にそれぞれ攻略するタコ部屋に繋がっていて、どこからでも良いので1つずつ攻略していくことになります。
南のワープポイントはは珊瑚礁への出口です。
最終的にはこのマップの北にワープポイントが追加されて、ボス部屋へ行くことが出来ますが、この時点ではまだ閉ざされています。

ファイル 562-4.jpg
タコ部屋の先には子分タコの群れが!
この子はHPが高くて倒すのに時間がかかります・・・
倒さなくても先に進めるので無視するのもOKですが、数が多くてすぐ囲まれてしまうので注意!
部屋の途中にはトラップがあって、子分タコが奇襲してきたりイカが混ざってきたりと面白いですw

ファイル 562-5.jpg
部屋の奥には目的のタコの足が!
この子を倒すことでその部屋はクリアとなります。
一度だけ子分タコを大量に召喚してくるので殲滅しつつ、チクチクとやってしまいましょう。
ただし、スキルによってSPが一気に吸い取られてしまうので注意!
攻撃射程が短いので、遠距離でチクチクやってしまえばノーダメージ撃破もできちゃいます!
でも、やっぱりHPが高くてタフい・・・

ファイル 562-6.jpg
4つの部屋それぞれのタコ足を倒したら、最初のマップの北にボス部屋への入口が!
その部屋の中にはタコ洞窟のボス「頭領タコ」がいます。
とにかく耳にタコが出来るくらいよく喋る子!タコだけに。
この子は取り巻きが居なくて、足も遅いので逃げ回りつつ遠距離攻撃するなり、足止めしつつ攻撃することで簡単に倒せちゃいます。
でもガチでやるとWBが痛い><
水服を着ていてもあっという間に死んでしまいます・・・

ファイル 562-7.jpg
ということで今回体験してきたタコ洞窟、面白かったです!
長すぎるメモリアルDのクールタイムもDBを弄れば変えられるみたいなので、
みなさんもお気軽に行ってみてはいかがでしょうか?
以上、シアからのタコ洞窟レポでした~♪

コメント一覧

ラブドール (10/15 18:32) 編集・削除

各種類ラブドール正規品通販ショップ
jess-dollは製造元とライセンス契約を結んで販売している正規品です。
TPEドールだけでなく、高級なシリコンドールも販売しております。
リアルドール、アニメ系ドール等様々なスタイルも含んでいます。
品質、安全性、アフターサービス、郷帰りサービス全ての面で御安心して御購入頂けます。

ラブドール www.jess-doll.com
リアルドール www.jess-doll.com/Category-c263562.html
高級ダッチワイフ www.jess-doll.com/Category-c176786.html
セックス人形 www.jess-doll.com/Category-c263561.html
セックスドール www.jess-doll.com/Category-c167789.html

スーパーコピー時計 代金引換 (12/10 21:55) 編集・削除

スーパーコピー時計代引き対応を提供するTopTokei優良店では超低価格で同一の高品質・高級感を手に入れることは可能にします。
www.toptokei.com/ スーパーコピー時計代引き

やっと><


けっきょく、Blazeさんに泣きついて、
Aurigaのサーバー立ち上げを手伝ってもらいました。
むしろ、丸投げでやって頂きました……;;

おかげさまでキャラ接続までいかないのは無事解決!
ログインできたので、いろいろ見て回りました!

昔に比べると、新要素が増えてました。
R化ができるみたいですし、ETがあったり、アルベルタが変わってたり!
でも、まだGHの新ダンジョンがなかったり、異世界が狭かったり、
ROと比べると気になるところがありました。
これから実装されていくのかなー??

ともかく、これでスクリプトが作って動かせるようになったので、すスクリプト作成にチャレンジしていきたいと思います!

コメント一覧

refis (07/20 23:46) 編集・削除

Xiaさんが新しい要素の調査を手伝ってくださると聞いて(違
期待して待っています~♪

るかはむ (07/21 02:47) 編集・削除

久しぶりに構築するとエラー戦争になりますよねー
私もつい先日その状態だったのでお気持ちはわかります

>>refisさん
公式フォーラムではお世話になりました
ありがとうございます!

Xia (07/22 08:46) 編集・削除

To:refisさん
はわわ、あのrefisさんからコメントが!?
こんな私なんてまだまだお役にたてれそうにもないです;;
応援してます、開発ガンバってください!

To:るかはむさん
ですよねー、構築までにエラー戦争に巻き込まれてました……
時間が経っていると、いろいろ変わっていて浦島太郎からなかなか抜けられませんでした><

りふぁれんす


Aurigaを改造するならスクリプトから、と言われまして、
スクリプト書きのお供、script_refと睨めっこちゅうです。
色々勉強になることも書かれていまして、
2000円もしたプログラミングの本よりも役にたつのでは!?

スクリプト命令を見ていると、面白そうなのがいーっぱいですね!
たとえば見た目を変えるsetloockとか、
音楽を演奏するmusiceffectとか、
ギルメンで共有できる倉庫を開くguildopenstorageとか、
マップフラグで花火とか桜吹雪とかも降らせることができるなんて、
あんなことやこんなことがやりたい放題じゃないですか!

うーん、夢が広がりますね!
早速スクリプトを書いてみたい!……の前に、
オフラインサーバー立ち上げなきゃ><

コメント一覧

Gee (07/14 22:29) 編集・削除

ある程度仕組みが理解できたら
色々な用途のオリジンNPCも作れるので楽しいですよね。
去年まであれだけscript書くのが苦手だったのが
今になってもっとやるべきだったと後悔w

Xia (07/16 20:18) 編集・削除

To:Geeさん
コメントありがとうございます!

色々作れると楽しくなりますよね!
シアはまだまだ仕組みが理解できてないので、手探りで「動くかなー?」程度ですが、
それでも自分が作ったものがゲームで動いてると、愛着があるので嬉しくなります><

R化後のEXPテーブルについて

R化後の大きな要素として、経験値の10分の1化があります。
成長曲線は変わりませんが、膨大な経験値のオーバーフロー対策に、
取得EXPから10分の1にするという困り者の変更です。

何が困るかというと、まずはクエストEXPの見直し。
これはgetexpの値を内部で10分の1にしても良いですか、
低レベルPCの1桁台がサポート不可になるのと、地味に取得EXPの見直しが入ってるクエストがあるので、
PreかReかの判定専用の関数を用意し、分岐する方針で対応します。

次の困り者は、モンスターの取得EXPの総見直し。
これはEXPのみならず、ステータスも同時に修正しないといけないため、
MobDBとのにらみ合いが必須となります。。
こつこつ修正中ですが、終わりが見えない長い旅路となっています。。

最後の壁は、PreとReの相互サポート。
PreからReに乗り換えた際に現在のEXPを10分の1にする、またはその逆も然りで、
これはcharデータにReフラグを追加し、Pre時代のキャラはEXP変換する、で実現予定です。

と、色々課題がありますが、気長にやっていきます。。

Auriga-0967:メモリアルダンジョン実装準備

//0967 [2012/06/17] by Blaze

・メモリアルダンジョン実装準備
 -> メモリアルダンジョン用ソース追加(memorial.*, map.c, map.dsp, map_sql.dsp)
 -> スクリプト命令・関数のIFのみ追加(script.c, doc/script_ref.txt)
 ※処理内容は未実装です
  mdcreate命令:メモリアルダンジョンの生成を要求します
  mddelete命令:メモリアルダンジョンの削除を要求します
  mdenter関数:メモリアルダンジョンへの入場を要求し、処理結果を返します
  getmdmapname関数:複製されたMAP名称を返します
  getmdnpcname関数:複製されたNPC名称を返します
 -> メモリアルダンジョン用DB追加(db/memorial_db.txt, doc/db_ref.txt)
・エンドレスタワーNPC実装(script/npc/memorial/npc_memorial_tower.txt)
 ※システム実装まではNPC読み込み対象外にしています。
・エンドレスタワー関連マップのマップフラグ追加(script/mapflag/mapflag.txt, script/mapflag/mapflag_memorial.txt, conf/map_auriga.conf)
・エンドレスタワー関連MOBのデータ一部修正(db/mob_db.txt, db/mob_skill_db.txt)
・パケット0x2c2「引数付きmsgstringtable表示」を実装(clif.*)
・announceが表示されない不具合対策で使用パケットを0x40cから0x1c3に暫定変更(clif.c)
Thanks Akayumi さん
==================

「実装準備」って便利だなぁと思う今日この頃。
「これから実装するぞ~!」と予告にもなりますし、準備って言ったからにはやり遂げなければ、と自分への言い付けにもなります。

という事で、お次のステップはお待ちかね(?)の「メモリアルダンジョン」です。
色々と課題が山積み状態ですが、コツコツと実装していきます。

今回はスクリプトから実装の形を取りました。
本来ならば内部処理を先に、外向けのIFは最後に実装という形なんでしょうが、
メモリアルダンジョンのスクリプトはこんな感じに書くんだ、とサンプル的な意味合いも込めて、先行しての実装となっています。
オリジナル要素を考慮する際、「メモリアルダンジョンで何かできないかな」という場合の材料にして頂ければ幸いです。

ファイル 542-1.jpg
そして影に隠れつつもエンドレスタワーNPCの実装。
実はMAP複製は機能しませんが、そのまま体験できるように実装しています。
1度進行したらサーバー再起動しか初期化できない内容となっていますが、雰囲気などを味わいたい方はお試ししてみてはいかがでしょうか。

コメント一覧

通りすがる (12/08 00:41) 編集・削除

開発お疲れ様です!
本家でも量産されているインスタンス機能ですね!
早くも12月になりますが、とても楽しみにしております!(正座
頑張ってください><9

P.S.
最近、本家ではdisguise機能?を応用した装備品が出てくるようになりました。是非こちらもアイテムボーナス機能に組み込んで頂けると嬉しく思います!(勝手にこの場で要望してしまって申し訳ありませんorz

テッテーッテー (12/29 21:06) 編集・削除

 〈\      /〉
 <_ \    / _>
  ヽー\__/ー/
`<⌒ヽ__ノヽ_ノ>
< oo((●))((●))oo
∠⌒ヽ /⌒`´⌒ヽ
<⌒ <L____ノ>
<⌒ヽ ||VVVV
/ ̄O ||_ヽ_)|  <来年はお呼びでない?
LLLと)_ヾ∧∧∧∧
    \二二二ノ

【マルチドロップ】復活!複数ドロップ

ファイル 541-1.jpg

この記事この記事でAthenaに実装していた複数ドロップ。
約5年の月日を経て、Auriga用に再編・改定したソースを公開しました!
こちらからどうぞ。

5年前、Athena開発で最初で最後のオリジナル要素でアップした、ある意味記憶から消したいパッチです。
駄作と思いきや、結構要望の声を頂いてましたので、Auriga用に復活させてみました。

今回の改変版ではシンプルに「ドロップ判定回数」の設定としています。
既存ドロップ倍率を計算したあと、ループでn回ドロップ判定させる処理としており、
例として基本5%、ドロップ倍率10倍、ドロップ判定回数10回の場合、
 「5% × 10倍 = 50% × 判定10回」個分のドロップとなります。
単純に判定回数だけでもドロップ倍率に影響するため、回数が多いほど多くドロップするとお考えください。

処理内容をシンプルにしたため、ソース差分もシンプルです。
confの設定で簡単に調整もできるようにしており、ドロップ倍率との設定次第で、
製薬材料集めが楽しくなったり、カードが2枚以上出てきてラッキー気分を味わえたり、
色々と楽しめる内容だと思いますので気軽にお試しください。

コメント一覧

nue (05/28 02:14) 編集・削除

あれはBlazeさんの追加コードだったんですね!
どこかで拾ったAthenaから差分取ってずっと愛用させていただいていました。
今更ですけど、ありがとうございます。

Auriga-0957:精霊いろいろ

・精霊システム仮実装その2
-> ソーサラースキル「エレメンタルコントロール」による精霊のモードチェンジ実装(elem.*, skill.c)
   ※攻撃モードの自動攻撃AIは未実装です。
-> 精霊がスキルを使用できるように(elem.*, skill.h, clif.c)
   ※ソーサラースキル「エレメンタルコントロール」Lv2,3、「エレメンタルアクション」使用時に精霊がスキル発動します。
-> 精霊スキルと状態異常を一部実装(db/skill_db.txt, db/skill_cast_db.txt, db/skill_unit_db.txt, db/scdata_db.txt, skill.*, status.*, battle.c, pc.c)
-> 待機モード中のみ自然回復するように変更(elem.c)
※精霊の処理が安定化するまで、skill_dbから精霊召喚スキルの定義を無効にしています。
・ソーサラースキル「サモン***」の精霊召喚時間が長かったのを修正(skill.c)
・ソーサラースキル「エレメンタルシンパシー」による精霊のMaxSP増加値が多かったのを修正(elem.c)
・ソーサラースキル「エレメンタルシンパシー」の効果を召喚直後にも反映するように修正(elem.c)
・ソーサラーのスキルツリーで「エレメンタルコントロール」のMaxLvを3→4に修正(db/skill_tree.txt)
・NPC終了処理にBL_ELEMに対する処理が漏れていたのを追加(npc.c)
・状態異常の最大登録数「MAX_STATUSCHANGE」を600→650に引き上げ(common/mmo.h)
=================================

ソーサラーの精霊スキルの名称って長いなぁ・・・

以前からちまちまとパッチあげていたのでお気づきの人も多いでしょうが、
精霊システム実装に向けて色々と変更パッチをあげています。
精霊は当分見送りする予定だったのですが、
要望が多いみたいなので急遽入れ込んでみました。

挙動不審なうちは召喚スキルを使わせないようにガードをかけていますが、
以下を「db/addon/skill_db_add.txt」に追記するだけで一応体験可能にしてあります。
=================================
2457,0,6,4,3,1,3,1,yes,0,0,0,magic,0 //SO_SUMMON_AGNI#サモンアグニ#
2458,0,6,4,1,1,3,1,yes,0,0,0,magic,0 //SO_SUMMON_AQUA#サモンアクア#
2459,0,6,4,4,1,3,1,yes,0,0,0,magic,0 //SO_SUMMON_VENTUS#サモンベントス#
2460,0,6,4,2,1,3,1,yes,0,0,0,magic,0 //SO_SUMMON_TERA#サモンテラ#
=================================
情報が少ない状態での仮実装ですので、挙動がおかしいなどの情報があれば教えていただきたいです。

ファイル 540-1.jpg

今回見送った攻撃モード時の精霊AIですが、開発自体は進んでいます。
が、現状はターゲット策敵あたりで精霊の動きが暴走している状態なので、
ちゃんと挙動を治したうえで、皆さんにお披露目とさせて頂きます。

Auriga-0945:傭兵パッチ

・傭兵データ構造の見直し(common/mmo.h, map.h, merc.*, clif.c, status.c, skill.c)
-> BaseLvや各種ステータス、スキル情報などはsaveデータに保存しない様に変更。

・傭兵をSQLモードに対応 (char/sql/mercdb_sql.c, sql-files/main.sql, sql-files/Auriga945_changetable.sql)
-> 既存のプレイヤーが持つ傭兵雇用情報は「mercenary」から「mercenary_employ」にテーブル名を変更
-> 傭兵自身のデータを「mercenary」テーブルに保存するように。

・モンスター傭兵実装(common/mmo.h, merc.*, db/merc_db.txt, merc_skill_tree.txt)
-> 傭兵IDを定められたID(6017~6046)しか登録できなかったのを任意のIDで登録できるように変更。

・傭兵DBの構造を変更(merc.*, db/merc_db.txt, db/addon/merc_db_add.txt, doc/db_ref.txt)
-> 傭兵のクラスIDを任意に定義できる様にした為、ViewClassを廃止
-> 傭兵の種類は内部で処理させるようにした為、ClassTypeを廃止

・傭兵のキルカウントボーナス実装(merc.c, status.*, db/scdata_db.txt)

・傭兵専用スキル「キリエエレイソン」「ブレッシング」「速度増加」を追加(skill.*, db/skill_db.txt, db/skill_db2.txt, db/skill_cast_db.txt, db/skill_require_db.txt)

・傭兵の自然回復が短かったのを修正(merc.h)
-> HPの自然回復:2000ms → 8000ms、SPの自然回復:4000ms → 6000ms

・傭兵に処理させるスクリプトを追加(script.c, doc/script_ref.txt)
-> mercheal命令:連れている傭兵のHP/SPを回復させます。
-> mercsc_start命令:連れている傭兵を状態変化させます。

・傭兵関係のアイテム実装(db/item_db.txt)
=================================
↑「傭兵」を多く使いすぎて、くどくなってしまった(笑)

要するに「傭兵いろいろ実装しました」パッチです。
中でもメインはSQL対応とモンスター傭兵対応でしょうか。

思えば前回の傭兵改正パッチから3年半経ちましたが、ようやくSQLに対応することができました。
当時はデータ見直しとか色々苦悶していたのを覚えていますが、
あれから成長したのか、意外とすんなり実装することができました。

モンスター傭兵はその名の通り、見た目モンスターの傭兵を連れていくことができます。
DBに1行追加するだけで簡単に実装できますので、オリジナルモンスター傭兵などを実装してみてはいかがでしょうか。
※デフォルトで傭兵DBの登録最大数を「50」にしていますので、もっと多く追加されたい方は
 「src/common/mmo.h」の「MAX_MERC_DB」の値を増やしてご利用ください。

コメント一覧

通りすがる (04/24 23:02) 編集・削除

更新お疲れ様です!

遂にSQLにも傭兵が対応ですね!
ずっと楽しみにしていたので嬉しいです。
Blazeさん、乙であります!

XiaさんもNPC調査などなどお疲れ様です!

お二人には感謝しても感謝しきれませぬ。
これからも楽しみにしております。

Blaze (04/25 12:35) 編集・削除

ありがとうございます!
そう言って頂けると実装したかいがあったと、開発のモチベーションも上がります。

Xiaも喜ぶと思いますので、こちらから伝えておきます。

【NPC露店 v1.10更新】Auriga-0933に対応

ファイル 538-1.jpg

要望も多かったので、昔に作成したNPC露店のソースを
Auriga-0933(4/14現在の最新)ベースに更新しました。
こちらからどうぞ。

前回の0645から露店パケットの変更や露店処理のリファクタリングが入っている為、
最新のAudigaを使用していると導入がなかなか大変な状況だったと思います。
今回のv1.10で不具合修正も入れているため、久しぶりに使う人も初めての方でも是非ご利用ください。
「どんなソースなの?」という方は↓を参照ください。

■過去の記事
【NPC露店 最終回】ソース公開!
【NPC露店 第4回】スクリプトで操作してみる
【NPC露店 第3回】商品を買ってみる
【NPC露店 第2回】商品リストの表示
【NPC露店 第1回】NPC露店の仕様

【モンスター墓標 第2回】実装内容で迷ってる箇所

前回エラそうに「次回でソース公開~」と言っておきながら、まだ引っ張っていますorz
基本形は問題なく実装できているのですが、2点迷ってる箇所があり、なかなか解決に踏み切れていません。
どちらも形式上の問題でいわゆる「こだわり」の内容ですが、気にしだすと色々と変えたくなる性分でして・・・
だらだらと悩んでいても進まないので、内容と解決案を出してみます。

①monster定義の拡張について
理想としては、既存のmonster定義を流用し、後ろに墓標用の拡張定義を追加する形↓でした。

gef_dun02.gat,0,0,0,0 monster ドッペルゲンガー 1046,1,7200000,3600000,(eventname),(guild_id),(tombnpc_id),(tombnpc_duplicate),(tombnpc_name)

※赤文字部分が墓標の拡張定義

が、ここで邪魔になるのが(eventname)と(guild_id)です。
どちらも省略可能な定義であり、処理内ではsscanf()のカンマ問題により、解析時に特殊な例外処理が入っています。
要するに、この省略時の例外処理を様々なパターンを想定して拡張させる ⇒ 解析処理を作り直したくなってくる ⇒ 面倒臭い
という状態です。

解決案として、ここはすっぱり既存のmonster定義を拡張するのを諦めて、新しい墓標用のmonster定義(tombmonster?)を追加する形に逃げたいと思います。



②ソースから操作するNPC依存変数について
討伐時間や討伐者をソース側から情報を渡してスクリプト変数を操作する予定でしたが、
やっぱり責務を考えると気に入らないです。
討伐時間や討伐者情報なんていらないNPCも考えられ、不要な処理となりがちですし、
スクリプト上に明記していない変数が内部的に書き換えられるのが気持ち悪くなってきました。

解決案として、「OnTombKilled」のようなイベントラベルを用意し、モンスター死亡時にイベント実行させるようなことが出来ないかな~と考えています。
イベントラベルによって、討伐者をアタッチさせれば討伐者情報も取得できますし、不要であればイベントラベルを書かなくて済み、かなり理想的な形になりそうです。
一度イベントラベルを実行させる形で実装してみます。



だらだらと書いていますが、これで進めそうです。
ソース公開まで、もうしばらくお待ちください。

コメント一覧

ヘル (10/11 15:12) 編集・削除

やはりこういう堅苦しい?記事の方が好きです
思いがけないヒントを得ることも出来ますし、なにより勉強になります。

ページ移動