一、核心需求解析:明确变量控制目标
你需要实现的功能核心是:通过脚本弹出输入框,让玩家自主输入龙鳞刀兑换的 “红点数量”,并将该数值赋值给全局变量 G111,最终关联到 “GAMEGOLD + <$STR (G111)>” 的兑换逻辑。需解决两个关键问题:① 调用输入框获取玩家输入数值;② 将输入数值绑定到全局变量 G111,确保后续兑换计算生效。
二、完整脚本编写:输入框 + 全局变量控制实现
1. 基础脚本框架(支持 GEE/GOM 引擎)
在原有 [@龙鳞 1] 触发脚本基础上,新增 “输入框调用 - 数值验证 - 变量赋值” 步骤,完整脚本如下:
[@龙鳞1]
#ACT
; 第一步:弹出输入框,提示玩家输入红点数量(标题+提示文字可自定义)
INPUTBOX 龙鳞刀兑换红点 请输入兑换的红点数量(1-1000) 1 1000 ; 1=最小输入值,1000=最大输入值,限制输入范围
SET G111 <$INPUTNUM> ; 将输入框获取的数值($INPUTNUM)赋值给全局变量G111
; 第二步:验证输入数值是否有效(避免输入0或负数)
#if
CHECKNUM <$G111> 1 ; 检查G111数值是否≥1
CHECKITEM 龙鳞刀 1 ; 检查是否拥有龙鳞刀
#ACT
take 龙鳞刀 1 ; 扣除1把龙鳞刀
addnamelist 武器换红.txt ; 记录兑换玩家名单
GAMEGOLD + <$STR(G111)> ; 增加G111数值对应的红点($STR()确保变量转字符串正常计算)
sendmsg 0 %s使用龙鳞刀成功兑换<$STR(G111)>红!! ; 全服公告兑换结果
#ELSEACT
; 分情况提示错误(输入无效/无道具)
#if
CHECKNUM <$G111> 0 ; 若输入数值≤0
MESSAGEBOX 输入错误!红点数量需≥1,请重新输入!
#else
MESSAGEBOX 别来糊弄我,小心我告诉GM封你ID! ; 无龙鳞刀时的提示
#endif
2. 关键命令解析(避免变量控制失效)
INPUTBOX 命令:格式为 “INPUTBOX 标题 提示文字 最小值 最大值”,作用是弹出可视化输入框,玩家输入的数值会自动存入系统变量 $INPUTNUM,需注意:
最小值 / 最大值需设置合理范围(如 1-1000),防止玩家输入过大数值导致红点异常;
提示文字需清晰(如 “请输入兑换的红点数量(1-1000)”),减少玩家操作失误。
**SET G111 <\(INPUTNUM>**:将输入框获取的\)INPUTNUM 赋值给全局变量 G111,需确保:
赋值命令在 “CHECKITEM” 之前执行,避免先扣道具再发现输入无效;
全局变量 G111 无需提前初始化,脚本赋值后会自动覆盖原有数值(若之前有赋值)。
CHECKNUM <$G111> 1:验证 G111 数值是否≥1,防止玩家输入 0 或负数导致 “兑换 0 红” 的无效操作,提升脚本严谨性。
三、脚本适配与异常处理
1. 不同引擎适配调整(避免命令不兼容)
GEE 引擎:上述脚本可直接使用,若输入框不弹出,需检查引擎配置文件(GEE.ini)中 “EnableInputBox” 是否设为 1(开启输入框功能)。
GOM 引擎:需将 INPUTBOX 命令替换为 “INPUT 龙鳞刀兑换红点 请输入兑换的红点数量(1-1000)”,且无需设置最小值 / 最大值,需在后续用 “CHECKNUM” 补充判断:
; GOM引擎输入框适配代码
INPUT 龙鳞刀兑换红点 请输入兑换的红点数量(1-1000)
SET G111 <$INPUT> ; GOM引擎用$INPUT获取输入数值,而非$INPUTNUM
#if
CHECKNUM <$G111> 1 ; 补充最小值判断
CHECKNUM <$G111> 1000 ; 补充最大值判断(≤1000)
2. 常见变量控制问题解决
问题 1:G111 数值不生效,兑换始终为 0 红
原因:未用 $STR (G111) 将变量转为字符串,或赋值命令顺序错误。
解决:确保 GAMEGOLD + 后接 <$STR (G111)>,且 SET G111 命令在 CHECKITEM 之前执行。
问题 2:输入框弹出后,输入数值点击确定无反应
原因:引擎输入框功能未开启,或脚本存在语法错误(如缺少分号、括号)。
解决:GEE 引擎检查 GEE.ini 的 “EnableInputBox=1”;GOM 引擎检查是否用错\(INPUT/\)INPUTNUM 变量;用脚本编辑器(如 Notepad++)排查语法错误。
问题 3:玩家输入非数字(如字母),脚本报错
原因:未添加非数字输入判断,系统变量 $INPUTNUM 遇非数字会返回 0。
解决:在 CHECKNUM 之前增加 “CHECKALPHANUM <$INPUTNUM> 0”(判断是否为纯数字),脚本补充:
#if
CHECKALPHANUM <$INPUTNUM> 1 ; 若输入含非数字
MESSAGEBOX 输入错误!仅支持数字,请重新输入!
#else
; 继续执行原有数值判断逻辑
#endif
四、测试与优化技巧
测试步骤:
用管理员账号登录游戏,输入 [@龙鳞 1] 触发脚本,分别测试:输入 1(正常兑换)、输入 0(提示错误)、不输入直接确定(提示错误)、无龙鳞刀时输入(提示无道具),确保所有场景正常响应。
兑换成功后,查看 “武器换红.txt” 是否记录名字、游戏内红点数量是否增加对应数值,验证全局变量 G111 是否生效。
优化建议:
若需限制单账号每日兑换次数,可新增全局变量(如 G112)记录次数,在脚本开头添加 “CHECKNUM <\(G112> 3”(限制3次/日),兑换后执行“SET G112 <\)G112+1>”。
全服公告 “sendmsg 0” 可改为 “sendmsg 2”(仅当前地图可见),避免公告刷屏影响其他玩家。
五、注意事项
编写脚本时,符号需用英文半角(如分号、括号),中文全角符号会导致脚本执行失败。
全局变量 G111 若被其他脚本调用(如其他兑换功能),需避免数值冲突,建议按功能命名变量(如 G111 = 龙鳞刀红点,G112 = 其他道具红点)。
若服务器有 “变量清零” 机制(如每日维护后重置全局变量),需在维护公告中提示玩家 “每日兑换次数 / 数值会重置”,避免玩家误解。
传奇全局变量问题解决:G111 数值控制与输入框脚本实现
来源:
作者:
点击:

