请规范描述。南蛮入侵应该说是“使用”,而不是“打出”,在三国杀里,打出仅限于南蛮时打出【杀】,万剑时打出【闪】,改判时打出一张牌等等,其他的让牌产生效果的动作一般都是“使用”,比如使用锦囊,使用【杀】、使用【闪】,使用装备等等。
另外在notepad++中,你先要创建一个扩展包文件,比如叫study,那么你创建的这个文件要命名为study.lua(一定要加后缀名.lua)
然后在文件中开头写
module(extensions.study,package.seeall)
extension=sgs.Package(study)
然后你要创建一个武将,比如叫xxx
那么语句是
xxx=sgs.General(extension,xxx,wei,4)
第三个参数是武将的势力,我这里写的是wei,代表魏,你可以改成shuwuqun等,god是神势力;数字4代表体力上限,你可以改成任意的正整数。
武将创建好之后,要创建技能
你的本意是使用一张南蛮入侵,没有描述清楚,我暂且这么认为吧:出牌阶段开始时,你可以视为使用一张南蛮入侵。那么代码应该这样写(假设技能名是YYY)
YYY=sgs.CreateTriggerSkill{
name=YYY,---这是技能名
events={sgs.EventPhaseStart},----这是触发时机,阶段开始时
on_trigger=function(self,event,player,data)
ifplayer:getPhase()~=sgs.Player_Playthenreturnfalseend--如果阶段不是出牌阶段就返回false,下面的不执行了
ifnotplayer:askForSkillInvoke(self:objectName(),data)thenreturnfalseend
---如果角色不发动此技能就返回false,下面的不执行了
localcc=sgs.Sanguosha:cloneCard(savage_assault,sgs.Card_NoSuit,0)
--这是创建一张南蛮入侵的代码
cc:setSkillName(YYY)--将技能名赋给该南蛮,意思是角色发动该技能使用了一张南蛮
localtargets=sgs.SPlayerList()--创建一个空的列表,用于加入能够成为南蛮目标的人
localroom=player:getRoom()--获取房间对象,好多函数需要用到room
for_,pinsgs.qlist(room:getOtherPlayers(player))do--遍历除玩家之外的所有角色
ifnotplayer:isProhibited(p,cc)then--如果角色并非不能对其用南蛮
targets:append(p)--那么把这个角色加入列表
end
end
iftargets:isEmpty()thenreturnfalseend--如果列表为空,即玩家没有使用南蛮的目标,就返回false,下面不再执行
room:useCard(sgs.CardUseStruct(cc,player,targets))
end
}
技能创建好了,然后将它赋给角色
XXX:addSkill(YYY)
这样你把上述代码复制粘贴到建立好的study.lua文件里,并保存值神杀根目录下的extensions文件夹里(没有就新建一个)就能进行游戏了