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_logsto 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
reloadbansso 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
%qescaping in Pawnformat(), a crash when reading a missing console variable as a string, and crashes caused by invalidSetTimerExarguments. #1159, #1171, #1223 - Fixed spawning after leaving spectator mode and made
TogglePlayerSpectatingreliably 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
syncRotationargument being ignored byAttachPlayerObjectToObject, 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
memcpyandfwriteon packed strings, and corrected presets in the legacy server-side game-text component. #1180
NPCs
- Added
NPC_SetVehiclePos,NPC_SetVehicleRot,NPC_GetVehiclePos, andNPC_GetVehicleRot. Behavior change:NPC_SetPosnow 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_PutInVehicleleaving NPCs visibly on foot in boats. #1236 - Fixed dead NPCs appearing standing when streamed in.
NPC_Respawnnow clears their death state. #1238, #1184 - Fixed NPC infinite ammo when
NPC_SetAmmohad not been called, correctedNPC_GetSkin’s return value, and fixed the angle calculated byNPC_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
- Restore Artwork CRC logs by @SimoSbara in https://github.com/openmultiplayer/open.mp/pull/1164
- fix microsoft's shitty ABI compat breakage by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1166
- Fix string escape with %q in format() by @SimoSbara in https://github.com/openmultiplayer/open.mp/pull/1159
- Fix GetConsoleVarAsString crash by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1171
- Ignore networked ID_CONNECTION_LOST packet. by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1173
- Fix NPC component cleanup by @vincenzocorso in https://github.com/openmultiplayer/open.mp/pull/1175
- Fix issues with NPCs by @SimoSbara in https://github.com/openmultiplayer/open.mp/pull/1165
- NPC_Respawn now resets death state to false by @stley in https://github.com/openmultiplayer/open.mp/pull/1184
- Call components reset after finishing unloading the main script. by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1190
- Fix spawn when leaving spectator state by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1187
- NPC changes and fixes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1182
- Patch to fix env vars by @itsneufox in https://github.com/openmultiplayer/open.mp/pull/1195
- Fix Linux server deadlock on shutdown without TTY by @TanF12 in https://github.com/openmultiplayer/open.mp/pull/1203
- Fix server-full issue introduced by Kick changes by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1209
- Fix RPC call to use correct bit count for data transmission by @bssth in https://github.com/openmultiplayer/open.mp/pull/1215
- Tweaks for pawn component and more by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1180
- CAPI: Fix legacy slots not being released for GZ and Pickups by @markski1 in https://github.com/openmultiplayer/open.mp/pull/1231
- Fix server crash for invalid SetTimerEx args by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1223
- conan 2 (remembered mj goat today) by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1233
- Some more fixes for macOS by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1235
- macos fix, add macos ci, fix conan cache for conan 2 by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1234
- Add help message when attempting to load a script without arguments by @xerox8521 in https://github.com/openmultiplayer/open.mp/pull/1032
- Fix syncRotation ignored to AttachPlayerObjectToObject by @SimoSbara in https://github.com/openmultiplayer/open.mp/pull/1163
- Fix NPC_SetAngleToPos(): use
{vec.x, vec.y}instead of{vec.x, vec.z}by @KW46 in https://github.com/openmultiplayer/open.mp/pull/1252 - docker/run.sh: fix omp-server failing to start due to missing libraries by @vincenzocorso in https://github.com/openmultiplayer/open.mp/pull/1263
- Fix moving NPC vehicle pitch not synced by @Fanorisky in https://github.com/openmultiplayer/open.mp/pull/1249
- fix: NPC_PutInVehicle not visually attaching NPC to boat seat by @Revelts in https://github.com/openmultiplayer/open.mp/pull/1236
- Reset vehicle paintjob on respawn and seed cookies after network start by @berkleblebiciii in https://github.com/openmultiplayer/open.mp/pull/1213
- Fix dead NPC appearing standing when streamed in by @krzysztofmotas in https://github.com/openmultiplayer/open.mp/pull/1238
- Core: re-apply bans to networks in reloadBans by @berkleblebiciii in https://github.com/openmultiplayer/open.mp/pull/1276
- add linux build instructions to README.md by @aszarth in https://github.com/openmultiplayer/open.mp/pull/998
- Fixed: TogglePlayerSpectating by @uifdev in https://github.com/openmultiplayer/open.mp/pull/1092
- fix misleading message for missing legacy plugins by @dockfries in https://github.com/openmultiplayer/open.mp/pull/1273
- Fix NPC teleporting on slopes while driving by @itsneufox in https://github.com/openmultiplayer/open.mp/pull/1280
- Add NPC_GetVehiclePos and NPC_GetVehicleRot natives by @Revelts in https://github.com/openmultiplayer/open.mp/pull/1237
- Object editing types by @xunder-matth in https://github.com/openmultiplayer/open.mp/pull/1188
New Contributors
- @SimoSbara made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1164
- @vincenzocorso made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1175
- @stley made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1184
- @TanF12 made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1203
- @bssth made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1215
- @markski1 made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1231
- @xerox8521 made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1032
- @KW46 made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1252
- @Fanorisky made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1249
- @Revelts made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1236
- @berkleblebiciii made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1213
- @krzysztofmotas made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1238
- @aszarth made their first contribution in https://github.com/openmultiplayer/open.mp/pull/998
- @dockfries made their first contribution in https://github.com/openmultiplayer/open.mp/pull/1273
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原生函数进行了多次小修复,提高了正确性和可用性。
文档与社区
- 新的和更新的NPC脚本API(Pawn原生函数) 已在官方文档中提供:https://open.mp/docs
- 加入社区并在Discord上获取支持:https://discord.gg/samp
- 通过OpenCollective支持开发:https://opencollective.com/openmultiplayer
- 官方网站:https://open.mp/
按合并的拉取请求整理的更新日志
- Fix for non-bullet guns returned as 0 in weapon data by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1046
- Update gitignore for CLion && macOS by @povargek in https://github.com/openmultiplayer/open.mp/pull/1049
- fix ci by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1054
- Fix apple silicon build by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1062
- Fixes for a couple of issues by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/999
- Fixed: legacy config variable 'chatlogging' does not control death logging by @uifdev in https://github.com/openmultiplayer/open.mp/pull/1057
- Pack Vehicle and StreamInVehicle more tightly by @PTemuri in https://github.com/openmultiplayer/open.mp/pull/1091
- Fixed: train passenger sync by @uifdev in https://github.com/openmultiplayer/open.mp/pull/1100
- Fixed
logging.log_connection_messagesoption check by @Northn in https://github.com/openmultiplayer/open.mp/pull/1094 - Fixed "reverse search for NPC id in player pool" by @NoPressF in https://github.com/openmultiplayer/open.mp/pull/1088
- Return string length for some natives by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1098
- Check provided mtu value against max allowed per client version by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1111
- Reverse search for NPC id in player pool by @ksenonadv in https://github.com/openmultiplayer/open.mp/pull/1075
- add NPC_HasPathPointInRadius by @NoPressF in https://github.com/openmultiplayer/open.mp/pull/1115
- One big beautiful pull request by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1113
- Create FUNDING.yml by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1121
- Store natives globally & ability to call them from using SDK by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1128
- fix sdtin lock from getline when shutting down by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1131
- NPC Component by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/916
- Update FCNPC deprecation message by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1132
- add capi component and submodule by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1125
- Some fixes and changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1133
- upgrade openssl version from 1.1.1 to 3.0.13 by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1096
- Some NPC fixes and changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1135
- Add trams where they are missed by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1140
- Force train to be 4 consecutive ids by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1139
- Fix event handling by @0x617374726F in https://github.com/openmultiplayer/open.mp/pull/1144
- Use entry create for dialog data creation by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1145
- Add environment variable support in config.json by @itsneufox in https://github.com/openmultiplayer/open.mp/pull/1142
- network, npcs, and docker script changes by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1148
- fix TextDraw_SetProportional by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1149
- fix slot reserving for players outside of raknet by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1150
- Fix Kick Issue by @Tiaansu in https://github.com/openmultiplayer/open.mp/pull/1151
- fix: clear checkingList when component is reseted by @nidi21 in https://github.com/openmultiplayer/open.mp/pull/1152
- bump version by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1153
- update sdk module to the right ref by @AmyrAhmady in https://github.com/openmultiplayer/open.mp/pull/1154
- Couple of fixes for NPC component by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1156
- Fix for random occurrence of player state none by @NexiusTailer in https://github.com/openmultiplayer/open.mp/pull/1146
新贡献者
- @povargek 在 https://github.com/openmultiplayer/open.mp/pull/1049 首次贡献
- @PTemuri 在 https://github.com/openmultiplayer/open.mp/pull/1091 首次贡献
- @Northn 在 https://github.com/openmultiplayer/open.mp/pull/1094 首次贡献
- @NoPressF 在 https://github.com/openmultiplayer/open.mp/pull/1088 首次贡献
- @0x617374726F 在 https://github.com/openmultiplayer/open.mp/pull/1144 首次贡献
- @itsneufox 在 https://github.com/openmultiplayer/open.mp/pull/1142 首次贡献
- @Tiaansu 在 https://github.com/openmultiplayer/open.mp/pull/1151 首次贡献
- @nidi21 在 https://github.com/openmultiplayer/open.mp/pull/1152 首次贡献
完整更新日志:https://github.com/openmultiplayer/open.mp/compare/v1.4.0.2779...v1.5.8.3079
* DynSSL 版本要求你的 Linux 发行版中已安装 libssl。