输入框自定义输入数量,捐献逻辑
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-06-15 20:11:50 |
👁️ 阅读: 7
根据课程日志记录,实现输入框自定义输入数量并处理捐献逻辑,可以结合自定义输入框组件和变量排序功能。
首先创建界面,使用两个Input组件接收用户输入,通过Text组件的submitInput属性关联输入框并触发处理逻辑:
```
<Img|x=161.0|y=113.0|reset=1|loadDelay=1|show=0|esc=1|img=public_win32/1900000610.png|move=0|bg=1>
<Layout|x=780.0|y=101.0|width=80|height=80|link=@exit>
<Button|x=800.0|y=114.0|pimg=public/1900000511.png|nimg=public/1900000510.png|link=@exit>
<Input|x=407.0|y=136.0|width=100|height=25|size=16|inputid=1|color=255|type=0|place=请输入捐献数量|submitInput=1>
<Input|x=407.0|y=150.0|width=100|height=25|size=16|inputid=2|color=255|type=0|place=请再次确认|submitInput=2>
<Text|a=0|x=335.0|y=115.0|tipsx=10|tipsy=80|color=251|submitInput=1,2|size=18|text=确认捐献|link=@捐献处理>
```
处理捐献逻辑时,获取输入框内容并进行捐献数量累加,然后更新排序变量:
```
[@捐献处理]
#if
#act
;获取输入框内容
mov N$捐献数量 <$NPCINPUT(1)>
mov S$确认内容 <$NPCINPUT(2)>
;验证输入有效性
#if
large N$捐献数量 0
#act
;从总键值对中取出该玩家已有的捐献数量
mov N$捐献数量取出 <$GETSTRVALUE(A10,<$username>)>
;加上当前输入的捐献数量
formulation <$str(N$捐献数量取出)>+<$str(N$捐献数量)> N$捐献总数
;更新原始数据
addstrvalue A10 <$username> <$str(N$捐献总数)>
;更新排序数据(格式:数量#时间戳)
formulation <$str(N$捐献总数)>#<$UTCNOW8> S$排序数据
addstrvalue A11 <$username> <$str(S$排序数据)>
;降序排序前6名
sortvarstr A11 6 1 1
sendmsg 6 捐献成功!当前总数:<$str(N$捐献总数)>
#elsesay
输入的数量必须大于0!
```
如果需要显示排行榜,可以使用以下方式:
```
#say
<Text|x=100|y=200|color=255|size=18|text=捐献排行榜>
<Text|x=100|y=230|color=255|size=16|text=第一名:<$GETSTRKEY(A11,1)> - <$GETSORTSTRVALUE(A11,1)>
<Text|x=100|y=260|color=255|size=16|text=第二名:<$GETSTRKEY(A11,2)> - <$GETSORTSTRVALUE(A11,2)>
<Text|x=100|y=290|color=255|size=16|text=第三名:<$GETSTRKEY(A11,3)> - <$GETSORTSTRVALUE(A11,3)>
<Text|x=100|y=320|color=255|size=16|text=第四名:<$GETSTRKEY(A11,4)> - <$GETSORTSTRVALUE(A11,4)>
<Text|x=100|y=350|color=255|size=16|text=第五名:<$GETSTRKEY(A11,5)> - <$GETSORTSTRVALUE(A11,5)>
<Text|x=100|y=380|color=255|size=16|text=第六名:<$GETSTRKEY(A11,6)> - <$GETSORTSTRVALUE(A11,6)>
```
注意:排序最多支持100组键值,不要直接排序所有变量以避免卡顿。A10存储原始数据用于调用,A11专门用于排序。
← 返回问答库