Problem mit Kamera

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 Brotfische,


    Heute ist mir aufgefallen... Wenn ich auf mein Server connecte wird mir der Login Dialog angezeigt (Im Hintergrund sieht man ja das Meer von Los Santos (Standart)..). Soweit alles perfekt, wenn ich aber nun mein Password falsch eingebe kommt im Chat die Naricht : Das Passwort war falsch und die Kamera wird schon an den Zivispawn gesetzt + Person... nun will ich aber wenn man das Passwort eingegeben wird das die Kamera im Standart Modus bleibt.


    Ich hoffe ihr könnt mir Helfen :)


    MfG German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Unter OnPlayerConnect:


    new mysqlquery[700];
    format(mysqlquery, sizeof(mysqlquery), "SELECT Datum FROM TimeBan WHERE Name = '%s'",getPlayerName(playerid));
    mysql_function_query(dbhandle,mysqlquery,false,"OnPlayerTimeBanCheck","d", playerid);


    OnPlayerTimeBanCheck:


    public OnPlayerTimeBanCheck(playerid)
    {
    new timestamp = gettime();
    new rows = cache_num_rows(), bisgebannt;
    if(rows > 0)
    {
    bisgebannt = cache_get_row_int(0, 0, dbhandle);
    }
    if(gettime() < bisgebannt)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new string[64];
    format(string,sizeof(string),"Du bist noch %i Minuten gebannt!",minuten);
    SendClientMessage(playerid,C_Error,string);
    SetTimerEx("kickTimer",800,0,"i",playerid);
    }
    else
    {
    if(IsPlayerNPC(playerid))return 1;
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnSpielerCheck","i",playerid);
    }
    return 1;
    }


    OnSpielerCheck:


    public OnSpielerCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    new sing[400];
    format(sing,sizeof(sing),"{E6E6E6}Willkommen auf {FFBE00}XXXXXXXXX.\n\n{E6E6E6}In der Datenbank wurde noch kein Account \nmit dem Name {FFBE00}%s {E6E6E6}gefunden.\nBitte lege nun ein sicheres Passwort an:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung",sing,"Okay","Abbrechen");
    }
    else
    {
    //Login
    new string[500];
    format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, |\nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Okay","Abbrechen");
    }
    return 1;
    }


    Unter OnDialogResponse:


    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordCheck","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,COLOR_RED,"Gibt bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }


    OnPasswordCheck:


    public OnPasswordCheck(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Acc. Laden
    SendClientMessage(playerid,C_Blau,"Erfolgreich eingeloggt.");
    sInfo[playerid][eingeloggt] = 1;
    //... usw.
    }
    else
    {
    //Passwort falsch
    SendClientMessage(playerid,C_Error,"Das eingegebene Passwort ist falsch.");
    new string[500];
    format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, \nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    //format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, \nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Okay","Abbrechen");
    }
    return 1;
    }


    Mit freundlichen Grüßen
    German_ScripterHD

  • new mysqlquery[700];
    format(mysqlquery, sizeof(mysqlquery), "SELECT Datum FROM TimeBan WHERE Name = '%s'",getPlayerName(playerid));
    mysql_function_query(dbhandle,mysqlquery,false,"OnPlayerTimeBanCheck","d", playerid);

    Wieso erstellst du so einen großen string wenn er nicht benötigt wird.
    Außerdem hast du caching deaktiviert, du brauchst dies aber wenn du etwas auslesen möchtest..deswegen schreib das ganze mal so:


    new mysqlquery[70];
    format(mysqlquery, sizeof mysqlquery, "SELECT `Datum` FROM `Timeban` WHERE `Name` = '%s'", getPlayerName(playerid)),
    mysql_function_query(dbhandle, mysqlquery, true, "OnPlayerTimeBanCheck", "i", playerid);

    mfg :thumbup:

  • Das liegt an der Verzögerung zwischen dem Absenden des Dialogs und der Cache-Rückgabe.
    Du musst bei OnPlayerRequestClass die Position sowie die Camera Position setzen, falls der Spieler nicht eingeloggt ist. Die Koordinaten (in etwa) habe ich hier gefunden: http://forum.sa-mp.com/showpost.php?p=2566177&postcount=4


    Übrigens:
    new mysqlquery[70];
    könnte theoretisch zu wenig sein, wenn der Spieler die vollen 24 Zeichen in Anspruch nimmt.
    Schreibe lieber:
    new mysqlquery[55 + MAX_PLAYER_NAME];
    Dann bist du auf der sicheren Seite.

  • OKay, wenn ich das Passwort jetzt falsch eingebe klappt das mit der Kamera, doch wenn ich das Passwort richtig eingebe habe ich Den Spawn Button unten, und denn will ich ja nicht .. :)


    Codes;


    OKay, wenn ich das Passwort jetzt falsch eingebe klappt das mit der Kamera, doch wenn ich das Passwort richtig eingebe habe ich Den Spawn Button unten, und denn will ich ja nicht .. :)


    Codes;


    public OnPlayerRequestClass(playerid, classid)
    {
    if(sInfo[playerid][eingeloggt]==0)
    {
    SetPlayerCameraPos(playerid,1093.000000,-2036.000000,90.000000);
    SetPlayerCameraLookAt(playerid,-0.825859,0.557950,-0.081537,CAMERA_CUT);
    }
    else if(sInfo[playerid][eingeloggt]==1)
    {
    SetSpawnInfo(playerid,0,sInfo[playerid][skin],439.3006,-1752.2723,8.7708,221.4513,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    Mit freundlichen Grüßen
    German_ScripterHD

  • Beitrag von German_ScripterHD ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen