Moinsen Breadfish,
Wie es die Überschrift bereist verrät, gibt es heute von mir mal ein Include, und zwar kann dieses (vgl. MoveObject) eure Kameraposition "herumfahren" lassen. Allerdings ist die Funktion äußerst ressourcenlastig, also sparsam verwenden.
Funktionen:
MovePlayerCameraEx(playerid,Float:startx,Float:starty,Float:startz,Float:destx,Float:desty,Float:destz,Float:lookx,Float:looky,Float:lookz,Float:speed); // Since 1.1.5
MovePlayerCamera(playerid,Float:destx,Float:desty,Float:destz,Float:lookx,Float:looky,Float:lookz,Float:speed);
PauseCameraMoving(playerid); // Returnt 1 bei Erfolg, andernfalls 0
ContinueCameraMoving(playerid); // Returnt 1 bei Erfolg, andernfalls 0
IsCameraMoving(playerid);
//-----MovePlayerCamera ist wiefolgt aufgebaut:
playerid // Der Spieler, dessen Kamera sich bewegen soll
destx // Destination X, also die Zielkoordinate X
desty // Destination Y, also die Zielkoordinate Y
destz // Destination Z, also die Zielkoordinate Z
lookx // Die Koordinate X, auf die während der Bewegung geschaut werden soll
looky // Die Koordinate Y, auf die während der Bewegung geschaut werden soll
lookz // Die Koordinate Z, auf die während der Bewegung geschaut werden soll
speed // Die Geschwindigkeit eben
//------Callbacks-------
OnCameraMoveFinish(playerid)
OnCameraMovePause(playerid)
OnCameraMoveContinue(playerid)
Beispiel:
/* SA-MP Cameramoving Testscript
*
* (c) Copyright 20011-2012, RealGamer
*
*/
#include <a_samp>
#include <CameraMoving>
#define COLOR_GREEN 0x33AA33AA
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,COLOR_GREEN,"Testscript für MovePlayerCamera");
}
public OnPlayerCommandText(playerid,cmdtext[])
{
if(!strcmp("/pause",cmdtext,true))
{
PauseCameraMoving(playerid);
return 1;
}
if(!strcmp("/cont",cmdtext,true))
{
ContinueCameraMoving(playerid);
return 1;
}
if(!strcmp("/start",cmdtext,true))
{
SendClientMessage(playerid,COLOR_GREEN,"Starte Bewegung der Kamera!");
SetPlayerCameraPos(playerid, 320.0, 50.0, 410.0);
SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35);
MovePlayerCamera(playerid,-750.0,-720.0,410.0,0.0,0.0,0.0,5.0);
return 1;
}
if(!strcmp("/startex",cmdtext,true))
{
SendClientMessage(playerid,COLOR_GREEN,"Starte Bewegung der Kamera!");
MovePlayerCameraEx(playerid,320.0, 50.0, 410.0,-750.0,-720.0,410.0,0.0,0.0,0.0,5.0);
return 1;
}
return 0;
}
public OnCameraMoveFinish(playerid)
{
SendClientMessage(playerid,COLOR_GREEN,"Fertig!");
}
public OnCameraMovePause(playerid)
{
SendClientMessage(playerid,COLOR_GREEN,"Pausiere");
}
public OnCameraMoveContinue(playerid)
{
SendClientMessage(playerid,COLOR_GREEN,"Setze fort");
}
Installation:
Platziert die eben heruntergeladene Datei "CameraMoving" in eurem
PAWNO/includes Ordner.
Am Anfang des Scriptes schreibt ihr: #include <CameraMoving>
Vorschläge?
Postet sie einfach hier im Thread
Probleme?
Support über PN&Thread
Edit's:
1. Informationen verbessert
2. Version 1.0.1
3. Anwendungsbeispiel integriert
4. Anwendugsbeispiel um "OnMoveFinish" erweitert
5. 1.0.2
6. 5.
7. v 1.1.0
8. v 1.1.5
9. v 1.2.0
Changelog:
Es wird nun nurnoch 1 Timer gestzt (Bei OnPlayerConnect
Und eben bei OnPlayerDisconnect gekillt)
Bug gefixt, der mehrfache Timer startete(v 1.1.0)
Bug gefixt, der "Stay within the world Boundries" sowie "loading..." Bildschirm verursachte(v 1.1.0)
Fixed Bug, der verhinderte, dass die Kamera das Ziel erreicht (Trat auf, wenn die Coords genau dem Ziel entsprachen)(v 1.1.5)
Funktion geaddet, da GetPlayerCameraPos nicht meinen Erwartungen nach die Position von "SetPlayerCameraPos" zurückgab(v 1.1.5)
Download:
PasteBin
Oder Anhang