刚开始学,想了一个简单的技能:【装逼】摸牌阶段,你可以多摸两张牌,若如此做,你在弃牌阶段要额外弃一张牌。代码如下:
zhuangbi=sgs.CreateTriggerSkill{
name="zhuangbi",
frequency=sgs.Skill_NotFrequent,
events={sgs.DrawNCards},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
if room:askForSkillInvoke(player,"zhuangbi") then
data:setValue(data:toInt()+2)
if not player:hasSkill("zhuangbi_discard") then room:acquireSkill(player,zhuangbi_discard,true) end
end
end
}
zhuangbi_discard=sgs.CreateTriggerSkill{
name="zhuangbi_discard",
frequency=sgs.Skill_Compulsory,
events={sgs.EventPhaseStart},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
if player:getPhase()==sgs.Player_Discard then
room:askForDiscard(player,"zhuangbi_discard",1,false,true)
room:detachSkillFromPlayer(player,zhuangbi_discard)
end
end
}
local skill = sgs.Sanguosha:getSkill("zhuangbi_discard")
if not skill then
local skillList = sgs.SkillList()
skillList:append(zhuangbi_discard)
sgs.Sanguosha:addSkills(skillList)
end
运行结果是能多摸牌,但是不用多弃牌,请大神看一下哪里错了。另外想问一下有没有什么debug手段
zhuangbi=sgs.CreateTriggerSkill{
name="zhuangbi",
frequency=sgs.Skill_NotFrequent,
events={sgs.DrawNCards},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
if room:askForSkillInvoke(player,"zhuangbi") then
data:setValue(data:toInt()+2)
if not player:hasSkill("zhuangbi_discard") then room:acquireSkill(player,zhuangbi_discard,true) end
end
end
}
zhuangbi_discard=sgs.CreateTriggerSkill{
name="zhuangbi_discard",
frequency=sgs.Skill_Compulsory,
events={sgs.EventPhaseStart},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
if player:getPhase()==sgs.Player_Discard then
room:askForDiscard(player,"zhuangbi_discard",1,false,true)
room:detachSkillFromPlayer(player,zhuangbi_discard)
end
end
}
local skill = sgs.Sanguosha:getSkill("zhuangbi_discard")
if not skill then
local skillList = sgs.SkillList()
skillList:append(zhuangbi_discard)
sgs.Sanguosha:addSkills(skillList)
end
运行结果是能多摸牌,但是不用多弃牌,请大神看一下哪里错了。另外想问一下有没有什么debug手段
