MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
幻想体ページのコードってなんて名前なのかわかります…?
パッシブでマッチ敗北するごとに虚弱を得る(1幕で最大3回)みたいなのを作りたくて復讐(赤頭巾の幻想体ページ)のコード覗こうと思ったけど何て名前なのか分からぬ。。。
EmotionCardAbility_〇〇です
その能力ならどちらかというと憎しみの女王の憎悪を参考にした方がいいと思いますが……
あっ憎悪!
確かにそっちの方がずっと近い!
度々ありがとうございます。。。
貪欲のきらめく幸せと沈黙の対価を組み合わせた感じで2幕目以降に雑魚を生成して死んだら随時再生成、死んだ雑魚が何名以上で特殊ページ使用…みたいなのが作りたいんですが、
死んだ雑魚のカウントはOnDieOtherUnitを使えばいいっぽいのは分かったんですけど他キャラの生成法が分かりませぬ。。。
他のコード覗いてもとっ散らかってて良くわからない。。。
追記
凄い今更な質問なんですがキャラクターのバトルページ選択フェーズでの位置ってどこで弄るんでしょうか。。
とりあえず全部「沈黙の対価」から抜粋で記載しますね
●キャラ生成部分
====================================================
private void CreateAlly()
{
List<BattleUnitModel> aliveList = BattleObjectManager.instance.GetAliveList(this.owner.faction);
// 生存数が5体(沈黙の対価1体+痕跡4体)未満なら生成処理開始
if (aliveList != null && aliveList.Count < 5)
{
int index = aliveList.Count; // 全部生存してる場合前提で、次に生成する痕跡のインデックスを先に取得してる
foreach (BattleUnitModel battleUnitModel in BattleObjectManager.instance.GetList(this.owner.faction)) // ここから痕跡がどれか死んでる場合の処理
{
if (battleUnitModel.IsDead())
{
index = battleUnitModel.index; // ここで既に死んでる奴のインデックスで書き換え。
break;
}
}
BattleUnitModel battleUnitModel2 = Singleton<StageController>.Instance.AddNewUnit(this.owner.faction, 9090202, index, -1); // 味方陣営に「時間の痕跡」を生成。上の処理で空いてる位置が取れるのでそのインデックスを指定
// ここからは生成した「時間の痕跡」にパッシブを付与してる(これやんないとパッシブを何も持ってないただの置物が出来上がる)
PassiveAbilityBase passiveAbilityBase = battleUnitModel2.passiveDetail.PassiveList.Find((PassiveAbilityBase x) => x is PassiveAbility_902021);
if (passiveAbilityBase == null)
{
passiveAbilityBase = new PassiveAbility_902021();
battleUnitModel2.passiveDetail.AddPassive(passiveAbilityBase);
}
else
{
passiveAbilityBase.OnCreated();
}
// ここ以下は正直よく分からんけど、レンダリング処理やってるあたり、画面表示に反映させるもろもろをやってると思われる
index = 0;
foreach (BattleUnitModel battleUnitModel3 in BattleObjectManager.instance.GetList())
{
SingletonBehavior<UICharacterRenderer>.Instance.SetCharacter(battleUnitModel3.UnitData.unitData, index++, true, false);
}
BattleObjectManager.instance.InitUI();
}
}
で、上の処理はOnRoundEndTheLast()から内部呼び出しされてるので、
●次幕開始処理
(OnRoundEndTheLast()って意味のまま受け取ると幕終了の最後の方って認識しちゃうけど、「落ち着ける」の[次の幕開始時]の処理もこれで記述されてるので、多分次幕開始時って認識でいいはず)
=============================================================
public override void OnRoundEndTheLast()
{
// ここら辺はパッシブスキル「止められぬ時」の処理用のコードなので無視でよさげ
if (this._curPhaseCount == 12)
{
if (this._curDeadAllyCount >= 12)
{
this.owner.breakDetail.breakGauge = 0;
this.owner.breakDetail.breakLife = 0;
this.owner.breakDetail.DestroyBreakPoint(null);
this.owner.breakDetail.nextTurnBreak = true;
}
else
{
this.owner.allyCardDetail.AddNewCard(990201, false).temporary = true;
}
BattleUnitBuf battleUnitBuf = this.owner.bufListDetail.GetActivatedBufList().Find((BattleUnitBuf x) => x is BattleUnitBuf_Silence_TraceCount);
if (battleUnitBuf != null)
{
battleUnitBuf.Destroy();
}
this._curDeadAllyCount = 0;
return;
}
// ここまでが無視していいやつ
// 以下が13幕目までの通常時の処理。
// this.KillOverheadAlly();はパッシブ「積もる時間」の「既に4つの「時間の痕跡」がある場合、最も体力が少ない個体を倒して全て司書に該当キャラクターの残体力分ダメージを与える。」の処理。
// this.CreateAlly();がパッシブ「積もる時間」の「幕の開始時「時間の痕跡」1名を生成する。」の処理。
if (this._curPhaseCount > 0)
{
this.KillOverheadAlly();
this.CreateAlly();
}
}
多分T-Veronicaさんが必要としてる情報はこれで全部答えたはず
ちなみに抜粋したのは「PassiveAbility_902012」からなので、全容を見たかったらこれで探してもらえれば良いかと。
毎度ありがとうございます!!
C#は無知なもので。。。。
ちなみにキャラクターの位置はStageInfoのformationをいじれば変えられます
どの陣形がいいかはアセット覗くなりして判断してください(1が司書と同じ並びのやつ)
(接待中に変えたいならSingleton<StageController>.Instance.GetCurrentWaveModel().SetFormationPosition(index, new Vector2Int(x, y));という手もあります。詳しいやり方は完全開放戦のenemyteammanager覗くなり元メソッド参照するなりしてください)
あと現在おま環なのか仕様なのかわかりませんが招待状MODのステージだと舞台開始時に2番目の敵と1番目の敵のIndexが入れ替わるのでAddNewUnitや陣形組むときは注意が必要です
ついでにOnDieOtherUnitは生贄職員がよくやるバトペ能力による自爆には反応しないので同様の状況が起こりえるときは避けてOnRoundEndTheLastにGetAliveListするなりした方がよさげ
あなたの考えは?