MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
MOD(BaseMODなどの非公式なもの)について議論?する場所です
Library Of RuinaのMODは制作者の想定していないものであり、場合によってはゲームを壊す可能性があります
また、MODはけして良いものではありません。ゲームバランスを崩すような過度な改変は不快に思う方や、怒りを覚える方がいます。
MDOはゲームに新たなコンテンツを追加することが出来ます。これらのことに気を付けてゲームとして楽しめるMOD制作をしていきましょう。
0Harmonyの使い方に詳しい方います?
自己解決しました 申し訳ないです
すみません。質問したいのですが
・AddBuf, AddReadyBuf, AddReadyReadyBufの違いって何です?
・バトペの効果で、オリジナルのデバフを付与する場合はどれを使えばよいでしょう。
火傷のようにstackが累積するものが欲しいのですが、AddBufでやると現状同じバフが複数個ついてしまいます。
public static string Desc = "[的中時] 相手に毒を付与";
public override void OnSucceedAttack()
{
card.target?.bufListDetail.AddBuf(new DiceCardSelfAbility_Poison.Poison_Effect() {
stack = 4
});
}
こんな感じで作っています。
@プルタブ 自分にバフを付けるタイプなんですが、
public override void OnSucceedAttack(BattleDiceBehavior behavior)
{
if (this.owner != null)
{
BattleUnitBuf battleUnitBuf = this.owner.bufListDetail.GetActivatedBufList().Find((BattleUnitBuf var2) => var2.bufActivatedName == "戦嵐");
if (battleUnitBuf == null)
{
this.owner.bufListDetail.AddBuf(new BattleUnitBuf_Senran(this.owner));
}
else
{
battleUnitBuf.stack++;
}
this.owner.bufListDetail.CheckBufCount();
}
}
これは自分にバフを付けるやつなので丸コピではできないのであしからず
@プルタブ さん
AddBufはその幕、AddReadyBufは次の幕、AddReadyReadyBufは次の次の幕に(紫の涙のアレ)該当バフを付与するものです。
2. 先程挙げられた解決策とは別にバフ自体にそういうメソッドを準備する、という解決策もあります。参考までにどうぞ
//これが該当バトルページにつける能力
public override void OnSucceedAttack(BattleDiceBehavior behavior)
{
if (this.owner != null)
{
//対象に該当バフがあるか。あるなら変数testbuffに格納
if (!(target.bufListDetail.GetActivatedBufList().Find((Predicate<BattleUnitBuf>)(x => x is BattleUnitBuf_TestBuf)) is BattleUnitBuf_TestBuf testBuf))
{
//ないなら変数格納ついでに新しく付与
testBuf = new BattleUnitBuf_TestBuf();
target.bufListDetail.AddBuf((BattleUnitBuf)testBuf);
}
//その後Addメソッドを起動
testBuf.Add(4);
}
}
public class BattleUnitBuf_TestBuf : BattleUnitBuf
{
public override string bufActivatedText => "説明文";
public override bool independentBufIcon => true;
//アイコンを便宜的に朦朧のそれに設定しています
protected override string keywordIconId => "Blurry";
public override void Init(BattleUnitModel owner)
{
base.Init(owner);
this.stack = 0;
}
public bool Add(int inc)
{
this.stack += this.stack + inc;
}
}
すみません。漆樹さんがあげてくれているBGMを任意のものに変更するというものを使用させていただいているのですが、該当のパッシブを持ったキャラが死亡してもBGMが元のものに戻らないのですが、これは何が原因なのでしょうか?
OnDieとOnDestroyedに入っているGameObject.Destroyがコンパイルすると、UnityEngine.Object.Destroyに変わってしまうのですが、これは関係あったりしますか?
元々の死亡時とパッシブ消去時の処理は自分で生み出したマネージャーオブジェクトの消去しかしてないのでBGMを戻す動作は行っていませんでした、すみません
パッシブじゃない方を以下に変更してください
(ちなみにコンパイルでDestroyメソッドの元が変わるのは仕様です)
public class てきとうなくらすのなまえ : MonoBehaviour
{
private Coroutine _bgmLoadingCoroutine;
//元々のBGMを保持するためのフィールド追加
private AudioClip[] defaultBGMs;
private string _packageId = "もっどのid";
public bool LoadAudio(string str)
{
bool result = false;
this.ReleaseCoroutine(ref this._bgmLoadingCoroutine);
string modBgmPath = ModUtil.GetModBgmPath(Singleton<ModContentManager>.Instance.GetModPath(this._packageId));
this._bgmLoadingCoroutine = this.StartCoroutine(this.StreamPlayAudioFile(Path.Combine(modBgmPath, str)));
return result;
}
private void ReleaseCoroutine(ref Coroutine coroutine)
{
if (coroutine == null)
return;
this.StopCoroutine(coroutine);
coroutine = (Coroutine)null;
}
IEnumerator StreamPlayAudioFile(string fullpath)
{
using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("file://" + fullpath, (AudioType)14))
{
yield return (object)www.SendWebRequest();
try
{
AudioClip audioClip = (AudioClip)null;
if (www.downloadHandler is DownloadHandlerAudioClip downloadHandler6 && ((DownloadHandler)downloadHandler6).isDone)
{
audioClip = downloadHandler6.audioClip;
((UnityEngine.Object)audioClip).name = Path.GetFileName(fullpath);
}
AudioClip[] audios = SingletonBehavior<BattleSoundManager>.Instance.SetEnemyTheme(new AudioClip[1] { audioClip });
this.defaultBGMs = new AudioClip[audios.Length];
this.defaultBGMs = audios;
}
catch (Exception ex)
{
}
}
}
//オブジェクト消去時にBGMを元に戻す
void OnDestroy()
{ SingletonBehavior<BattleSoundManager>.Instance.SetEnemyTheme(this.defaultBGMs);
}
}
あなたの考えは?