- 打卡等级:魔龙套勇士
- 打卡总天数:113
- 打卡月天数:6
- 打卡总奖励:13558
- 最近打卡:2025-08-06 00:37:49
管理员
本站站长
- 积分
- 7919
|
在 Hero 引擎中,RANDOM函数是降低脚本执行频率的核心工具,其原理是通过概率触发减少无效执行(如每 100ms 仅 10% 概率执行,实际频率降至 1 次 / 秒)。以下是具体用法、场景示例及注意事项:
一、RANDOM函数的基础用法
1. 语法格式
ini
#IF
RANDOM [数值N] ; 表示有 1/N 的概率满足条件(如RANDOM 10 = 10%概率)
其他条件...
#ACT
执行动作...
2. 核心逻辑
Hero 引擎的全局脚本(如AutoRunQuest.txt)默认每 100ms 执行一次全服扫描。若在#IF块中加入RANDOM N,则脚本仅在随机数命中时执行,实际执行频率 = 原频率(10 次 / 秒) × (1/N)。
例:RANDOM 10 → 10% 概率触发 → 实际约 1 次 / 秒(10 次 / 秒 × 10%)。
例:RANDOM 20 → 5% 概率触发 → 实际约 0.5 次 / 秒。
二、典型场景:用RANDOM降低执行频率
1. 泡点地图经验发放(高频操作优化)
原脚本(问题):每 100ms 执行一次,10 次 / 秒,高频消耗资源:
ini
#IF
CHECKMAP 泡点地图 ; 玩家在泡点地图
#ACT
ADDEXP 100 ; 每次加100经验(总1000经验/秒)
SENDMSG 5 泡点中... ; 10次/秒刷屏
优化后(用RANDOM 10):10% 概率触发(1 次 / 秒),总收益不变但频率降低 90%:
ini
#IF
RANDOM 10 ; 10%概率(约1次/秒)
CHECKMAP 泡点地图
#ACT
ADDEXP 1000 ; 单次加1000经验(总1000经验/秒,与原效果一致)
SENDMSG 5 泡点中,每秒获得1000经验! ; 1次/秒提示,不刷屏
2. 危险区域持续伤害(减少检测次数)
原脚本(问题):每 100ms 检测并掉血,高频计算导致卡顿:
ini
#IF
CHECKMAP 毒沼地图
RANGE 100 100 200 200 ; 玩家在毒沼核心区
#ACT
KILLUSER 50 ; 每次掉50血(总500血/秒)
SENDMSG 6 你在毒沼中掉血! ; 10次/秒提示
优化后(用RANDOM 5):20% 概率触发(2 次 / 秒),总伤害不变:
ini
#IF
RANDOM 5 ; 20%概率(约2次/秒)
CHECKMAP 毒沼地图
RANGE 100 100 200 200
#ACT
KILLUSER 250 ; 单次掉250血(250×2=500血/秒,与原效果一致)
SENDMSG 6 你在毒沼核心区,持续掉血! ; 2次/秒提示,减少冗余
3. 怪物召唤(避免短时间内大量生成)
原脚本(问题):BOSS 每 100ms 尝试召唤小弟,可能 1 秒内召唤 10 只,导致服务器负载飙升:
ini
#IF
MONSTERID 2001 ; BOSS编号2001
MONSTERHP < 50% ; BOSS血量低于50%
#ACT
CALLMONS 101 1 ; 每次召唤1只小怪
优化后(用RANDOM 20):5% 概率触发(0.5 次 / 秒),控制召唤速度:
ini
#IF
RANDOM 20 ; 5%概率(约0.5次/秒)
MONSTERID 2001
MONSTERHP < 50%
#ACT
CALLMONS 101 2 ; 单次召唤2只(总1只/秒,与原频率的10次/秒×1只相比,数量可控)
三、RANDOM数值选择原则
根据功能的实时性需求选择N值(数值越大,频率越低):
高实时性(如 PVP 伤害提示、BOSS 狂暴检测):建议RANDOM 5~10(20%~10% 概率,2~1 次 / 秒),避免延迟感。
中实时性(如泡点经验、区域提示):建议RANDOM 10~20(10%~5% 概率,1~0.5 次 / 秒)。
低实时性(如全服广播、非关键任务):建议RANDOM 30~60(3%~1.7% 概率,0.3~0.17 次 / 秒),大幅降低资源消耗。
四、注意事项
保持总效果一致:降低频率的同时,需按比例提升单次效果(如原 10 次 ×100 经验 → 1 次 ×1000 经验),避免玩家实际收益下降。
避免关键逻辑过度延迟:任务提交、道具使用等玩家主动触发的操作,不应加RANDOM(可能导致玩家误以为操作失效)。
结合地图脚本使用:在地图专属脚本(MapQuest.txt)中使用RANDOM,比在全局脚本中更高效(仅对该地图玩家生效)。
通过RANDOM函数,可在不影响玩家体验的前提下,将高频脚本的执行频率降低至原来的 1/5~1/20,显著减少服务器 CPU 占用,尤其适合 Hero 引擎这种资源处理能力较弱的复古版本。
|
|