Ga naar hoofdinhoud

Installation

Deze tutorial is voor wie zijn gamemode van een SA:MP-server naar een open.mp-server wil overzetten.

notitie

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

  • open.mp-win-x86.zip Windows-server
  • open.mp-linux-x86.tar.gz Linux-server
  • open.mp-linux-x86-dynssl.tar.gz Linux-server (dynamische SSL)

Stap 2

Pak de inhoud van het .zip- of .tar.gz-archief uit op je schijf

notitie
  • 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

notitie

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


waarschuwing

Als je de onderstaande plugins gebruikt, moet je een versie gebruiken die compatibel is met omp!

PluginOMP
rustexthttps://github.com/ziggi/rustext/releases/tag/v2.0.11 (nomemhack)
keylistenerhttps://github.com/edgyaf/keylistener/releases/tag/1.1.2-pr
waarschuwing

Plaats de volgende plugins in de map ../components, niet in ../plugins!

PluginOMP
Pawn.CMDhttps://github.com/katursis/Pawn.CMD/releases/tag/3.4.0-omp
Pawn.RakNethttps://github.com/katursis/Pawn.RakNet/releases/tag/1.6.0-omp
sampvoicehttps://github.com/AmyrAhmady/sampvoice/releases/tag/v3.1.5-omp
discord-connectorhttps://github.com/maddinat0r/samp-discord-connector/releases/tag/v0.3.6-pre
sscanfhttps://github.com/Y-Less/sscanf/releases/tag/v2.13.8
SKYGebruik Pawn.RakNet in plaats daarvan
YSFNiet nodig: open.mp heeft de meeste gelijkwaardige natives al
FCNPCMomenteel niet ondersteund

Stap 6

Open het qawno-IDE-programma in Server/qawno/qawno.exe

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

Stap 10

Bewerk config.json

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.

tip

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

  • 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


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)


notitie

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.