cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
查看: 462|回复: 10

丢地消失的道具,丢地前确认 lua

[复制链接]

Rank: 1

发表于 2024-3-5 05:20:56 | 显示全部楼层 |阅读模式
基于m佬新框架制作,测试版本为24.2b

(正好提一句,24.2a开始,不再需要新老合并操作,老框架代码直接写,talkevent能获取msg了,等下次出视频再讲清楚)

QQ截图20240305050901.png


dropkillitem.rar (1.23 KB, 下载次数: 23)



一个简单的功能,但是碰到了重重阻碍,如NL.RegItemDropEvent事件生效,但是return -1拦截无效
最后用拦截封包lua做的,研究了封包才知道,物品栏10开始solt编号不是数字,是tn英文

经过测试:
1、丢地不消失的道具不判定,直接可以丢
2、丢地消失的道具,才会弹窗提示
3、支持多页背包,没问题
4、如果你的佣兵lua是有丢垃圾功能的,其方式是通过del做的那没有问题,如果是通过drop(虽然我也没见过丢道具到地板上的lua)做的那就不支持了,不过会以如此不寻常方式做lua的人不多,概率不高,所以99%支持



补充内容 (2024-3-7 19:57):
有个远程触发用的npc在666地图,如果你没有666地图,可以把代码中666改为777


补充内容 (2024-3-7 21:13):
代码已更新,下载见9楼

Rank: 1

 楼主| 发表于 2024-3-5 05:22:02 | 显示全部楼层
本帖最后由 ahsin 于 2024-3-5 05:25 编辑


补充一下,是小伙伴定制的,不然我也想不到这个功能


丢到lua/modules中即可

moduleconfig.lua中加一条loadModule('dropkillitem')   结束

Rank: 1

发表于 2024-3-6 16:50:03 | 显示全部楼层
本帖最后由 yoyo 于 2024-3-6 17:00 编辑

不好意思 帮你改了一下下
1 slot用查表的方式性能更高
2 slot没做溢出判断 在Char.GetItemIndex(player,slot)此处可能会被恶意攻击挂端
3 临时变量最好加上local

dropkillitem2.zip (1.34 KB, 下载次数: 8)

Rank: 1

发表于 2024-3-6 17:07:12 来自手机 | 显示全部楼层
都想扔地上了,还要再确认一下?那不是无形中增加了繁琐。

Rank: 1

发表于 2024-3-6 20:07:11 | 显示全部楼层
yoyo 发表于 2024-3-6 16:50
不好意思 帮你改了一下下
1 slot用查表的方式性能更高
2 slot没做溢出判断 在Char.GetItemIndex(player,slo ...

我试了一下你修改的版本,无法正常使用。

Rank: 1

发表于 2024-3-7 00:05:35 | 显示全部楼层
toot555 发表于 2024-3-6 17:07
都想扔地上了,还要再确认一下?那不是无形中增加了繁琐。

因为有些物品只是想扔地上好方便换个地方(背包,别人),但不知道这个物品丢到地上会消失

Rank: 1

 楼主| 发表于 2024-3-7 11:36:57 | 显示全部楼层
toot555 发表于 2024-3-6 17:07
都想扔地上了,还要再确认一下?那不是无形中增加了繁琐。

有没有一种可能,丢地不消失的道具,可以直接丢,不会要确认。然后魔力没有绑定装备,作为后期强力装备,不可交易装备的方式只能是不可交易+丟地消失,那么手抖丢了好装备不就造孽了,玩家天天骂gm,天天盘你

Rank: 1

 楼主| 发表于 2024-3-7 20:06:58 | 显示全部楼层
yoyo 发表于 2024-3-6 16:50
不好意思 帮你改了一下下
1 slot用查表的方式性能更高
2 slot没做溢出判断 在Char.GetItemIndex(player,slo ...

tks,
30行错了
local slot = tonumber(tbl_DslotMap(data[4])) or tonumber(data[4]) --道具在背包的位置
改为
local slot = tonumber(tbl_DslotMap[data[4]]) or tonumber(data[4]) --道具在背包的位置

顺便推荐试用我这个反挂登陆器
https://bbs.cgmsv.com/thread-1090-1-1.html

Rank: 1

 楼主| 发表于 2024-3-7 21:12:22 | 显示全部楼层
更新代码,



1、修复多个相同装备放在不同背包格子情况下,会误删靠前位置的装备(如:2个一样的武器,1个jp、1个垃圾,结果极品被丢了)

2、优化yoyo的方案,变量能用局部的用局部,不能用局部的不用,table方式也不错,修复30行的[]括号


lanjiediudi.rar (1.43 KB, 下载次数: 19)


dropkillitem.lua没用了,删
lanjiediudi.lua放到lua/modules中
moduleconfig.lua中删除loadModule('dropkillitem')【若有】
moduleconfig.lua中添加loadModule('lanjiediudi')
结束

Rank: 1

发表于 2024-3-7 21:17:24 | 显示全部楼层
太棒啦!刚开始也是疑惑为何丢地了还要确认,是我没看清楚设置原理,是为了保护丢地消失的道具 误丢失而已~
阿欣大佬精益求精,还在不断优化代码 好厉害 ,拿走咯,谢谢大佬无私分享!
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-5-19 10:45 , Processed in 0.166875 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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