查看: 967|回复: 1
打印 上一主题 下一主题

[交流] 自定义api——查询游戏版本

[复制链接]

22

主题

317

回帖

174

积分

Lv.4 怪物猎人

UID
373726
小麦
3
金锭
608
下界之星
0

开发者认证勋章

跳转到指定楼层
楼主
发表于 2020-1-2 21:40:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:山西
本帖最后由 sevenstars 于 2020-1-2 21:56 编辑

昨天更新了移动光源,把隐形末地烛换成了新版本的光源方块,但很多玩家说不能用,因为他们无法更新到最新版。为了兼容旧版本,需要查询游戏版本,如果是新版就用光源方块(光源方块能被方块填充,亮度更高),否则用末地烛与它的放置算法(防止玩家不能放置)。代码如下,需要把这个函数放在服务端的类里
还有件事,我的开发者昵称7stars,如果工作人员看到了,请给我解除一下三天限制,现在移动光源修复后无法提审,玩家有很多不能更新游戏,导致他们用不了了。马上就是周末了,我希望在周末之前把修复版上架,谢谢
        # -*- coding: utf-8 -*-
import server.extraServerApi as serverApi
import math
def version(self, id):
        command = serverApi.CreateComponent(serverApi.GetLevelId(), "Minecraft", "command")
        command.SetCommand('/fill ~~2~~~2~ light_block 0 replace air 0',id)
        PosComp = serverApi.CreateComponent(id, "Minecraft", "pos")
        x,y,z = math.floor(PosComp.pos[0]),math.floor(PosComp.pos[1]-1.62),math.floor(PosComp.pos[2])
        blockcomp = serverApi.CreateComponent(id, "Minecraft", "blockInfo")
        blockid, aux = self.GetCompData(blockcomp, "serverlevel", "get_block_and_data", x, y+2, z)
        if blockid in [-215,470]:
            return True
        else:
            command.SetCommand('/tellraw @s {"rawtext":[{"text":"你的游戏版本低,请升级到最新版。"}]}',id)           
            return False
#直接用判断语句即可使用,注意传入参数
if version(id):
    print('版本通过')



4

主题

1093

回帖

345

积分

Lv.2 石器学徒

UID
3409745
小麦
4
金锭
1241
下界之星
0
沙发
发表于 2020-1-7 15:22:54 | 只看该作者 IP:广东
后续如果有审核相关紧急的事情,可以直接联系群管理哈。
用到Beta版本的接口的组件,建议等新版本全平台上线后再更新出去,避免出现有玩家用不了。
获取客户端版本的接口,已经添加到开发计划中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部