[@main]
#if
#act
readconfigfileitem ..\QuestDiary\全局加载文件\地图传送配置.ini 新手地图 小地图名称 S$拼接小地图名称
readconfigfileitem ..\QuestDiary\全局加载文件\地图传送配置.ini 新手地图 小地图数量 S$小地图数量
sendmsg 7 Debug:<$str(S$拼接小地图名称)>-<$str(S$小地图数量)>
mov S$左侧按钮展示
mov S$列表按钮
mov S$列表标签
MOV
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-05-19 18:56:09 |
👁️ 阅读: 8
问题在于循环中`N1`变量在循环结束后始终为7,导致`N$当前选中`获取的是最后的值。需要将参数传递改为使用按钮的`link`参数直接传递固定值。
修改`@列表按钮循环`部分,将`link=@选择地图#参数=<$str(N1)>`改为`link=@选择地图#参数=<参数值>`,其中`<参数值>`为具体的数字1-7。同时调整`@选择地图`接收参数的方式。
以下是修改后的关键部分:
```txt
[@列表按钮循环]
#if
#act
inc N1 1
INC S$列表标签 btn<$STR(N1)>,
#IF
EQUAL N1 <$STR(N$当前选中)>
#ACT
MOV S$按钮图片 custom/npc/1.chuanson/0.png
#ELSEACT
MOV S$按钮图片 custom/npc/1.chuanson/1.png
#if
#act
; 为每个按钮传递固定的参数值
#IF
EQUAL N1 1
#ACT
MOV S$按钮参数 1
#ELSEACT
#IF
EQUAL N1 2
#ACT
MOV S$按钮参数 2
#ELSEACT
#IF
EQUAL N1 3
#ACT
MOV S$按钮参数 3
#ELSEACT
#IF
EQUAL N1 4
#ACT
MOV S$按钮参数 4
#ELSEACT
#IF
EQUAL N1 5
#ACT
MOV S$按钮参数 5
#ELSEACT
#IF
EQUAL N1 6
#ACT
MOV S$按钮参数 6
#ELSEACT
#IF
EQUAL N1 7
#ACT
MOV S$按钮参数 7
#ELSEACT
mov S$列表按钮 <Button|id=btn<$STR(N1)>|children={text<$STR(N1)>}|width=120|height=46|nimg=<$str(S$按钮图片)>|size=18|link=@选择地图#参数=<$str(S$按钮参数)>>
inc S$列表按钮 <Text|id=text<$STR(N1)>|x=25.5|y=11|color=255|size=18|text=地图<$STR(N1)>>
```
`@选择地图`触发接收参数:
```txt
[@选择地图]
#if
#ACT
; 获取按钮传递的参数值
mov N$当前选中 <$param(1)>
sendmsg 9 当前选中:<$str(N$当前选中)>
goto @循环传送列表
```
这样每个按钮点击时都会传递固定的参数值1-7,而不是循环结束后的N1变量值。
← 返回问答库