Accountsystem

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
  • Dafür brauchst du: "dini.inc" , "dutils.inc" und "dudb.inc".
    So Kannst du Geld etc. speichern!
    Downloade dir vom sa-mp forum einfach die incs!
    dann bei den INCLUDES

    #include <dini>
    #include <dutils>
    #include <dudb>


    Dannach definirst du dcmd fürs login+register system!



    #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


    Dann machste bei "OnPlayerCommandText"


    dcmd(login,5,cmdtext);
    dcmd(register,8,cmdtext);
    hin


    und dann als "eigenes Callback" z.b.: am ende des scripts:



    dcmd_register(playerid,params[]) {



    if (PLAYERLIST_authed[playerid]) return SendClientMessage(playerid,COLOR_RED,"Du bist schon eingeloggt...");



    if (udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid,COLOR_RED,"Dein Account Existiert bereits.");



    if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"[VERWENDUNG] /register [PASSWORT]");



    if (udb_Create(PlayerName(playerid),params)) {
    dUserSetINT(PlayerName(playerid)).("money",5000);
    dUserSetINT(PlayerName(playerid)).("ID",dUserINT("Server").("IDcount"));
    dUserSetINT(PlayerName(playerid)).("check",0);
    dUserSetFLOAT(PlayerName(playerid)).("health",100);
    printf("[REGISTRIERT] %s",PlayerName(playerid));
    new count = dUserINT("Server").("IDcount");
    count++;
    dUserSetINT("Server").("IDcount",count);
    return SendClientMessage(playerid,COLOR_GREEN,"Account Erfolgreich erstellt!");
    }
    return 1;
    }


    und dann noch zum Login:



    dcmd_login(playerid,params[]) {



    if (PLAYERLIST_authed[playerid]) return SendClientMessage(playerid,COLOR_RED,"Du bist schon eingeloggt...");



    if (!udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid,COLOR_RED,"Account existiert nicht! [VERWENDUNG] /register [PASSWORT]");



    if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"[VERWENDUNG] /login [PASSWORT]");


    if (udb_CheckLogin(PlayerName(playerid),params)) {


    SpawnPlayer(playerid);
    GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money"));
    SetPlayerHealth(playerid,dUserFLOAT(PlayerName(playerid)).("health"));
    spawned[playerid] = 1;
    return SendClientMessage(playerid,COLOR_RED,"Du bist nun eingeloggt!");
    }


    return SendClientMessage(playerid,COLOR_RED,"Falsches Passwort!");
    }


    um das geld zuspeichern:



    if (PLAYERLIST_authed[playerid])
    {
    dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
    }


    mabye musste dann noch was oben definieren:



    new bool:PLAYERLIST_authed[MAX_PLAYERS];


    Und die farben haste ja schon definiert!


    [NICHT GETESTET]


    Falls fehler kommen, ICQ^^


    MfG,
    Melli

  • is aba das einfachste!


    habe sowieso mir ein eigenes Script Createt , aba dudb is für anfänger gut!

  • Dankschön aber dann kommt das!
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(435) : error 017: undefined symbol "dcmd"
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(436) : error 017: undefined symbol "dcmd"
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(573) : error 010: invalid function or declaration
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(575) : error 021: symbol already defined: "udb_UserSetInt"
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(575) : error 010: invalid function or declaration
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(575 -- 577) : warning 203: symbol is never used: "dcmd_login"
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(575 -- 577) : warning 203: symbol is never used: "dcmd_register"
    D:\GTA SAMP\Server\gamemodes\TheRealWorld1.pwn(575 -- 577) : warning 203: symbol is never used: "logged"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

  • dubd, dini & dutils müssen in Scriptfiles rein.
    Wenn sie da nicht liegen, funktioniert es nicht, da die #include Dateien genau dort gesucht werden.


    Wenn du sie in Gamemodes oder Filterscripts hast, einfach verschieben!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Nein...
    Ich habe es gemerkt, ca. 10 Minuten nachdem ich den Post geschrieben habe. (Ernsthaft :D )
    Aber eigentlich habe ich dazugeschrieben: "... in Scriptfiles (glaube ich^^)"


  • C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(206) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(212) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(213) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(214) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(215) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(216) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(217) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(235) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(240) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(243) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(244) : error 017: undefined symbol "PlayerName"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(245) : error 017: undefined symbol "spawned"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(245) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(245) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(245) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(245) : fatal error 107: too many error messages on one line
    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    15 Errors.












    ich hab einfach auf new gedrückt und alles bei onplayertextcommand eingegeben und wo kommt das mit dem geld her kanste mir son skript mal fertig schicken(icq) oder so? 407558329

    Sever ip : aremmers.no-ip.org


    !![GER]!!FuN_FrEeRoAm!!

    2 Mal editiert, zuletzt von MaRcEl9 ()

  • Dashier ganz unten in dein Script einfügen:


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


    Und weiter oben, unter die includes:


    new spawned[MAX_PLAYERS];

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!


  • #include <a_samp>
    // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT
    #if defined FILTERSCRIPT
    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }
    public OnFilterScriptExit()
    {
    return 1;
    }
    #else


    #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
    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }
    #endif
    #include <dini>
    #include <dutils>
    #include <dudb>
    #define COLOR_GREEN 0xFFFFFFAA
    #define COLOR_RED 0xFFFFFFAA
    new bool:PLAYERLIST_authed[MAX_PLAYERS];
    new spawned[MAX_PLAYERS];
    public OnGameModeInit()
    {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }
    public OnGameModeExit()
    {
    return 1;
    }
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd_register(playerid,params[]) {
    if (PLAYERLIST_authed[playerid]) return SendClientMessage(playerid,COLOR_RED,"Du bist schon eingeloggt...");
    if (udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid,COLOR_RED,"Dein Account Existiert bereits.");
    if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"[VERWENDUNG] /register [PASSWORT]");
    if (udb_Create(PlayerName(playerid),params)) {
    dUserSetINT(PlayerName(playerid)).("money",5000);
    dUserSetINT(PlayerName(playerid)).("ID",dUserINT("Server").("IDcount"));
    dUserSetINT(PlayerName(playerid)).("check",0);
    dUserSetFLOAT(PlayerName(playerid)).("health",100);
    printf("[REGISTRIERT] %s",PlayerName(playerid));
    new count = dUserINT("Server").("IDcount");
    count++;
    dUserSetINT("Server").("IDcount",count);
    return SendClientMessage(playerid,COLOR_GREEN,"Account Erfolgreich erstellt!");
    }
    return 1;
    }
    dcmd_login(playerid,params[]) {
    if (PLAYERLIST_authed[playerid]) return SendClientMessage(playerid,COLOR_RED,"Du bist schon eingeloggt...");
    if (!udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid,COLOR_RED,"Account existiert nicht! [VERWENDUNG] /register [PASSWORT]");
    if (strlen(params)==0) return SendClientMessage(playerid,COLOR_RED,"[VERWENDUNG] /login [PASSWORT]");
    if (udb_CheckLogin(PlayerName(playerid),params)) {
    SpawnPlayer(playerid);
    GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money"));
    SetPlayerHealth(playerid,dUserFLOAT(PlayerName(playerid)).("health"));
    spawned[playerid] = 1;
    return SendClientMessage(playerid,COLOR_RED,"Du bist nun eingeloggt!");
    }
    return SendClientMessage(playerid,COLOR_RED,"Falsches Passwort!");
    }
    //ist das vllt. falsch
    if (PLAYERLIST_authed[playerid])
    {
    dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
    }
    //----------------------
    return 0;
    }


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

    Sever ip : aremmers.no-ip.org


    !![GER]!!FuN_FrEeRoAm!!

    2 Mal editiert, zuletzt von MaRcEl9 ()

  • Keine Ahnung? Wieso schreibst du nicht die generierten Fehlermeldungen wenns immernoch nicht läuft?

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!


  • C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(55) : error 017: undefined symbol "dcmd_register"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(58) : error 017: undefined symbol "params"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(59) : error 017: undefined symbol "params"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(72) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(72) : error 017: undefined symbol "dcmd_login"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(75) : error 017: undefined symbol "params"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(76) : error 017: undefined symbol "params"
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(83) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Marcel\Desktop\Sever\pawno\Untitled.pwn(85) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    6 Errors.


    Sever ip : aremmers.no-ip.org


    !![GER]!!FuN_FrEeRoAm!!

  • okay wie kann man damit jetzt machen, dass jeder seinen eigenen skin hat also das man in der account datai jetzt skinid:108 oder so hat und das dann verändern kann und jedes mal beim connecten er diesen skin aus der account datai bekommt?