RI MovePlayerCamera [v.1.2.0]

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

    11 Mal editiert, zuletzt von RG_ ()

  • Grauenhafte Umsetzung...
    Allein das Laden des Skriptes senkt die Performance des Servers rasant, ohne dass auch nur eine Funktion aus dem Include genutzt wurde...
    Setze den Timer also auf keinen Fall in OnPlayerConnect, sondern eher in bspw MovePlayerCamera...

  • Sieht nice aus.
    Werde ich gleich mal testen.


    Bewertung folgt.-

    Zita aus dem Livestream chat von Internetlink von BigYoda ;)


    Zitat

    BigYoda: Ink sagt: "Ach OnGamemodeInit brauchen wir nicht löschen" Yoda: "Was ist das andere für ein Kram?". Ink: "Egal lösch einfach alles". Tutorial Ende :D





    DDG is Back


    Froum: DDG Forum
    Server IP: 85.25.20.59:7777
    Team Speak 3: 85.25.20.59

  • Ich habs nur allein getestet ^^, da musst dich mal ein bisschen mit spielen.
    /edit: Update kommt gleich.. Es ist recht klein.
    Changelog:
    Fixed Bug, der verhinderte, dass die Kamera das Ziel erreicht (Trat auf, wenn die Coords genau dem Ziel entsprachen)
    Funktion geaddet, da GetPlayerCameraPos nicht meinen Erwartungen nach die Position von "SetPlayerCameraPos" zurückgab:
    MovePlayerCameraEx(playerid,Float:startx,Float:starty,Float:startz,Float:destx,Float:desty,Float:destz,Float:lookx,Float:looky,Float:lookz,Float:speed);

    Einmal editiert, zuletzt von RG_ ()

  • Habe Errors wenn ich ein Filterscript compile.
    C:\Users\*****\Desktop\GTA SA +SAMP!\Sa-Mp Server\filterscripts\CarSystem.pwn(1165) : error 021: symbol already defined: "strtok"
    C:\Users\*****\Desktop\GTA SA +SAMP!\Sa-Mp Server\filterscripts\CarSystem.pwn(1180) : error 047: array sizes do not match, or destination array is too small
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.