跳到主要内容

open.mp 服务器

托管你自己的《侠盗猎车手:圣安地列斯》多人联机服务器。

v1.6.7.3218最新

亮点

  • New NPC vehicle position and rotation natives, with improved NPC vehicle movement
  • Networking fixes for ban reloads, connections, broadcasts, and server shutdown
  • Pawn, component, and C API fixes, plus Conan 2 and macOS ARM build support
查看完整更新日志

open.mp server — changes since v1.5.8.3079

Server operation and networking

  • Added artwork.show_crc_logs to enable TXD and DFF CRC logging when needed. It is disabled by default. #1164
  • Fixed environment-variable substitution in server configuration, including numeric and boolean settings. #1195
  • Fixed reloadbans so reloaded bans are enforced by the network again. Matching connected players are also removed. #1276
  • Fixed false “server is full” conditions after kicks, rejected invalid connection-lost packets, and temporarily banned invalid connection attempts to reduce log spam. #1209, #1173
  • Fixed connections attempted immediately after server startup being rejected by an invalid network cookie. #1213
  • Fixed broadcast RPC payloads being shortened when a plugin reads them before transmission. This affected features such as weather changes, messages, and game text. #1215
  • Fixed Linux shutdown hanging or crashing when the server runs without a terminal, such as under nohup. #1203
  • Vehicle paintjobs now reset when vehicles respawn. #1213

Scripting and components

  • Fixed %q escaping in Pawn format(), a crash when reading a missing console variable as a string, and crashes caused by invalid SetTimerEx arguments. #1159, #1171, #1223
  • Fixed spawning after leaving spectator mode and made TogglePlayerSpectating reliably enable spectating again. #1187, #1092
  • Changed main-script unloading so components reset after the script is unloaded, preventing callbacks and timers from referring to an unloaded script. #1190
  • Added usage messages when script-loading console commands are called without a filename, and clearer errors for missing legacy plugins. #1032, #1273
  • Added separate object and attached-object editing state checks, and validated incoming editing responses against the active edit mode. #1188
  • Fixed the syncRotation argument being ignored by AttachPlayerObjectToObject, including its C API path. #1163
  • Fixed C API gang-zone and pickup destruction failing to release their legacy IDs for reuse. #1231
  • Updated Pawn with fixes for memcpy and fwrite on packed strings, and corrected presets in the legacy server-side game-text component. #1180

NPCs

  • Added NPC_SetVehiclePos, NPC_SetVehicleRot, NPC_GetVehiclePos, and NPC_GetVehicleRot. Behavior change: NPC_SetPos now removes an NPC from its vehicle; use the vehicle-specific setter to reposition it while seated. #1182, #1237
  • Fixed NPC vehicles appearing flat or teleporting while driving on slopes, and improved vehicle movement synchronization. #1249, #1280
  • Fixed NPC_PutInVehicle leaving NPCs visibly on foot in boats. #1236
  • Fixed dead NPCs appearing standing when streamed in. NPC_Respawn now clears their death state. #1238, #1184
  • Fixed NPC infinite ammo when NPC_SetAmmo had not been called, corrected NPC_GetSkin’s return value, and fixed the angle calculated by NPC_SetAngleToPos. #1165, #1182, #1252
  • Improved movement between short NPC path nodes and prevented zero-time node transitions from repeatedly running in one tick. Movement change, transition limit
  • Fixed NPC cleanup and several crashes when optional components are missing or unloading. #1175, #1182

Building and deployment

  • Migrated builds to Conan 2 and added a dedicated build guide for Windows, Linux, and macOS. #1233, #998
  • Added macOS ARM build support and fixed Windows compatibility with newer Microsoft toolchains. #1234, #1235, #1166
  • Fixed the 32-bit Docker runtime image missing libraries required to start omp-server. #1263

All pull requests merged

New Contributors

Full Changelog: https://github.com/openmultiplayer/open.mp/compare/v1.5.8.3079...v1.6.7.3218

* DynSSL 版本要求你的 Linux 发行版中已安装 libssl。

v1.5.8.3079

亮点

  • 内置的、完全可由服务器控制的NPC(非玩家角色)功能
  • 新增C API / C API SDK,并增强了Pawn与SDK之间的互操作性
  • 通过更强的同步验证检查,实现了显著的网络性能提升
  • 升级至OpenSSL 3.0.13
查看完整更新日志

变更内容

核心功能

  • 引入了作为内置服务器功能的完全可控NPC,无需外部NPC插件,从而实现更深层的服务器端AI和自动化。
  • 新增了C API和C API SDK,允许开发者将open.mp直接与原生代码和外部工具集成。
  • 新增了从open.mp C++ SDK调用Pawn原生函数的能力,显著提升了脚本与原生模块之间的互操作性。

网络与性能

  • 实现了显著的网络性能提升,带来了更快的同步和更流畅的游戏体验。
  • 添加了多项同步验证检查,以防止无效数据、欺骗性的状态和畸形的网络数据包。
  • 现在会根据客户端版本的最大允许值来验证MTU(最大传输单元),防止配置错误和系统不稳定。

平台与兼容性

  • 将OpenSSL从1.1.1升级至3.0.13,正式弃用了对旧版Linux发行版的支持,确保了对现代系统的妥善支持。
  • 为config.json添加了环境变量支持,使容器化部署、CI/CD流程和生产环境部署更加灵活方便。

NPC与游戏性改进

  • NPC的ID分配现在采用从高到低的顺序,防止冲突并提高可预测性。
  • 弃用了ConnectNPC函数,推荐使用新的内置NPC系统。
  • 强制火车在创建时使用4个连续的ID,修复了长期存在的游戏不一致性问题。
  • 修复了火车乘客的同步问题。

稳定性与错误修复

  • 修复了一个关于重生数据的棘手问题。
  • 修复了与踢出玩家相关的延迟问题。
  • 修复了在服务器重启期间检查列表中与游戏区域相关的崩溃问题。
  • 修复了玩家在观战后状态被随机设置为None的问题。
  • 修复了Linux服务器关闭时stdin被锁定的问题。
  • 修复了chatlogging配置变量不影响死亡信息的问题。
  • 移除了旧的Fixes组件,因其不稳定、冗余且功能已被新系统取代。
  • 针对Pawn原生函数进行了多次小修复,提高了正确性和可用性。

文档与社区

按合并的拉取请求整理的更新日志

新贡献者

完整更新日志:https://github.com/openmultiplayer/open.mp/compare/v1.4.0.2779...v1.5.8.3079

* DynSSL 版本要求你的 Linux 发行版中已安装 libssl。

所有发布均为开源。从源代码编译,或直接从 GitHub 下载。