重开水楼,但灌水规则修改
太阳神三国杀lua吧
全部回复
仅看楼主
level 12
--这楼只允许发一段自己写的完整的技能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
level 12
这。。。我也不太会用,但我试过用鸡肋实现醉乡,但发现托管后技能无效。。。
2012年11月30日 06点11分 3
鸡肋的Ai真心不会写。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2012年11月30日 07点11分
level 11
会不会发生水楼没人水?有的人不愿写lua。。。
2012年11月30日 07点11分 4
level 1

2012年12月01日 05点12分 5
level 8
水一个,摸牌高手
mopaigaoshouCARD=sgs.CreateSkillCard{
name="mopaigaoshouCARD",
target_fixed= true,
on_use=function(self,room,source,targets)
local x = room:getDrawPile():length()
source:drawCards(x)
end,
}
mopaigaoshou=sgs.CreateViewAsSkill{
name="mopaigaoshou",
n=0,
view_as = function(self, cards)
return mopaigaoshouCARD:clone()
end,
enabled_at_play = function()
return true
end
}
2012年12月01日 07点12分 6
应该可以再改一下,弃牌堆的牌也能摸回来。
2012年12月01日 13点12分
回复 hi_godlike :反正会切洗弃牌堆牌的,洗牌了在用就行了
2012年12月01日 15点12分
level 5
不会写。。
2012年12月01日 14点12分 8
level 11
shishilua = sgs.CreateTriggerSkill {
name = "shishilua",
events = {sgs.CardLost, sgs.CardGot, sgs.CardDiscarded, sgs.CardDrawnDone, sgs.PhaseChange},
priority = 2,
frequency = sgs.Skill_Compulsory,
on_trigger = function(self, event, player, data)
local room = player:getRoom()
local HandcardNum = player:getHandcardNum()
if(event == sgs.PhaseChange and player:getPhase() == sgs.Player_Draw) then return true end
if (event == sgs.CardLost) then
local move = data:toCardMove()
if (move.from_place ~= sgs.Player_Hand) then
return
end
end
if (event == sgs.CardGot) then
local move = data:toCardMove()
if (move.to_place~=sgs.Player_Hand) then
return
end
end
if HandcardNum == 10 then
return
elseif HandcardNum < 10 then
player:drawCards(10 - HandcardNum)
return false
else
room:askForDiscard(player, "shishilua", 1)
return false
end
end,}
2012年12月02日 03点12分 10
level 7
写个简单的。
abcdefg=sgs.CreateTriggerSkill{
name = "abcdefg",
events = sgs.GameOverJudge,
priority = 6,
can_trigger = function() return true end,
on_trigger = function(self, event, player, data)
return true
end
}
2012年12月03日 02点12分 11
唯一破的方法是右上角[拍砖]
2012年12月03日 05点12分
level 12
zg_ji=sgs.CreateTriggerSkill{
name="zg_ji",
events=sgs.PhaseChange,
can_trigger=function()
return true end,
on_trigger=function(self,event,player,data)
return not player:hasSkill("zg_ji") end}
2012年12月03日 04点12分 12
level 13
这水的质量太高了[啊!]
2012年12月07日 09点12分 13
level 12
jianting=sgs.CreateTriggerSkill
{
name="jianting",
events={sgs.CardUsed, sgs.CardFinished, sgs.CardEffected},
frequency = sgs.Skill_Compulsory,
can_trigger = function(self, target)
return true
end,
on_trigger=function(self, event, player, data)
local room = player:getRoom()
local effect = sgs.CardEffectStruct()
local use = sgs.CardUseStruct()
local caninvoke
if event ~= sgs.CardEffected then
use = data:toCardUse()
caninvoke = use.card:inherits("Dismantlement") and ((not use.card:isVirtualCard()) or (use.card:getSubcards():length() == 1 ))
else
effect = data:toCardEffect()
end
local zhuge = room:findPlayerBySkillName(self:objectName())
if event == sgs.CardUsed then
if player:hasSkill(self:objectName()) then return end
if caninvoke then
room:setPlayerFlag(zhuge, "pingmanInvoke")
end
elseif event == sgs.CardEffected then
if effect.card:inherits("Dismantlement") and player:hasFlag("pingmanInvoke") then
local log= sgs.LogMessage()
log.from = player
log.type = "#SkillNullify"
log.arg = "jianting"
log.arg2 = "dismantlement"
room:sendLog(log)
return true
end
else
if player:hasSkill(self:objectName()) then return end
if caninvoke and zhuge:hasFlag("pingmanInvoke") then
if room:getCardPlace(use.card:getEffectiveId()) == sgs.Player_DiscardedPile then
if not ( room:askForSkillInvoke(zhuge,self:objectName())) then
room:setPlayerFlag(zhuge, "-pingmanInvoke")
return false
end
room:loseMaxHp(zhuge)
zhuge:obtainCard(use.card)
end
room:setPlayerFlag(zhuge, "-pingmanInvoke")
end
end
end,
}
2012年12月14日 03点12分 14
level 12
我就发个水图……
多欢乐~
2012年12月15日 06点12分 15
level 10
来个简单的吧,刚在吧里请教过的
LuaXZhulou = sgs.CreateTriggerSkill{name = "LuaXZhulou", frequency = sgs.Skill_NotFrequent, events = {sgs.EventPhaseStart}, on_trigger = function(self, event, player, data) local room = player:getRoom();if player:getPhase() == sgs.Player_Finish thenif player:askForSkillInvoke(self:objectName()) thenroom:loseMaxHp(player)player:drawCards(10)end endreturn falseend}
2013年05月05日 10点05分 16
@arrow羽 啊……
2013年05月06日 12点05分
没事。。。这吧的帖子本来就几天都沉不下去。。。加油,我看好你哦
2013年05月06日 12点05分
回复 魅惑菇投手 :多谢鼓励
2013年05月06日 14点05分
1