MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
これは目から鱗の情報!ありがとうござます!
BGMとステージの変更ってどう処理されてるのか誰かわかりますか?
BGMは主にSingletonBehavior<BattleSoundManager>、背景は主にSingletonBehavior<BattleSheneRoot>とSingleton<StageController>で管理されていますが、背景の方は生成するプレハブゲームオブジェクトへアタッチされたMapManagerなどが関わってくるため私はうまくいじれてません
BGMのほうならOnRoundStart()に
int emotionTotalCoinNumber = Singleton<StageController>.Instance.GetCurrentStageFloorModel().team.emotionTotalCoinNumber;
Singleton<StageController>.Instance.GetCurrentWaveModel().team.emotionTotalBonus = emotionTotalCoinNumber + 2;
(感情コインの有利不利で敵のBGMかセフィラBGMか変わるので敵のBGMに固定)
を追加してから、
任意のタイミングで
SingletonBehavior<BattleSoundManager>.Instance.ChangeFinalCreatureTheme_Roland(0);
(ローラン戦第1段階BGMの場合。詳しくはBattleSoundManagerとかEnemyTeamManagerとか覗いてください)
AudioClip[] audio = new AudioClip[1]{SingletonBehavior<BattleSoundManager>.Instance.CurrentPlayingTheme.clip};
AudioClip[] audio2 = SingletonBehavior<BattleSoundManager>.Instance.SetEnemyTheme(audio);
(敵のBGMリスト(戦闘中に急に流れる接待準備画面めいたあのBGM)を変更したBGMに挿げ替える)
でいけます
(追記)
背景について、EGOみたいに一次的な背景変更でいいならCardInfoのMapChange欄に仕込むのが一番手っ取り早いかも?
司書のEGOとかち合ったときにどういう挙動をするのかは未検証ですが
(いらんかもな備忘録の共有)
コアペの専用バトペ欄のOnlyPageはBookModelのSetXmlInfo(BookXmlInfo)で読み取られるが、1.1.0.6a6現在、Attributeでstringを設定できるBookPassiveXmlInfo(コアペパッシブ設定欄)とは異なり、OnlyPage欄にはintしか指定できないため(SetXmlInfo中でもintしか想定していない)、元々ある専用ページの共有指定はできるが、MOD由来の専用ページの指定はできない模様。
バトペの方のOptionには使用時消滅のExhaustOnUseとともに専用ページであるOnlyPageも指定でき(階層EGOのEGO、個人EGOのEGOPersonal、個人ページであるPersonal、インベントリに戻せないNoInventry、いまいち分からんEGOchangeは設定できない)、インベントリにて専用ページその他の表示を司るUIInvenCardListScrollのApplyFilterAll()はMODバトペでも普通に動きそうなので、MODの方でXmlをいじって専用ページを作ってもどこにも表示されないだけのバトペができそう
揺らぎで作成したページ追加する場合はIDはどういう風に指定されてるのでしょうか…?
有識者教えて…
LorIdというクラスで指定しています
詳しくは6つ上の返信をば
this.AddNewCard(new LorId(this._packageId, 数字));
private string _packageId = "パッケージID";
でもできないんですけどなんででしょうか…
サンプルコードに答えが描いてありますね。
private string _packageId = "パッケージID";を
AddNewCard(new LorId(_packageId, 数字));よりも先に呼ばないとですね。
私も質問なのですがパッシブスキルを用いてMODで追加したスキンに見た目を変更する場合どうすればいいのでしょうか(シャオのページのように戦闘中に条件を満たすと変更されるイメージ)。単純に見た目を変えるだけなら
this.owner.view.ChangeSkin("スキン名");
で変えることができたのですがMODで追加されたスキンを選択することができませんでした
@T-Veronica さん
コードの中身が分からんから何とも……
(1)パッケージIDの定義はAddNewCardの前に行われているか
(2)そもそもAddNewCardメソッドが定義されているか
(3)AddNewCardを使用しているメソッド内の別の処理でエラー吐いて止まってる
現段階の情報ではこの3つですかね……?
@Yakumohisyo さん
スキンをくっつけたequipPageを事前に作っておいて
BookModel dummyBook = new BookModel(Singleton<BookXmlList>.Instance.GetData(new LorId("modId", 本id)));
UnitDataModel unit = new UnitDataModel();
UnitCustomizingData customizeData = this.owner.UnitData.unitData.customizeData;
GiftInventory giftInventory = this.owner.UnitData.unitData.giftInventory;
unit.EquipBook(dummyBook, force: true);
unit.SetCustomizingData(customizeData);
unit.giftInventory = giftInventory;
ActionDetail currentMotionDetail = this.owner.view.charAppearance.GetCurrentMotionDetail();
this.owner.view.DestroySkin();
this.owner.view.charAppearance = SdCharacterUtil.CreateSkin(unit, this.owner.faction, this.owner.view.characterRotationCenter);
if (customizeData != null)
this.owner.view.ChangeHeight(customizeData.height); this.owner.view.ChangeScale(
SingletonBehavior<BattleSceneRoot>.Instance.currentMapObject.mapSize
);
で自分はやってますね
ただ超無理やりな処理だしEGOとかの一時スキン変更挟むと戻る(そこらへん固定する変数が見た限り軒並みPrivateだった)からOnRoundEndとかOnEndParryingでも毎回呼びださないといけないしでかなり危なげなので大人しくアプデを待った方がいい気がしますね
あなたの考えは?