MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
特定の階層のみ使用可能にするならstageInfoに<floorOnly>(追加したい階層のSephirahType)</floorOnly>でいけます。複数階層指定したい場合もそのまま直下にSephirahTypeを変えてコピーで大丈夫です
特定司書のみ参加可能な設定に関しては現状ではおそらくできません。
赤い霧戦、オリヴィエ・楽団アルガリア戦などでの特定司書のみ参加可能の設定はBattleUnitModelのisLockUnitメソッド内のこちらが操作できない条件文によって判断されているためです。
なるほど ありがとうございます もう一つ聞きたいのですがDiceCardSelfAbilityの説明文追加はどう書き込むのでしょうか
すみません。既出でしたら申し訳ないのですが質問がしたいです。
・バニラのパッシブスキルのコードはIDを使ってどうやったらのぞけるのか。
・特定の味方が生きている際に発動するパッシブを作りたいのですが、
パッシブで特定の味方を指定する方法とその味方の生存を判別するためにはどのifをかければいいでしょうか。
>> DiceCardSelfAbilityの説明文追加はどう書き込むのでしょうか
手引きのサンプルにも書いてありますが、こんな感じです。
public class DiceCardSelfAbility_xxxxxxxx : DiceCardSelfAbilityBase
{
public static string Desc = "[使用時] 光3回復"; ←これがカードの説明欄に出る
public override void xxxxxxxxx()
{
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
}
>> バニラのパッシブスキルのコードはIDを使ってどうやったらのぞけるのか。
IDだけ知りたいならパッシブスキル一覧のID列がそれ。
>> 特定の味方が生きている際に発動するパッシブを作りたいのですが
とりあえずパッシブスキル「連帯」の中身が知りたいってことだと思うのでまるっと載せときます
public class PassiveAbility_233001 : PassiveAbilityBase
{
// Token: 0x17000994 RID: 2452
// (get) Token: 0x060056CA RID: 22218 RVA: 0x001CA11E File Offset: 0x001C831E
public override string debugDesc
{
get
{
return "막 종료 시 모든 아군이 살아 있다면 다음 막 힘 1을 얻음. 막 종료 시 모든 아군이 죽은 상태라면 다음 막 힘 2를 잃음 단, 혼자 존재하면 효과가 없다.";
}
}
// Token: 0x060056CB RID: 22219 RVA: 0x001CA128 File Offset: 0x001C8328
public override void OnRoundEnd()
{
if (this.owner.IsDead())
{
return;
}
int count = BattleObjectManager.instance.GetList(this.owner.faction).Count;
int count2 = BattleObjectManager.instance.GetAliveList(this.owner.faction).Count;
if (count <= 1)
{
return;
}
BattleCardTotalResult battleCardResultLog = this.owner.battleCardResultLog;
if (battleCardResultLog != null)
{
battleCardResultLog.SetPassiveAbility(this);
}
if (count == count2)
{
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Strength, 1, base.Owner);
}
if (count2 == 1)
{
this.owner.bufListDetail.AddKeywordBufByEtc(KeywordBuf.Weak, 2, base.Owner);
}
}
}
特定の味方、という部分に着目するなら、とりあえずAliveListをExistメソッドで探すとして、
味方を判別する方法に
①.unitdata.isSephirah(指定司書かどうかを判断)
②舞台開始時にバフを付けてHasBuf<>()メソッドで判断
③.unitdata.bookItem.bookId(装備コアペのId)
なんかがパッと思いつきます
「特定の味方」をどのように想定しているのかで色々変わってくると思うのでそのスキルの詳しい仕様などを教えていただければもう少し踏み込んだアドバイスができると思います
ありがとうございます。特定の味方は装備コアペのIdで考えています。
接待内容はメンバー4人がそれぞれ別の種類のバフを1人に付与させる形にしたいと考えているので、そうするのが1番ミスをしにくいかなと思いまして。
それとパッシブスキルはどのような方法を用いて皆さんのぞいているのでしょうか?
public class PassiveAbility_Test : PassiveAbilityBase
{
//ModIdを記入
private static string _modId = "ModId";
//数字は自分で変更(司書用のコアペidは1からスタートではないので注意)
private LorId UnitId = new LorId(_modId, 0);
public override void OnRoundStart()
{
BattleUnitModel unit = BattleObjectManager.instance.GetAliveList(this.owner.faction).Find((Predicate<BattleUnitModel>)(x => x.UnitData.unitData.bookItem.BookId == this.UnitId));
if (unit == null)
return;
unit.bufListDetail.AddBuf((BattleUnitBuf)new PassiveAbility_Test.BattleUnitBuf_TestBuf());
}
public class BattleUnitBuf_TestBuf : BattleUnitBuf
{
public override string bufActivatedText => "説明をここに記入";
public override bool independentBufIcon => true;
protected override string keywordId => "Test";
//便宜的にアイコンを朦朧のアイコンにしています
protected override string keywordIconId => "Blurry";
//効果は適当にやってください
public override void OnRoundEnd() => this.Destroy();
}
}
こんな感じですかね
今バーっと書いたものなのでうまくいかなかったら自分で治すかお気軽にこちらにどうぞ
パッシブスキルの覗き方についてはいろいろグレーな部分もあったりなかったりするのでデコンパイラで調べてください
あなたの考えは?