Installation
Deze tutorial is voor wie zijn gamemode van een SA:MP-server naar een open.mp-server wil overzetten.
Als je de FCNPC-plugin gebruikt, stop daar dan voorlopig mee, want deze plugin werkt momenteel niet met open.mp.
Stap 1
Download de nieuwste versie van de open.mp-serverbestanden van https://github.com/openmultiplayer/open.mp/releases
.png)
open.mp-win-x86.zipWindows-serveropen.mp-linux-x86.tar.gzLinux-serveropen.mp-linux-x86-dynssl.tar.gzLinux-server (dynamische SSL)
Stap 2
Pak de inhoud van het .zip- of .tar.gz-archief uit op je schijf
.png)
- components: open.mp-componenten
- filterscripts: Je serverfilterscripts (bijscripts)
- gamemodes: Je servergamemodes (hoofdscripts)
- models: Je aangepaste servermodellen (textures .txd .dff)
- plugins: Je serverplugins (legacy-plugins)
- qawno: Pawn-editor en server-includes
- scriptfiles: INI-bestanden of andere gegevens
- bans.json: Banlijstbestand
- config.json: Serverconfiguratiebestand
- omp-server.exe: open.mp-serverprogramma
- omp-server.pdb: open.mp-serverdebugbestand
Stap 3
Plaats je gamemode-.pwn-bestand in de map gamemodes
Stap 4
Plaats vereiste includes (bijv. sscanf2.inc, streamer.inc) in de map qawno/include
Als je YSI-4-includes in je gamemode gebruikt, update naar YSI-5.x
Stap 5
Plaats vereiste plugins (bijv. sscanf.dll, streamer.dll) in de map plugins
Als je de onderstaande plugins gebruikt, moet je een versie gebruiken die compatibel is met omp!
| Plugin | OMP |
|---|---|
| rustext | https://github.com/ziggi/rustext/releases/tag/v2.0.11 (nomemhack) |
| keylistener | https://github.com/edgyaf/keylistener/releases/tag/1.1.2-pr |
Plaats de volgende plugins in de map ../components, niet in ../plugins!
| Plugin | OMP |
|---|---|
| Pawn.CMD | https://github.com/katursis/Pawn.CMD/releases/tag/3.4.0-omp |
| Pawn.RakNet | https://github.com/katursis/Pawn.RakNet/releases/tag/1.6.0-omp |
| sampvoice | https://github.com/AmyrAhmady/sampvoice/releases/tag/v3.1.5-omp |
| discord-connector | https://github.com/maddinat0r/samp-discord-connector/releases/tag/v0.3.6-pre |
| sscanf | https://github.com/Y-Less/sscanf/releases/tag/v2.13.8 |
| SKY | Gebruik Pawn.RakNet in plaats daarvan |
| YSF | Niet nodig: open.mp heeft de meeste gelijkwaardige natives al |
| FCNPC | Momenteel niet ondersteund |
Stap 6
Open het qawno-IDE-programma in Server/qawno/qawno.exe
.png)
Stap 7
Druk op CTRL + O, ga naar de map ../gamemodes en open je gamemode-.pwn-bestand
Stap 8
Zoek
#include <a_samp>
vervang door
#include <open.mp>
druk vervolgens op F5 om te compileren.
Stap 9
Open het bestand config.json met Kladblok of een andere IDE
.png)
Stap 10
Bewerk config.json
.png)
Zoek
"main_scripts": [
"gungame 1"
],
vervang door
"main_scripts": [
"your_gamemode_amx_file_name 1"
],
Zoek
"legacy_plugins": [],
Specificeer vereiste plugins
"legacy_plugins": [
"crashdetect",
"mysql",
"sscanf",
"streamer",
"PawnPlus",
"pawn-memory"
],
Zoek
"side_scripts": []
Specificeer je filterscripts
"side_scripts": [
"filterscripts/file_name"
]
Zoek
"rcon": {
"allow_teleport": false,
"enable": false,
"password": "changeme1"
},
Voer een sterk wachtwoord in voor het rcon-wachtwoord:
"rcon": {
"allow_teleport": false,
"enable": false,
"password": "151sd80hgse32q1oi0v8dsge166"
},
Druk op CTRL + S om wijzigingen op te slaan.
Er is een gids voor het converteren van server.cfg naar config.json op https://www.open.mp/docs/server/config.json
Stap 11
Start de server
- Windows
Open het programma omp-server.exe
.png)
- Linux
./omp-server
Compilerfouten en -waarschuwingen
- warning 213: tag mismatch: expected tag "?", but found none ("_"):
Bijvoorbeeld:
TogglePlayerControllable(playerid, 1);
// ->
TogglePlayerControllable(playerid, true);
TextDrawFont(textid, 1);
// ->
TextDrawFont(textid, TEXT_DRAW_FONT_1);
GivePlayerWeapon(playerid, 4, 1);
// ->
GivePlayerWeapon(playerid, WEAPON_KNIFE, 1);
Maar je kunt dit voorlopig negeren:
#define NO_TAGS
#include <open.mp>
// Als de waarschuwing nog steeds optreedt
// Gebruik #pragma warning disable 213
- warning 234: function is deprecated (symbol "TextDrawColor") Use `TextDrawColour
Druk CTRL + F in qawno en vervang overal TextDrawColor door TextDrawColour
.png)
Of, als je dat wilt, kun je gemengde spelling inschakelen:
#define MIXED_SPELLINGS
#include <open.mp>
- warning 234: function is deprecated (symbol "GetPlayerPoolSize") This function is broken.
- warning 234: function is deprecated (symbol "GetVehiclePoolSize") This function is broken.
- warning 234: function is deprecated (symbol "GetActorPoolSize") This function is broken.
Vervang GetPlayerPoolSize() door MAX_PLAYERS
Vervang GetVehiclePoolSize() door MAX_VEHICLES
Vervang GetActorPoolSize() door MAX_ACTORS
- warning 234: function is deprecated (symbol "SHA256_PassHash") Use BCrypt for hashing passwords
Gebruik de plugin samp-bcrypt voor wachtwoord-hashing. SHA-256 is niet veilig.
- warning 214: possibly a "const" array argument was intended: "?"
- warning 239: literal array/string passed to a non-const parameter
Bijvoorbeeld:
public MyFunction(string[])
// ->
public MyFunction(const string[])
- error 025: function heading differs from prototype
Bijvoorbeeld:
public OnPlayerDeath(playerid, killerid, reason)
// ->
public OnPlayerDeath(playerid, killerid, WEAPON:reason)
public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
// ->
public OnPlayerEditAttachedObject(playerid, EDIT_RESPONSE:response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
Er is ook een upgrade-tool die probeert oude, ongetagde en const-onjuiste code te vinden en te upgraden.
https://github.com/openmultiplayer/upgrade
Al inbegrepen in de map /qawno/upgrader.
Runtime-fouten en -waarschuwingen
[Info] Couldn't announce legacy network to open.mp list.
[Info] [Server Error] Status: 406
[Info] [Server Error] Message: {"error":"failed to query server: socket read timed out"}
[Info] This won't affect the server's behaviour.
- Je server is niet toegankelijk vanaf de open.mp-website.
- Waarschijnlijk draai je de server lokaal.
- De firewall heeft de verbinding geblokkeerd.
Deze waarschuwing heeft geen invloed op het gedrag van de server.
[Warning] Insufficient specifiers given to `format`: "?" < 1
Het aantal specifiers is kleiner dan het aantal argumenten dat je aan format doorgeeft. Bijvoorbeeld:
new string[32];
new mp[32] = ".MP";
format(string, sizeof(string), "OPEN", mp);
// [Warning] Insufficient specifiers given to `format`: "OPEN" < 1
// Correct is:
format(string, sizeof(string), "OPEN%s", mp);
// ^^
Nuttige documenten
Bekijk de nieuwe scriptingfuncties en callbacks: https://www.open.mp/docs/server/omp-functions
Als Pawn helemaal nieuw voor je is: readme-beginner
Als je al wat ervaring hebt met Pawn: readme-intermediate
Als je een expert bent: readme-expert
Blogpost: Porting to open.mp
Hulp
Als je nog steeds problemen hebt met het draaien van de server, wordt dan lid van de officiële open.mp-Discord: https://discord.gg/samp
Stel je vraag in het kanaal #openmp-support.