TA的每日心情 | 萌哒 2023-2-8 19:12 |
---|
中级会员
- 积分
- 357
- 金钱
- 270
- 元宝
- 0
|
修改AutoPotionDialog.cs 文件
//申明一个复选框控件 名字叫 dsCheckBox
public DXCheckBox dsCheckBox;
public AutoPotionDialog()
{
dsCheckBox1 = new DXCheckBox
{
Parent = AutoAttackTab,
Label = { Text = "持续阴阳" },
};
//这个控件初始化
dsCheckBox1.Location = new Point(AutoAttackTab.Size.Width / 4 - dsCheckBox1.Size.Width + 70, y = 200);
//当控件状态发现改变调用 SendUpdate()
dsCheckBox1.CheckedChanged += (o, e) => SendUpdate();
}
private void SendUpdate()
{
//当控件被勾选的时候触发下面代码
if (GameScene.Game.AutoPotionBox.dsCheckBox1.Checked)
{
ClientUserMagic clientUserMagic = null;
//大概意思可能是检测你学习了 阴阳技能没有
foreach (KeyValuePair<MagicInfo, ClientUserMagic> magic in GameScene.Game.User.Magics)
{
if (magic.Value.Info.Magic == MagicType.CelestialLight)
{
clientUserMagic = magic.Value;
break;
}
}
//这里就是直接使用技能了
if (clientUserMagic != null)
{
GameScene.Game.UseMagic(SpellKey.None, clientUserMagic);
}
}
}
之前比人提供的代码基本研究到这里 当按钮被勾选 就启动一次技能,让技能可以持续触发修改这里
修改 MapObject.cs 文件 直接搜索 CelestialLightEnd() 源代码就会找到
//这里好像就是当技能结束的触发,跟上面代码一样。
public void CelestialLightEnd()
{
CelestialLightEffect?.Remove();
CelestialLightEffect = null;
if (GameScene.Game.AutoPotionBox.dsCheckBox1.Checked)
{
ClientUserMagic clientUserMagic = null;
foreach (KeyValuePair<MagicInfo, ClientUserMagic> magic in GameScene.Game.User.Magics)
{
if (magic.Value.Info.Magic == MagicType.CelestialLight)
{
clientUserMagic = magic.Value;
break;
}
}
// 关键是这句代码 一概意思就是检测你当前阴阳技能触发后得到的BUFF如果消失了 才可以再次自动开启技能
if (User.Buffs.Any((ClientBuffInfo x) => x.Type == BuffType.CelestialLight))
{
return;
}
if (clientUserMagic !=null )
{
GameScene.Game.UseMagic(SpellKey.None, clientUserMagic);
}
}
}
上面代码 基本功能靠猜,解释也不正统,很菜,大神不要笑!!!
|
|