太阳神三国杀lua吧 关注:2,638贴子:73,403
  • 11回复贴,共1
新人在看了lua教程之后便尝试自己写技能,但发现自己的能力根本就是硬伤,我估计自己已经没有救了。特此求助,希望看此帖的大神,能帮我一下。
技能如下:
雄资:你可以跳过判定和摸牌阶段,视为使用一张决斗。
制霸:出牌阶段限一次,你可以和一名其他角色拼点,赢的一方获得所有的拼点牌。


IP属地:湖北来自Android客户端1楼2017-04-04 20:49回复
    参考神速,和那个谁的技能


    IP属地:江苏来自Android客户端2楼2017-04-05 05:28
    收起回复
      我发的东西,咋莫名其妙被删了?百度的敏感字词真奇怪。回复二楼:你说的是神速和双雄和天义和孙策的主公技吧,我试过了,然而我不知道谁说跳出牌阶段那部分代码在哪里,然后就是我不知道如何把那个若你赢你获得所有拼点牌改成赢的角色获得所有拼点牌。


      IP属地:湖北4楼2017-04-05 11:24
      收起回复
        参考神速 制霸 密诏


        IP属地:北京来自Android客户端5楼2017-04-05 13:42
        回复
          事先说明一下我是先改过技能后,发现我lua的技能不能指定目标,才来发这个帖子的,至于拼点吗?我实在是不会改所以没弄。
          最终弄出的代码如下:
          Xiongzi = sgs.CreateSkillCard{name = "Xiongzi" ,filter = function(self, targets, to_select)local targets_list = sgs.PlayerList()for _, target in ipairs(targets) dotargets_list:append(target)end local duel = sgs.Sanguosha:cloneCard("duel", sgs.Card_NoSuit, 0)duel:setSkillName("Xiongzi")duel:deleteLater()return duel:targetFilter(targets_list, to_select, sgs.Self)end ,on_use = function(self, room, source, targets)local targets_list = sgs.SPlayerList()for _, target in ipairs(targets) doif source:canduel(target, nil, false) thentargets_list:append(target)endendif targets_lists:length() > 0 thenlocal duel = sgs.Sanguosha:cloneCard("duel", sgs.Card_NoSuit, 0)duel:setSkillName("Xiongzi")room:useCard(sgs.CardUseStruct(duel, source, targets_list))end end}Xiongzi = sgs.CreateTriggerSkill{name = "Xiongzi" ,events = {sgs.EventPhaseChanging} ,on_trigger = function(self, event, player, data)local room = player:getRoom()local change = data:toPhaseChange()if change.to == sgs.Player_Judge and not player:isSkipped(sgs.Player_Judge) and not player:isSkipped(sgs.Player_Draw) thenif sgs.duel_IsAvailable(player) and room:askForUseCard(player, "@@Xiongzi1", "@Xiongzi1", 1) thenplayer:skip(sgs.Player_Judge)player:skip(sgs.Player_Draw)endendreturn falseend}Xiongziduel = sgs.CreateTargetModSkill{name = "#Xiongzi-duel" ,pattern = "duel" ,distance_limit_func = function(self, player, card)if player:hasSkill("Xiongzi") and (card:getSkillName() == "Xiongzi") thenreturn 1000elsereturn 0endend}


          IP属地:湖北来自Android客户端6楼2017-04-05 18:50
          收起回复
            if change.to == sgs.Player_Judge and not player:isSkipped(sgs.Player_Judge)
            and not player:isSkipped(sgs.Player_Draw) then
            if sgs.Slash_IsAvailable(player) and room:askForUseCard(player, "@@LuaShensu1", "@shensu1", 1) then
            player:skip(sgs.Player_Judge)
            player:skip(sgs.Player_Draw)
            end


            IP属地:江苏7楼2017-04-05 21:43
            收起回复