传奇七号站-为优质资源而生Ctrl+D收藏本站

GOM引擎版本转996PC笔记,从(M2-素材-脚本-特性)精细打磨

七号编辑 收藏

文章介绍

目前996PC引擎使用用户越来越多出篇GOM转换的教程,本文将从内核的引擎M2设置细节(参数-功能-大背包-光柱-装备对比-玩家视野)-到素材的注意事项以及转换-到脚本部分代码命令功能场景功能-再到996PC的特效记录等几个维度分别如下:

一.M2设置

参数设置-移动速度,点一下将补偿转换为公共CD

参数设置 - 环境设置  玩家视野,

选项-客户端控制NPC坐标偏移

选项-客户端控制 内挂控制二 获得物品、经验、升级,右对齐

选项-功能设置-客户端设置 装备对比

选项-功能设置 基本功能 - 掉落来源 地图事件触发

选项-功能设置 - 技能 - 道术毒符 佩戴 、无

选项-功能设置-客户端设置-启用套装改名判断  没事千万没勾

光柱导入后 坐标和绘制模式可能失效 需要核实

列表二-内挂捡取 需要重新设置

选项-客户端控制-内挂控制 需要重新设置内挂选项

大背包在M2-选项-功能设置-客户端设置,背包按钮需要在UI中配置,且在QF写入触发命令

刷新包裹按钮无效,需要用自定义背包按钮+刷新包裹命令自己写

M2选项-查看列表信息二-技能描述


二.素材部分

996自带的转换工具会把png也转成24位BMP,导致部分素材花屏

996PC不支持24位以下BMP会,导致部分地图黑屏、素材不显示

完美解决办法:用GMGJX转一份素材【主用】,引擎自带转换工具一份备用。进游戏后发现1、2问题,则去引擎自带转换工具转的那份里对应jpk找到对应图片导出、导入使用,偷懒点就整个jpk替换

以下怪物素材编号要规避,系统固定编号
Mon80~83 也就是appr790-829 火龙系怪物
Mon91 也就是appr 900-909 沙巴克城墙
Mon96 也就是appr 950~959 强化骷髅


三.脚本部分

镶嵌相关命令(SOCKETABLEITEM、DRILLHOLE等)精简后只有3个参数,不需要88或者***去占位无用参数

杀怪爆率命令KILLMONBURSTRATE 同上

所有输入框都需要搜索出来,加一句MOV S变量 <$NPCPARAMS(1,S变量)>,N变量同理

货币名称修改需要在数据库顶部几行中修改,不是在!Setup中修改了

个人商店已作废,改用拍卖行,需要在M2隐藏个人商店,删除qf中相关代码

变量P D M N S I 0-99  G A 0-499  U T J 0-254 使用范围外变量会报错
更严谨的变量使用,命令中使用变量如果是调用则需要加<$str()>,如果是输出则不能有<$str()> 这个要花点时间,一般我会搜 .txt <$str     再搜 <$str 检查

注意SetStringBlank是不能加<$str()>的,其他就是几个文件操作

称号给予删除不会自动转换

【全系】RangeHarm不会报错,需要转成SetAttackRange 2025.08.01.08更新了RangeHarm和RangeHarmEx

【GEE系】 鼠标坐标N998,N999需要改成<$mouseX> <$mouseY>

【GEE系】PLAYEFFECT参数不同 LF坐标参数无效,996会生效反而出错(原有需要脚本写上坐标参数得删除)

【GEE系】ChangeHumAbility不支持百分比参数

【全系】推荐使用ChangeHumNewValueEx,更全面的属性修改命令(多达81种人物属性,不仅包含元素,还有大量伤害类属性对应的抵抗属性,如暴击几率和暴击抵抗),完全可以代替ChangeHumAbility
ChangeHumNewValueEx 修改临时属性的值不需要清空,类似于ChangeHumAbility =,而不是ChangeHumAbility +
建议长效属性用ChangeHumNewValueEx,短效用ChangeHumAbility

【GEE系】[@BeginMagic]技能前触发<$MagicName>需要改为<$param2>
【GOM系】GOM靠插件实现[@ESPBeginMagic]

【GOM系】TAKEONALL 和 TAKEOFFALL 需要改成 takeonex  takeoffex

【全系】Guildbase目录已废弃 覆盖guildbase目录建立行会的方式要改成 命令形式
    addguild 行会名 self -1
清空行会需要在引擎控制器或者合区工具清理,自动开合区的GM可以找助手技术修改

【全系】Dummylogon 需要在结尾加一个乱序登录参数1 不然会反复登录同一个假人

CheckMagicName 烈火剑法  检查是否学习了某个技能

经过测试,996PC的元素增伤减伤,与GOM、LF存在较大差异,当攻击方存在元素增伤时,被攻击方的元素减伤需先抵扣攻击方的元素增伤。
简单举例,攻击方100攻击,元素增伤+100%,,被攻击方元素减伤100%,仍会受到100点伤害。
介于本人对伤害计算要求较高,需要调平与GOM的差异,以下为修复代码。

[@AttackDamage]
#ACT
FORMULATION (<$DAMAGEVALUE>*(100+<$VALUE2>)*(100-<$c.VALUE3>))/((100+<$VALUE2>-<$c.VALUE3>)*100) N$最终伤害
ChangeDamageValue 0 = <$str(N$最终伤害)>

修复996PC元素减伤计算方式与GOM一致,服务器开销我测试了,只多花了0.000291秒

2025.12.23更新批注:实测<$c.VALUE3>,<$c.MAXHP>,<$c.MAXAC>等变量能丝滑取到怪物的属性和元素,以上修复脚本能同时修复攻击怪物时的伤害值

经过测试,996的暴击也与GOM/LF存在较大差异,举例如下:
GOM/LF: (人物综合攻击-怪物防御)*暴击倍数
996PC:人物综合攻击*暴击倍数-怪物防御
故得出以下修复代码,实测有效:

[@CritTrigger]
#ACT
FORMULATION <$PARAM1>-<$c.maxac> N$暴击伤害
Return <$STR(N$暴击伤害)>

2025.12.23更新批注:需要注意的是,以上公式中<$c.maxac>,取决于M2设定的暴击报数,正常暴击倍数为200%就直接用上面公式即可,如果暴击倍数300%,就需要<$c.maxac>*2,如果暴击倍数150%,择<$c.maxac>/2


四.99PC新特性记录

RandomGoto 100 10:@触发1|50:@触发2|100:@触发3 几率跳转

等概率或者按权限随机获取分割字符串
格式:RANSJSTR 参数1 参数2 参数3 参数4 参数5

功能: 修改无属性附加属性值(44)

格式: NEWCHANGEITEMADDVALUE 装备位置(-1时是OK框中的装备, 0~28或30~47时是穿在身上的装备) 属性位置(44) (符号 + - =) 值

检测格式:NEWCHECKITEMADDVALUE 装备位置(-1时是OK框中的装备, 0-55时是穿在身上的装备) 属性位置(44) (符号 < > = ?) 值 保存变量

获取格式:NEWGETITEMADDVALUE 装备位置(-1时是OK框中的装备, 0-55时是穿在身上的装备) 属性位置(44) 存放变量 获取方式(0获取附加属性 1=基础属性+附加属性)

装备常量: 唯一ID<$USEITEM[XX]>;IDX<$USEITEMID[XX]>;名字<$USEITEMNAME[XX]>

XX表示M2设置的装备位置支持(0-111)

取身上物品位置唯一ID
说明:原来的物品常量后面加上ID,就可以获取到装备位装备的唯一ID,如:
衣服原来的常量为:<$DRESS>   想取当前身上衣服唯一ID:<$DRESSID>
武器原来的常量为:<$WEAPON>  想取当前身上武器唯一ID:<$WEAPONID>

新自定义变量(重点)
1.不再需要以文件形式保存自定义变量,也就是以前的SAVEVAR和LOADVAR(不需要LOADVAR,但需要SAVEVAR,不过不再需要SAVE到一个文件)
2.清理全局自定义变量ClearHumCustVar
传统方法需要清空自定义变量文件,并用gmexecute重载在线玩家的自定义变量
3.更牛逼的自定义变量排序SortHumVar、HumVarRank
原本需要写一堆代码实现的功能,一行代码直接搞定,具体自己查说明书

高级分割命令 GETVALIDSTRSUPER 分割内容|分割内容|分割内容| | S$变量
输出的是S$变量1 S$变量2 S$变量3   
老命令ExtractString 不支持自定义变量自动编号

批量使用叠加消耗类型物品(只支持叠加物品)
EatItem 参数1 参数2  
[传统方法需要checkitem take之后再写一遍@STDMODEFUNC里的内容]取两个日期之间相差的天数
格式 DaysBetween 参数1:日期,参数2:日期,参数3:接收变量
取两个时间之间的相差秒数
脚本格式:Taketime 时间1 时间2
时间相差常量:<$Timeresult>

获取背包物品数量
格式:GETBAGITEMCOUNT 物品名称 变量名

禁止跑步 NoRun (0~1)

强制爆出身上物品 HumanDropUseItem 参数1 参数2

身上物品爆出时触发[@CheckDropUseItems],需要在列表二设置哪些装备会触发

数字转图片 <TextAtlas:F:N:X:Y:L>

邮件系统  MailGIVE 

使用地图参数限制角色在地图内时间 TimeMap
直接写在mapinfo里 可以省去以前写在常驻定时器里

取指定行会成员人数 GetGuildHum 

铭文系统功能 流星火雨X段伤害 恢复类药品加成 施毒术无需佩戴毒(用处不大)

货币超出21亿触发(金币不支持) [@ChangeMoneyOut]

地图播放怪物形象倒计时(支持自定义特效) MAPEFFECTFUNCALL 用来写BOSS死亡墓碑倒计时

获取指定地图怪物数量  FindMapMonster

获取指定地图玩家数量  GetPlayCountInMap

获取指定地图、指定怪物当前血量和最大血量  FindMapMonsterHealth

清理地图某范围的怪物 KillMapMon

改变技能特效 SETMAGICWILLID 参数1 参数2 参数3

设置当前攻击飘血样式 SETATTACKEFFTYPE
写在[@AttackDamage]里 符合条件情况下修改伤害值并修改飘血样式,用在自定义攻击类型 比如破碎打击

主屏幕弹出公告消息 SENDMSGNEW  弹出效果比较帅

新方式给装备设置绑定状态 SETITEMBINDSTATE

唯一ID存仓 TAKEITEMTOSTORAGE   用在自动存仓

多条件判断  IF(2)

设置剪切板内容 SETCLIPBOARDTEXT

等概率或者按权限随机获取分割字符串 
RANSJSTR 测试1#2000|测试2#1000|测试3#5000 1 3 S0 S1

脚本开启隔位野蛮功能  格式:SetSpaceMotaebo 

批量检测拿走给予背包物品
功能1:批量检测背包物品
格式:CHECKITEMS 参数1 参数2 参数3
功能2:批量拿走背包物品
格式:TAKES 参数1 参数2 参数3 参数4
功能3:批量给予物品
格式:GIVES 参数1
【用处不大,原来要多行检测拿走给予的可以写成一行,有时候判断复杂的时候可以用】

设置等级锁定命令 setlocklevel

切换地图触发  [@EnterMap] 切换前地图为:<$oldmap> 新地图为:<$map>

穿脱装备入包前触发 [@TakeOffExchange] 用于清除只针对身上装备的额外加成

暴击触发 [@CritTrigger]  可修改暴击值

爆物品触发 [@ScatterBagItems] 进包前修改属性

多级脚本使用

H. 表示是英雄
O. 表示是主人
M. 表示是怪物
P. 表示是对面的角色
pex.表示攻击的目标(人物,英雄)

累加行会所有在线成员的个人变量
AddGuildHumVar 行会名称 需要累加的变量(N等等数字变量) 累加结果保存变量 

;示例
ADDGuildHumVar 兄弟团 U20 N$统计总数
sendmsg 7 兄弟团中的所有在线成员的U20变量累加合计为<$STR(N$统计总数)> 


☉若无特殊注明本文皆为传奇版本库原创,转载请保留文章出处。
☉本站提供的资源来源网络收集,仅供学习研究之用切勿用于商业用途。
上一篇:BLUEM2引擎更新真假人数据升级方法,解决数据版本不对应
下一篇:没有了

我要评论

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!