太阳神三国杀lua吧 关注:2,639贴子:73,402
  • 17回复贴,共1

写了个技能,你每使用三张牌,下一张牌若为杀,视为拥有酒效果。

只看楼主收藏回复

写了个技能,你每使用三张牌,下一张牌若为杀,视为拥有酒效果。我的写法是使用牌时没有mark,获得一个mark,然后如果有三个mark,失去所有mark,如果此牌为杀,添加drank标记。但实测总是我用第四张牌的时候,获得酒效果,然后下一张杀生效。时机不对吗?各个时机都试了,后来参考恃勇,给杀加flag,没用。


IP属地:山东来自Android客户端1楼2019-02-23 23:53回复
    不知道问题在哪,有没有好心的大神,帮忙写下这个技能。


    IP属地:山东来自Android客户端2楼2019-02-23 23:56
    回复
      多算了一个?试试改为两个mark==2 时,就加个drank


      IP属地:广东来自Android客户端3楼2019-02-24 00:22
      收起回复
        不要沉啊


        IP属地:山东来自Android客户端4楼2019-02-24 12:33
        回复
          IP属地:山东来自Android客户端5楼2019-02-24 14:55
          回复
            @czb0598 @独孤安河


            IP属地:山东来自Android客户端6楼2019-02-24 14:55
            回复
              我觉得3楼讲的没问题。
              脑内演算一下:第一张牌使用→第一个标记get→第二张牌使用→第二个标记get→第三张牌使用→第三个标记get→第四张牌使用→标记到3啦!清除标记,使用【酒】→第五张杀获得酒的效果


              IP属地:河南7楼2019-02-24 18:29
              收起回复
                Luazuiquan = sgs.CreateTriggerSkill{
                name = "Luazuiquan" ,
                frequency = sgs.Skill_Compulsory ,
                events = {sgs.PreCardUsed} ,
                on_trigger = function(self, event, player, data)
                local use = data:toCardUse()
                local room = player:getRoom()
                if player:getMark("@zuiquan") < 3 then
                room:addPlayerMark(player,"@zuiquan")
                elseif player:getMark("@zuiquan") == 3 then
                room:setPlayerMark(player,"@zuiquan",0)
                if use.card:isNDTrick() then
                use.card:toTrick():setCancelable(false)
                elseif use.card:isKindOf("Slash") then
                room:setPlayerMark(player, "drank",1)
                end
                end
                end
                }


                IP属地:山东8楼2019-02-24 20:54
                收起回复
                  会不会PreCardUsed时机加上drank已经晚了?要不就在使用第三张牌的时候加上,如果后一张牌不是酒,再去掉drank


                  IP属地:浙江9楼2019-02-24 21:18
                  收起回复