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

求问为什么这个技能没有效果

只看楼主收藏回复

技能描述:锁定技,出牌阶段,你使用的第一张牌结算后,你摸1张牌,使用的第二张牌结算后,你须弃1张牌;其他角色的出牌阶段,其他角色使用的第三和第四张牌结算后,你摸一张牌.
我是仿照代码手册中的精策写的,然而,测试时发现什么也没有发生.楼下发代码.


IP属地:广西1楼2017-02-12 15:19回复
    luaxuyu = sgs.CreateTriggerSkill{
    name = "luaxuyu" ,
    events = {sgs.PreCardUsed, sgs.CardResponded, sgs.EventPhaseStart, sgs.CardUsed} ,
    frequency = sgs.Skill_Compulsory ,
    on_trigger = function(self, event, player, data)
    local room = player:getRoom()
    local source = room:findPlayersBySkillName(self:objectName())
    if ((event == sgs.PreCardUsed) or (event == sgs.CardResponded)) and (player:getPhase() <= sgs.Player_Play) then
    local card = nil
    if event == sgs.PreCardUsed then
    card = data:toCardUse().card
    else
    local response = data:toCardResponse()
    if response.m_isUse then
    card = response.m_card
    end
    end
    if card and (card:getHandlingMethod() == sgs.Card_MethodUse) then
    player:addMark(self:objectName())
    end
    elseif (event == sgs.EventPhaseStart) and (player:getPhase() == sgs.Player_RoundStart) then
    player:setMark(self:objectName(), 0)
    elseif event == sgs.CardUsed and player:getPhase() == sgs.Player_Play then
    local x = player:getMark(self:objectName())
    if x == 1 and (player:objectName() == source:objectName()) then
    player:drawCards(1)
    elseif x == 2 and (player:objectName() == source:objectName()) then
    room:askForDiscard(player, self:objectName(), 1, 1, false, true)
    elseif x == 3 and (player:objectName() ~= source:objectName()) then
    source:drawCards(1)
    elseif x == 4 and (player:objectName() ~= source:objectName()) then
    source:drawCards(1)
    end
    end
    return false
    end,
    can_trigger = function(self,target)
    return target and target:isAlive()
    end
    }


    IP属地:广西2楼2017-02-12 15:20
    回复