太阳神三国杀lua吧 关注:2,645贴子:73,407
  • 12回复贴,共1

【求援】新人自学LUA帮忙看下此程序哪里有问题

只看楼主收藏回复

最近通过DIY群和LUA群刚接触LUA编程,本人才疏学浅,只学过半年VB,程序格式与语法神马的,统统没办法抓住要领,想实现一个自己DIY的作品,还请各位帮帮忙


IP属地:上海1楼2013-09-17 13:46回复
    先上目标武将
    李典 4勾玉
    <将才>
    除准备阶段与结束阶段外,你每开始一个非额外的阶段前可进行一次判定,若为黑色则跳过该阶段,若为红色则获得判定牌并执行一个额外的出牌阶段
    <探敌>
    当你进行一次判定时,你可将武将牌翻面并选择其他角色的一张手牌作为判定牌(每回合对每名角色只可发动一次)

    I


    IP属地:上海2楼2013-09-17 13:50
    回复
      2025-06-22 06:32:38
      广告
      几个小问题吧。
      首先,Room::askForSkillInvoke函数的返回值是bool型,如果技能持有人选择发动技能则返回true,否则返回false,像你现在这样的写法是没有影响的;
      然后是判定结构体的写法,0610和0224有比较大的不同,体现在judge.pattern不再使用正则式了(也就是QRegExp);当然你本身也没有写对0224的判定结构体……
      最后一点是……有些地方缩进的比较奇怪(if judge:isGood() then那里),所以用肉眼看不出逻辑上有没有错误。
      最后的最后,其实不用一个一个阶段判断、每个阶段写一段的,可以直接用if phase == "xxx" or phase = "xxx" or phase == "xxx" then这样的写法啊反正后面也没有变化……I


      IP属地:江苏6楼2013-09-17 14:50
      收起回复
        如果即将进入的是出牌阶段而且你已经有标记了,就清空标记然后返回;否则就添加标记。其实没什么麻烦的啊?
        if phase == sgs.Player_Play and player:getMark("JiangcaiInvoked") > 0 then
        room:setPlayerMark(player, "JiangcaiInvoked", 0)
        return false
        end
        room:setPlayerMark(player, "JiangcaiInvoked", 1)
        I


        IP属地:江苏7楼2013-09-17 15:34
        收起回复
          好专业…… 只学过print hello vb~ 路过……


          IP属地:广东来自Android客户端8楼2013-09-18 13:48
          收起回复
            二技能写出来有bug而且会卡住牌的(就是一张牌卡在手里,除非弃置,不然怎么使用都在手里)


            IP属地:江苏来自Android客户端9楼2013-09-20 00:32
            回复