搜索
查看: 670|回复: 10

[已处理] LUA设置零时整形,字符变量有问题啊

 关闭 [复制链接]
发表于 2023-7-24 18:55:42 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 0518
登陆器版本号: 0518
BUG描述: --死亡回调
function on_DieFunc(actor)
local actorname = actor:getCharName()
--print("["..actorname.."]死亡--[死亡回调]")
local RaceId6 = actor:getRace()--种族ID
actor:setVal_N_Ex("测试01", 1111) --当死亡对象为英雄时无法赋值呢? 说明书不是可以的吗
actor:runScript("@测试1")
end


--死亡物品掉落回调(返回值决定是否可以爆出物品)
--actor:死亡对像 killActor:击杀者对像 item:物品对像
function on_DieDropItem(actor, killActor, item)
actor:setVal_N_Ex("测试02", 2222) --当死亡对象为英雄时无法赋值呢? 说明书不是可以的吗
actor:runScript("@测试2")
end

;---QF脚本段
[@测试1]
#if
#act
SENDMSG 6 提示1:<$N(测试01)>
BREAK

[@测试2]
#if
#act
SENDMSG 6 提示2:<$N(测试02)>
BREAK
BUG重现方式: --不要说什么可以通过获取英雄主人对象来赋值(这样是正常的不错)。
--但是当人物先死,英雄后死就无法赋值了。
修复后应达到的效果: 可以通过英雄正常赋值
联系QQ: 隐藏内容

发表于 2023-7-25 15:51:35 | 显示全部楼层
如果死的是英雄时,actor:runScript,引擎内部会使用主体对像去触发脚本,这就是为什么你取不到英雄变量的问题

因为有的命令英雄是没办法执行的,例如 SENDMSG
发表于 2023-7-25 17:01:50 | 显示全部楼层
1580 发表于 2023-7-25 15:51
如果死的是英雄时,actor:runScript,引擎内部会使用主体对像去触发脚本,这就是为什么你取不到英雄变量的 ...

现在是主体死亡即主体对象不存在了,所有方法都不能使用了。
能不能修改成,主体死亡只要没下线,主体对象还存在,对象下的方法依旧可用?
因为主体死亡了,英雄还可以战斗,很多LUA功能都要使用。
 楼主| 发表于 2023-7-25 17:06:11 | 显示全部楼层
那这咋整,就拿投保来说,我设置掉落货币,人物先死英雄后死,英雄爆了投保装备,无法设置掉落数量了
 楼主| 发表于 2023-7-26 15:17:02 | 显示全部楼层
唯快不破 发表于 2023-7-25 17:06
那这咋整,就拿投保来说,我设置掉落货币,人物先死英雄后死,英雄爆了投保装备,无法设置掉落数量了 ...

好多命令LUA没有必须跳转传统脚本才能达到目的,这个能按3楼提的意见改改不
发表于 2023-7-27 11:38:12 | 显示全部楼层
唯快不破 发表于 2023-7-26 15:17
好多命令LUA没有必须跳转传统脚本才能达到目的,这个能按3楼提的意见改改不 ...

本身现在的模式,主体对像存在,全可以触发的,没看到主体死亡而无法执行 runScript的限制
 楼主| 发表于 2023-7-27 14:09:42 | 显示全部楼层
1580 发表于 2023-7-27 11:38
本身现在的模式,主体对像存在,全可以触发的,没看到主体死亡而无法执行 runScript的限制 ...

功能:将指定物品刷新到指定地图坐标范围内
格式:THROWITEM 地图 X Y 范围 物品名称 数量 需一定时间才可捡起(0/1) 延时捡起时长(秒)|极品(攻)|极品(魔)|极品(道)|极品(刺)|极品(防)|极品(魔防)|钢纹等级(1-140)|熔炼(1-11)|熔炼1(1-11)
极品属性:防(部分物品无效),魔防(部分物品无效)

那上面这个命令能扩展支持LUA吗,如果支持LUA一切都不是问题了
 楼主| 发表于 2023-7-27 16:29:38 | 显示全部楼层
1580 发表于 2023-7-27 11:38
本身现在的模式,主体对像存在,全可以触发的,没看到主体死亡而无法执行 runScript的限制 ...

执行  runScript是正常的
我反馈的是当主体先死,英雄后死 actor:setVal_N_Ex("测试02", 2222) 赋值临时变量无效
如果 THROWITEM 命令扩展LUA 我就不需要设置临时变量在跳转QF执行
发表于 2023-8-2 15:45:12 | 显示全部楼层
唯快不破 发表于 2023-7-27 14:09
功能:将指定物品刷新到指定地图坐标范围内
格式:THROWITEM 地图 X Y 范围 物品名称 数量 需一定时间才 ...

应该可以办到吧
 楼主| 发表于 2023-8-2 17:30:35 | 显示全部楼层
1580 发表于 2023-8-2 15:45
应该可以办到吧

--死亡物品掉落回调(返回值决定是否可以爆出物品)
--actor:死亡对像 killActor:击杀者对像 item:物品对像
function on_DieDropItem(actor, killActor, item)
actor:setVal_N_Ex("测试02", 2222) --当死亡对象为英雄时无法赋值呢? 说明书不是可以的吗
actor:runScript("@测试2")
end

;---QF脚本段
[@测试2]
#if
#act
;现在问题就是人物先死英雄后死-actor:setVal_N_Ex("测试02", 2222) 无法赋值,如果下面命令支持LUA就不需要跳转QF来执行就没有问题了
THROWITEM <$MAP> <$X> <$Y> 2 元宝蛋 <$N(测试02)> 1 3
BREAK
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2024-11-24 00:01 , Processed in 0.555613 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表