39传奇素材网 发表于 2025-5-28 20:36:35

传奇私服技术探秘:架设、脚本与高频难题解析(二)

二、灵魂雕琢:脚本修改的艺术与实战
脚本 (Envir\Market_Def, Envir\QuestDiary, Envir\Robot_def) 是赋予传奇私服独特玩法与活力的灵魂。掌握脚本语言是 GM 进阶的必经之路。1. 脚本语言基础:命令与变量
[*]核心命令:

[*]对话框:#SAY (显示), #ACT (执行), #ELSESAY (否则显示), BREAK (跳出) 等。
[*]流程控制:GOTO (跳转), IF/ELSE (条件判断)。
[*]物品操作:GIVE (给予), TAKE (拿走), CHECKITEM (检查物品)。
[*]货币操作:GAMEGOLD (元宝), GAMEPOINT (游戏点), CREDITPOINT (声望) 等。
[*]人物属性:CHANGELEVEL (改变等级), CHANGEEXP (改变经验), ADDSKILL (添加技能)。
[*]地图传送:MAPMOVE (地图传送), MAP (当前地图名), X/Y (坐标)。
[*]怪物操作:MISSION (刷怪), PARAM1/PARAM2/PARAM3/PARAM4 (刷怪参数)。
[*]行会操作:CHECKGUILD (检查行会), ADDGUILDMEMBER (添加成员)。
[*]时间操作:CHECKDAYTIME (检查白天/黑夜), HOUR (小时)。
[*]变量系统:
[*]个人变量: P0-P9 (临时), D0-D9 (数字型,下线保存), S0-S9 (字符型,下线保存), M0-M9 (数字型,仅在线)。
[*]全局变量: G0-G999 (数字型), A0-A999 (字符型)。所有玩家共享,常用于全服活动标志、计数。
[*]自定义变量: 高级引擎支持自定义名称变量 (VAR, GLOBALVAR),增强可读性。
[*]变量操作: INC (加), DEC (减), MOV (赋值), CALCVAR (计算)。

2. 经典脚本实例剖析(1) 智能NPC任务脚本 (如土城老兵):[@main]#SAY你好,勇士!最近城外半兽人肆虐,严重威胁村庄安全。\ \你是否愿意为村民们清除这些祸患?\ \<领取任务/@getquest> <我已经完成了/@finishquest> <离开/@exit>
[@getquest]#IFCHECK 0 // 检查任务标记是否为0(未领取)#ACTSET 1 // 设置任务标记为1(已领取未完成)MISSION 土城 330 330 半兽人战士 10 3 // 在土城330,330附近刷10只半兽人战士,范围3#SAY太好了!请前往土城(330,330)附近消灭10只半兽人战士,完成后回来找我领取丰厚奖励!\<返回/@main>#ELSESAY你已领取了该任务,请先完成它!\<返回/@main>
[@finishquest]#IFCHECK 1 // 已领取未完成CHECKKILLMONCOUNT 半兽人战士 >= 10 // 检查击杀半兽人战士数量是否>=10#ACTSET 2 // 设置任务完成标记GIVE 金条 1 // 给予金条1根GAMEGOLD + 50 // 增加50元宝CHANGEEXP + 1000000 // 增加100万经验#SAY干得漂亮,勇士!这是你应得的奖励!\<返回/@main>#ELSESAY你尚未完成消灭10只半兽人战士的任务,请继续努力!\
<返回/@main>
关键技术点: GetRandomText 读取外部配置文件实现动态概率;RANDOM 进行概率判定;UPGRADEITEMEX 核心强化命令,参数控制属性、点数、是否破碎消失。(3) 定时全服活动 (如每晚8点天降财宝):
Envir\Robot_def\AutoRunRobot.txt 添加:#AutoRun NPC SEC 1 @SystemTimeCheck // 每秒触发一次时间检查
Envir\Robot_def\RobotManage.txt 添加:
[@SystemTimeCheck]#IFEQUAL $HOUR 20 // 判断小时是否为20点(晚8点)CHECK [全服财宝活动] 0 // 检查活动是否未开启#ACTSET [全服财宝活动] 1 // 标记活动开启Gmexecute 开始提问 @财宝活动开始 // 全服公告SENDMSG 0 [系统]:天降财宝活动已开启!大量金币和宝物散落在土城安全区!速去拾取! 255 0PARAM1 土城PARAM2 330PARAM3 330PARAM4 50 // 范围50MISSION 金币堆 100 // 刷100堆金币堆MISSION 宝物袋 30 // 刷30个宝物袋BREAK
[@财宝活动开始]#ACTSENDMSG 0 [天降财宝]:财宝已降临土城安全区(330:330),持续10分钟! 251 0DelayCall 600 @CloseTreasureEvent // 600秒(10分钟)后调用关闭事件
[@CloseTreasureEvent]#ACTSET [全服财宝活动] 0 // 标记活动结束Gmexecute 清除地图物品 土城 // 清除土城地面物品SENDMSG 0 [系统]:天降财宝活动已结束! 255 0
BREAK关键技术点: Robot 机器人脚本实现自动触发;$HOUR 获取系统时间;Gmexecute 执行GM命令;SENDMSG 发送彩色公告;MISSION 刷活动物品;DelayCall 实现活动倒计时自动关闭。



页: [1]
查看完整版本: 传奇私服技术探秘:架设、脚本与高频难题解析(二)