1、三国杀标准全武将拓展-SANGUOSHA Standard Version Generals-Design: YOKA (2011)-Code: hypercross ibicdlcod roxiel 【群】皇叔 William915 coldera-Version:14.10 (After Chibi 14)-Last Update:Dec 5 2011 20:33 UTC+8module(extensions.YKStdGeneral, package.seeall)extension = sgs.Package(YKStdGeneral)-0101 刘备luarende_card = s
2、gs.CreateSkillCard-仁德技能卡 by roxiel, ibicdlcod修复各种BUG(几乎所有技能皆有参考原CPP代码,不再赘述) name = luarende, target_fixed = true, -其实这里可以不用FIX掉,不过这样也简单 先选牌再选人 will_throw = false, -不扔 once = false, on_use = function(self, room, source, targets) source:gainMark(luarendecount, self:subcardsLength() local t = room:askF
3、orPlayerChosen(source, room:getOtherPlayers(source), luarende) room:playSkillEffect(luarende,math.random(1, 2) room:moveCardTo(self, t, sgs.Player_Hand, false) local x = source:getMark(luarendecount) if x = 2 and not source:hasFlag(recovered) then -多于两张且没有回复过的标记,就补血 然后计数清零 local recover = sgs.Recove
4、rStruct() -回复结构体 recover.recover = 1 -回复点数 recover.who = source -回复来源 room:recover(source,recover) if source:isKongcheng() then room:setPlayerFlag(source,-luarende_canuse) -空城就禁用技能 end return true endend,luarendevs = sgs.CreateViewAsSkill-仁德视为技 by roxiel name = luarendevs, n = 999, view_filter = fun
5、ction(self, selected, to_select) if to_select:isEquipped() then return false end -装备不可以使用 return true end, view_as = function(self, cards) if #cards = 0 then return end local acard = luarende_card:clone() for var = 1, #cards, 1 do -将所有选中的牌加入仁德技能牌的Subcards acard:addSubcard(cardsvar) end acard:setSkil
6、lName(self:objectName() return acard end, enabled_at_play = function() return sgs.Self:hasFlag(luarende_canuse) end,luarende = sgs.CreateTriggerSkill-仁德 by roxiel name = luarende, view_as_skill = luarendevs, events = sgs.PhaseChange, on_trigger = function(self, event, player, data) local room = play
7、er:getRoom() if player:getPhase() = sgs.Player_Play then room:setPlayerFlag(player, luarende_canuse) -回合开始 让VIEWAS可以使用 else if player:getPhase() = sgs.Player_Finish then room:setPlayerFlag(player, -luarende_canuse) -回合结束 让VIEWAS禁用 room:setPlayerMark(player, luarendecount,0) -计数清零 end endend,-0102 关羽
8、luawusheng = sgs.CreateViewAsSkill-武圣 by 【群】皇叔 name = luawusheng, n = 1, view_filter = function(self, selected, to_select) return to_select:isRed() end, view_as = function(self, cards) if #cards = 0 then return nil end if #cards = 1 then local card = cards1 local acard = sgs.Sanguosha:cloneCard(slas
9、h, card:getSuit(), card:getNumber() acard:addSubcard(card:getId() acard:setSkillName(self:objectName() return acard end end, enabled_at_play = function() return (sgs.Self:canSlashWithoutCrossbow() or (sgs.Self:getWeapon() and sgs.Self:getWeapon():className() = Crossbow) end, enabled_at_response = fu
10、nction(self, player, pattern) return pattern = slash end,-0103 张飞(lua不能)-0104 诸葛亮luaguanxing = sgs.CreateTriggerSkill-观星 by 【群】皇叔 name = luaguanxing, frequency = sgs.Skill_Frequent, events = sgs.PhaseChange, on_trigger = function(self, event, player, data) local room = player:getRoom() if (player:ge
11、tPhase() = sgs.Player_Start) then if (not room:askForSkillInvoke(player,self:objectName() then return false end local x = room:alivePlayerCount() if x 5 then x = 5 end room:doGuanxing(player,room:getNCards(x),false) end end, - 警告:一切没有lua化而有(to:hasSkill(kongcheng) and (to:isKongcheng()的内核技能都会出现无视lua空
12、城的BUG! 已知的有: Player:CanSlash player.cpp 593 函数涉及 姜维 挑衅 mountainpackage.cpp 576 大乔 流离 standard-skillcards.cpp 254 刘备 激将 standard-skillcards.cpp 273 贾诩 乱武 thicket.cpp 662 【倚】夏侯涓 连理【杀】 yitian-package.cpp 492 【倚】邓艾 偷渡 yitian-package.cpp 1565 【将】凌统 旋风 yjcm-package.cpp 440 【将】高顺 陷阵 yjcm-package.cpp 533 【将
13、】陈宫 明策 yjcm-package.cpp 650 貂蝉 离间 standard-skillcards.cpp 173 夏侯渊 神速 wind.cpp 243 【智】姜维 异才 wisdompackage.cpp 199 【智】孙策 霸王 wisdompackage.cpp 300 红颜百合 百合离间 hongyanscenario.cpp 60 luakongcheng = sgs.CreateProhibitSkill-空城 by 【群】皇叔 name = luakongcheng, is_prohibited = function(self, from, to, card) if(t
14、o:hasSkill(luakongcheng) and (to:isKongcheng() then return card:inherits(Slash) or card:inherits(Duel) end end,-0105 赵云ldtmp=lualongdan = sgs.CreateViewAsSkill-龙胆 by 【群】皇叔 name = lualongdan, n = 1, view_filter = function(self, selected, to_select) return (to_select:inherits(Slash) or (to_select:inhe
15、rits(Jink) end, view_as = function(self, cards) if #cards = 1 then local card = cards1 local ld_card = sgs.Sanguosha:cloneCard(ldtmp1, cards1:getSuit(), cards1:getNumber() ld_card:addSubcard(cards1) ld_card:setSkillName(self:objectName() return ld_card end end, enabled_at_play = function() ldtmp1 =
16、slash return(sgs.Self:canSlashWithoutCrossbow() or (sgs.Self:getWeapon() and sgs.Self:getWeapon():className() = Crossbow) end, enabled_at_response = function(self, player, pattern) if(pattern = jink) or (pattern = slash) then ldtmp1 = pattern return true end end,-0106 马超luatieqi = sgs.CreateTriggerS
17、kill-铁骑 by 【群】皇叔 name = luatieqi, frequency = sgs.Skill_Frequency, events = sgs.SlashProceed, on_trigger = function(self, event, player, data) local room = player:getRoom() if event = sgs.SlashProceed then if (not room:askForSkillInvoke(player, self:objectName() then return false end local judge = s
18、gs.JudgeStruct() judge.pattern = sgs.QRegExp(.*):(heart|diamond):(.*) judge.good = true judge.reason = self:objectName() judge.who = player room:judge(judge) if(judge:isGood() then local effect = data:toSlashEffect() room:slashResult(effect, nil) return true end end endluamashu = sgs.CreateDistanceS
19、kill-马术 by 【群】皇叔 name = luamashu, correct_func = function(self, from, to) if from:hasSkill(luamashu) then return -1 end end,-0107 黄月英 (奇才确认lua不能)luajizhi = sgs.CreateTriggerSkill-集智 by 【群】皇叔 name = luajizhi, events = sgs.CardUsed, frequency = sgs.Skill_Frequent, on_trigger = function(self, event, pl
20、ayer, data) local room = player:getRoom() local card = data:toCardUse().card if card:isNDTrick() then if not room:askForSkillInvoke(player, luajizhi) then return false end player:drawCards(1) end end,-0101lualiubei = sgs.General(extension, lualiubei$, shu, 4)lualiubei:addSkill(luarende)-0102luaguany
21、u = sgs.General(extension, luaguanyu, shu, 4)luaguanyu:addSkill(luawusheng)-0103luazhangfei = sgs.General(extension, luazhangfei, shu, 4)luazhangfei:addSkill(paoxiao)-0104luazhugeliang = sgs.General(extension, luazhugeliang, shu, 4)luazhugeliang:addSkill(luaguanxing)luazhugeliang:addSkill(luakongche
22、ng)-0105luazhaoyun = sgs.General(extension, luazhaoyun, shu, 4)luazhaoyun:addSkill(lualongdan)-0106luamachao = sgs.General(extension, luamachao, shu, 4)luamachao:addSkill(luatieqi)luamachao:addSkill(luamashu)-0107luahuangyueying = sgs.General(extension, luahuangyueying, shu, 3, false)luahuangyueying
23、:addSkill(luajizhi)luahuangyueying:addSkill(qicai)-0201 曹操luajianxiong = sgs.CreateTriggerSkill-奸雄 by hypercross frequency = sgs.Skill_NotFrequent, name = luajianxiong, events = sgs.Damaged, on_trigger = function(self, event, player, data) local room = player:getRoom() local card = data:toDamage().c
24、ard if not room:obtainable(card, player) then return end if room:askForSkillInvoke(player, luajianxiong) then room:playSkillEffect(luajianxiong) player:obtainCard(card) end endluahujia = sgs.CreateTriggerSkill-护驾 by ibicdlcod name = luahujia$, default_choice = ignore, events = sgs.CardAsked, sgs.Dam
25、aged, on_trigger = function(self,event,player,data) local room = player:getRoom() if(not player:hasLordSkill(luahujia) then return false end if(data:toString() = jink) then return false end if(not room:askForSkillInvoke(player, luahujia) then return false end room:playSkillEffect(luahujia) for _,lie
26、ge in sgs.qlist(room:getOtherPlayers(player) do local data = sgs.QVariant(0) local jink = 0 if(liege:getKingdom() = wei) then return false end data:setValue(player) jink = room:askForCard(liege, jink, hujia-jink, data) if(jink) then room:provide(jink) return true end end return false end -事实上,Masoch
27、ism此类多余,并且似乎有问题,而且带感情色彩,建议不用-0202 司马懿luafankui = sgs.CreateTriggerSkill-反馈 by ibicdlcod frequency = sgs.Skill_NotFrequent, name = luafankui, events = sgs.Damaged, on_trigger = function(self, event, player, data) local room = player:getRoom() local from = data:toDamage().from local data = sgs.QVarian
28、t(0) data:setValue(from) if(from and (not from:isNude() and room:askForSkillInvoke(player, luafankui, data) then local card_id = room:askForCardChosen(player, from, he, luafankui) if(room:getCardPlace(card_id) = sgs.Player_Hand) then room:moveCardTo(sgs.Sanguosha:getCard(card_id), player, sgs.Player
29、_Hand, false) else room:obtainCard(player, card_id) end room:playSkillEffect(luafankui) end endluaguicai_card = sgs.CreateSkillCard-鬼才技能卡 by roxiel name = luaguicai_effect, target_fixed = true, will_throw = false,luaguicaivs = sgs.CreateViewAsSkill-鬼才Viewas by roxiel name = luaguicaivs, n = 1, view_filter = function(self, selected, to_select) if not to_select:isEquipped() then return true else return false end end, view_as = function(self, cards) if #cards = 1 then local acard = luaguicai_card:clone() acard:addSubcard(cards1)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1