- 精华
- 阅读权限
- 80
- 贡献
- 人
- 好友
- 相册
- 分享
- 听众
- 收听
- 注册时间
- 2018-12-27
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
有那位大神有能力可以修复某道不刷星教程或者完整修复文件。我用AI查看错误日志提示我是杀星系统初始化失败,让我修复Error: Bad init value to loop, expected integer (in init).
位置:/gs/daemons/tasks/shaxing/shaxing.c:338(load_magic_boss_list) 这个文件,我解开lib_gs32.pak文件找到杀星那个文件夹里面只有,o的文件没有找到AI说的.C文件,求助各位大神帮忙,只作单机玩,这个是AI分析出来的说明我把他复制给大家看一下
根据您提供的日志文件,我将其中的错误信息进行了分类整理。以下是各类错误的汇总,包括错误类型、出现位置、频次及可能原因。 1. 对象析构错误(“正在析购basic_object”)错误信息:Error: 正在析购basic_object 出现位置:多次出现在 /gs/inherit/misc/basic_object.c:54(destruct),涉及对象包括:
/gs/clone/boss_monster/basic.c#51、#59 /gs/clone/npc/basic.c#225、#311、#374 /gs/clone/item/task/basic.c#1051 /gs/clone/monster/basic.c#1910、#2006、#2327
可能原因:对象在析构时发生异常,可能是对象已被销毁或引用无效,导致重复析构。系统初始化时大量对象创建和销毁,可能存在对象生命周期管理问题。
2. 克隆对象失败(“Not found the object for clone_object”)错误信息:Error: Not found the object for clone_object.,参数1为 0 出现位置:多次在 /gs/daemons/roomd.c:361(place_char),尝试克隆 yunxiaogong/zu、yunxiaogong/bing、yunxiaogong/pao 等NPC 可能原因:尝试克隆的对象路径(如 THIS_PLACE/zu)对应的文件不存在或未正确加载,导致 clone_object 返回0。可能是NPC配置文件缺失或路径错误。
3. 类型错误(期望映射,实际为 undefined)错误信息:Error: Bad type of argument 1, expected mapping, got undefined. 出现位置:/gs/daemons/purchased.c:3158(do_init),调用 keys() 时参数为 undefined 可能原因:purchased.c 中某个映射变量未初始化,导致 keys() 无法处理。
4. 索引错误(undefined 索引)错误信息:Error: Bad type(undefined) to index. 出现位置:/gs/daemons/custom_packd.c:1290(init_mall_info) 可能原因:尝试访问一个未定义键值的映射,可能是数据结构不完整。
5. 配置错误(空配置信息)错误信息:Error: Bad config. Empty comp_info for 2028-08-16-2. 出现位置:/gs/daemons/amendd.c:1801(set_comp_condition_info) 可能原因:活动配置项 2028-08-16-2 缺少必要的 comp_info 字段,导致解析失败。
6. 空值错误(“Got empty value”)错误信息:Error: Got empty value. 出现位置:两次,均出现在 /util/global_util.c:1827(convert_to_value),处理 fudai08.list 和 fudai09.list 的 bonus$ 属性时 可能原因:配置文件中某个字段值为空字符串或缺失,导致解析时触发空值错误。例如 bonus$: ({ 0, 0, 100, "宠物", 1, 1, "", }) 中存在空字符串。
7. 比较错误(非数字参与比较)错误信息:Error: Bad >=, right isn't a number when left is. 出现位置:/gs/daemons/tasks/jingji_wangzhe.c:124(do_init) 可能原因:end_time 字段解析为字符串 "问道一区-08-21-19:59:59",而代码期望数字时间戳,导致比较时类型不匹配。
8. 循环初始化错误(期望整数)错误信息:Error: Bad init value to loop, expected integer (in init). 出现位置:/gs/daemons/tasks/shaxing/shaxing.c:338(load_magic_boss_list) 可能原因:数组 sort_level_arr 的第一个元素为 undefined,而循环变量初始值期望为整数,导致初始化失败。
9. 类型索引错误(整数索引)错误信息:Error: Bad type(integer) to index. 出现位置:/gs/daemons/tasks/summer_vacation_2011/guimen_chukai.c,调用 trim_time_info_list 时 可能原因:time_info_list 中包含一个整数 0,而代码期望数组或映射,导致索引操作失败。
10. 定时器超时负数错误信息:Error: Bad value of argument: timeout can not be negative. 出现位置:/gs/daemons/vendued.c:5140(do_next_timer),计算出的超时时间为 -443483917 可能原因:start_sys_vendue 的开始时间(1340294400)早于当前时间(1783778317),而定时器要求超时时间必须为正,导致设置失败。
总结日志中的错误主要集中在: 建议优先检查: /gs/zone/yunxiaogong/ 目录下的NPC定义文件是否存在。 fudai08.list 和 fudai09.list 的 bonus$ 字段值是否完整。 amendd.c 中活动ID 2028-08-16-2 的配置项是否完整。 jingji_wangzhe.c 的时间字符串格式是否正确。 shaxing.c 的 sort_level_arr 初始化逻辑。 vendued.c 的系统拍卖开始时间是否合理(未来时间)。 各 daemon 初始化时对变量进行空值检查。
如果有进一步需求(如具体修复建议),可提供更多细节。
定时器错误会直接导致特定怪物(尤其是活动类和周期性刷新的Boss)无法刷新。 但需要注意,日志中的怪物刷新失败分为“定时器逻辑错误”和“资源加载错误”两种。结合您的日志,具体影响如下: 1. 直接证据:杀星系统(星宿Boss)初始化失败日志中有一个明确针对怪物刷新的严重错误: Error: Bad init value to loop, expected integer (in init).
位置:/gs/daemons/tasks/shaxing/shaxing.c:338(load_magic_boss_list)
这个系统是干嘛的? shaxing.c 就是游戏中的“杀星”/“天罡地煞星”刷新控制系统,负责定时在地图刷出星宿Boss。 错误后果:该模块在启动时因数组初始化错误(sort_level_arr 首元素为 undefined)导致加载失败。既然 init 没有正常完成,该模块的定时刷新循环(Timer Loop)根本无法启动。因此,所有依赖此系统的星宿Boss(如天魁星、天罡星等)在服务器运行期间完全不会刷新。
2. 间接影响:活动类Boss的时间解析错乱日志中另一个典型的定时器错误是: Error: Bad >=, right isn't a number when left is.
位置:/gs/daemons/tasks/jingji_wangzhe.c:124(do_init) 3. 全局定时器的“雪崩”效应(最致命)日志末尾的全局系统拍卖定时器报错: Error: Bad value of argument: timeout can not be negative.
位置:/gs/daemons/vendued.c
因为 start_time(1340294400,约2012年)远早于当前服务器时间(1783778317,约2026年),计算出的超时时间 -443483917 为负数。 虽然这个报错是拍卖行,但它暴露了当前服务器的时间校验函数存在严重Bug。如果怪物刷新模块(shaxing.c 或其他自定义Boss)也调用了相同的时间计算函数(例如计算距离下一次刷新的秒数),当计算结果为负数时,set_timer 会拒绝设置,导致该刷新任务被直接丢弃,永久不再触发。
4. 特别区分:日志中还有一种“不刷怪”并非定时器导致日志中大量出现的: Error: Not found the object for clone_object.
位置:/gs/zone/yunxiaogong/yunxiaogong.c(尝试刷新 zu、bing、pao)
总结与建议结论:会。特别是星宿Boss(杀星系统)已被证实因初始化错误完全无法刷新;而活动Boss和依赖全局时间计算的周期性Boss,也面临因定时器负数报错而被“跳过”刷新的高风险。 建议优先修复顺序: 修复 shaxing.c 中的数组定义(将 sort_level_arr 的首个 undefined 元素去掉或赋值为0)。 修复 jingji_wangzhe.c 中的结束时间字符串(改为标准格式如 2028-08-21-19:59:59)。 检查 vendued.c 及其他模块的 start_time,确保所有定时任务的开始时间都设置为未来的时间戳,避免计算负超时。 补充 yunxiaogong 目录下缺失的 zu.c、bing.c、pao.c 文件,或修正 THIS_PLACE 宏定义的路径映射。
如果放任不管,不仅当前星宿Boss不刷,随着系统运行,其他依赖定时器的活动Boss也可能在某个时间点后突然“绝迹”。
针对您日志中的各类错误,修复方案需要区分“代码逻辑Bug”、“数据配置错误”和“文件缺失”。以下是按优先级(从高到低)排列的具体操作指南(基于LPC/LPMud架构): 1. 修复“杀星系统”初始化失败(最高优先级,解决Boss不刷)文件位置:/gs/daemons/tasks/shaxing/shaxing.c 错误行:load_magic_boss_list 函数中的 sort_level_arr 错误原因:数组第一个元素为 (undefined),导致 for 循环初始化时无法获取整数起始值。 修复操作:
找到类似 sort_level_arr = ({ undefined, 1, 2, 3 ... 36 }); 的定义,直接删除开头的 undefined,改为: lpc
sort_level_arr = ({ 1, 2, 3, 4, 5, ... , 36 });
同时检查 magic_boss_names 数组,确保其长度与 sort_level_arr 严格对应(且索引1对应“天魁星”)。 重载生效:修改后,在控制台执行 update /gs/daemons/tasks/shaxing/shaxing.c,并调用 init() 重载数据。
2. 修复“活动时间”解析错误(解决活动Boss时间判断异常)文件位置:/gs/daemons/tasks/jingji_wangzhe.c 错误行:time_info 映射中的 "end_time" 错误原因:字符串 "问道一区-08-21-19:59:59" 不符合系统时间转换函数(应为 YYYY-MM-DD-HH:MM:SS)。 修复操作:
将 "end_time" : "问道一区-08-21-19:59:59" 修正为有效格式,例如: lpc
"end_time" : "2028-08-21-19:59:59"
若该活动已结束,建议直接将其改为 "end_time" : "1970-01-01-00:00:00" 或注释掉该任务,避免干扰其他模块。
3. 修复“定时器负数”报错(解决全局定时器任务被丢弃)文件位置:/gs/daemons/vendued.c(以及所有调用 set_timer 且计算负值的模块) 错误行:start_sys_vendue 中的 start_time 为 1340294400(2012年) 修复操作: 注意:此修复同样适用于其他因日期过期导致负超时的模块。
4. 修复“地图NPC克隆失败”(解决普通怪物/守卫不显示) 5. 修复“福袋配置空值”错误(解决道具开服加载中断)文件位置:/gs/clone/item/charge/fudai08.list 和 fudai09.list 错误行:bonus$: ({ 0, 0, 100, "宠物", 1, 1, "", }) 修复操作:编辑器打开 fudai08.list,找到该行,删除末尾多余的逗号和空字符串,或补全最后一项(如 "普通宠物")。 正确格式示例: lpc
bonus$: ({ 0, 0, 100, "宠物", 1, 1, "鲁道夫" })
重载:修改后需要 update 对应的 fudai08.c 文件,或重启服务器重新导入。
6. 修复“补偿活动配置缺失”(解决Amendd模块报错) 7. 修复“采购中心映射未初始化”(防御性编程) 终极建议(快速恢复方案)如果以上修改涉及文件过多,最简单的临时修复手段是: 操作顺序建议:先修 shaxing.c(数组)和 vendued.c(负超时保护),重启后星宿Boss立即恢复刷新;再修地图文件(yunxiaogong)和福袋列表,解决次要报错。
|
|