*釣り関連まとめ(メモ書き) 釣りがマゾい。 伝説の釣り師への道は厳しいのだとか言ってるレベルじゃない。 ロジック調査とプレイヤー視点からのメモ書きです。 **釣りクエのここがマゾい -&link_anchor(2){いらない報酬ばかりで幻滅する!} なるさん調整中 -&link_anchor(1){大口でも低レベル報酬が出て釣り師を舐めてる!} 未導入? -&link_anchor(3){わざわざ街まで行かせるな!} 見送り -&link_anchor(5){船倉でDEED化出来ないとか魚の重さ知らんだろ!} 未導入 -&link_anchor(6){ダンジョンに浅瀬の魚が住んでるwwww} 未導入 **釣りのここがマゾい -サーペントが釣れても鱗と皮しか嬉しくない -サルベージBOXの中身は全て溶かすものである まもるさんとなるさんががやってくれた 導入済 -&link_anchor(4){レアフィッシュ釣っても切り身4つなんだが?} 導入済 -&link_anchor(7){パイを1個食べたつもりが30個食べてた} -&link_anchor(8){パイに書いてある効果と違う!詐欺だ!} -パイの効果が切れたかわかりません! (M一族視点&掲示板意見) *** &anchor(1,option=nolink){クエの報酬レベルについて} 本家での報酬レベルとServUOの報酬レベルの違い |本家|ポイント||ServUO|ポイント| |1|0~49||1|0~99| |2|50~99||2|100~150| |3|100~199||3|151~209| |4|200~249||4|210~| |5|250~|||| としたいんだろうけど、ポイント計算バグってる気がする。 >FishQuestHelper.cs > >int tier = 1; >if (points >= 100) > tier = 2; >else if (points >= 150) > tier = 3; >else if (points >= 210) > tier = 4; となっており、ポイントが200だろうと報酬レベル2である。 tierが報酬レベル。 よって現状報酬レベル1と2しかでないと思われる。 *** &anchor(2,option=nolink){クエの報酬について} クエの報酬でもらえるものは以下。 |報酬|もらえる報酬レベル| |釣りえさ|Lv1~Lv4| |ロブスター用耐熱罠|Lv1~Lv2| |魚本1|Lv1~Lv2| |魚本2|Lv1~Lv2| |魚本3|Lv2~Lv3| |魚本4|Lv3~Lv4| |魚本5|Lv3~Lv4| |魚本6|Lv4| |PS(105~120)(*1)|Lv1~Lv4| |釣り竿(*2)|Lv1~Lv4| |溶岩用つり針|Lv2~Lv4| |ゴミよけのつり針|Lv2~Lv4| |探索つり針|Lv2~Lv4| |海のオラクル|Lv2~Lv4| (*1)PSは報酬レベルがあがるほど上位のPSが選択される可能性があがる。 (*2)釣り竿にはマジックプロパティが付加される。 見てのとおり大半に魅力が感じられない。 魚本よりアメリアさんのポエムか、船が沈むのを楽しみにしているなるさんの航海(後悔)日誌のほうが欲しい(M一族視点) 釣竿にマジックついても嬉しくない。 真珠、天秤、古代SOS、古代投げ網のほうが余程ステキ。 >FishQuestHelper.cs >private static Type[][][] m_RewardTable = new Type[][][] の修正で報酬が変わるはず。 アイテムに関わる部分はなるさんの裁量でお願いします。 文字化けじゃないよ、三次元配列だよ。 *** &anchor(3,option=nolink){クエの報告距離について} 本家では距離をみていないらしい。 ServUOではきっちり距離を見てる気がする。 >FishMonger.cs >bool inRange = InRange(boat.Location, distance) && boat.Map == this.Map; >if (!FishQuestHelper.HasFishQuest(player, this, inRange)) のinRangeの判定を変更 >bool inRange = boat.Map == this.Map; inRagneを「船がクエストを受ける(報告する)NPCのいるマップに存在するか」で判定させるようにした。 +Britainに船を設置 +Moonglowでクエスト承諾 +Skara Braeでクエスト報告 を確認。 T2Aでもクエストの報告とかできちゃうけど本家でもそうなのかな? TとFに船あったらどうすんのwwwって思ったけど、それは今でも可能だよね。 *** &anchor(4,option=nolink){レアフィッシュの切り身について} 予想通り4固定になってるっぽい。 各レアフィッシュクラスの親の親(BaseHighseasFish) >Fish.cs > >public virtual int GetCarvedAmount { get { return 4; } } おそらくこれ。 virtualで定義されてるので子クラスのRareFishクラスでoverrideすれば全レアフィッシュに適用される >RareFish.cs > >public override int GetCarvedAmount { get { return (int)(this.Weight / 5) * 2 - 4; } } 200ストーンのレアフィッシュから76個の切り身になることを確認。 これでパイ屋が出来るよ! *** &anchor(5,option=nolink){船倉でのDEED化について} 実装は難しくなさそうだけど記述ミスって大量のアイテムが消失する恐れがあるため躊躇してます。 遊ばせていただいている立場なのでリスクの多いコードは避けたいです。 なので修正箇所のみ記載。 >CommodityDeed.cs > >public override void OnDoubleClick(Mobile from) この内部に「自身がダブルクリックされたのは船倉内か?」の判定を入れるだけ *** &anchor(6,option=nolink){ダンジョンの水タイル判定について} Regions.xmlの該当エリア(エリアって言い方でいいんだろか?)にtypeの設定がなかったりしてる。 Regions.xmlの使い方がよくわからないのでなるさんお願いします!!! プログラム内の判定は「自身がDungeonRegion内にいるかorMondainRegion内にいるかorT-WindにいるかorF-Windにいるか」になってます。 -Mushroom Caveにはtypeの設定がないため、通常フィールド扱いされている(と思う) -トラメルDespiseは定義があるけど旧マップなんじゃないかな? -CovetousはT/F両方ともダメだったので理由がわかりません これも別マップが用意されてたりする? *** &anchor(7,option=nolink){スタックしたパイを食べたら全部消えた} ServUOのバグ。 問答無用でDeleteしてる。 FishPie.cs public override void OnDoubleClick(Mobile from) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } else if (Apply(from)) { from.FixedEffect(0x375A, 10, 15); from.PlaySound(0x1E7); from.SendLocalizedMessage(1116285, String.Format("#{0}", LabelNumber)); //You eat the ~1_val~. Mmm, tasty! // Rev.1(Mod S) -------------------- // Delete(); if (this.Amount > 1) { this.Amount--; } else { Delete(); } // Rev.1(Mod E) -------------------- } } *** &anchor(8,option=nolink){魔法のフィッシュパイに記述されてる効果と実際の効果が違う} ServUOのバグ。 効果自体は本家と同じなのでアイテムのラベルが間違ってる。 FishPie.cs public class GreatBarracudaPie : BaseFishPie にある // Rev.1(Mod S) -------------------- // public override int BuffAmount { get { return 5; } } public override int BuffAmount { get { return 8; } } // Rev.1(Mod E) -------------------- #image(GreatBarracudaPie2.png) とりあえずここまで