以下是一个简单的无名杀技能“测试”的代码示例: ```lua -- 定义技能 local test = sgs.CreateTriggerSkill{ name = "测试", events = {sgs.CardUsed, sgs.CardDiscarded}, -- 监听卡牌使用和打出(弃置)事件 can_trigger = function(self, event, player, data) local cardUse = data:toCardUse() if cardUse then local source = cardUse.from if source and source:objectName() ~= player:objectName() then -- 确保是其他角色 return true end end return false end, on_trigger = function(self, event, player, data) local cardUse = data:toCardUse() local source = cardUse.from local damage = sgs.DamageStruct() damage.from = player damage.to = source damage.card = nil damage.damage = 1 damage.nature = sgs.DamageStruct.Normal player:getRoom():damage(damage) -- 对使用或打出手牌的角色造成一点伤害 return false end } -- 注册技能 sgs.LoadSkill(test) ``` 额外需要注意的逻辑点 1. 此代码仅考虑了卡牌的使用和弃置事件,对于一些特殊的卡牌处理情况(如卡牌转化等)可能需要进一步调整监听事件。 2. 代码中造成的伤害是普通伤害,如果技能描述的伤害性质有特殊要求,需要修改 `damage.nature` 的值。 3. 技能代码在无名杀中运行时,要确保游戏环境正确加载该技能代码,并且在游戏中角色拥有此技能才能正常触发。 [2025-07-17 18:41:25 | AI写代码神器 | 401点数解答]