无名杀 做一个技能 技能描述:掉血时从5个锁定技中选择一个获得


以下是一个使用无名杀的脚本语言实现该技能的代码示例: ```lua -- 定义5个锁定技 -- 锁定技1:每回合出牌阶段开始时,摸一张牌 local lockSkill1 = sgs.CreateTriggerSkill{ name = "lockSkill1", events = {sgs.EventPhaseStart}, frequency = sgs.Skill_Frequent, can_trigger = function(self, event, player, data) return player:phase() == sgs.Player_Play end, on_trigger = function(self, event, player, data) player:drawCards(1) return false end } -- 锁定技2:使用杀时伤害+1 local lockSkill2 = sgs.CreateTriggerSkill{ name = "lockSkill2", events = {sgs.CardEffect}, frequency = sgs.Skill_Frequent, can_trigger = function(self, event, player, data) local effect = data:toCardEffect() return effect.card:isKindOf("Slash") and effect.from == player end, on_trigger = function(self, event, player, data) local effect = data:toCardEffect() effect.damage = effect.damage + 1 return false end } -- 锁定技3:受到伤害时,伤害-1 local lockSkill3 = sgs.CreateTriggerSkill{ name = "lockSkill3", events = {sgs.Damaged}, frequency = sgs.Skill_Frequent, can_trigger = function(self, event, player, data) return true end, on_trigger = function(self, event, player, data) local damage = data:toDamage() damage.damage = damage.damage - 1 return false end } -- 锁定技4:出牌阶段可以额外使用一张基本牌 local lockSkill4 = sgs.CreateTriggerSkill{ name = "lockSkill4", events = {sgs.EventPhaseStart}, frequency = sgs.Skill_Frequent, can_trigger = function(self, event, player, data) return player:phase() == sgs.Player_Play end, on_trigger = function(self, event, player, data) player:addMark("extraBasicCard", 1) return false end } -- 锁定技5:回合结束阶段,回复1点体力 local lockSkill5 = sgs.CreateTriggerSkill{ name = "lockSkill5", events = {sgs.EventPhaseEnd}, frequency = sgs.Skill_Frequent, can_trigger = function(self, event, player, data) return player:phase() == sgs.Player_Finish end, on_trigger = function(self, event, player, data) if player:isWounded() then player:recover(sgs.RecoverStruct()) end return false end } -- 定义主技能 local mainSkill = sgs.CreateTriggerSkill{ name = "customSkill", events = {sgs.Damaged}, frequency = sgs.Skill_NotFrequent, can_trigger = function(self, event, player, data) return true end, on_trigger = function(self, event, player, data) local skills = {lockSkill1, lockSkill2, lockSkill3, lockSkill4, lockSkill5} local skillNames = {} for _, skill in ipairs(skills) do table.insert(skillNames, skill:objectName()) end local choice = player:askForChoice("customSkill", table.concat(skillNames, " ")) for _, skill in ipairs(skills) do if skill:objectName() == choice then player:acquireSkill(choice) break end end return false end } -- 注册技能 sgs.LoadSkill(mainSkill) sgs.LoadSkill(lockSkill1) sgs.LoadSkill(lockSkill2) sgs.LoadSkill(lockSkill3) sgs.LoadSkill(lockSkill4) sgs.LoadSkill(lockSkill5) ``` 代码说明: 1. 首先定义了5个不同的锁定技,每个锁定技有不同的触发条件和效果。 2. 然后定义了主技能`customSkill`,该技能在玩家掉血时触发。 3. 当主技能触发时,会让玩家从5个锁定技中选择一个,然后将选择的锁定技赋予玩家。 4. 最后将所有技能注册到无名杀中。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 技能的触发条件和效果要准确,避免出现逻辑错误。 2. 在使用`askForChoice`函数时,要确保选项的名称和技能的名称一致。 3. 注册技能时,要确保所有技能都被正确注册,避免技能无法生效。 [2025-09-29 03:14:34 | AI写代码神器 | 1165点数解答]
- 改写“jdk是sun公司java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的java虚拟机平台,是调试和运行jsp所不可缺少的工具。 首先在安装前先要下载jdk,这可以从sun公司的网站上下载,到http://java.sun.com/products/jdk/1.8这个页面下载jdk1.8.2-001-win.exe或jdk 1.3-win.exe,由于笔者n.exe为例。下载后,双击jdk1.8.2-001-win.exe就可以开始安装了,在安装过程中有很多选项,按个人需求正确选择,这里我们以第一次安装为例,全部选择默认配制即可,安装的默认路径为[windows所在的根目录(以下设为c:)]\jdk1.8.2,安装完毕后就可以重新启动了。 启动时要更新环境变量,在开机时要自动调用jdk系统,因此要设置一些环境变量,我们以windows2000 server版系统为例进行系统环境变量设置(在windows 9x系统中可在autoexe.txt中进行设置)。设置方法如下: 在桌面上,用鼠标右键单击[我的电脑]图标,选择[属性]按钮,弹出[系统特性]对话匡,选择[高(376点数解答 | 2024-03-06 17:27:29)292
- 一个 5×6 的迷宫样例如下: 要求给出从起点(1,1)到终点(3,4)的路径。 为了处理方便,保证最外圈全都为障碍物。 扩展到一般情况,一个 m×n 的迷宫,要求输出从起点(1,1)到终点(m-2,n-2)的路径。 测试实例保证路径是唯一的。 该题要求自行设计一个栈来做。如果设计的是顺序栈,则保证栈的大小不超过 200 个元素。 输入 第一行为两个整数 m 和 n,表示 m×n 的迷宫。 接下来有 m 行,每行有 n 个数(n 个数之间用空格间隔,值 = 0 表示可以通行,值 = 1 表示为障碍物) 输出 输出从起点到终点的路径,每个坐标占一行,坐标间的行号和列号用一个空格间隔。具体格式可参考样例。c++ 源代码(732点数解答 | 2024-11-03 02:34:53)342
- 第一关 请从当前文件夹读取数据,该数据通过调用模块data中的方法shu_ju()获得。然后输出该数据。 第二关: 请将第一关获得的数据写到指定文件data.pkl中,该文件所在文件夹的地址为: /data/share_files/experiment_file/e_16159/datafiles/ 最后输出:完成写操作! 第三关: 从刚才的文件data.pkl读取文件内容,并输出键名为"职业"的键值。(404点数解答 | 2024-11-28 13:06:48)156
- 觉醒技,准备阶段,若“权”的数量不小于3,你选择一项:1.回复1点体力;2.摸两张牌。然后减1点体力上限,获得“排异”和“鬼才”。(69点数解答 | 2025-04-17 14:45:50)115
- 生成无名杀技能代码;技能名:自立,技能效果:觉醒技,准备阶段,若“权”的数量不小于3,你选择一项:1.回复1点体力;2.摸两张牌。然后减1点体力上限,获得“排异”和“鬼才”。(286点数解答 | 2025-04-17 14:46:32)148
- 易语言 分析文本 colour='FFF99C21']绑定装备[colour='FFFFFFFF'] 完成[colour='FFF99C21']主线任务[colour='FFFFFFFF']获得 找天空之城的【费恩】可解锁各级装备 生命 +17 物理防御 +22 魔法防御 +22 耐久Ⅱ 锋利Ⅱ(854点数解答 | 2025-06-02 21:47:02)86
- 易语言 分析文本 colour='FFF99C21']绑定装备[colour='FFFFFFFF'] 完成[colour='FFF99C21']主线任务[colour='FFFFFFFF']获得 找天空之城的【费恩】可解锁各级装备 生命 +17 物理防御 +22 魔法防御 +22 耐久Ⅱ 锋利Ⅱ(492点数解答 | 2025-06-02 21:49:03)97
- 选择“好句子”三个字,调用创建的 ani 动画,在 2s 内完成动画,并且停留在结束位置 *(456点数解答 | 2024-05-19 16:46:15)188
- 本次突训,选择 php实训内容是做一个喜闻乐见的电子商务平台,主要内容分以下个三大模块: 1,数括库设计(包括:数据库设计,表结构设计) 2.前台模块(包括:首页、商品列表页、购物车模块、公共 模块,登录注册等) 3.后台模块(后台首页、商品管理、用户管理和信息管理等)并生成相应的实训报告,内容包括实训目的和背景、实训内容、实训规划、实训步骤、测试结果、思考、心得和改进以及不明白的问题。(674点数解答 | 2024-06-17 08:58:32)222
- 本次突训,选择 php实训内容是做一个喜闻乐见的电子商务平台,并生成相应的实训报告,内容包括实训目的和背景、实训内容、实训规划、实训步骤、测试结果、思考、心得和改进以及不明白的问题。(623点数解答 | 2024-06-17 08:59:26)253
- 本次突训,选择 php实训内容是做一个喜闻乐见的电子商务平台,并生成相应的实训报告,内容包括实训目的和背景、实训内容、实训规划、实训步骤、测试结果、思考、心得和改进以及不明白的问题。(1439点数解答 | 2024-06-17 09:00:18)205
- 选择 php实训内容是做一个喜闻乐见的电子商务平台,内容包括实训目的和背景、实训内容、实训规划、实训步骤、测试结果、思考、心得和改进以及不明白的问题,生成一篇相应的实训报告,字数10000左右。(1868点数解答 | 2024-06-17 09:02:00)197