Een korte (viel toch tegen ) inleiding tot het scriptwerk.
Inhoud
Inleiding
Benodigdheden
Scripting Editors
Hulptools
Verschillende scripts
Gamemodes
Filterscripts
Includes
Plugins
[*]Overige belangrijke informatie
Correcte indentation
SA-MP Wiki
Tutorials
[*]Tot slot
Inleiding
Omdat ik merk dat er de laatste tijd veel mensen geïnteresseerd raken in het SA-MP scripten, maar door alle bomen het bos niet meer kunnen zien. Daarom schrijf ik hier een grote, overzichtelijke beginnersgids voor nieuwe SA-MP scripters. Mensen die al kunnen scripten, zullen hier niets nieuws vinden. Het allerbelangrijkste voor nieuwe scripters is het hebben van doorzettingsvermogen. Stop niet als het eens niet lukt! Toch is er nog een ding waar je over na moet denken: begin niet meteen met volledige, moeilijke scripts! Begin rustig, met simpele scripts, en bouw dit langzaam op! Als je meteen lastige scripts wilt, en hier op het forum aan iedereen hulp gaat vragen, leer je het nooit. Deze gids zal vooral links naar andere tutorials en tips bevatten, en is een vertaling naar Pawn (zo heet de SA-MP scripttaal) van deze SCM gids door Dutchy3010.
Benodigdheden
Om te kunnen SA-MP scripten, heb je een paar dingen nodig.
Een scriptingeditor, hier kom ik later nog op terug.
Verschillende hulptools, hier komt ik later ook nog op terug
Tijd en moeite.
Scripting Editors
Om een SA-MP script te kunnen bewerken en/of maken, heb je een scripting editor nodig. Volgens de SA-MP wiki zijn er 5 editors: Pawno, PawnoX, PawnSciTE, SA-MP Editor en Official Quincy Editor. Omdat Official Quincy Editor en PawnoX niet aan te raden zijn, zal ik alleen de andere drie bespreken.
Pawno
De standaard editor. Deze editor wordt meegeleverd bij het SA-MP pakket en bevat ook de compiler (die maakt van een bewerkbaar bestand (.pwn) een voor de server leesbaar bestand (.amx)). Dit is het pawncc.exe bestand. Omdat pawno een simpel programma is, is deze editor goed geschikt voor de mensen onder ons die geen supergoede computer hebben. Echter, omdat het programma geen speciale jump-to functies heeft, en je ook geen in-/uitklapfunctie voor bijvoorbeeld lange variabelen heeft, is dit programma niet aan te raden voor scripts met meer als 2000 regels code. Maar het is een perfect programma voor de beginnende scripter! Pawno is gemaakt door spookie. Download: inbegrepen bij serverpakket
SA-MP Editor
Anders dan de naam doet vermoeden, is deze editor niet gemaakt door het team achter SA-MP. Deze editor is pas net uit de closed beta, maar is wel gelijk stukken beter als pawno. Dit omdat de SA-MP editor "code-collapsing" heeft, deze editor kan code in- en uitklappen. Echter, dit programma vraagt wel veel van je computer, omdat dit programma een geheugengebruik heeft van 34 MB, terwijl pawno maar 3 MB gebruikt. Omdat dit programma nog in de beta is, en bovendien alle downloadlinks dood zijn, zou ik een ander programma gebruiken. SA-MP Editor is gemaakt door Peter. Download: niet beschikbaar
PawnSciTE
Mijn favoriete programma. Deze editor een een bewerkte versie van SciTE, een textbewerker. Echter, dit programma is helemaal aangepast aan pawn, en heeft functies als code-collapsing, het oplichten van functies, het aanvullen van functies, tabbladen (je kan 10 .pwn-bestanden tegelijk open hebben staan). Bovendien kan je automatisch bestanden via FTP uploaden en je lokale server herstarten. Als je op een foutmelding klikt springt het programma automatisch naar de regel met de fout erin. En het belangrijkste van allemaal is nog dat het programma nog gemakkelijk in het gebruik is ook. PawnSciTE is gemaakt door darkimmortal. Download: klik
Hulptools
Als je scripts gaat maken, zijn er natuurlijk altijd functies die veel code nodig hebben, of functies die lastig zijn om te maken. Gelukkig zijn er hiervoor veel hulpprogramma's gemaakt. De handigste en besten zal ik hier kort bespreken.
X-Treme SA-MP Visual Mapper
Een programma waarmee je bijna alles kan uitvoeren wat met coördinaten te maken heeft. Het maken van World Boundaries, gangzones, het plotten van voertuigen en nog veel meer! Download: klik
Kyoshiro's Automatic Server Restarter
Soms komt het voor dat jouw server crashed. Dit is vervelend, helemaal als er mensen van jouw GM aan het genieten zijn. Als je er an ook nog niet bent om de server te herstarten, kan het helemaal een drama worden. Gelukkig zijn er programma's die de taak van het herstarten op zich nemen. Download: klik
SA-MP Script King Final
Een programma met het ID van zo'n beetje alles . Voertuigen, skins, animaties, weer, geluiden, objecten en nog veel meer! Dit programma is echt een must have! Download: klik
David22's Server.cfg Tool
Er zijn genoeg mensen die problemen hebben met het maken van het configuratiebestand voor de server. Daarom heb ik een tooltje gemaakt welke jou dat werkt uit handen neemt. Download: klik
Caneman's SA:MP Easy Peasy
Een programmaatje waarmee je eenvoudig menu's, pickups en teleports kan maken. Aan te raden voor een beginnende scripter. Download: klik
Verschillende scripts
Als je gaat scripten, zijn er verschillende soorten scripts die je kan maken. Je hebt gamemodes en filterscripts. Ben je iets verder gevorderd, kan je ook includes maken. Verder zijn er ook nog plugins, maar dat is helemaal lastig om te maken
Gamemodes
Dé basis van de server. Dit is het script wat altijd aanstaat. Als beginner kan je het beste beginnen door een GM (afkorting voor gamemode) te maken, want dit is het eenvoudigst om mee te beginnen. Echter, er zijn veel (gevorderde) scripters die zo min mogelijk in de gamemode zetten, en zoveel mogelijk in filterscripts. Maar begin jij nou maar lekker met het werken in een GM; de filterscripts komen later wel .
Filterscripts
De add-ons van jouw server. In een FS (verassing: de afkorting van filterscript) kan je bijvoorbeeld commands zetten, welke je ook aan en uit wil kunnen zetten. Veel scripters zetten veel dingen in filterscripts: bijvoorbeeld een FS voor commands, een voor het accountsysteem, een voor de pickups, etc. Maar let op! Je kan maximaal 16 filterscripts tegelijk aan hebben staan, anders laden ze simpelweg niet meer!
Includes
.inc bestanden. Deze staan in de map pawno/include, en bevatten de functies die je kan gebruiken. Het bekendste voorbeeld van een include is a_samp, deze bevat alle standaard functies voor SA-MP. Echter, er zijn ook andere includes, zoals dini (mogelijkheid tot het communiceren met bestanden), dcmd (betere, maar iets ingewikkeldere manier om commands te maken) en cps (meerdere checkpoint tegelijk kunnen toevoegen). Maar het is het slimst om te beginnen met de functies van a_samp te verkennen, voordat je er nog meer gaat toevoegen .
Plugins
Bestanden die een hele nieuwe functionaliteit toevoegen aan de server, bijvoorbeeld mailen. Wordt echter niet veel gebruikt, kijk hier nog maar eens naar als je al behoorlijke tijd aan het scripten bent .
Overige informatie
Tot slot zet ik hier nog wat kleine dingetjes neer, die je helpen het scripten sneller onder de knie te krijgen
Correcte indentation!
Geloof het of niet: indentation is ongelofelijk belangrijk! Indentation is de uitlijning van jouw script. Kort gezegd: na elke { spring je een tab (of 4 spaties) verder, en na elke } ga je dat weer terug. Dit helpt jouw script veel overzichtelijker te maken. Voorbeeldjes:
Zonder goede indentation
public DelAllVehs()
{
for(new i = 0; i <= MAX_VEHICLES; i++)
{
if(SpawnedCar[i])
{
DestroyVehicle(i);
}
}
}
Met goede indentation
public DelAllVehs()
{
for(new i = 0; i <= MAX_VEHICLES; i++)
{
if(SpawnedCar[i])
{
DestroyVehicle(i);
}
}
}
Je ziet zelf al wel wat duidelijker is. Dit is makkelijk voor jou, omdat je script overzichtelijker wordt én het debuggen makkelijker.
SA-MP Wiki
Wat de bijbel voor Christenen is, is de SA-MP Wiki voor SA-MP scripters. Hier vind je zo goed als alle informatie die je nodig hebt om te scripten. 't Is wel allemaal in het Engels, maar alles staat goed uitgelegd en er is per functie een pagina met uitleg. Heb je een probleem? Hoogstwaarschijnlijk kan je op de wiki de oplossing vinden. De wiki is hier te vinden
Tutorials
Hier op het forum zijn veel goede tutorials te vinden, helaas is de MTL out-of-date. Daarom zet ik hier de beste tutorials op een rijtje, zodat je die ook rustig door kan lezen en ze niet op hoeft te zoeken. Is de link groen gekleurd, is het een redelijk eenvoudige tutorial. Is hij oranje, is hij iets lastiger. Maar is hij rood, is het een tutorial voor echt gevorderde scripters. (Idee geripped uit modding MTL :$)
Lijst is out-of-date, kijk in de PMTL voor een actueler overzicht!
Tot slot
Zo, dit was dan de beginnersgids voor SA-MP scripting. Ik hoop dat je wat hebt geleerd, en mocht je ooit nog tegen problemen aanlopen kan je ze altijd nog posten in dit forum. Maar onthoud dit: Ga nooit, als je net begonnen bent, scripts downloaden en deze proberen aan te passen! Begin zelf, en begin klein, dat is de enige manier om het te leren! Veel succes met scripten!
Beginnen met SA-MP scripting
Een korte (viel toch tegen
Inhoud
[*]Overige belangrijke informatie
[*]Tot slot
Inleiding
Omdat ik merk dat er de laatste tijd veel mensen geïnteresseerd raken in het SA-MP scripten, maar door alle bomen het bos niet meer kunnen zien. Daarom schrijf ik hier een grote, overzichtelijke beginnersgids voor nieuwe SA-MP scripters. Mensen die al kunnen scripten, zullen hier niets nieuws vinden. Het allerbelangrijkste voor nieuwe scripters is het hebben van doorzettingsvermogen. Stop niet als het eens niet lukt! Toch is er nog een ding waar je over na moet denken: begin niet meteen met volledige, moeilijke scripts! Begin rustig, met simpele scripts, en bouw dit langzaam op! Als je meteen lastige scripts wilt, en hier op het forum aan iedereen hulp gaat vragen, leer je het nooit. Deze gids zal vooral links naar andere tutorials en tips bevatten, en is een vertaling naar Pawn (zo heet de SA-MP scripttaal) van deze SCM gids door Dutchy3010.
Benodigdheden
Om te kunnen SA-MP scripten, heb je een paar dingen nodig.
Scripting Editors
Om een SA-MP script te kunnen bewerken en/of maken, heb je een scripting editor nodig. Volgens de SA-MP wiki zijn er 5 editors: Pawno, PawnoX, PawnSciTE, SA-MP Editor en Official Quincy Editor. Omdat Official Quincy Editor en PawnoX niet aan te raden zijn, zal ik alleen de andere drie bespreken.
Pawno
De standaard editor. Deze editor wordt meegeleverd bij het SA-MP pakket en bevat ook de compiler (die maakt van een bewerkbaar bestand (.pwn) een voor de server leesbaar bestand (.amx)). Dit is het pawncc.exe bestand. Omdat pawno een simpel programma is, is deze editor goed geschikt voor de mensen onder ons die geen supergoede computer hebben. Echter, omdat het programma geen speciale jump-to functies heeft, en je ook geen in-/uitklapfunctie voor bijvoorbeeld lange variabelen heeft, is dit programma niet aan te raden voor scripts met meer als 2000 regels code. Maar het is een perfect programma voor de beginnende scripter! Pawno is gemaakt door spookie. Download: inbegrepen bij serverpakket
SA-MP Editor
Anders dan de naam doet vermoeden, is deze editor niet gemaakt door het team achter SA-MP. Deze editor is pas net uit de closed beta, maar is wel gelijk stukken beter als pawno. Dit omdat de SA-MP editor "code-collapsing" heeft, deze editor kan code in- en uitklappen. Echter, dit programma vraagt wel veel van je computer, omdat dit programma een geheugengebruik heeft van 34 MB, terwijl pawno maar 3 MB gebruikt. Omdat dit programma nog in de beta is, en bovendien alle downloadlinks dood zijn, zou ik een ander programma gebruiken. SA-MP Editor is gemaakt door Peter. Download: niet beschikbaar
PawnSciTE
Mijn favoriete programma. Deze editor een een bewerkte versie van SciTE, een textbewerker. Echter, dit programma is helemaal aangepast aan pawn, en heeft functies als code-collapsing, het oplichten van functies, het aanvullen van functies, tabbladen (je kan 10 .pwn-bestanden tegelijk open hebben staan). Bovendien kan je automatisch bestanden via FTP uploaden en je lokale server herstarten. Als je op een foutmelding klikt springt het programma automatisch naar de regel met de fout erin. En het belangrijkste van allemaal is nog dat het programma nog gemakkelijk in het gebruik is ook. PawnSciTE is gemaakt door darkimmortal. Download: klik
Hulptools
Als je scripts gaat maken, zijn er natuurlijk altijd functies die veel code nodig hebben, of functies die lastig zijn om te maken. Gelukkig zijn er hiervoor veel hulpprogramma's gemaakt. De handigste en besten zal ik hier kort bespreken.
X-Treme SA-MP Visual Mapper
Een programma waarmee je bijna alles kan uitvoeren wat met coördinaten te maken heeft. Het maken van World Boundaries, gangzones, het plotten van voertuigen en nog veel meer! Download: klik
Kyoshiro's Automatic Server Restarter
Soms komt het voor dat jouw server crashed. Dit is vervelend, helemaal als er mensen van jouw GM aan het genieten zijn. Als je er an ook nog niet bent om de server te herstarten, kan het helemaal een drama worden. Gelukkig zijn er programma's die de taak van het herstarten op zich nemen. Download: klik
SA-MP Script King Final
Een programma met het ID van zo'n beetje alles
. Voertuigen, skins, animaties, weer, geluiden, objecten en nog veel meer! Dit programma is echt een must have! Download: klik
David22's Server.cfg Tool
Er zijn genoeg mensen die problemen hebben met het maken van het configuratiebestand voor de server. Daarom heb ik een tooltje gemaakt welke jou dat werkt uit handen neemt. Download: klik
Caneman's SA:MP Easy Peasy
Een programmaatje waarmee je eenvoudig menu's, pickups en teleports kan maken. Aan te raden voor een beginnende scripter. Download: klik
Verschillende scripts
Als je gaat scripten, zijn er verschillende soorten scripts die je kan maken. Je hebt gamemodes en filterscripts. Ben je iets verder gevorderd, kan je ook includes maken. Verder zijn er ook nog plugins, maar dat is helemaal lastig om te maken
Gamemodes
Dé basis van de server. Dit is het script wat altijd aanstaat. Als beginner kan je het beste beginnen door een GM (afkorting voor gamemode) te maken, want dit is het eenvoudigst om mee te beginnen. Echter, er zijn veel (gevorderde) scripters die zo min mogelijk in de gamemode zetten, en zoveel mogelijk in filterscripts. Maar begin jij nou maar lekker met het werken in een GM; de filterscripts komen later wel
.
Filterscripts
De add-ons van jouw server. In een FS (verassing: de afkorting van filterscript) kan je bijvoorbeeld commands zetten, welke je ook aan en uit wil kunnen zetten. Veel scripters zetten veel dingen in filterscripts: bijvoorbeeld een FS voor commands, een voor het accountsysteem, een voor de pickups, etc. Maar let op! Je kan maximaal 16 filterscripts tegelijk aan hebben staan, anders laden ze simpelweg niet meer!
Includes
.inc bestanden. Deze staan in de map pawno/include, en bevatten de functies die je kan gebruiken. Het bekendste voorbeeld van een include is a_samp, deze bevat alle standaard functies voor SA-MP. Echter, er zijn ook andere includes, zoals dini (mogelijkheid tot het communiceren met bestanden), dcmd (betere, maar iets ingewikkeldere manier om commands te maken) en cps (meerdere checkpoint tegelijk kunnen toevoegen). Maar het is het slimst om te beginnen met de functies van a_samp te verkennen, voordat je er nog meer gaat toevoegen
.
Plugins
Bestanden die een hele nieuwe functionaliteit toevoegen aan de server, bijvoorbeeld mailen. Wordt echter niet veel gebruikt, kijk hier nog maar eens naar als je al behoorlijke tijd aan het scripten bent
.
Overige informatie
Tot slot zet ik hier nog wat kleine dingetjes neer, die je helpen het scripten sneller onder de knie te krijgen
Correcte indentation!
Geloof het of niet: indentation is ongelofelijk belangrijk! Indentation is de uitlijning van jouw script. Kort gezegd: na elke { spring je een tab (of 4 spaties) verder, en na elke } ga je dat weer terug. Dit helpt jouw script veel overzichtelijker te maken. Voorbeeldjes:
Zonder goede indentation
Met goede indentation
Je ziet zelf al wel wat duidelijker is. Dit is makkelijk voor jou, omdat je script overzichtelijker wordt én het debuggen makkelijker.
SA-MP Wiki
Wat de bijbel voor Christenen is, is de SA-MP Wiki voor SA-MP scripters. Hier vind je zo goed als alle informatie die je nodig hebt om te scripten. 't Is wel allemaal in het Engels, maar alles staat goed uitgelegd en er is per functie een pagina met uitleg. Heb je een probleem? Hoogstwaarschijnlijk kan je op de wiki de oplossing vinden. De wiki is hier te vinden
Tutorials
Hier op het forum zijn veel goede tutorials te vinden, helaas is de MTL out-of-date. Daarom zet ik hier de beste tutorials op een rijtje, zodat je die ook rustig door kan lezen en ze niet op hoeft te zoeken. Is de link groen gekleurd, is het een redelijk eenvoudige tutorial. Is hij oranje, is hij iets lastiger. Maar is hij rood, is het een tutorial voor echt gevorderde scripters. (Idee geripped uit modding MTL :$)
Objecten (door =>Sandra<=)
Menu's (door =>Sandra<=)
Communiceren met bestanden (dmv dini) (door =>Sandra<=)
Spawn 5 voertuigen op een rij (door Jarno)
Checkpointstreamer + Adminarea (door =>Sandra<=)
Accountsysteem (door =>Sandra<=)
Multi-Param Commando's maken (door =>Sandra<=)
dcmd en sscanf (door Big Boss)
Basic Team vs. Team (Team Deathmatch) script (door Flame^)
Verwijderbare objecten en voertuigen in een GM (door David22)
Random punten & geld verdienen met een random code (door David22)
Votekick script (door JGuntherS)
Lijst is out-of-date, kijk in de PMTL voor een actueler overzicht!
Tot slot
Zo, dit was dan de beginnersgids voor SA-MP scripting. Ik hoop dat je wat hebt geleerd, en mocht je ooit nog tegen problemen aanlopen kan je ze altijd nog posten in dit forum. Maar onthoud dit: Ga nooit, als je net begonnen bent, scripts downloaden en deze proberen aan te passen! Begin zelf, en begin klein, dat is de enige manier om het te leren! Veel succes met scripten!
Bewerkt: door David22