Er setzt die Position einfach nicht ?

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
  • Hallo liebe Community,


    folgendes ich arbeite grade einem Login Register System, es funktioniert soweit alles bis auf die Tatsache, das er einfach bei dem
    Register nicht die Positionen setzten will, er setzt garnichts es kommt dieser Langweilige Strand im Hintergrund -.-
    Coordinaten sind drinne & ja schaut selbst.


    Beim Login funktioniert alles einwandfrei -.-



    if(dini_Exists(Spielerdatei))
    {
    LoginPos(playerid);
    format(string,sizeof(string),"{DCDCDC}Account: {FFBE00}%s\n\n{DCDCDC}Gib bitte das Korrekte Passwort hier ein.",Spieler);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    }
    else
    {
    RegisterPos(playerid);
    format(string1,sizeof(string1),"{DCDCDC}Der Account:{FFBE00} %s\n\n{DCDCDC}wurde nicht in unserer Datenbank gefunden.\nDu kannst dir jetzt einen Account erstellen\nKlicke auf '{00C832}Register{DCDCDC}' um dir einen Account zu erstellen\nKlicke auf '{FF0019}Abbrechen{DCDCDC}' um den vorgang abzubrechen.",Spieler);
    ShowPlayerDialog(playerid,DIALOG_REGISTER1,DIALOG_STYLE_MSGBOX,"Registration",string1,"Register","Abbrechen");
    }
    return 1;


    stock LoginPos(playerid)
    {
    SetPlayerPos(playerid,1652.9811,-1661.0181,22.5156);
    SetPlayerCameraPos(playerid,1701.0642,-1726.8667,13.5469);
    SetPlayerCameraLookAt(playerid,1722.9802,-1693.5082,13.5000);
    return 1;
    }


    stock RegisterPos(playerid)
    {
    SetPlayerPos(playerid,1633.1830,-1738.4913,13.5469);
    SetPlayerCameraPos(playerid,1635.6346,-1739.9935,13.5391);
    SetPlayerCameraLookAt(playerid,1640.9441,-1743.2466,13.5469);
    return 1;
    }




    Greetz :thumbup:

  • Spontan, von dem was ich sehe, vermute ich mal, dass der Spieler zu dem Zeitpunkt deines Scripts noch nicht gespawned ist. Demnach kann sich auch seine Position nicht verändern.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Was soll ich denn noch definieren ? Es ist alles definiert was sein muss.. die Funktion & was passieren soll.


    //EDIT


    Wenn ich es unter OnPlayerSpawn mache funktioniert es .. aber meiner meinung nach ist das da total fehl am Platz.
    Weil wenn ich ihn dann zu der anderen Position setzte geht die Camera nicht mit sondern bleibt gefreezt.

    Einmal editiert, zuletzt von K3V1N ()

  • Versuchs mal mit SetSpawnInfo und SpawnPlayer bevor du SetPlayerPos benutzt. Dann dürfte er auf der Map stehen, die Kamera sich aber trotzdem dahin bewegen, wo du sie haben möchtest.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Nein ich möchte das er nach dem er sich registriert hat direkt dann da auf der Map steht & die kamera ganz normal hinter ihm ist -.-


    hier nochmal der aufbau:
    public OnPlayerSpawn(playerid)
    {
    Connect(playerid);
    return 1;
    }


    public Connect(playerid)
    {
    new string[128];
    new string1[384];
    new Spielerdatei[32];
    new Spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Spieler,sizeof(Spieler));
    format(Spielerdatei,sizeof(Spielerdatei),"/SpielerAccounts/%s.txt",Spieler);
    if(dini_Exists(Spielerdatei))
    {
    LoginPos(playerid);
    format(string,sizeof(string),"{DCDCDC}Account: {FFBE00}%s\n\n{DCDCDC}Gib bitte das Korrekte Passwort hier ein.",Spieler);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    }
    else
    {
    RegisterPos(playerid);
    format(string1,sizeof(string1),"{DCDCDC}Der Account:{FFBE00} %s\n\n{DCDCDC}wurde nicht in unserer Datenbank gefunden.\nDu kannst dir jetzt einen Account erstellen\nKlicke auf '{00C832}Register{DCDCDC}' um dir einen Account zu erstellen\nKlicke auf '{FF0019}Abbrechen{DCDCDC}' um den vorgang abzubrechen.",Spieler);
    ShowPlayerDialog(playerid,DIALOG_REGISTER1,DIALOG_STYLE_MSGBOX,"Registration",string1,"Register","Abbrechen");
    }
    return 1;
    }


    & im Stock Register habe ich es ganz normal mit SetSpawnPos(playerid); & da wird ihm normal eine Coordinate zugewiesen ..

  • Achso, da hast du dich etwas missverständlich ausgedrückt, sorry.


    Dann gehört das RegisterPos in den OnDialogResponse Part, an dem die Registration abgeschlossen wird. Auf diesem Wege sollte es keine Probleme geben.


    Und statt SetCameraPos und SetCameraLookAt kannst du einfach SetCameraBehindPlayer benutzen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Nein ich möchte das er nach dem er sich registriert hat direkt dann da auf der Map steht & die kamera ganz normal hinter ihm ist -.-

    Nein ich möchte das wenn der Dialog angezeigt wird das er auf diese bestimmte stelle schaut

    Jetzt entscheide dich doch mal endlich :D


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Also jetzt nochmal ganz


    Wenn ich die Dialoge mit Positionen unter OnPlayerConnect habe, dann kommt zwar der Dialog bei Register aber nicht die CameraPos sondern nur der Langweilige Strand.
    Bei Login funktioniert es -.- nur bei Register nicht.
    Habe ich es aber unter OnPlayerSpawn funktioniert es soweit muss dann aber mit VirtualWorld arbeiten & das nervt bei einem Freeroam Server.


    & ich möchte einfach das wenn er sich Registriert & ich es unter OnPlayerConnect habe das trotzdem diese Positionen RegisterPos(playerid); angezeigt werden anstatt
    dieser Langweilige Strand.