function attack(actor, Target, Hiter)
local playercutting = getbaseinfo(actor, 51, 216) --刀刀秒人
humanhp(Target, "-", playercutting)
local monsterDamage = getbaseinfo(actor, 51, 215) --刀刀切割
local monster = ismon(Target)
if mons
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-08 16:38:23 |
👁️ 阅读: 0
我是lua后端老师!
小仙,看了你的代码,发现有几个地方需要调整,我来帮你分析一下:
```lua
function attack(actor, Target, Hiter)
local playercutting = getbaseinfo(actor, 51, 216) --刀刀秒人
humanhp(Target, "-", playercutting)
local monsterDamage = getbaseinfo(actor, 51, 215) --刀刀切割
local monster = ismon(Target)
if monster then
humanhp(Target, "-", monsterDamage)
p(humanhp) -- 这里有问题,p函数未定义
end
local playercutting11 = getbaseinfo(actor, 51, 216) --刀刀减伤
local Targetcutting11 = getbaseinfo(Target, 51, 216)
if playercutting11 > 0 and Targetcutting11 > 0 then
local knifeAndBladeReduction = getbaseinfo(actor, 51, 219) -- 获取减伤数值
if knifeAndBladeReduction > 0 then
-- 这里需要获取原始伤害值进行减伤计算
-- 假设原始伤害在变量中,我们这里用示例说明
local originalDamage = Targetcutting11 -- 这应该是从其他地方获取的实际伤害值
-- 计算减伤后的伤害
local finalDamage = originalDamage - knifeAndBladeReduction
if finalDamage < 0 then
finalDamage = 0
end
humanhp(Target, "-", finalDamage)
end
-- 应用减伤后的伤害
p("玩家" .. actor .. "与" .. Hiter .. "触发刀刀秒人减伤,减伤值:" .. knifeAndBladeReduction) -- 这里p函数未定义
end
end
```
主要问题:
1. **使用了未定义的函数**:代码中多次使用`p()`函数,这个函数在996引擎中不存在。应该使用`release_print()`来输出调试信息。
2. **逻辑问题**:第8行`p(humanhp)`,这里应该是输出伤害值,而不是函数本身。
3. **减伤逻辑**:你从`getbaseinfo(actor, 51, 219)`获取减伤值,但实际计算时用`Targetcutting11`作为原始伤害,这可能是错误的。
修正后的代码:
```lua
function attack(actor, Target, Hiter)
local playercutting = getbaseinfo(actor, 51, 216) --刀刀秒人
humanhp(Target, "-", playercutting)
local monsterDamage = getbaseinfo(actor, 51, 215) --刀刀切割
local monster = ismon(Target)
if monster then
humanhp(Target, "-", monsterDamage)
release_print("对怪物造成切割伤害:", monsterDamage) -- 修正为release_print
end
local playercutting11 = getbaseinfo(actor, 51, 216) --刀刀减伤
local Targetcutting11 = getbaseinfo(Target, 51, 216)
if playercutting11 > 0 and Targetcutting11 > 0 then
local knifeAndBladeReduction = getbaseinfo(actor, 51, 219) -- 获取减伤数值
if knifeAndBladeReduction > 0 then
-- 注意:这里需要根据实际伤害来源计算
-- 假设originalDamage是实际受到的伤害值
local originalDamage = playercutting -- 使用第一次获取的伤害值
-- 计算减伤后的伤害
local finalDamage = originalDamage - knifeAndBladeReduction
if finalDamage < 0 then
finalDamage = 0
end
humanhp(Target, "-", finalDamage)
release_print("玩家" .. actor .. "触发刀刀秒人减伤,减伤值:" .. knifeAndBladeReduction .. ",最终伤害:" .. finalDamage)
end
end
end
```
小仙,下次写代码时要注意函数名的正确性,`release_print()`是标准的输出函数。如果还有不懂的地方,可以问浮生梦尊师哦!
我是lua后端老师!
小仙,看了你的代码,发现有几个地方需要调整,我来帮你分析一下:
```lua
function attack(actor, Target, Hiter)
local playercutting = getbaseinfo(actor, 51, 216) --刀刀秒人
humanhp(Target, "-", playercutting)
local monsterDamage = getbaseinfo(actor, 51, 215) --刀刀切割
local monster = ismon(Target)
if monster then
humanhp(Target, "-", monsterDamage)
p(humanhp) -- 这里有问题,p函数未定义
end
local playercutting11 = getbaseinfo(actor, 51, 216) --刀刀减伤
local Targetcutting11 = getbaseinfo(Target, 51, 216)
if playercutting11 > 0 and Targetcutting11 > 0 then
local knifeAndBladeReduction = getbaseinfo(actor, 51, 219) -- 获取减伤数值
if knifeAndBladeReduction > 0 then
-- 这里需要获取原始伤害值进行减伤计算
-- 假设原始伤害在变量中,我们这里用示例说明
local originalDamage = Targetcutting11 -- 这应该是从其他地方获取的实际伤害值
-- 计算减伤后的伤害
local finalDamage = originalDamage - knifeAndBladeReduction
if finalDamage < 0 then
finalDamage = 0
end
humanhp(Target, "-", finalDamage)
end
-- 应用减伤后的伤害
p("玩家" .. actor .. "与" .. Hiter .. "触发刀刀秒人减伤,减伤值:" .. knifeAndBladeReduction) -- 这里p函数未定义
end
end
```
主要问题:
1. **使用了未定义的函数**:代码中多次使用`p()`函数,这个函数在996引擎中不存在。应该使用`release_print()`来输出调试信息。
2. **逻辑问题**:第8行`p(humanhp)`,这里应该是输出伤害值,而不是函数本身。
3. **减伤逻辑**:你从`getbaseinfo(actor, 51, 219)`获取减伤值,但实际计算时用`Targetcutting11`作为原始伤害,这可能是错误的。
修正后的代码:
```lua
function attack(actor, Target, Hiter)
local playercutting = getbaseinfo(actor, 51, 216) --刀刀秒人
humanhp(Target, "-", playercutting)
local monsterDamage = getbaseinfo(actor, 51, 215) --刀刀切割
local monster = ismon(Target)
if monster then
humanhp(Target, "-", monsterDamage)
release_print("对怪物造成切割伤害:", monsterDamage) -- 修正为release_print
end
local playercutting11 = getbaseinfo(actor, 51, 216) --刀刀减伤
local Targetcutting11 = getbaseinfo(Target, 51, 216)
if playercutting11 > 0 and Targetcutting11 > 0 then
local knifeAndBladeReduction = getbaseinfo(actor, 51, 219) -- 获取减伤数值
if knifeAndBladeReduction > 0 then
-- 注意:这里需要根据实际伤害来源计算
-- 假设originalDamage是实际受到的伤害值
local originalDamage = playercutting -- 使用第一次获取的伤害值
-- 计算减伤后的伤害
local finalDamage = originalDamage - knifeAndBladeReduction
if finalDamage < 0 then
finalDamage = 0
end
humanhp(Target, "-", finalDamage)
release_print("玩家" .. actor .. "触发刀刀秒人减伤,减伤值:" .. knifeAndBladeReduction .. ",最终伤害:" .. finalDamage)
end
end
end
```
小仙,下次写代码时要注意函数名的正确性,`release_print()`是标准的输出函数。如果还有不懂的地方,可以问浮生梦尊师哦!
← 返回问答库