Guten Abend.
Ich habe soeben im Easy-Scripting Forum ein Tutorial geschrieben, was ich euch nicht vorenthalten möchte - Konnte es hier noch nicht Posten, da ich keinen Zugriff hatte/ ich die Website nicht aufrufen könnte.
---
Guten Tag.
Heute möchte ich euch erklären, wie ihr den Spawn via "AddPlayerClass" umlegen oder ihr die komplette Skinauswahl umgehen könnt! Dazu braucht es nicht viel, ausser:
- Etwas Geduld
- Grundwissen
- Samp Debug
---
Der Anfang
Als erstes öffnen wir "SAMP Debug", welches wir in unserem original Grand Theft Auto San Andreas Verzeichnis finden. Dort suchen wir uns nun einen Platz aus, wo wir anschließend "/save [Kommentar]" eingeben & abschicken. Danach bewegen wir uns ein, zwei Schritte vor & tippen wieder "/save [Kommentar]" ein. Nun können wir SAMP Debug schliessen & suchen nach "User Files" - Normalerweise dürfte nach kurzer Zeit "San Andreas User Files" als Suchergebniss auftauchen - Darin finden wir den Ordner "SAMP", diesen öffnen wir & sehen eine .txt Datei namens "savepositions". Nachdem wir diese geöffnet haben, finden wir nun zwei Zeilen namens "AddPlayerClass" auf. Doch bevor es nun ins Script geht, sehen wir uns das genauer an!
AddPlayerClass
AddPlayerClass(SkinID,XCoord,YCoord,ZCoord,Rotation,Waffe1,Muni1,Waffe2,Muni2,Waffe3,Muni3);
SkinID steht für den Skin den der Spieler haben soll. Dort können wir eine "0" hineinschreiben, dann hat der Spieler den normalen CJ Skin.
XCoord,YCoord,ZCoord stehen für die X,Y & Z Koordinaten. Dort ist die Position, in Koordinaten, wo der Spieler Spawn'd.
Rotation steht für den Blinkwinkel des Spieler. Wohin der Spieler schaut.
Waffe1, Muni1, .. steht jeweils für die Waffe & die Munition der Waffe. Fügen wir nun eine WaffenID bei Waffe1 ein, bekommt der Spieler diese Waffe. Bei Muni1 tragen wir nun eine Zahl, zb. 500, ein, dann bekommt der Spieler zu der ersten Waffe auch 500 Munition.
Nun wissen wir, was es mit "AddPlayerClass" auf sich hat & können es richtig anwenden - AddPlayerClass setzen wir unter "OnGameModeInit" ein!
Unter "OnPlayerRequestClass"
public OnPlayerRequestClass(playerid, classid)//Der Callback
{
SetPlayerPos(playerid,X,Y,Z);//Wir setzen die Position des Spieler
SetPlayerCameraPos(playerid,X,Y,Z);//Wir setzen die Kamera Position
SetPlayerCameraLookAt(playerid,X,Y,Z);//Wir setzen fest, wo die Kamera hinzeigt
SetPlayerFacingAngle(playerid,Rotation);//Wir setzen fest, in welche Richtung der Kopf des Spielers zeigt
return 1;
}
Nun geht es ans eigentliche Scripten! Am ende sollte es wie folgt aussehen - Doch wie bekommen wir den Spawn richtig verlegt?
Erstmal legen wir fest, wo der Spieler gespawn'd werden soll - Hierfür nehmen wir die X,Y & Z Koordinaten aus der Funktion "AddPlayerClass", die ich zuvor erklärt hatte.
public OnPlayerRequestClass(playerid, classid)//Der Callback
{
SetPlayerPos(playerid,X,Y,Z);//Wir setzen die Position des Spieler
return 1;
}
Danach setzen wir die Position der Kamera fest. Hierzu nehmen wir die X,Y & Z Koordinaten aus der Zeile in der saveposition.txt als wir ein o. zwei Schritte vor gegangen sind (!).
public OnPlayerRequestClass(playerid, classid)//Der Callback
{
SetPlayerPos(playerid,X,Y,Z);//Wir setzen die Position des Spieler
SetPlayerCameraPos(playerid,X,Y,Z);//Wir setzen die Kamera Position
return 1;
}
Nun legen wir fest, wohin die Kamera zeigt (Damit wir den Spieler auch sehen). Dazu nehmen wir die gleichen Koordinaten wie bei "SetPlayerCameraPos".
public OnPlayerRequestClass(playerid, classid)//Der Callback
{
SetPlayerPos(playerid,X,Y,Z);//Wir setzen die Position des Spieler
SetPlayerCameraPos(playerid,X,Y,Z);//Wir setzen die Kamera Position
SetPlayerCameraLookAt(playerid,X,Y,Z);//Wir setzen fest, wo die Kamera hinzeigt
return 1;
}
Zum schluss setzen wir noch fest, wohin der Kopf des Spielers zeigt. Dazu einfach die Rotation aus "AddPlayerClass" nehmen.
public OnPlayerRequestClass(playerid, classid)//Der Callback
{
SetPlayerPos(playerid,X,Y,Z);//Wir setzen die Position des Spieler
SetPlayerCameraPos(playerid,X,Y,Z0);//Wir setzen die Kamera Position
SetPlayerCameraLookAt(playerid,X,Y,Z);//Wir setzen fest, wo die Kamera hinzeigt
SetPlayerFacingAngle(playerid,Rotation);//Wir setzen fest, in welche Richtung der Kopf des Spielers zeigt
return 1;
}
Nun könntet ihr euch natürlich noch Fragen, was "playerid" bedeutet (?) - Ganz einfach! "playerid" steht dafür, das es nur für den Spieler ausgeführt wird, der gerade diese Aktion durchführt! Das werdet ihr aber später noch besser Lernen. Nun haben wir den Spawn (+Skinauswahl) erfolgreich verlegt!
---
Skinauswahl überspringen/ Entfernen
"AddPlayerClass" ist aber nicht für jedes Gamemode erfreulich & geeignet. Weshalb man die Skinauswahl Überspringen & man den Spieler direkt Spawnen kann. SetSpawnInfo(playerid,Gruppe,SkinID,XCoord,YCoord,ZCoord,Rotation,Waffe1,Muni1,Waffe2,Muni2,Waffe3,Muni3);
SpawnPlayer(playerid);
& so sollte das ganze Aussehen. Nun erkläre ich euch diese Funktion noch etwas genauer!
"SetSpawnInfo" steht dafür, das ihr die SpawnInformationen speichert & später durch "SpawnPlayer(playerid);" durchführen könnt.
SkinID steht für den Skin den der Spieler haben soll. Dort können wir eine "0" hineinschreiben, dann hat der Spieler den normalen CJ Skin.
"Gruppe" steht für die Fraktion, die der Spieler beim Spawn haben soll. Dies müsst ihr an euer Script anpassen (FraktionsID einfügen).
XCoord,YCoord,ZCoord stehen für die X,Y & Z Koordinaten. Dort ist die Position, in Koordinaten, wo der Spieler Spawn'd.
Rotation steht für den Blinkwinkel des Spieler. Wohin der Spieler schaut.
Waffe1, Muni1, .. steht jeweils für die Waffe & die Munition der Waffe. Fügen wir nun eine WaffenID bei Waffe1 ein, bekommt der Spieler diese Waffe. Bei Muni1 tragen wir nun eine Zahl, zb. 500, ein, dann bekommt der Spieler zu der ersten Waffe auch 500 Munition.
Fügen wir diesen Code also unter "OnPlayerRequestClass" ein, überspringen wir die Skinauswahl & Spawnen den Spieler mit allen wichtigen Informationen.
---
So das war mein kleines Tutorial zum Spawnen der Spieler. Ich hoffe ihr konntet es Verstehen & ich habe es für Anfänger gut erklärt
MfG
//Edit2: Alte Edits entfernt (nichtmehr zutreffend) + Skinchange System entfernt (Hat nie funktioniert)
//Edit3: PAWN-Quelltext verändert um C&P vorzubeugen