搜索
查看: 585|回复: 7

[沟通中] LUA自动拾取删除问题

[复制链接]
发表于 2022-3-5 20:15:07 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 20220218
登陆器版本号: 20220218
BUG描述: 实际文本已经没有检测可以通过的东西了,但是还可以通过LUA脚本
BUG重现方式: function DropItemToBag(actor, killActor, item)
local actorname = actor:getCharName()
local itemName = item:getName()--名称
local killname = killActor:getCharName()
local QuestNumA = killActor:getQuest(53)--等同于脚本 check [1] 0
local QuestNumB = killActor:getQuest(54)--等同于脚本 check [1] 0
if s.share.checkListText("..\\Envir\\QuestDiary\\华联工作\\装备首爆\\首爆物品.txt",itemName, 0,"Force") == 1 then
killActor:setVal_S(59, ""..itemName.."")
killActor:runScript("@装备首爆")
print(killname.."杀死["..actorname.."]死亡爆出物品["..itemName.."]直接进玩家包前回调")
return false
end




[@装备首爆]
#if
CHECKCONTAINSTEXTLIST <$STR(S59)> ..\QuestDiary\华联工作\装备首爆\掉落判断.txt 0 Force
CheckTextList <$STR(S59)> ..\QuestDiary\华联工作\装备首爆\物品位置.txt 0 N0 Force
#act
MOV S63 <$STR(S59)>
GetRandomName ..\QuestDiary\华联工作\装备首爆\首爆奖励参数.txt <$S(首爆奖励)> <$STR(N0)> 0 Force
ExtractString | <$S(首爆奖励)> <$S(首爆奖励1)> <$S(首爆奖励2)> <$S(首爆奖励3)> <$S(首爆奖励4)> <$S(首爆奖励5)> <$S(首爆奖励6)>
DelTextList <$STR(S63)> ..\QuestDiary\华联工作\装备首爆\掉落判断.txt 0 0 Force
MOV <$S(首爆奖励2)> 0
MOV <$S(首爆奖励3)> <$MAPNAME>
MOV <$S(首爆奖励4)> <$DATE>
INC <$S(首爆奖励4)> <$TIME>
MOV <$S(首爆奖励6)> <$USERNAME>
AddTextListEX <$S(首爆奖励1)>|<$S(首爆奖励2)>|<$S(首爆奖励3)>|<$S(首爆奖励4)>|<$S(首爆奖励5)>|<$S(首爆奖励6)> ..\QuestDiary\华联工作\装备首爆\首爆奖励参数.txt <$STR(N0)> 0 Force
DelTextList <$S(首爆奖励)> ..\QuestDiary\华联工作\装备首爆\首爆奖励参数.txt 0 0 Force
DelTextList <$STR(S63)> ..\QuestDiary\华联工作\装备首爆\首爆物品.txt 0 0 Force
SendCenterMsg 251 249 物品:<$STR(S63)>首次在地图[<$MAPNAME>]被[<$USERNAME>]获得首爆奖励 1 10 1
GOTO @首爆奖励跳转检测
BREAK
修复后应达到的效果: 不知道哪里写错了!
联系QQ: 隐藏内容

发表于 2022-3-6 14:20:13 | 显示全部楼层
我怎么看着,你少1个end呢,你这样不会报错?
理论上你没有if 就要1个end结束,你里面加了1个if检测,就要加多1个end,你里面只有1个,不是很矛盾吗!

补充内容 (2022-3-17 10:30):

function DropItemToBag(Actor, killActor, item)

        local Actorname = Actor:getCharName()
        local itemName = item:getName()--名称
        local killname = killActor:getCharName()
        local QuestNumA = killAct...
 楼主| 发表于 2022-3-6 17:03:02 | 显示全部楼层
参谋长 发表于 2022-3-6 14:20
我怎么看着,你少1个end呢,你这样不会报错?
理论上你没有if 就要1个end结束,你里面加了1个if检测,就要加 ...

后面还有结束语句

只是为什么文本里面已经没有这个物品了还能通过检测!
发表于 2022-3-7 11:09:17 | 显示全部楼层
这种不知道如何试,为什么不LUA判断完,就把对应的物品从文本里删除呢,而是触发到脚本再进行处理
 楼主| 发表于 2022-3-7 16:19:13 | 显示全部楼层
上线发呆 发表于 2022-3-7 11:09
这种不知道如何试,为什么不LUA判断完,就把对应的物品从文本里删除呢,而是触发到脚本再进行处理 ...

我也想LUA判断完直接删除
但是物品触发方便我处理

s.share.checkListText 我用这个命令好像怎么都无法识别

s.share.checkListTextEx  我换连这个命令就解决了
具体原因位置!
发表于 2022-3-8 10:33:17 | 显示全部楼层
华联工作 发表于 2022-3-7 16:19
我也想LUA判断完直接删除
但是物品触发方便我处理

第一个是包含模式
发表于 2022-3-8 10:33:21 | 显示全部楼层
文本:1234ABCD2342

查询ABCD时,也是认为是存在的
发表于 2022-3-17 10:30:16 | 显示全部楼层

function DropItemToBag(Actor, killActor, item)

        local Actorname = Actor:getCharName()
        local itemName = item:getName()--名称
        local killname = killActor:getCharName()
        local QuestNumA = killActor:getQuest(53)--等同于脚本 check [1] 0
        local QuestNumB = killActor:getQuest(54)--等同于脚本 check [1] 0

        if s.share.checkListText("..\\Envir\\QuestDiary\\华联工作\\装备首爆\\首爆物品.txt",itemName, 0,"Force") > 0 then
                killActor:setVal_S(59, ""..itemName.."")
                killActor:runScript("@装备首爆")
                --print(killname.."杀死["..Actorname.."]死亡爆出物品["..itemName.."]直接进玩家包前回调")
        end

        return false
end
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2024-11-25 23:29 , Processed in 0.546994 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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