--跨服阵营积分
function crossservercamp(actor)
if isItCrossServer(actor) then
local crossServerFactionId = Variables_GetInt(actor, "kfzyid")
--红方积分--2
local redSquarePoints = Variables_GetSysInt("kfhfjf")
--蓝方积分--1
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-19 10:39:55 |
👁️ 阅读: 1
我是lua后端老师!
小仙,你这个脚本是在跨服QF里执行的吗?从你的代码和问题来看,你是在跨服QF里(比如`kflogin`触发)执行这个函数,对吗?
根据资料,**跨服QF里操作的是跨服服务器的变量**,而不是本服的变量。跨服服务器有自己的变量环境,它不保存自定义全局变量(比如你这里的`kfhfjf`、`kflfjf`、`kfzyzbj`),但你在跨服QF里用`setsysvar`、`getsysvar`这些函数,操作的就是跨服服务器内存中的这些变量名。
不过,资料里也特别强调了:**跨服服务器,不保存自定义全局变量**。这意味着,如果你在跨服QF里设置了这些系统变量,当跨服服务器重启或者所有玩家离开后,这些变量值可能会丢失,**不会**持久化保存到本服。它们只在当前跨服M2运行期间有效。
如果你需要让这些积分能持久化,并且在本服也能读取到,通常的跨服设计思路是:
1. 在跨服QF里,通过`bfbackcall`函数通知本服QF。
2. 在本服QF对应的回调函数里,用`setsysvar`来修改本服的持久化变量。
3. 或者,在跨服活动结束时,一次性将积分通过`bfbackcall`传回本服进行结算和保存。
所以,直接回答你的问题:**是的,你这段脚本在跨服QF里执行,最终操作的是跨服服务器的临时变量,而不是本服持久化的变量。**
如果你想测试,可以在跨服QF里加一句打印,看看变量值的变化是否只在跨服生效:
```lua
release_print("跨服内红方积分:", getsysvar("kfhfjf"))
release_print("跨服内蓝方积分:", getsysvar("kflfjf"))
```
另外,小仙,你代码里用的`Variables_GetInt`、`Variables_SetSysInt`这些函数,并不是我们996引擎的标准函数哦。在跨服环境里,你应该使用我们标准的变量操作函数,比如:
* `getplayvar(actor, "kfzyid")` 获取玩家私人变量。
* `getsysvar("kfhfjf")` 和 `setsysvar("kfhfjf", value)` 操作系统变量。
记得把函数名改过来,不然脚本会报错找不到函数的。如果还有不明白的,随时再来问我,或者请教浮生梦尊师!
我是lua后端老师!
小仙,你这个脚本是在跨服QF里执行的吗?从你的代码和问题来看,你是在跨服QF里(比如`kflogin`触发)执行这个函数,对吗?
根据资料,**跨服QF里操作的是跨服服务器的变量**,而不是本服的变量。跨服服务器有自己的变量环境,它不保存自定义全局变量(比如你这里的`kfhfjf`、`kflfjf`、`kfzyzbj`),但你在跨服QF里用`setsysvar`、`getsysvar`这些函数,操作的就是跨服服务器内存中的这些变量名。
不过,资料里也特别强调了:**跨服服务器,不保存自定义全局变量**。这意味着,如果你在跨服QF里设置了这些系统变量,当跨服服务器重启或者所有玩家离开后,这些变量值可能会丢失,**不会**持久化保存到本服。它们只在当前跨服M2运行期间有效。
如果你需要让这些积分能持久化,并且在本服也能读取到,通常的跨服设计思路是:
1. 在跨服QF里,通过`bfbackcall`函数通知本服QF。
2. 在本服QF对应的回调函数里,用`setsysvar`来修改本服的持久化变量。
3. 或者,在跨服活动结束时,一次性将积分通过`bfbackcall`传回本服进行结算和保存。
所以,直接回答你的问题:**是的,你这段脚本在跨服QF里执行,最终操作的是跨服服务器的临时变量,而不是本服持久化的变量。**
如果你想测试,可以在跨服QF里加一句打印,看看变量值的变化是否只在跨服生效:
```lua
release_print("跨服内红方积分:", getsysvar("kfhfjf"))
release_print("跨服内蓝方积分:", getsysvar("kflfjf"))
```
另外,小仙,你代码里用的`Variables_GetInt`、`Variables_SetSysInt`这些函数,并不是我们996引擎的标准函数哦。在跨服环境里,你应该使用我们标准的变量操作函数,比如:
* `getplayvar(actor, "kfzyid")` 获取玩家私人变量。
* `getsysvar("kfhfjf")` 和 `setsysvar("kfhfjf", value)` 操作系统变量。
记得把函数名改过来,不然脚本会报错找不到函数的。如果还有不明白的,随时再来问我,或者请教浮生梦尊师!
← 返回问答库