Wie mache ich das man nicht "Spawn" drücken kann

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
  • Hey,
    Wie mache ich das wenn man keinen Account hat bzw nicht registriert ist eine Meldung kommt wenn man auf "Spawn" drückt z.B. Du musst dich erster registrieren und man nicht Spawnen kann.
    Wenn man schon einen Account hat geht dies dann kommt eine Meldung wenn man "Spawn" drückt.
    Aber wenn man keinen Account hat kann man Spawn drücken -.-


    Hier der FS:


    // Register / Login Filterscript //


    #include <a_samp>
    #include <dudb>
    #include <dutils>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    //Colors//
    #define COLOR_SYSTEM 0xEFEFF7AA
    #define green 0x33FF33AA
    #define blue 0x00FFFFAA


    new PLAYERLIST_authed[MAX_PLAYERS];


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print("Register / Login System");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print("Register / Login System");
    print("----------------------------------\n");
    }


    #endif


    public OnPlayerRequestSpawn(playerid)
    {
    if (udb_Exists(PlayerName(playerid))){
    if (!PLAYERLIST_authed[playerid]){
    SendClientMessage(playerid,green,"Dein Account ist bereits registriert, benutze /login [Passwort] um dich einzuloggen.");
    return 0;
    }
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid) {
    if (PLAYERLIST_authed[playerid]) {
    // If someone has logged in, it saves money and score.
    dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
    dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid));
    }
    PLAYERLIST_authed[playerid]=false;
    return 1;
    }


    public OnPlayerConnect(playerid)
    {


    if (PLAYERLIST_authed[playerid]==0){
    if (udb_Exists(PlayerName(playerid))){
    SystemMsg(playerid,"Dein Account ist bereits registriert, benutze /login [Passwort] um dich einzuloggen.");
    }
    else{ SystemMsg(playerid,"Du hast noch keinen Account benutze /register [Passwort] um dich zu registrieren");
    }


    return 0;
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(login,5,cmdtext);
    dcmd(register,8,cmdtext);
    return 0;
    }


    stock SystemMsg(playerid,msg[]) {
    if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
    SendClientMessage(playerid,COLOR_SYSTEM,msg);
    }
    return 1;
    }


    stock PlayerName(playerid) {
    new name[255];
    GetPlayerName(playerid, name, 255);
    return name;
    }


    dcmd_register(playerid,params[]) {


    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Du hast bereits einen Account.");
    if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Du hast bereits einen Account erstellt, benutze /login [Passwort] um dich einzuloggen.");
    if (strlen(params)==0) return SystemMsg(playerid,"Benutze: /register [password]");
    if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Du hast deinen Account erfolgreich registriert benutze /login [Passwort].");
    return true;


    }


    dcmd_login(playerid,params[]) {


    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Du bist bereits eingeloggt.");
    if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Du hast noch keinen Account, benutze /register [Passwort] um einen Account zu registrieren");
    if (strlen(params)==0) return SystemMsg(playerid,"Benutze: /login [password]");
    if (udb_CheckLogin(PlayerName(playerid),params)) {
    SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("score"));
    SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money"));
    PLAYERLIST_authed[playerid]=true;
    return SystemMsg(playerid,"Du hast dich erfolgreich eingeloggt.");
    }
    return SystemMsg(playerid,"Falsches Passwort oder Nickname!");
    }

  • Einfach bei OnPlayerClassRequest "SpawnPlayer(playerid);" einfügen.

  • Ich hatte genau das gleiche und wenn ich das unter OnPlayerRequestClass schreibe
    und ich denn auf meinen Homeserver joine kann ich zwar nichtmehr auf Spawn klicken aber
    ich kann meine Maus nicht bewegen und bleibe an dem Bild hängen wo ich mein
    Skin auswählen kann.
    Laufen kann ich aber mit dem Skin

  • ... Kann das pls einer richtig machen also man soll wenn man nicht registriert ist und auf "Spawn" drückt eine Meldung bekommen z.B. registriere dich erster" oder sowas in der Art.
    Wenn der Account schon registriert ist funzt das dann kann man nicht Spawn drücken bevor man sich eingeloggt hat nur wenn es den ACC gibt nicht -.-