level 12
贴吧用户_0V343Q3
楼主
--这楼只允许发一段自己写的完整的技能lua,不得抄袭楼上或教程,如果有话要说请把要说的话注释掉。
YinlingCard = sgs.CreateSkillCard
{
name = "yinling",
target_fixed = false,
will_throw = true,
filter = function(self, targets, to_select,player)
if(#targets > 0) then return false end
if(to_select:getSeat() == player:getSeat()) then return false end
return not to_select:isNude()
end,
on_use = function(self, room, source, targets)
room:throwCard(self)
local target = targets[1]
effect = sgs.CardEffectStruct()
effect.card = self
effect.from = source
effect.to = target
room:cardEffect(effect)
end,
on_effect = function(self, effect)
local from = effect.from
local to = effect.to
local room = to:getRoom()
local card_id = room:askForCardChosen(from, to, "he", "yinling")
from:addToPile("jin_pile",card_id)
room:setEmotion(to, "bad")
room:setEmotion(from, "good")
end,
}
yinling = sgs.CreateViewAsSkill
{
name = "yinling",
n = 1,
view_filter = function(self, selected, to_select)
return to_select:isBlack()
end,
view_as = function(self, cards)
if #cards == 1 then
local card = cards[1]
local new_card =YinlingCard:clone()
new_card:addSubcard(card:getId())
new_card:setSkillName(self:objectName())
return new_card
end
end,
enabled_at_play=function(self,player)
return player:getPile("jin_pile"):length()<4
end,
}
junwei=sgs.CreateTriggerSkill{
name="junwei",
events={sgs.PhaseChange},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
local players=room:getAlivePlayers()
if player:hasSkill("junwei") and player:getPhase()==sgs.Player_Finish then
if player:getPile("jin_pile"):length()<3 then return end
if not room:askForSkillInvoke(player,"junwei") then return end
local target=room:askForPlayerChosen(player, players, "junwei")
local log=sgs.LogMessage()
log.type = "#junwei"
log.from = player
log.to:append(target)
room:sendLog(log);
room:playSkillEffect("junwei")
for var=1,3,1 do
room:throwCard(player:getPile("jin_pile"):first())
end
local jink=room:askForCard(target, " Jink|.|.", ", "@junwei-jink", data)
if jink then
local target2=room:askForPlayerChosen(player, room:getAlivePlayers(), "fangquan")
target2:obtainCard(jink)
else
room:loseHp(target)
if not (target:getWeapon() or target:getArmor() or target:getDefensiveHorse() or target:getOffensiveHorse() ) then return false end
local card_id = room:askForCardChosen(player, target, "e", "junwei")
target:addToPile("junwei",card_id)
end
elseif (not player:hasSkill("junwei")) and player:getPhase()==sgs.Player_Finish then
if player:getPile("junwei"):isEmpty() then return end
room:moveCardTo(sgs.Sanguosha:getCard(player:getPile("junwei"):first()), player, sgs.Player_Equip, true)
end
end,
can_trigger=function()
return true
end,
}
2012年11月30日 04点11分
1
YinlingCard = sgs.CreateSkillCard
{
name = "yinling",
target_fixed = false,
will_throw = true,
filter = function(self, targets, to_select,player)
if(#targets > 0) then return false end
if(to_select:getSeat() == player:getSeat()) then return false end
return not to_select:isNude()
end,
on_use = function(self, room, source, targets)
room:throwCard(self)
local target = targets[1]
effect = sgs.CardEffectStruct()
effect.card = self
effect.from = source
effect.to = target
room:cardEffect(effect)
end,
on_effect = function(self, effect)
local from = effect.from
local to = effect.to
local room = to:getRoom()
local card_id = room:askForCardChosen(from, to, "he", "yinling")
from:addToPile("jin_pile",card_id)
room:setEmotion(to, "bad")
room:setEmotion(from, "good")
end,
}
yinling = sgs.CreateViewAsSkill
{
name = "yinling",
n = 1,
view_filter = function(self, selected, to_select)
return to_select:isBlack()
end,
view_as = function(self, cards)
if #cards == 1 then
local card = cards[1]
local new_card =YinlingCard:clone()
new_card:addSubcard(card:getId())
new_card:setSkillName(self:objectName())
return new_card
end
end,
enabled_at_play=function(self,player)
return player:getPile("jin_pile"):length()<4
end,
}
junwei=sgs.CreateTriggerSkill{
name="junwei",
events={sgs.PhaseChange},
on_trigger=function(self,event,player,data)
local room=player:getRoom()
local players=room:getAlivePlayers()
if player:hasSkill("junwei") and player:getPhase()==sgs.Player_Finish then
if player:getPile("jin_pile"):length()<3 then return end
if not room:askForSkillInvoke(player,"junwei") then return end
local target=room:askForPlayerChosen(player, players, "junwei")
local log=sgs.LogMessage()
log.type = "#junwei"
log.from = player
log.to:append(target)
room:sendLog(log);
room:playSkillEffect("junwei")
for var=1,3,1 do
room:throwCard(player:getPile("jin_pile"):first())
end
local jink=room:askForCard(target, " Jink|.|.", ", "@junwei-jink", data)
if jink then
local target2=room:askForPlayerChosen(player, room:getAlivePlayers(), "fangquan")
target2:obtainCard(jink)
else
room:loseHp(target)
if not (target:getWeapon() or target:getArmor() or target:getDefensiveHorse() or target:getOffensiveHorse() ) then return false end
local card_id = room:askForCardChosen(player, target, "e", "junwei")
target:addToPile("junwei",card_id)
end
elseif (not player:hasSkill("junwei")) and player:getPhase()==sgs.Player_Finish then
if player:getPile("junwei"):isEmpty() then return end
room:moveCardTo(sgs.Sanguosha:getCard(player:getPile("junwei"):first()), player, sgs.Player_Equip, true)
end
end,
can_trigger=function()
return true
end,
}