有没有会写“狂乱”sim的
炉石兄弟吧
全部回复
仅看楼主
level 7
ssy89757 楼主
2021年04月28日 10点04分 1
level 7
ssy89757 楼主
老卡里面没有随机攻击类的法术 抄不了 不知道怎么写[不高兴]
2021年04月28日 10点04分 2
level 7
ssy89757 楼主
提供个思路也好啊
2021年04月28日 10点04分 3
level 12
本来就是随机的,写个大概的就可以。
我给出个思路:消灭target和我方所有随从。
2021年04月28日 10点04分 4
我想过很多 难道弄不出来一个 使随从随机攻击 的代码吗
2021年04月28日 10点04分
@ssy89757 本来游戏里就是随机,你没办法写出一个精准的结果。就算你在兄弟里也写了个random,那也没法保证和炉石里随机最终产生的效果相同。
2021年04月28日 10点04分
在吧主思路前面加个判断,如果场上其他随从的场攻正好等于target的生命,就消灭所有随从。这个算是sim正面效果的上限,吧主的算是负面效果的下限,超过这个范围的需要一定的运气
2021年04月30日 02点04分
@708848469 我云玩家了,不知道这张卡怎么用。刚才想到应该是可以用给我方随从然后清场。
2021年04月30日 03点04分
level 7
ssy89757 楼主
namespace HREngine.Bots
{
class Sim_BT_211 : SimTemplate //* 被禁锢的魔喉 Imprisoned Felmaw
{
//[x]<b>Dormant</b> for 2 turns.When this awakens, attack a random enemy.
//<b>休眠</b>两回合。唤醒时,随机攻击一个敌人。
public override void onDormantEndsTrigger(Playfield p, Minion m)
{
Minion sm = p.searchRandomMinion(m.own ? p.enemyMinions : p.ownMinions, searchmode.searchHighestAttack);
if (sm == null) sm = (m.own) ? p.enemyHero : p.ownHero;
p.minionAttacksMinion(m, sm);
}
}
}
@YL给力啊 这是WJH添加休眠机制里的 其中一个示例SIM 。
这个可以参照吗
2021年04月28日 10点04分 5
机制添加好就可以。
2021年04月28日 10点04分
这代码看着跟java好像啊
2021年04月29日 00点04分
level 7
ssy89757 楼主
好像找到一点门路了
Playfield.cs里 有方法可以对比
public void minionGetBuffed(Minion m, int attackbuff, int hpbuff)
给随从加BUFF的方法 第一项是目标 第二项攻击力 第三项生命值。
public void minionAttacksMinion(Minion attacker, Minion defender, bool dontcount = false)
同理 随从攻击随从的方法 第一项攻击者 第二项挨揍者 第三项是否计算攻击次数??
所以 如果有一张法术卡效果是“使该目标攻击敌方英雄”
那么应该可以写 p.minionAttacksMinion(target, p.enemyHero, true)
2021年04月28日 11点04分 6
level 7
ssy89757 楼主
我先去试一下
2021年04月28日 11点04分 7
level 7
ssy89757 楼主
兄弟真的会用了[哈哈] 我把冰刺的SIM改成
public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
{
p.minionAttacksMinion(target, p.enemyHero);
}
然后去打旅店老板。老板打到只有2血 场面有个攻击过的水元素 。然后冰刺疯狂扎水元素。~
2021年04月28日 11点04分 8
level 7
ssy89757 楼主
会用了~~·
2021年04月28日 12点04分 9
level 7
ssy89757 楼主
namespace HREngine.Bots
{
class Sim_YOP_006 : SimTemplate //* 狂乱 Hysteria
{
//[x]Choose an enemy minion.It attacks randomminions until it dies.
public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice)
{
foreach (Minion m in p.ownMinions)
{
if (m.entitiyID != target.entitiyID) p.minionAttacksMinion(target, m);
}
foreach (Minion m in p.enemyMinions)
{
if (m.entitiyID != target.entitiyID) p.minionAttacksMinion(target, m);
}
}
}
}
2021年04月28日 12点04分 10
level 12
这个思路是不是可以写恶魔猎手那个888
2021年04月28日 12点04分 11
那个888 效果挺好写的 p.minionAttacksMinion(英雄攻击后.自己, 英雄攻击的目标); 不过英雄攻击后触发的这个机制 现在我还不知道怎么加
2021年04月28日 12点04分
level 7
ssy89757 楼主
@YL给力啊 好像有点问题啊,
请教2个问题
1.怎么加个目标没死就重复。
2.还有这样写是不是优先打我方随从了?
foreach (Minion m in p.ownMinions)
foreach (Minion m in p.enemyMinions)这两个能连一起吗?
2021年04月28日 12点04分 12
@大楠人 @魔王的骑士222 大佬们 救救
2021年04月28日 12点04分
按照我的思路不需要判断这个。第二个不可以,试一下就知道了[黑线]
2021年04月28日 13点04分
@YL给力啊 为什么同样是对其他所有随从 排除自己 守日者塔林姆if (m.entitiyID == own.entitiyID) 的符号是== 死亡之翼if (m.entitiyID != own.entitiyID)的符号是!=。!不是否定的意思吗?
2021年04月28日 13点04分
@YL给力啊 这两个把我搞懵了。不知道狂乱的if (m.entitiyID != target.entitiyID) 该用== 还是!=了。
2021年04月28日 13点04分
level 7
ssy89757 楼主
@YL给力啊 上面的是超管。下面的是死亡之翼。
2021年04月28日 13点04分 13
@YL给力啊 所以 排除自身 是== 还是!=呢
2021年04月28日 13点04分
@ssy89757 你看if后面跟的东西是不一样的。第一个是如果是自己,就不变形3-3了,continue回去继续下一次循环。第二个是如果不是自己,那么继续执行”消灭随从“。
2021年04月28日 14点04分
level 7
ssy89757 楼主
@YL给力啊
终于找到敌方和友方融合的代码了
List<Minion> temp = new List<Minion>(p.ownMinions);
temp.AddRange(p.enemyMinions);
foreach (Minion m in temp)
你猜我是在哪张卡的SIM里翻到的[酷]
2021年04月29日 03点04分 14
[黑线][汗]
2021年07月29日 10点07分
level 9
你是我哥 nice
2021年07月25日 15点07分 15
1