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

【小白求助】国战AI文件一点效果都没有??!!

只看楼主收藏回复

如图,即使只返回一个false,能发动时AI还是照样发动(这个技能的频率是Frequent)
试过把ai文件放到extensions/ai和lua/ai,都没解决。。

技能代码部分


IP属地:美国1楼2016-08-20 08:41回复
    我试了下,不用frequency = sgs.Skill_Frequent,就好;以遗计为例,虽然国战源码也有Frequent,但实际上国战还是每次询问,而V2则是在技能按钮按下时不询问直接发动


    IP属地:上海3楼2016-08-20 09:48
    收起回复
      然后这里是bug纠错和建议。 @Xusineday
      我先复制一下smart-ai末尾的相关代码:
      local files = table.concat(sgs.GetFileNames("lua/ai"), " ")
      local LUAExtensions = string.split(string.lower(sgs.GetConfig("LuaPackages", "")), "+")
      local LUAExtensionFiles = table.concat(sgs.GetFileNames("extensions/ai"), " ")
      for _, aextension in ipairs(sgs.Sanguosha:getExtensions()) do
      if table.contains(LUAExtensions, string.lower(aextension)) then
      if LUAExtensionFiles:match(string.lower(aextension)) then
      dofile("extensions/ai/" .. string.lower(aextension) .. "-ai.lua")
      end
      elseif not loaded:match(aextension) and files:match(string.lower(aextension)) then
      dofile("lua/ai/" .. string.lower(aextension) .. "-ai.lua")
      end
      end
      Bug:
      1. LUAExtensionFiles是个字符串,直接用字符串匹配不能确保找到的就一定是对应这个包的AI。例如LUAExtensionFiles是"yjcm2012-ai.lua",遍历到yjcm这个包时匹配成功,但是下一行就报错了。
      不如直接把LUAExtensionFiles做成一个table,然后match的那行用table.contains。
      2. 上述的字符串匹配只能匹配小写文件名,需要把LUAExtensionFiles也加上个string.lower。(虽然文件名大写小写都是同一个文件,但是getFileNames的返回值不同)


      IP属地:美国5楼2016-08-20 17:17
      收起回复