spLightning=sgs.CreateTrickCard{
name="spLightning",
className="spLightning",
target_fixed = true,
subtype="delayed_trick",
subclass=sgs.LuaTrickCard_TypeDelayedTrick,
movable=true,
available=function(self,player)
return not player:isCardLimited(self,sgs.Card_MethodUse, true) and not player:containsTrick(self:objectName())
end,
about_to_use=function(self,room,card_use)
local use=card_use
local wrapped = sgs.Sanguosha:getWrappedCard(self:getEffectiveId())
use.card = wrapped
local data = sgs.QVariant()
data:setValue(use)
local thread = room:getThread()
thread:trigger(sgs.PreCardUsed, room, use.from, data)
use = data:toCardUse()
local logm = sgs.LogMessage()
logm.from = use.from
logm.to:append(use.from)
logm.type = "#UseCard"
logm.card_str = self:toString()
room:sendLog(logm)
local reason = sgs.CardMoveReason(sgs.CardMoveReason_S_REASON_USE, use.from:objectName(), use.from:objectName(), self:getSkillName(), "")
room:moveCardTo(self, use.from, use.from, sgs.Player_PlaceDelayedTrick, reason, true)
thread:trigger(sgs.CardUsed, room, use.from, data)
use = data:toCardUse()
thread:trigger(sgs.CardFinished, room, use.from, data)
end,
on_effect=function(self,effect)
local room=effect.to:getRoom()
local log=sgs.LogMessage()
log.from=effect.to
log.arg=self:objectName()
log.type="#DelayedTrick"
room:sendLog(log)
local judge=sgs.JudgeStruct()
judge.who=effect.to
judge.pattern=".|spade"
judge.good=false
judge.reason=self:objectName()
judge.play_animation=true
room:judge(judge)
if not judge:isGood() then
log.type="#spLightning"
room:sendLog(log)
local damage=sgs.DamageStruct(self,nil,effect.to,1,sgs.DamageStruct_Thunder)
room:damage(damage)
local reason = sgs.CardMoveReason(sgs.CardMoveReason_S_REASON_NATURAL_ENTER, effect.to:objectName())
room:throwCard(self, reason, nil)
else
self:on_nullified(effect.to)
end
end,
}
写了个SP闪电,效果基本同闪电,判定为黑桃的伤害受到1点伤害,效果要改就改on_effect的部分就行了,参考的是\lua\sgs_ex.lua里面的