太阳神三国杀lua吧 关注:2,643贴子:73,417
  • 5回复贴,共1

新人求问,ai代码里面那个doNotDiscard()和needToThrowArm...

只看楼主收藏回复

doNotDiscard() needToThrowArmor( )这两个函数都是什么意思,我在查猛进和反馈的ai代码都发现了这两个。
还有这个两个函数的参数都是什么?
还有有没有神马ai函数集合的帖子或者文档之类的,有很多不认识的函数没地方查了
求前辈们指点。。。


IP属地:广东1楼2013-10-19 22:52回复
    看字面意思,分别是不弃牌,需要扔掉防具。


    IP属地:四川来自Android客户端2楼2013-10-19 23:49
    收起回复
      我猜的:
      <1>SmartAI:needToThrowArmor(player)
      含义:判断是否需要弃掉防具(代码里说,自己那些影响八阵毅重的防具、受伤时的白银狮子、对自己没什么价值的防具等,就属于可以弃掉的防具;而火杀目标的藤甲就不应该弃掉。)
      参数:player(ServerPlayer类型,默认为self.player,目标角色)
      <2>SmartAI:doNotDiscard(to, flags, conservative, n, cant_choose)
      含义:判断失去牌是否没有影响(代码里说,礼让、伤逝之类的就算没有影响,应该是失去一张又摸一张,数目不减的原因;另外像失去后触发空城的情况,也算在没有影响里面了。)
      参数:to(ServerPlayer类型,将失去牌的角色)
      flags(string类型,牌的位置,默认为"he")
      conservative(boolean类型,是否采取保守策略,游戏前两轮且存活人数多于2时默认为true、否则默认为false,看代码里只与屯田凿险有关)
      n(number类型,失去牌的数量,默认为1)
      cant_choose(boolean类型,是否必须失去牌,默认为nil)
      (注:它们都出自smart-ai.lua,5500行附近,具体代码可以自行查看)


      3楼2013-10-20 17:22
      收起回复