How to Create Your Own Custom Game Modes for SAMP Server using Pawno
First, fetch yourself samp server for windows. Save and extract it into your Resources folder. After doing that, select samp-server.exe, samp-npc.exe, announce.exe and server.cfg, then right-click and select "Use as link source". Enter your Template folder, right-click then select Create link => Clone hard link. Voila, now anytime you update your samp-server in Resources, the one in Template will be uploaded as well.
SAMP Server (including Pawno) Full Version
Go back to your server folder, enter pawno/include, select all files, and use them as a link source as we did with samp-server.exe. Then go into Template/pawno/include and create hard link of all includes here.
You've probably already met PAWNO, the editor bundled with samp server. For beginners it's sufficient tool, but if you want to step up your game - you have to step up your editor as well. Introducing - sublime text 3. It's lightning fast, has great community base, and is my go-to multitool. This is not an editor course, but I can highly recommend this tutsplus.com article. It made me realise how much my previous editor sucked (in fact I used two, heavy IDE for webdevelopment, notepad++ for everything else). Of course, sublime is my personal preference, there are hundreds of awesome tools available - Atom for example.
PawnoX is, as the name might tell you, an improved version over the original pawno program. With features like more advanced syntax highlighting, a special compile-frame instead of a dialog, and compile options including a restart-function for the SA-MP server. It is designed for people that want features as well as performance. Pawnox has been made by RedShirt.
I recommend you create a Folder inside your GTA:SA Root folder with the name 'samp' and put all the material there. This will make easier the lesson as I use the following configuration: \SA Root\samp\ and all the other Folders that are in there (gamemodes, filterscripts, pawno, scriptfiles). So, you're equipped, let's begin.
Go to your SA root folder, and search your brand-new folder, maybe called 'samp' or other thing. You'll see some .exes, some text files and some folders. Go right to the 'pawno' folder. Open pawno.exe, then click new on the toolbar. Yep. Your first SA-MP server script. Of course the server can work with this 'blank' script, but can you imagine a server full of unarmed CJ's running everywhere? That's not the kind of server we want. We want something with a lot of spawnpoints, some commands, multiple player models and deathly weapons. We need to code. We'll start coding in PAWN language.
And add yours, that may look the same but with different data. Now, let's try it! Save your PAWN file into \samp\gamemodes\ and then click the button inmediatly on the left of the blue arrow (This will compile .pwn files into .amx, readable for the server). Now go to your 'samp' folder and open 'server.cfg'; replace the gamemode line with 'gamemode [your .pwn file name]', save and close, now run 'samp-server.exe'. Go to SA-MP client and add to the favorites this IP: 127.0.0.1. This is your local testing IP. It should say Unnamed SA-MP 0.2.2 Server, and as Gamemode 'Blank Script'. That's ok for now. Now connect.Surprise! What can you see? That classical electric-stairs spawpoint. Doesn't matter, change your class and you'll see you'll spawn at your designated place. Now we'll start modding more Script parts to personalize the server.
I should mention that both the nbconvert and download methods produce similarly bloated files. Go ahead, scroll through it. While the generated file renders very well, it is about 10x larger than the original HTML file that captures its narrative (13,644 v 397 lines; 298 K v 30 K). This bloat in file size is due to the fact that all of the style information (*.css) contained in the original document gets re-expressed in this version, along with much other styling information not directly related to this page. Thus, while the generation of the page is super easy, and renders beautifully, it is an overweight pig. We could spend some time whittling down this monster to size with some of the built-in functionality of nbconvert, but why not deal that problem using Pandoc directly upon which nbconvert is based?