cgmsv引擎论坛

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

【研究讨论】头饰相关机制修复可能性

[复制链接]

Rank: 4

发表于 2023-10-24 19:44:28 | 显示全部楼层 |阅读模式
本帖最后由 xman 于 2023-10-25 16:34 编辑

有不配带头饰却可以给出头饰封包的方法吗?

目前知道这个函数NLG.SetHeadIcon(Player,114198);可以
无法持续有效果,一下子就消失不见
使用这方法同时会触发一次HeadCoverEvent
NLG.SetHeadIcon(Player,114198) 不会传送出 headcoverID

发现可利用NL.RegHeadCoverEvent
在角色登入时也会触发HeadCoverEvent
且改变成其他图檔的效果是持续性!

[人物内存里的0x974位置设置为道具ID所对应的头饰]
查到头饰编号信息0x974,不过操作没作用
ffi.setMemoryInt32(charPtr + 0x974, 114206);

附送一个8方位变色头饰
可自己加工成8个头饰或改成纯色
(颜色已测试过,刚好也只有这8)
108510_1.jpg




暂时解决方法
将饰品的道具id强迫变动为一数值 如:900331
而它将会显示对应图档编号1来外显
利用HeadCoverEvent设几种条件,强制将接收到的hcID == 1
return 图档编号其他数值

Headcover.txt
#ItemID:道具ID      HeadImageID:显示的图档ID
900331    1

function QuickUI:headcover(player, hcID)
  if player>=0 and player < 800  then
      if hcID == 1 and Char.EndEvent(player,21) == 1 and Char.EndEvent(player,105) == 1 and Char.EndEvent(player,143) == 1 then
            local charPtr = Char.GetCharPointer(player)
            ffi.setMemoryInt32(charPtr + 0x5e8 + 0x188 + 0x18, 200);   --walkSpeed
            return 114177;
      end
      if hcID == 1 and Char.EndEvent(player,21) == 1 and Char.EndEvent(player,105) == 1 then
            local charPtr = Char.GetCharPointer(player)
            ffi.setMemoryInt32(charPtr + 0x5e8 + 0x188 + 0x18, 170);   --walkSpeed
            return 114177;
      end
      if hcID == 1 and Char.EndEvent(player,21) == 1 then
            local charPtr = Char.GetCharPointer(player)
            ffi.setMemoryInt32(charPtr + 0x5e8 + 0x188 + 0x18, 150);   --walkSpeed
            return 114206;
      end
      if hcID == 1 and Char.EndEvent(player,0) == 1 then
            local charPtr = Char.GetCharPointer(player)
            ffi.setMemoryInt32(charPtr + 0x5e8 + 0x188 + 0x18, 130);   --walkSpeed
            return 108510;
      end
  end
  return hcID;
end

优点:登入就有配戴及加速效果
缺点:UI操作完需注销后生效

108510.rar

7.44 KB, 下载次数: 9

Rank: 1

发表于 2023-10-28 11:51:42 | 显示全部楼层
突然有个想法,晚点去试一下,要是能在战斗中调用NL.RegHeadCoverEvent这类事件,是不是能增加额外buff的显示效果呢.

Rank: 1

发表于 2023-10-29 12:21:15 | 显示全部楼层
头饰在data序号是714
setdata也能用,但是要upchar才会看到.
传送事件发生后就消失,不能作用在宠/怪身上,_(:з」∠)_难受
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-5-19 07:32 , Processed in 0.145673 second(s), 10 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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