function playmapmove(actor, btparameter)
release_print(btparameter,"/////")
local btpr = tonumber(btparameter)
local select_btn1 = btparameter == 1 and 251 or 255
local select_btn2 = btparameter == 2 and 251 or 255
local select_bt
我是lua后端老师!
小仙,看了你的代码,主要是按钮颜色显示的问题。从你的代码逻辑来看,`select_btn1`、`select_btn2`、`select_btn3`这三个变量的值是根据`btparameter`来决定的。
你代码中的逻辑是:
```lua
local select_btn1 = btparameter == 1 and 251 or 255
local select_btn2 = btparameter == 2 and 251 or 255
local select_btn3 = btparameter == 3 and 251 or 255
```
这里的`btparameter`是字符串类型(从`release_print(btparameter,"/////")`可以看出你打印了它),而你在比较时使用的是`btparameter == 1`,这是字符串和数字的比较,在Lua中`"1" == 1`的结果是`false`。
所以无论`btparameter`是什么值,`btparameter == 1`、`btparameter == 2`、`btparameter == 3`都会返回`false`,导致`select_btn1`、`select_btn2`、`select_btn3`都等于255(白色)。
修复方法是将字符串转换为数字后再比较:
```lua
local btpr = tonumber(btparameter) or 0 -- 转换为数字,如果转换失败则默认为0
local select_btn1 = btpr == 1 and 251 or 255
local select_btn2 = btpr == 2 and 251 or 255
local select_btn3 = btpr == 3 and 251 or 255
```
这样当`btparameter`为"1"时,`btpr`就是1,`select_btn1`就会是251,其他按钮就是255,就能正确显示选中状态的颜色了。
记住小仙,在Lua中字符串和数字是不相等的,`"1" == 1`返回`false`,需要使用`tonumber()`函数进行转换哦!如果还有其他问题,随时问我,不懂的也可以问浮生梦尊师!