GOM引擎版本转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 几率跳转
等概率的话按权限随机获取分割字符串
格式:RANS***TR 参数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],也能在列表二设置哪些装备会触发
数字转图片
邮件系统 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
等概率的话按权限随机获取分割字符串
RANS***TR 测试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>
穿脱装备入包前触发 [@TakeOffE***ange] 用于清除只针对身上装备的额外加成
暴击触发 [@CritTrigger] 可修改暴击值
爆物品触发 [@ScatterBagItems] 进包前修改属性
多级脚本使用
H. 表示是英雄
O. 表示是主人
M. 表示是怪物
P. 表示是对面的角色
pex.表示攻击的目标(人物,英雄)
累加行会所有在线成员的个人变量
AddGuildHumVar 行会名称 也能累加的变量(N等等数字变量) 累加结果保存变量
;示例
ADDGuildHumVar 兄弟团 U20 N$统计总数
sendmsg 7 兄弟团中的所有在线成员的U20变量累加合计为<$STR(N$统计总数)>

