[ HILFE: Ein OnPlayerLogin Fehler ]

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
  • Guten Morgen,


    könnte einer mir helfen habe da ein Error bei mein GM drin.

    Zitat

    (17901) : warning 209: function "OnPlayerLogin" should return a value
    (17902) : error 010: invalid function or declaration

    Hier die direkte Zeile in Rot makiert


    gTeam[playerid] = PlayerInfo[playerid][pTeam];
    }
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);
    }
    }
    return 1; // HIER
    }


    Kann einer mir dabei helfen habe return weg gemacht ist dann auch error weg aber kommt im Server ein fehler wenn man Connectet dann spawnt man hier.

    Weiss erlich nicht wieso das der fehler kommt.

    2 Mal editiert, zuletzt von xXxDaVexXx ()

  • Habe jetzt mal in der zeile // HIER rein geschrieben.

    2 Mal editiert, zuletzt von xXxDaVexXx ()

  • gTeam[playerid] = PlayerInfo[playerid][pTeam];
    {
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);

    }
    return 1;
    }


    Versuchs mal so

  • klammerfehler ist es nicht ! ! !


    Sonst hätte er paar error´s!

  • Zitat

    (17901) : warning 209: function "OnPlayerLogin" should return a value
    (17902) : error 010: invalid function or declaration


    Hier steht aber error 010: invalid function or declaration und er hat 4 klamer zu und 1 nur offen


    aber schauen wir mal wenn er denn ganzen public geschickt hat

  • Hier mein ganzer public:


    public OnPlayerLogin(playerid,password[])
    {
    if(TOGGLE_DEBUG_MODE)
    {
    printf(" //DEBUG: CALL OnPlayerLogin(%i, <secret>)", playerid);
    }

    new tmp2[256];
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "users/%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
    }


    }//end while
    fclose(UserFile);//close the file after everything has been read in the while
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Passwort ist nicht korrekt! Bitte gib nun dein richtiges Passwort ein:","Login","Abbrechen");
    fclose(UserFile);
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4) { Kick(playerid); }
    return 1;
    }*/
    if(PlayerInfo[playerid][pReg] == 0)
    {
    GetsMoney[playerid] = 1; PlayerMoney[playerid] = PlayerMoney[playerid] += 500;
    }
    if(PlayerInfo[playerid][pLevel] == -999) //autoban
    {
    Ban(playerid);
    }
    else if(PlayerInfo[playerid][pCK] > 0)
    {
    Kick(playerid);
    }
    if(PlayerInfo[playerid][pFined] >= 20)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "You are banned from this Server, reason: too much abuses.");
    Ban(playerid);
    }
    format(string2, sizeof(string2), "SERVER: Willkommen zurück %s",playername2);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    printf("%s has logged in.",playername2);
    if (PlayerInfo[playerid][pDonateRank] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,"SERVER: Du bist ein Premium Account user.");
    }
    if (PlayerInfo[playerid][pAdmin] >= 1331)
    {
    format(string2, sizeof(string2), "SERVER: Du bist als Admin Level %d eingeloggt.",PlayerInfo[playerid][pAdmin]);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    }
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
    if(gTeam[playerid] == 0)
    {
    gTeam[playerid] = 3;
    }
    else
    {
    gTeam[playerid] = PlayerInfo[playerid][pTeam];
    }
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);
    }
    }
    return 1;
    }

  • nimm mal den weg "*/" beim Überprüfen des Passwortes!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • nehme mal den Anderen return raus!
    aber nicht den unteren!

  • Ne gibs keine mehr auser den einen return und trosdem bleib es bei den Error.

  • public OnPlayerLogin(playerid,password[])
    {
    if(TOGGLE_DEBUG_MODE)
    {
    printf(" //DEBUG: CALL OnPlayerLogin(%i, <secret>)", playerid);
    }


    new tmp2[256];
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "users/%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
    }


    }//end while
    fclose(UserFile);//close the file after everything has been read in the while
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Passwort ist nicht korrekt! Bitte gib nun dein richtiges Passwort ein:","Login","Abbrechen");
    fclose(UserFile);
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 4) { Kick(playerid); }
    }
    if(PlayerInfo[playerid][pReg] == 0)
    {
    GetsMoney[playerid] = 1; PlayerMoney[playerid] = PlayerMoney[playerid] += 500;
    }
    if(PlayerInfo[playerid][pLevel] == -999) //autoban
    {
    Ban(playerid);
    }
    else if(PlayerInfo[playerid][pCK] > 0)
    {
    Kick(playerid);
    }
    if(PlayerInfo[playerid][pFined] >= 20)
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "You are banned from this Server, reason: too much abuses.");
    Ban(playerid);
    }
    format(string2, sizeof(string2), "SERVER: Willkommen zurück %s",playername2);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    printf("%s has logged in.",playername2);
    if (PlayerInfo[playerid][pDonateRank] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,"SERVER: Du bist ein Premium Account user.");
    }
    if (PlayerInfo[playerid][pAdmin] >= 1331)
    {
    format(string2, sizeof(string2), "SERVER: Du bist als Admin Level %d eingeloggt.",PlayerInfo[playerid][pAdmin]);
    SendClientMessage(playerid, COLOR_WHITE,string2);
    }
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
    if(gTeam[playerid] == 0)
    {
    gTeam[playerid] = 3;
    }
    else
    {
    gTeam[playerid] = PlayerInfo[playerid][pTeam];
    }
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);
    }
    }
    return 1;
    }

  • Mhh so ist das nicht toll da sind bei mir noch viele funktionen dabei, und wenn ich es so einfüge gibt es viele problemme muss dann noch ein rücken.
    Kannst du mir nicht sagen direkt was ich machen soll und warum der Error kommt ?

  • (17901) : warning 209: function "OnPlayerLogin" should return a value


    Heißt Das irgendwas mit den returns in diesem Public nicht stimmt! Was genau kann ich dir nicht sagen, aber wa mit return!

  • Mhh kann mir hier keiner helfen was das vor ein fehler ist.

  • Nimm den Return bei gLogTries > Kick raus!
    Genauso die zeichen "*/"
    .... :-!

  • Überall unter public OnPlayerLogin(playerid,password[])
    gibs kein return noch auser den if(PlayerInfo[playerid][pFMember] < 255)
    {
    format(tmp2, sizeof(tmp2), "Family MOTD: %s.", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]);
    SendClientMessage(playerid, COLOR_YELLOW, tmp2);
    }
    }
    return 1;
    }