3个回答
展开全部
请规范描述。南蛮入侵应该说是“使用”,而不是“打出”,在三国杀里,打出仅限于南蛮时打出【杀】,万剑时打出【闪】,改判时打出一张牌等等,其他的让牌产生效果的动作一般都是“使用”,比如使用锦囊,使用【杀】、使用【闪】,使用装备等等。
另外,在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文件夹里(没有就新建一个)就能进行游戏了
另外,在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文件夹里(没有就新建一个)就能进行游戏了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询