- 打卡等级:魔龙套勇士
- 打卡总天数:98
- 打卡月天数:22
- 打卡总奖励:11436
- 最近打卡:2025-07-22 00:17:43
管理员
本站站长
- 积分
- 7395
|
在传奇游戏(以 Hero 引擎为主)中,系统变量是脚本与游戏数据交互的核心接口,以下是按功能分类的常用系统变量及其实用场景:
一、玩家核心属性变量
用于获取 / 修改玩家的基础属性、状态和资源,是技能、任务、NPC 交互脚本的基础。
变量含义 获取函数 修改函数 典型用途
玩家等级 GetLevel() ChangeLevel(等级) 限制技能学习(如if GetLevel()>=35)
当前生命值(HP) GetHP() SetHP(值) / SubHP(值) 技能回血(SetHP(GetMaxHP()))、伤害计算
最大生命值(MaxHP) GetMaxHP() SetMaxHP(值) 药水 / 装备加成(SetMaxHP(GetMaxHP()+50))
当前魔法值(MP) GetMP() SetMP(值) / SubMP(值) 技能消耗(if GetMP()>=30 then SubMP(30))
最大魔法值(MaxMP) GetMaxMP() SetMaxMP(值) 魔法装备加成
物理攻击(上限 + 下限) GetAttack() SetAttack(值) 战士技能伤害计算(local atk=GetAttack()/2)
魔法攻击(上限 + 下限) GetMagic() SetMagic(值) 法师技能伤害核心参数
道术攻击(上限 + 下限) GetDao() SetDao(值) 道士治愈 / 施毒效果计算
物理防御(上限 + 下限) GetDefense() SetDefense(值) 受到物理伤害减免计算
魔法防御(上限 + 下限) GetMagicDefense() SetMagicDefense(值) 受到魔法伤害减免计算
职业(1 = 战士 / 2 = 法师 / 3 = 道士) GetJob() - 职业专属技能判定(if GetJob()==2 then ...)
当前经验值 GetExp() AddExp(值) 任务奖励(AddExp(10000))
金币数量 GetGold() AddGold(值) / DelGold(值) 购买物品判定(if GetGold()>=1000 then ...)
背包物品数量 GetItemCount(物品ID) - 任务道具检查(if GetItemCount(1001)>=1)
二、目标(怪物 / NPC / 玩家)相关变量
用于获取当前攻击目标或指定目标的状态,主要用于技能伤害、怪物 AI 脚本。
变量含义 获取函数 典型用途
目标当前生命值 GetTargetHP() 技能斩杀判定(if GetTargetHP()<100 then 双倍伤害)
目标最大生命值 GetTargetMaxHP() 百分比伤害计算(伤害=GetTargetMaxHP()*0.2)
目标等级 GetTargetLevel() 等级压制伤害加成(if GetLevel()>GetTargetLevel()+10 then 加成20%)
目标类型 ID(怪物 / NPC) GetTargetTypeID() 针对性伤害(if GetTargetTypeID()==100 then 对沃玛教主加成50%)
目标名称 GetTargetName() 伤害提示(SendMsg 6 "你攻击了" + GetTargetName())
目标是否为玩家 IsTargetPlayer() 区分 PVP/PVE(if IsTargetPlayer()==1 then 降低伤害)
目标所在地图 ID GetTargetMapID() 限制特定地图伤害(if GetTargetMapID()==5 then 禁止释放)
三、位置与环境变量
用于获取玩家 / 目标的位置、地图信息及服务器环境,常用于传送、地图限制、活动脚本。
变量含义 获取函数 典型用途
玩家当前地图 ID GetMapID() 地图专属掉落(if GetMapID()==3 then 额外掉落)
玩家 X 坐标 GetX() 范围技能判定(if 目标X与玩家X差距<5 then 命中)
玩家 Y 坐标 GetY() 同上
目标 X 坐标 GetTargetX() 技能射程判断(if 距离>Range then 提示超出范围)
目标 Y 坐标 GetTargetY() 同上
服务器当前时间(秒) GetTime() 定时活动(if GetTime()>=16800 then 开启攻城)
在线玩家数量 GetOnlineCount() 全服活动触发(if GetOnlineCount()>=100 then 刷新BOSS)
天气状态(0 = 晴 / 1 = 雨等) GetWeather() 天气加成(if GetWeather()==1 then 法师技能加成10%)
四、技能与状态变量
用于获取技能等级、冷却时间及玩家当前状态,主要用于技能脚本逻辑控制。
变量含义 获取函数 修改函数 典型用途
当前技能等级 GetSkillLevel() - 技能等级效果差异(if GetSkillLevel()==3 then 伤害加成)
技能冷却剩余时间(毫秒) GetSkillCoolDown(技能ID) SetSkillCoolDown(技能ID, 时间) 强制冷却(SetSkillCoolDown(1001, 5000))
是否处于中毒状态 IsState(状态ID) - 毒系技能叠加判定(if IsState(10)==0 then 施加中毒)
状态剩余时间(毫秒) GetStateTime(状态ID) SetStateTime(状态ID, 时间) 延长状态(SetStateTime(10, GetStateTime(10)+3000))
是否隐身 IsHide() - 隐身状态下伤害加成
五、其他常用变量
变量含义 获取函数 典型用途
玩家 PK 值 GetPKPoint() 红名判定(if GetPKPoint()>300 then 红名)
玩家 IP 地址 GetIP() 防多开限制(检测同IP账号数量)
背包空格数量 GetEmptyBagCount() 物品奖励判定(if GetEmptyBagCount()>=1 then 发放奖励)
怪物剩余血量百分比 GetTargetHPPercent() 濒死特效触发(if GetTargetHPPercent()<20 then 播放特效)
这些系统变量是脚本开发的基础,通过组合使用可实现复杂逻辑(如技能伤害公式、任务流程、地图规则等)。不同引擎(如 GOM、Blue)的变量函数可能略有差异,但核心功能和命名逻辑基本一致,使用时需结合具体引擎文档微调。
|
|