有关太阳神三国杀

请规范描述。南蛮入侵应该说是“使用”,而不是“打出”,在三国杀里,打出仅限于南蛮时打出杀,万剑时打出闪,改判时打出一张牌等等,其他的让牌产生效果的动作一般都是“使用”,比如使用锦囊,使用杀、使用闪,使用装备等等。

另外,在notepad++中,你先要创建一个扩展包文件,比如叫study,那么你创建的这个文件要命名为study.lua (一定要加后缀名.lua)

然后在文件中开头写

module("extensions.study", package.seeall)

extension = sgs.Package("study")

然后你要创建一个武将,比如叫 xxx

那么语句是

xxx = sgs.General(extension,"xxx","wei",4)

第三个参数是武将的势力,我这里写的是"wei",代表魏,你可以改成"shu" "wu" "qun"等,"god"是神势力;数字4代表体力上限,你可以改成任意的正整数。

武将创建好之后,要创建技能

你的本意是使用一张南蛮入侵,没有描述清楚,我暂且这么认为吧 : 出牌阶段开始时,你可以视为使用一张南蛮入侵。那么代码应该这样写(假设技能名是 YYY)

YYY = sgs.CreateTriggerSkill{

name = "YYY",---这是技能名

events = {sgs.EventPhaseStart},----这是触发时机,阶段开始时

on_trigger = function(self,event,player,data)

if player:getPhase() ~= sgs.Player_Play then return false end --如果阶段不是出牌阶段就返回false,下面的不执行了

if not player:askForSkillInvoke(self:objectName(),data) then return false end

---如果角色不发动此技能就返回false,下面的不执行了

local cc = sgs.Sanguosha:cloneCard("savage_assault",sgs.Card_NoSuit,0)

--这是创建一张南蛮入侵的代码

cc:setSkillName("YYY") --将技能名赋给该南蛮,意思是角色发动该技能使用了一张南蛮

local targets = sgs.SPlayerList()--创建一个空的列表,用于加入能够成为南蛮目标的人

local room = player:getRoom()--获取房间对象,好多函数需要用到room

for _,p in sgs.qlist(room:getOtherPlayers(player)) do--遍历除玩家之外的所有角色

if not player:isProhibited(p,cc) then--如果角色并非不能对其用南蛮

targets:append(p)--那么把这个角色加入列表

end

end

if targets:isEmpty() then return false end --如果列表为空,即玩家没有使用南蛮的目标,就返回false,下面不再执行

room:useCard(sgs.CardUseStruct(cc,player,targets))

end

}

技能创建好了,然后将它赋给角色

XXX:addSkill(YYY)

这样,你把上述代码复制粘贴到建立好的study.lua文件里,并保存值神杀根目录下的extensions文件夹里(没有就新建一个)就能进行游戏了