2 verschiedene Login zusammenführen

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 habe ein problem wenn ich so compile kommt immer


    error 025: function heading differs from prototype


    und


    error 021: symbol already defined: "OnPlayerLogin"


    wie kann ich es am einfachsten machen das beide laufen sind verschiedene systeme
    so siehts aus:


    public OnPlayerLogin( playerid, password[ ] )
    {
    if( IsPlayerConnected( playerid ) )
    {
    new pass[ 129 ];
    GetPVarString( playerid, "pPassword", pass, sizeof( pass ) );
    if ( !strcmp ( Whirlpool_hash( password ), pass, false ) )
    {
    new p_str[ 48 ];
    format( p_str, sizeof( p_str ), PLAYER_FILE, PlayerName( playerid ) );
    if( fexist( p_str ) ) LoadPlayerData( playerid, p_str );
    SetPVarInt( playerid, "pLogged", 1 );
    SendClientMessage( playerid, RULE, " Du hast dich erfolgreich eingeloggt." );
    PlayerPlaySound( playerid, 1058, 0.0, 0.0, 0.0 );
    }
    else
    {
    new hour, minute, second,playername[MAX_PLAYER_NAME],string[128];
    AddPVarInt( playerid, "Warning", +1 );
    gettime( hour, minute, second );
    printf("[%02d:%02d:%02d] %s hat ein falsches PW benutzt. %i/%i", hour, minute, second, PlayerName( playerid ), GetPVarInt( playerid, "Warnung" ), MAX_FAILED_LOGINS );
    if( GetPVarInt( playerid, "Warning" ) > MAX_FAILED_LOGINS -1 )
    TogglePlayerControllable(playerid,false),GetPlayerName(playerid,playername,sizeof(playername)),format(string,sizeof(string),"[ANTI-HACK] %s wurdes vom System gekickt. Grund: Falsches Login Passwort",playername),SendClientMessageToAll(0xFF6347AA,string),Kick( playerid );
    else
    {
    SendFormattedMessage( playerid, TOMATO, " Fehler: "COL_NEWS"Falsches Passwort. Du hast noch %d versuch(e)", MAX_FAILED_LOGINS - GetPVarInt( playerid, "Warnung" ) );
    ShowPlayerDialog( playerid, LOG_DIALOG + playerid, DIALOG_STYLE_INPUT, ""COL_TOMATO"Spieler Security", LOGINTEXT, "Einloggen", "Wechseln" );
    }
    }
    }
    return 1;
    }
    public OnPlayerLogin(playerid,const string[])
    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    format(string2, sizeof(string2), "%s.cer", pname2);
    new File: UserFile = fopen(string2, io_read);


    if (UserFile)
    {
    new valtmp[128];
    fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);


    if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
    {
    new key[128],val[128];
    new Data[128];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Admin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    new kills = PlayerInfo[playerid][pKills];
    SetPlayerScore(playerid, kills);
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "Willkommen %s,!", pname3);
    SendClientMessage(playerid, COLOR_WHITE,string3);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Falsches Passwort!");
    fclose(UserFile);
    }
    }
    return 1;
    }


    kann ich vlt. was bei public OnPlayerLogin(playerid,const string[]) ändern damit beide systeme laufen ?

  • Ehm.. wie soll das gehen ? 2 Verschiedene Login Systeme??

  • Aber du musst ein OnPlaerLogin umbennene ansonsten klappt das nicht. /Wegen dem Error.

  • Also umbennen kannst du es ja ^^


    //EDIT
    Es wird dann auch Funktionieren.