Die Defines
Dann gibts #define man könnte das als Variablen bezeichnen. Sie werden häufig als Farben benutzt.
Die werden so eingesetzt( Ein Farb beispiel):
Quote:
#define blau 0x33AAFFAA
SendClientMessage(playerid, blau, "Farben Test");
|
Dies Sendet einen text "farben test" an playerid in blau. was das mit Playerid auf sich hat kommt gleich.
Es gibt noch die spezielle Definition
#define FILTERSCRIPT
Das muss ihr reinmachen wenn ihr ein Filterscript macht.
2. Das Script intalasieren und alle Spawns und AutoSpawns
So jetzt wollen wir den Gamemode/filterscript starten (also das machen was am starten des Scripts passiert.
Es gibt jetzt erstmal einen Allgemeinen Start
Quote:
Er intaliersirt das was drin ist egal ob Gamemode oder Filterscript.
So aber das wollen wir nicht verwenden.
Wir verwenden das:
Quote:
public OnGameModeInit()
{
}
|
bzw.
Quote:
public OnFilterScriptInit()
{
}
|
Hier könnt ihr nun allles reintun was intaalisirt werden sollen.
Um euren Script namen zu setzen benutz das( nur für gamemode):
Quote:
|
SetGameModeText("Euer name des Scripts");
|
Das Spawnt ein Auto bzw. Player (oder macht besser gersagt ein Player Spawn):
Quote:
AddStaticVehicle(Modelid,x Axis, y axis, z axis, z rotation, farbe 1, farbe2);
AddPlayerClass(skinid,x axis, y axis, z axis, z rotation, waffe 1, waffe2, waffe 3, w 4, w5, w6);
|
Dabei gibts ein Auto Limit von 700 autos, und 50 - 70 verschiedene Auto Models.
Wo krieg ich die Coordinaten her?
Ganz einfach geht in den SA:MP debug. Geht zum euren Ort wo ein Spawn gemacht werden soll. (Mit gewünschten Auto für auto Spawn oder mit Player für Player Spawn).
Wenn ihr da seit gibt /save ein.
Ihr könnt mit /vsel ein auto auswählen.
Der Fertige code wird dann in die Datei namens "savedpositions.txt" in deinen sa ordner gespeichert
3. Die Commandos
Was wäre denn ein Server ohne Commandos?
So jetzt kommen wir dazu.
Also mit um die überhaupt zu machen, fangen wir mit denn Callback an.
Quote:
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
|
Hier kommt alles rein was passieren soll, wenn irgendein Befehl, also mit / angegeben wird. Egal welcher befehl.
Aber da wir bestimmte Befehle Filtern wollen, benutzen wir:
Quote:
if (strcmp("/befehl", cmdtext, true) == 0)
{
// Hier kommt der Code rein was passieren soll bei den Befehl.
}
|
Ein beispiel mit den /kill befehl.
Quote:
if (strcmp(cmdtext, "/kill", true)==0)
{
SetPlayerHealth(playerid, 0);
return 1;
}
|
So jetzt wollen wir mal ein /me befehl machen
Quote:
if(strcmp(cmdtext, "/me", true)==0) {
new str[256], sname[256];
GetPlayerName(playerid, sname, 256);
format(str, 256, "%s %s", sname, cmdtext[4]);
SendClientMessageToAll(0x33CCFFAA, str);
return 1;
}
|
So das schaut ja am Anfang ziemlich komplex aus, ist es aber nicht wirklich wenn man es sich näher anschaut.