Hallo, da mich viele gefragt, haben wie man Kameras in eine Richtung schauen lässt
und ich darüber kein Tutorial gefunden habe, zeige ich euch dies nun in meinem Tutorial!
Also, erstens öffnet ihr euer Script und geht zu
public OnPlayerRequestClass(playerid, classid)
Wenn ihr da seit, fügt folgendes ein:
SetPlayerInterior(playerid,0); //InteriorID, indem sich der Spieler in der Skinauswahl befindet
SetPlayerPos(playerid,444.9429,-1875.3621,4.3723); // Position, aufder die Person stehen soll bei der Skinauswahl
SetPlayerFacingAngle(playerid,210.0); // In welche Richtung die Position stehen/schauen soll, weiteres unten
SetPlayerCameraPos(playerid,447.0122,-1877.5240,3.8492); // Wo die Kamera stehen soll
SetPlayerCameraLookAt(playerid,444.9429,-1875.3621,4.3723); // Wohin sie gucken soll
So, wenn ihr das so einfügt, ist die Kamera am Strand an einer kleinen Hütte platziert.
Wenn ihr das ändern wollt, nehmt ihr folgendes vor:
SetPlayerInterior(playerid, 0);
Hier entscheidet ihr, ob ihr den Skin in einem Gebäude aussucht
oder auf der freien Straße. InteriorID's findet ihr auf folgender Seite:
SAMP - InteriorID's
Wenn ihr nundas ganze angepasst habt, kommen wir zu "SetPlayerPos":Der Befehl SetPlayerPos(playerid, x, y, z); bestimmt, an welcher Position der
bestimmte Spieler, der seinen Skin auswählt steht. Dazu geht einfach in euer Spiel,
lauft zu der Position und gibt "/savepos kommentar" ein. Dann geht ihr in den Ordnerpfad:
"x://Dokumente/GTA SanAndreas Userfiles/SAMP/savedpositions.txt"
Nun kopiert ihr die Positionen x, y, z aus der Datei raus.
Beispiel:
AddPlayerClass(2,444.9429,-1875.3621,4.3723,226.4668,0,0,0,0,0,0); // Rot = x, y, z
Wenn ihr das nun habt kommen wir zu dem Befehl "SetPlayerFacingAngle".
Diese Koordinaten, findet ihr über einen leichten Befehl raus:
if(strcmp(cmdtext,"/facepos",true)==0)
{
if(IsPlayerAdmin(playerid))
{
new Float:Angle, string[26];
GetPlayerFacingAngle(playerid, Angle);
format(string, sizeof(string), "Deine Guck Position: %0.2f", Angle);
SendClientMessage(playerid, 0xFFFFFFFF, string);
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Logge dich als RCON-Admin ein!");
}
return 1;
}
Um den Befehl zu nutzen müsst ihr als Admin eingeloggt sein.
Den Befehl müsst ihr an dieser Position benutzen, an der ihr /savepos für SetPlayerPos gemacht hat,
dass die Person auch in die gleiche Richtung später guckt.
Dann bekommt ihr eine Position raus und fügt dies auch unter OnPlayerRequestClass ein.
Beispiel:
SetPlayerFacingAngle(playerid,210.0);
Nun kommen wir zu den letzten Zwei dingen, die wir benötigen:
SetPlayerCameraPos(playerid,447.0122,-1877.5240,3.8492); // Wo die Kamera stehen soll
SetPlayerCameraLookAt(playerid,444.9429,-1875.3621,4.3723); // Wohin sie gucken soll
SetPlayerCameraPos, macht ihr ein Stück weiter weg von SetPlayerPos, damit.
Dies bedeutet an dieser Position steht später die Kamera. Am besten lauft ihr nachdem
ihr SetPlayerPos Coodinate gemacht habt, 5Schritte nach vorne und macht dann nochmal
"/savepos" und speichert dies dann als Cameraposition ab.
Nun fügt ihr das ganze mit "SetPlayerCameraPos(playerid, x, y, z); ein
und braucht nurnoch "SetPlayerCameraLookAt" dies ist ganz einfach.
Ihr benutzt einfach die gleiche Coordinate wie bei SetPlayerPos, da ja in die
Richtung von dem Spieler, die Kamera schauen soll.
Beispiel, anhand von Oben:
SetPlayerCameraLookAt(playerid,444.9429,-1875.3621,4.3723);
So. Nun tut ihr euer Script neu compilen und das ganze sollte funktionieren.
Falls nicht postet einfach eure Fragen & Anregungen unter diesen Post.
Ich hoffe ich konnte euch helfen.
Mit freundlichen Grüßen
Skater
//EDIT: Fehler verbessert