- Reacties 525
- Bezichtigingen 97.2k
- Created
- Laatste reactie
Most Popular Posts
-
Tutorial Een Eigen Server Maken Gemaakt door Sandra Inleiding: Wat is sa-mp? Sa-mp (San Andreas Multiplayer) is een zoals de naam al zegt, een multiplayer-mod van Gta San Andreas. E
-
Download de 0.3 server.compileer daarna je 0.2 gamemode met de compiler (pawno) die bij de 0.3 windows server package is bijgevoegd. Er is een kans dat je nog wel wat moet aanpassen voordat de gamemod
Featured Replies
Recent actief 0
- Er zijn hier geen geregistreerde gebruikers aanwezig.
Tutorial
Een Eigen Server Maken
Gemaakt door Sandra
Inleiding:
Wat is sa-mp?
Sa-mp (San Andreas Multiplayer) is een zoals de naam al zegt, een multiplayer-mod van
Gta San Andreas.
Er zijn enkele honderden sa-mp servers vanuit de hele wereld.
Natuurlijk is het leuk om in andermans server te spelen, maar het is nog leuker om zelf een server te hebben!
Veel mensen (vooral de jongeren) hebben nogal de moeite met de engels-talige tutorials.
(Zelf heb ik de moeite om met correcte spelling te typen (dyslectie) mijn excuses voor spelfouten.)
Naja, omdat velen engels-talige tutorials niet kunnen volgen, heb ik maar een Nederlands-talige tutorial gemaakt.
Hierin zal ik zo eenvoudig mogelijk uitleggen hoe je een eigen server kan maken en hoe je simpele functies
(zoals commando’s) kan maken.
Mochten er nog vragen onbeantwoord zijn gebleven, dan staat mijn pm-inbox wijd open.
Deze tutorial gaat over samp-versie 0.2.2 (Wijzigingen m.b.t. SA:MP 0.3c zijn in het bruin aangegeven)
Downloaden:
Om een eigen server te beheren heb je een aantal bestanden+programma’s nodig.
Onder andere Pawno en samp-server.exe
Het pakket kan je downloaden op http://www.sa-mp.com/download.php
Download dan: SA:MP 0.2.2 R2 (0.3c) Windows Server
Maak dan eerst zelf een nieuwe map (bijvoorbeeld waar je gta-sa hebt geinstalleerd) en noem die voor de duidelijkheid ‘Samp Server’
Open het .rar of .zip bestand en pak de bestanden uit in de zojuist door jou gemaakte map ‘Samp Server’
Als het goed is zijn de bestanden al in de juiste map verdeelt:
In de map ‘Samp Server’ moeten deze bestanden in staan:
Uitleg over de verschillende mappen en bestanden:
De map ‘gamemodes’
In deze map komen jouw opgeslagen scripts te staan. (.pwn en .amx bestanden)
Deze bestanden moeten in deze map staan (anders werkt de server niet)
De map ‘filterscripts’
In deze map komen de door jou gemaakte (of gedownloade) filterscripts in te staan.
Dit zijn ook .pwn en .amx bestanden.
De map ‘pawno’
In deze map staan de programmabestanden van ‘Pawno’ en de include-files (deze staan in een aparte map ‘Includes’)
De map ‘scriptfiles’
In deze map komen eventuele bestanden in te staan die een script nodig heeft.
Bijvoorbeeld als je een register&login-script hebt, dan komen in deze map voor elke speler een apart bestand.
Announce.exe
Dit programma zorgt ervoor dat je server aan de internetlijst kan worden toegevoegd.
Je hoeft dit programma niet zelf te openen.
Samp-server.exe
Dit programma moet je starten om je server aan te zetten.
Het progamma bestaat uit een console waar server-info te zien is.
Zo kan je meelezen met de chat, je kan zien wie door wie vermoord word, wie de server binnenkomt en wie de server verlaat. (Er zijn nog veel meer dingen mogelijk)
Rcon.exe
Ik heb geen idee wat dit programma doet, je hoeft het in ieder geval niet zelf te openen.
Server.cfg
In dit bestand staat instellingen van de server. (bijvoorbeeld het maximale aantal spelers, naam van de server & wachtwoord). Later in deze tutorial kom ik terug op dit bestand.
Server-readme.txt
Dit is een tekstbestand met uitleg over server.cfg.
server_log.txt
Hierin worden alle chatberichten opgeslagen.
Ook kan kan je hier zien wie er de server binnenkomt/verlaat en wie wie vermoord.
samp.ban
In dit bestand worden alle ip-adressen opgeslagen die verbannen zijn.
>>>Laat alle bestanden en mappen op dezelfde plaats staan!!!<<<
Beginnen:
Oke, nu we de benodigde bestanden hebben, kunnen we beginnen met het maken van de server.
Maar eerst leg ik nog wat uit over .pwn en .amx bestanden:
.pwn en .amx bestanden:
Een script bestaat uit 2 bestanden:
scriptnaam.pwn en scriptnaam.amx
.pwn is het project-bestand. (dit kan je openen met Pawno en bewerken)
.amx is het definitieve bestand. Pawno maakt van een .pwn bestand een .amx bestand.
.amx-bestanden zijn onleesbaar voor normale mensen. Maar de server gebruikt dit bestand om het script te lezen.
Nu kan je pawno.exe openen.
Hieronder volgt wat uitleg over de knoppen in Pawno:
1 = start nieuw script
2 = open een script
3 = sla project op (hij slaat alleen het .pwn bestand op!!)
4 = zoekfunctie
5 = ga naar volgende resultaat bij zoekfuncie
6 = ga naar vorige resultaat bij zoekfunctie
7 = vervang een bepaald stuk tekst of woord voor een ander woord
8 = Compile het script. Er word een console geopend, daarin komen eventuele errors of c waarschuwingen in te staan. (Met deze knop word alleen het script omgezet in een .amx-bestand.
9 = Zelfde als knop 8.
10 = Laat de helpfunctie van Pawno zien.
- Rechts in beeld staan de alle mogelijke functies van pawno
- Links staan de regelnummers van het script.
Klik op knop 1 (nieuw script)
Nu komt er een basisscript in het scherm te staan dat er op het eerste gezicht heel ingewikkeld uitziet.
Maar deze tutorial is er om ervoor te zorgen dat het straks lekker simpel is.
Indeling van een script:
Een script bestaat uit meerdere onderdelen.
Bijvoorbeeld een deel dat van toepassing moet zijn als het script start, als een speler de server binnenkomt, als een speler een commando typt en als een speler een voertuig in- of uitstapt.
Deze ‘delen’ heten 'callbacks', ze beginnen met
en eindigen met
Dit zijn de belangrijkste public-functies:
public OnGameModeInit()
In dit gedeelte staan de dingen die moeten gebeuren zodra het script wordt gestart.
Voorbeelden:
-Karakters moeten gemaakt worden
-Voertuigen moeten neergezet worden
-Objecten moeten neergezet worden
-De server moet een gamemode-naam hebben (die in het programma samp te zien is)
public OnPlayerRequestClass(playerid, classid)
In dit gedeelte staan de dingen die van toepassing zijn als de speler een kararkter moet kiezen.
public OnGameModeExit()
In dit gedeelte staat wat er moet gebeuren als het script wordt afgesloten
public OnPlayerConnect(playerid)
In dit gedeelte staat wat er moet gebeuren als een speler de server binnenkomt
public OnPlayerSpawn(playerid)
In dit gedeelte staat wat er moet gebeuren als een speler spawnt.
public OnPlayerDeath(playerid, killerid, reason)
In dit gedeelte staat wat er moet gebeuren als een speler dood gaat.
public OnPlayerCommandText(playerid, cmdtext[])
In dit gedeelte staat wat er moet gebeuren als een speler een bepaald commando intypt.
Het gebruik van hoofdletters en kleine letters moet erg nauwkeurig gebeuren.
Het is namelijk HoOfDlEtTeR-gEvOeLiG
public OnGameModeExit() werkt wel
public OnGamemodeExit() werkt niet
Okej, we hebben nu een standaard script. (1 spawnplek en geen voertuigen)
Nu laat ik zien hoe je je eigen server aan kan zetten.
Eerst moeten we het script compilen (met knop 8 of 9) of sneltoets F5.
Eerst vraagt hij om het script een bestandsnaam te geven.
Laten we voor de duidelijk het script de toepasselijke naam van ‘mijnscript’ geven
Als je op ‘opslaan’ hebt geklikt,
wordt er een pop-up geopend.
Als er errors zijn, dan worden die hier weergegeven.
Zijn er géén errors, dan staat er in de pop-up:
(Of iets dergelijks)
Sluit de pop-up.
Nu staat er ook onderin beeld
Nu moeten we server.cfg bewerken.
Open dit bestand met kladblok/notepad.
De server.cfg ziet er ongeveer zó uit:
Uitleg:
echo Executing Server Config... = (geen idee wat het is, maar gewoon laten staan en niet veranderen)
Lanmode = Zorgt ervoor dat de client/server meer data verbruikt voor betere sync.
rcon_password = het wachtwoord om toegang te hebben tot de beheerder-functies (zoals bannen en kicken)
maxplayers = Stel hier het maximale aantal spelers dat in jou server mag in
port = de poort in je router die je voor sa-mp hebt opengezet
hostname = De naam van de server
gamemode0 = zet hier de bestandsnaam van het script achter
filterscripts = zet hier de bestandsnamen van eventuele filterscripts. (als je die niet hebt kan je deze regel verwijderen)
Announce = zorgt ervoor dat de server in de serverlist weergeven wordt.
Query = Zorgt ervoor dat de serverinformatie in de browser weergeven wordt.
weburl = eventuele link van je website die je kunt opgeven. (deze wordt bij de serverinfo in sa-mp weergegeven. (Ik heb bij mijn server er braaf www.gtaforum.nl neergezet
)
Vul nu server.cfg zó in:
Nu ben je klaar om de server te starten!
Sla server.cfg op en open vervolgens samp-server.exe
Nu word de console geopend.
Als deze meteen weer sluit, dan is er iets verkeerd. (lees in de server_log.txt na wat de oorzaak is)
Als alles goed is, dan blijft de console gewoon geopend.
Zolang dit scherm open blijft, is je server open, als je hem sluit, sluit de server en verliezen alle spelers van je server het contact met de server.
Om te kijken of je server inderdaad online is, open je sa-mp en voeg dan aan je favorieten het ip
127.0.0.1:7777 toe. (deze heeft lage ping) als je met je externe ip speelt, dan hebt je altijd erg hoge ping.
Als het goed is, zie je dit dan in de lijst staan:
Probeer deze server maar eens te joinen.
Nou hopelijk kan je er in komen, dan kunnen we verder.
Zo niet, neem dan contact met me op.
Het scripten:
Nou, nu gaan we beginnen met dingen toevoegen aan het script.
Ik leg het uit in deze volgorde:
- Coördinaten
- Spawnplaatsen
- Voertuigen
- Objecten
- Commando’s
Coordinaten:
Om bepaalde dingen (zoals voertuigen en objecten) op de juiste plaats te zetten, zijn er coödinaten.
Het is hetzelfde als een grafiek:
- Een y-as die loopt van zuid naar noord
- Een x-as die loopt van west naar oost
Het midden van San Andreas is coördinaat 0,0
De x-as loopt van -3000 (in san fiero) tot 3000 (kust van Las Venturas)
De y-as loopt ook van -3000 tot 3000.
Om coördinaten op te slaan, kan je in een server gaan, en dan het commando /save typen
(daarachter kan je nog opmerkingen typen. (bijvoorbeeld “/save spawnplaats #1”
Deze coördinaten worden dan opgeslagen in het bestand ‘savedpositions.txt’
Dit bestand staat in de map waar je gta-sa hebt geïnstalleerd.
(C/Programfiles/Rockstargames/San Andreas/savedpositions.txt)
(Mijn Documenten/GTA San Andreas User Files/SAMP/savedpositions.txt)
De regels waar de coördinaten instaan kan je op deze manier treffen:
(die nullen staan voor wapens + ammo maar dat leg ik later uit).
Spawnplaatsen toevoegen:
In sa-mp zijn er heel veel verschillende karakters waarmee je kan spelen.
Elk karakter heeft zijn of haar eigen id.
Zo is de skin van ‘CJ’ id 0
En de skin van de man in een kippen-pak id 167
Om nieuwe spawnplaatsen toe te voegen, zoek je in je script de regel:
Een paar regels daaronder staat al het Cj-karaker wat al standaard in de server zat:
Uitleg van “AddPlayerClass”:
Stel dat je nog een meisjes-skin wilt die bij het piratenschip in Las Venturas spawnt,
Dan ga je met het CJ-karakter naar de gewenste plek (in dit geval ga je op het piratenschip staan)
en dan typ je /save spawn @ piratenschip
Ga de server weer uit.
Open het bestand ‘savedpositions.txt’ en dan vind je de regel:
Omdat je net nog de CJ-skin (id 0) had, moet je die 0 vervangen door 93 (id van een meisjes-skin)
Het wordt dan:
Deze regel kan je onder de regel plakken die al in het script stond.
Nu staat er dit in je script:
Dus nu heb je 2 karakters (Cj en een meisje) in je server.
Compile (F5) je script weer, en start samp-server.exe opnieuw op.
Kijk nu of je nu inderdaad kan kiezen tussen 2 karakters.
Op deze manier kan je nog veel meer karakters toevoegen.
Voertuigen toevoegen:
Wat kan je doen in een server zonder voertuigen?
Juist, helemaal niks
.
Daarom ga ik nu uitleggen hoe je voertuigen toevoegt aan je server.
Sa-mp heeft een limiet voor het aantal voertuig-types en het totale aantal voertuigen in een server:
Max. aantal types: 70 (Ongelimiteerd)
Max. aantal voertuigen: 700 (2000)
Als je 1 van deze limieten overschrijd, dan crasht jouw San Andreas.
Het toevoegen van voertuigen gaat bijna hetzelfde als toevoegen van spawnplaatsen.
Het toevoegen van voertuigen moet ook bij “public OnGameModeInit()” gebeuren.
Het gaat met de volgende functie:
De id’s kan je hier vinden:
http://wiki.sa-mp.com/wiki/Vehicle_Model_ID_List
En hier de kleur-id’s:
http://wiki.sa-mp.com/wiki/Color_ID
Voorbeeld:
Nu zal ik een voorbeeld geven hoe je een zwart-gele Bullet in het midden van GroveStreet zet:
Op die site kan je vinden dat de id van de Bullet 541 is.
De Coördinaten van GroveStreet zijn:
x = 2495.1013
y = -1667.7927
z = 13.3438
Laten we een draaihoek van 270.0 graden nemen.
Het kleur id van Zwart is 0
Het kleur id van Geel is 6
Als we nu alles samenvoegen krijgen we:
Resultaat:
Objecten toevoegen:
Nu weet je hoe je spawnplaatsen moet maken voor players en voor voertuigen.
Nu ga ik proberen je uit te leggen hoe je objecten kan toevoegen aan de map.
Je kan 1 simpel object toevoegen, maar je kan ook een uitgebreid eiland maken.
Er is genoeg keus, gta-sa heeft namelijk ongeveer 18.000 verschillende objecten!!
Let op: Je kan maximaal 150 (400) objecten toevoegen, als je er meer hebt, kan je spel crashen!!
Oke, objecten toevoegen gaat bijna volgens hetzelfde principe als voertuigen & players.
Je gebruikt de volgende funcie:
Om achter het id van een bepaald object te komen, kan je het beste een map-editor downloaden.
Je weet inmiddels hoe je de coördinaten kan krijgen, dus verdere uitleg heeft deze functie niet nodig.
Kleuren definiëren:
Als je wilt dat de server teksten laat zien in verschillende kleuren, moeten die kleuren eerst gedefinieerd worden.
Helaas kent de server niet ‘rood’ of ‘red’ maar hij kent alleen kleuren in de vorm van getallen (hexa-decimaal).
Elke kleur die bestaat heeft een unieke cijfer-en-letter-combinatie.
Het onmogelijk om al die reeksen te onthouden, daarom kan je ze op de kleuren-pagina van wiki vinden.: http://nl.wikipedia.org/wiki/Lijst_van_HTML-kleuren
Hier staan de meeste codes van kleuren.
Voorbeeld:
De code van ‘Indisch rood’ (de bovenste kleur) is CD5C5C
In het script moeten deze codes tussen speciale codes staan:
Dus de ‘nul’ + kleine ‘x’ dan de kleurcode en afsluiten met ‘AA’
Laten we de standaard kleur rood nemen: FF0000
Dan word de gehele code
Om toch niet steeds die codes te typen, kan je die codes een naam geven:
Dat doe je met
Laten we de kleur rood de naam ‘COLOR_RED’ geven.
Dan word het:
Deze defines moet je bovenaan het script zetten!
Hier alvast een paar standaard kleuren:
Commando’s maken:
Het leukste van scripten vind ik commando’s maken.
Je kan de gekste commando’s maken, want de mogelijkheden zijn eindeloos.
Ik zal je leren hoe je simpele basiscommando’s kan maken.
Eerst zal ik een aantal functies beschrijven die vaak gebruikt worden bij commando’s:
Met deze functie kun je een tekstbericht laten zien aan de speler die het commando heeft getypt.
Deze funcite wordt meestal gebruikt voor teleport-commando’s. Want met deze functie verplaats je de speler.
Met deze functie verander je de gezondheid van de speler.
Met deze functie geef je een speler een bepaald bedrag.
Met deze functie verander je de skin van de speler.
Met deze functie verander je de kleur van een speler.
Met deze functie geef je een speler wapens.
Let op: Commando’s moeten altijd tussen
en
Tekst commando:
Nu zal ik je een simpel tekstcommando uitleggen:
Eerst bedenken we wat voor een commando willen maken, en wat er moet gebeuren.
- Als je het commando /hoi typt, moet er in de Chat komen te staan:
Deze tekst moet rood worden.
Je begint het commando met:
vervolgens moet de server een tekstbericht verzenden naar jou:
Daarvoor gebruiken we dus:
Dus het wordt:
Je sluit een commando af met:
Dus ons command word in zijn geheel:
Als je wilt dat de server meerdere regels en andere kleuren verzend, dan kan je gewoon meer ‘SendClientMessage’regels toevoegen:
Teleport commando:
Nu laat ik zien hoe je een commando maakt waarmee je naar het skatepark in Los Santos kan teleporteren.
Het skatepark is natuurlijk een voorbeeld, je kunt later altijd de coördinaten aanpassen om zo naar een andere locatie te teleporteren.
We moeten eerst een naam verzinnen voor het commando (dus wat moet de speler intypen om te teleporteren)
We maken ervan: /skatepark
Wat moet er allemaal gebeuren zodra een speler /skatepark heeft getypt?
- De speler moet een nieuwe locatie krijgen
- Er moet een tekstbericht met groene kleur komen dat zegt dat je bent geteleporteerd naar het skatepark.
Voor dit command zullen we de SetPlayerPos en de SendClientMessage-functies moeten gebruiken.
We beginnen weer met:
Daarna de SetPlayerPos(playerid, x, y, z);
We moeten daarvoor de coördinaten van het skatepark weten:
x = 1922.5964
y = -1399.8970
z = 13.5703
Dus het wordt:
Vervolgens het tekstbericht:
We sluiten weer af met:
Het gehele commando ziet er dan als volgt uit:
Je kan ook nog de kijk-richting van de speler te veranderen.
Dit doe je door de functie
toe te voegen.
Voor de hoek gebruik je ook de graden die in de wiskunde worden gebruikt. (van 0 t/m 360)
0 = naar noorden kijken
90 = naar westen kijken
180 = naar zuiden kijken
270 = naar oosten kijken
360 = weer naar het noorden kijken.
Van-alles-en-nogwat-commando:
Nu een soort cheat-commando met eigenlijk allerlei functies in 1 commando:
- Zet de health van de speler weer op 100%
- Geef de speler 100% armour (soort van kogelvrij-vest)
- Geef de speler 1 miljoen dollar
- Geef de speler een minigun met 2000 kogels. (het id van de minigun is ‘38’)
- Verzend een tekstbericht naar alle spelers dat iemand dit commando heeft gebruikt.
- We noemen het commando /cheat
Site met wapenid’s: http://wiki.sa-mp.com/wiki/Weapons_List
De health, armour & geld functie spreekt wel voor zich.
Voor de wapenfunctie gebruiken we:
We gebruiken wapenid 38 en we geven 2000 kogels.
Dus het word dan:
Om een tekstbericht naar alle spelers te verzenden gebruik je de functie:
Dit wordt het commando dan:
Tot zover deze tutorial, misschien dat ik hem later nog update met uitleg over andere functies
Voor meer tutorials van mij en anderen kijk hier:
>>PAWN Tutorial Lijst<<
Voor deze tutorial in een TextDocument, download hem >>hier<<
Als je hier gaat posten, quote dan alsjeblieft niet deze hele post!!!
Veel succes ermee!
Groetjes Sandra
Bewerkt: door Big Boss
Update SA:MP 0.3c