open.mp 服务器的候选版本 1 (RC1)
Y_Less — 01/06/2023 9:25 AM
新年快乐
 
它来了
 
终于来了!
 
历经四年、两次重写、争论和戏剧化以及无数其他障碍之后,它终于来了!
 
open.mp 服务器的候选版本 1 (RC1)。
 
如果这个版本一切顺利,几天后我们就能最终开放所谓的 open.mp
 
在开始正式发布之前,我首先要衷心感谢 open.mp 团队的每一位成员,感谢他们帮助该模块走到今天这一步。 这并不容易,主要是因为每个人都投入了极大的热情--我们都希望为 MOD、为社区、为 SA:MP、为我们的服务器、为我们的玩家做最好的事;如果不是这样,我们就不会踏上这段旅程。 不幸的是,对于什么是最好的意见分歧有时会导致摩擦。 但我们现在在这里。 因此,我们向所有人表示衷心的感谢:
* Amir
* Cheaterman
* Freaksken
* Graber
* Hual
* Josh
* JustMichael
* kseny
* Nexius
* pkfln
* Potassium
* Southclaws
* TommyB
* Y_Less
* Zeex
* 可能还有更多...
 
总之,现在是你们真正关心的部分...
 
现在我们已经从测试版中脱颖而出,(如果本周一切顺利的话)我们将按时发布新版本。 因此,除了大家已经见过很多次的服务器本身,我们还为大家准备了一些新的好东西:
 
Pawn
======
下载的是官方包含的内容,再也不用用 omp.inc 来修补旧的《SA:MP》包含的内容了,现在我们可以正确地修补了! 它还有一个新的编译器。 想知道 3.10.11 什么时候发布吗? 不用再等了(如果你是自己编译的,可以把它看作 3.10.12)! 有了这个组合,你可能会收到大量新的警告,不过不用担心,我们还有一个工具可以自动升级代码,在所有正确的地方添加定义明确的符号名、常量等。 也许你已经注意到了,因为你已经用了好几个月了,但虚拟机(服务器内部的部分)也已经更新了! 哦,还有那些你熟悉和喜爱的本地字符串,比如 SendClientMessage 和 AddMenuItem? 它们现在都格式化了。 全部*。
 
更新后的文档包括
 
关于新编译器的文档
 
关于 qawno 的文档:
 
关于升级工具的文档:
 
 
现有功能的完整列表
======
* 符号长度限制增加到 64 个,不再需要 OnPlyrDoTheTing 来尝试缩写您的函数名。
* 多重natives解压缩 - Col 是 Colour 还是 Collision 的缩写? 现在你知道了!
* 标签。 到处都是标签。 请参阅随附文档。
* 官方附录终于是 const-correct(正确的)了。 再也不用抱怨有些人可能没有了。
* 编译器版本更新: __nameof、__addressof、修复,还有更多,这里就不一一列举了。
* 开关更快了。
* 对以前未发现的问题提出了更多警告。 编译器能发现的问题越多,你需要做的就越少。
* 升级工具可在用户代码中添加标记和 const,并修复一些新的警告。
* 更一致的命名。 每一个本地程序都经过仔细检查和比较,以确保命名的最大相似性和直观性。
* 添加了 {Float, _}:...。 这意味着什么? 这意味着不再需要 format()** - 想想 y_va 但却是natives的。
* 在使用新编译器和虚拟机时,最高的优化级别 -O2 可以工作。 有些程序可能需要更新,但有些已经更新了。 为了解决这个问题...
* 添加了 __optimisation 宏,这样代码就能在使用 -O2 编译时进行自我配置。
 
* 几乎所有
** 几乎不再使用 format()。
 
 
SDK
=====
Pawn 是为服务器编写模式的长期官方方式。 它不会消失,但对于那些希望获得更多控制权的用户,我们终于发布了完整的 SDK(软件开发工具包)。 这是服务器的 C++ 接口,与构成 open.mp 核心代码的所有组件使用的接口相同。 它们能做的任何事情,你也都能做(与插件相比,插件的设计只是为棋子提供功能,而不是编写模式)。
 
我们正在编写一些文档,可惜需要时间。 但与此同时,我们也为那些想直接参与其中的人准备了几个示例组件。 这些都是模板,您可以在此基础上进行构建,从基本上什么都不懂到拥有大多数常用功能的完整组件:
 
此外,我们还为您提供了一些术语,以便您开始了解您正在阅读的内容:
* Component - 服务器的逻辑单件,如对象或拾取器。 你不需要的组件不需要加载。
* Extension - 扩展另一段代码的代码。 你可以编写组件扩展,但最常见的是玩家扩展,它定义了与玩家相关联的一些数据结构,以及所有正常数据(如健康和武器)。
* UID- 唯一标识符,一个代表你的组件的数字,也只代表你的组件。 这始终是必需的,可以从这里获得: http://open.mp/uid
* Entity-- 一种事物,通常是玩家可以与之交互的事物,你可能拥有很多。 对象是实体,但其他玩家也是实体,甚至处理器中的命令也可称为实体。
* Pool--存放实体的东西。 当你拥有大量实体时,你需要能够通过名称或 ID 以某种方式访问它们,这就是池的作用。
* Interface--组件使用抽象基类作为接口。 它声明了组件所拥有的方法,但并不包含方法的代码。 接口可以互相传递,这样组件之间就可以互相通信,但接口的实现是私有的。
* SDK- 核心服务器定义的所有接口的集合。
* ABI- 应用程序二进制接口(Application Binary Interface)是编译代码与其他编译代码对话的方式。 SDK 导出的接口具有 ABI 稳定性,这意味着使用两个在不同时间编译的组件仍可协同工作。
* pawn-natives - 建立所有本地声明的库。 在该库周围使用名为 SCRIPT_API 的封装器:https://github.com/openmultiplayer/pawn-natives
* Event - 外部发生的事情。 玩家连接和输入命令等都属于事件。 任何组件都可以定义事件,并在事件发生时告诉其他组件。
* Handler- 想要知道事件何时发生的组件。
 
open.mp SDK 现在也已公开发布,因此你们可以开始改编或向我们提出你们的意见,同时我们也在🔜 未来版本的开发工作中。
 
如果您有任何相关问题,可在这些软件源中打开相关问题
 
功能
==========
除了已公布的所有新功能外,服务器中还有几项新功能(也是新公布的):
* 每个玩家的帮派区域,与 YSF 相同。
* 每个玩家拾取物品,与 YSF 相同。
* 将玩家对象附加到玩家AttachPlayerObjectToPlayer.。
* 更好地支持 PawnPlus。
* :memory:,和 SQLite 中支持的其他特殊名称。
* SQLite 打开标志。
* 排除配置选项,不加载某些组件。
* 显示配置解析错误,而不只是静默失败。
* SDK 主要版本检查,以防我们对服务器进行重大改动(希望不会)。
 
 
修复
=======
测试版 11 中引入了一些新的错误,还有一些以前遗留下来的小错误。 已修复的包括
 
* funcidx 已注册警告。
* GDK 插件(流媒体等)丢失本地程序。
* GMX 随机崩溃。
* GDK 回调有时未调用。
* 在 SQLite 组件中要求记录日志时没有记录。
* 某些设置无法在 GMX 上重置。
* 当同时完成大量工作时,NPC 会被连接。
* 在 Linux 传统插件名称中仍需要 .so。
 
 
链接
=======
首先,当然是新的服务器版本:
 
其次,论坛已经恢复。 有问题请到那里提问:
 
或者,如果你愿意的话
 
最后,尽管我们已经收到过几次捐款,但到目前为止,我们一直明确拒绝任何捐款;因为我们认为,在我们通过发布来证明自己之前,我们不应该这样做。 因此,如果有人愿意帮助支持我们(所有捐款将用于基础设施和未来的客户端开发工作),我们将不胜感激:
 
当然,一切仍在积极开发中,因此请定期查看以上所有链接,了解我们的新进展。
2024-05-30
浏览21
新闻资讯
登录后评论
评论
分享