InterPolateCameraPos Problem

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
  • Hi Leute,


    da ich eine andere Art von "Tutorial" machen will, möchte ich das die Spieler den LS "Spawn" sehen. Funktioniert auch wunderbar!
    Nur jetzt kommt das eigentliche Problem.
    Die Kamerafahrt fängt erst gar nicht an. Egal ob registriert oder nicht!
    Und wenn ich dini_Exists rausnehme, klappt es zwar, aber InterPolateCameraPos/LookAt geht nicht weg. Das heißt, der Spieler kommt aus der Kamerafahrt nicht mehr raus, aber er kann trotzdem rumlaufen.
    PWN Code (OnPlayerSpawn)

    Spoiler anzeigen


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei, sizeof(Spielerdatei), "/Spieler/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    SetPlayerPos(playerid,2522.2588,-1678.1085,15.4970);
    SetCameraBehindPlayer(playerid);
    }
    else
    {
    InterpolateCameraPos(playerid, 2503.063720, -1672.817993, 15.187110, 2411.021484, -1657.892089, 64.378120, 6500, CAMERA_CUT);
    InterpolateCameraLookAt(playerid, 2507.829101, -1674.322265, 15.019173, 2415.021972, -1658.462768, 61.433658, 6500, CAMERA_CUT);
    GameTextForPlayer(playerid,"LS Spawn",3000,5);
    SCM(playerid,Grün,"Hier ist der LS Spawn.");
    SCM(playerid,Grün,"Du kannst dir mit /waffen sofort Waffen holen und DM machen!");
    SCM(playerid,Grün,"Oder du gehst zu DM, dort macht es mit mehr Leuten Spaß!");
    }
    return 1;
    }


    Bin auf Antworten gespannt :/


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Erstmal Danke für deine Antwort, BloodyEric.


    Trotz deines Tipps, stoppt meine Kamerafahrt wéiterhin nicht. Sie stoppt und dann geht es nicht mehr weiter.
    Desweiteren bleibt mein Problem mit dini_Exists :/.


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Ja, das klappt alles wunderbar.


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Muss ich mir wie vorstellen? Habs mir jetzt grad so gedacht.
    SetTimer("lsspawnende",100,false);
    Oder wie sonst?


    p.s: Natürlich im OnPlayerSpawn public :D


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Fast, so:
    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei, sizeof(Spielerdatei), "/Spieler/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    SetPlayerPos(playerid,2522.2588,-1678.1085,15.4970);
    SetCameraBehindPlayer(playerid);
    }
    else
    {


    SetTimerEx("lsspawnende",100,false,"d",playerid);
    GameTextForPlayer(playerid,"LS Spawn",3000,5);
    SCM(playerid,Grün,"Hier ist der LS Spawn.");
    SCM(playerid,Grün,"Du kannst dir mit /waffen sofort Waffen holen und DM machen!");
    SCM(playerid,Grün,"Oder du gehst zu DM, dort macht es mit mehr Leuten Spaß!");
    }
    return 1;
    }


    forward lsspawnende(playerid;
    public lsspawnende(playerid)
    {
    InterpolateCameraPos(playerid, 2503.063720, -1672.817993, 15.187110, 2411.021484, -1657.892089, 64.378120, 6500, CAMERA_MOVE);
    InterpolateCameraLookAt(playerid, 2507.829101, -1674.322265, 15.019173, 2415.021972, -1658.462768, 61.433658, 6500, CAMERA_MOVE);
    return 1;
    }

  • Komisch, die 2 Probleme bestehen weiterhin. BloodyEric, wenn du möchtest, gib ich dir mal die TV Daten oder evtl. sogar die Server IP, dann kannst du dir dass ganze mal genauer anschauen.(?)
    Wenn Ja, können wir das ganze über PN / Skype besprechen^^.


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Brauchst du nicht, weil ich jetzt ratlos bin. :) Einen letzten Versuch kann ich noch anbieten, wenn das auch nicht funktioniert bin ich raus. :P


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei, sizeof(Spielerdatei), "/Spieler/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    SetPlayerPos(playerid,2522.2588,-1678.1085,15.4970);
    SetCameraBehindPlayer(playerid);
    }
    else
    {
    TogglePlayerSpectating(playerid,1);
    SetTimerEx("lsspawnende",100,false,"d",playerid);
    GameTextForPlayer(playerid,"LS Spawn",3000,5);
    SCM(playerid,Grün,"Hier ist der LS Spawn.");
    SCM(playerid,Grün,"Du kannst dir mit /waffen sofort Waffen holen und DM machen!");
    SCM(playerid,Grün,"Oder du gehst zu DM, dort macht es mit mehr Leuten Spaß!");
    }
    return 1;
    }

  • Mir fällt gerade noch was ein, verwende das hier wenn die Kamera wieder hinter den Spieler soll:


    SetCameraBehindPlayer(playerid);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Mir fällt gerade noch was ein, verwende das hier wenn die Kamera wieder hinter den Spieler soll:



    SetCameraBehindPlayer(playerid);


    mfg.


    Tatsächlich war dass die Lösung o.o. Letztendlich habs ich umgebaut, so siehts nun aus:

    public OnPlayerSpawn(playerid)
    {
    SetTimerEx("lsspawnende",10000,false,"d",playerid);
    InterpolateCameraPos(playerid, 2503.063720, -1672.817993, 15.187110, 2411.021484, -1657.892089, 64.378120, 6500, CAMERA_MOVE);
    InterpolateCameraLookAt(playerid, 2507.829101, -1674.322265, 15.019173, 2415.021972, -1658.462768, 61.433658, 6500, CAMERA_MOVE);
    SetPlayerPos(playerid,2522.2588,-1678.1085,15.4970); // Und Pos gesetzt, da sonst Spawn in der Drogenfarm
    TogglePlayerControllable(playerid,0); // Noch Toggle angemacht
    GameTextForPlayer(playerid,"LS Spawn",3000,5);
    SCM(playerid,Grün,"Hier ist der LS Spawn.");
    SCM(playerid,Grün,"Du kannst dir mit /waffen sofort Waffen holen und DM machen!");
    SCM(playerid,Grün,"Oder du gehst zu DM, dort macht es mit mehr Leuten Spaß!");
    return 1;
    }


    public lsspawnende(playerid)
    {
    TogglePlayerControllable(playerid,1); // Toggle weggemacht
    SetCameraBehindPlayer(playerid); // Hier Kaliber's endgültige Lösung: Camera nach hinten gesettet.
    return 1;
    }

    So hatts nun endlich geklappt...
    Vielen großen Dank an euch beiden!
    Nur leider besteht noch dass Problem mit dini_Exists. xD


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht