level 12
贴吧用户_0V343Q3
楼主
zhunsuan=sgs.CreateTriggerSkill
{
name="zhunsuan",
events={sgs.CardFinished, sgs.PhaseChange,sgs.TurnStart,sgs.CardResponsed},
can_trigger = function(self, target)
return true
end,
on_trigger=function(self, event, player, data)
local room = player:getRoom()
local cq = room:findPlayerBySkillName(self:objectName())
if event==sgs.CardFinished then
if player:hasSkill(self:objectName()) then return end
local card=data:toCardUse().card
if not card:inherits("BasicCard") then return false end
local x=cq:getMark("zhunsuan")
cq:speak(x)
local y=card:getNumber()
player:speak(y)
if math.min(x-2,y)==y or math.min(x+1,y)==x+1 then return false end
if room:getCardPlace(card:getEffectiveId()) == sgs.Player_DiscardedPile then
cq:obtainCard(card)
end
elseif event==sgs.PhaseChange then
if (player:getPhase() ~= sgs.Player_Finish) then return false end
if not player:hasSkill(self:objectName()) then return end
local choice=room:askForChoice(player,"zhunsuan","1+2
+3
+4+5+6+7+8+9+10+11+12+13+cancel")
if choice=="cancel" then return false end
local log2=sgs.LogMessage()
log2.from =player
log2.type="#InvokeSkill"
log2.arg="zhunsuan"
room:sendLog(log2)
room:setPlayerMark(player, "zhunsuan", choice)
local log=sgs.LogMessage() --LOG这个坑
log.type ="#Zhunsuan" log.from=player
log.arg=choice
room:sendLog(log)
elseif event==sgs.TurnStart then
if not player:hasSkill(self:objectName()) then return end
room:setPlayerMark(player, "zhunsuan", 0)
elseif event==sgs.CardResponsed then
if player:hasSkill(self:objectName()) then return end
local cd=data:toCard()
if not cd:inherits("BasicCard") then return false end
local x=cq:getMark("zhunsuan")
cq:speak(x)
local y=cd:getNumber()
player:speak(y)
if math.min(x-2,y)==y or math.min(x+1,y)==x+1 then return false end
if room:getCardPlace(cd:getEffectiveId()) == sgs.Player_DiscardedPile then
cq:obtainCard(cd)
end
end
end,
}
@brianvong @Ailue
2013年01月02日 05点01分
1
{
name="zhunsuan",
events={sgs.CardFinished, sgs.PhaseChange,sgs.TurnStart,sgs.CardResponsed},
can_trigger = function(self, target)
return true
end,
on_trigger=function(self, event, player, data)
local room = player:getRoom()
local cq = room:findPlayerBySkillName(self:objectName())
if event==sgs.CardFinished then
if player:hasSkill(self:objectName()) then return end
local card=data:toCardUse().card
if not card:inherits("BasicCard") then return false end
local x=cq:getMark("zhunsuan")
cq:speak(x)
local y=card:getNumber()
player:speak(y)
if math.min(x-2,y)==y or math.min(x+1,y)==x+1 then return false end
if room:getCardPlace(card:getEffectiveId()) == sgs.Player_DiscardedPile then
cq:obtainCard(card)
end
elseif event==sgs.PhaseChange then
if (player:getPhase() ~= sgs.Player_Finish) then return false end
if not player:hasSkill(self:objectName()) then return end
local choice=room:askForChoice(player,"zhunsuan","1+2
+3
+4+5+6+7+8+9+10+11+12+13+cancel")
if choice=="cancel" then return false end
local log2=sgs.LogMessage()
log2.from =player
log2.type="#InvokeSkill"
log2.arg="zhunsuan"
room:sendLog(log2)
room:setPlayerMark(player, "zhunsuan", choice)
local log=sgs.LogMessage() --LOG这个坑
log.type ="#Zhunsuan" log.from=player
log.arg=choice
room:sendLog(log)
elseif event==sgs.TurnStart then
if not player:hasSkill(self:objectName()) then return end
room:setPlayerMark(player, "zhunsuan", 0)
elseif event==sgs.CardResponsed then
if player:hasSkill(self:objectName()) then return end
local cd=data:toCard()
if not cd:inherits("BasicCard") then return false end
local x=cq:getMark("zhunsuan")
cq:speak(x)
local y=cd:getNumber()
player:speak(y)
if math.min(x-2,y)==y or math.min(x+1,y)==x+1 then return false end
if room:getCardPlace(cd:getEffectiveId()) == sgs.Player_DiscardedPile then
cq:obtainCard(cd)
end
end
end,
}
@brianvong @Ailue