Jump to content

AWESOMY

Membru
  • Posts

    1
  • Joined

  • Last visited

Posts posted by AWESOMY

  1. #include <a_samp>
    #include <a_mysql>
    #include <sscanf2>
    #include <crashdetect>
    #include <streamer>
    new SQL = -1, gQuery[256], gString[256];

    #define function%0(%1)      forward %0(%1); public %0(%1)
    #define SCM                 SendClientMessage

    enum pInfo {
        pSQLID,
        pName[MAX_PLAYER_NAME],
        pPassword[32],
        pEmail[32],
        pAdmin,
        pGender
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];

    new
        incercariParola[MAX_PLAYERS];

    enum {
        //Register
        DIALOG_REGISTER,
        DIALOG_EMAIL,
        DIALOG_GENDER,
        
        //Login
        DIALOG_LOGIN
    }
    main() { }


    public OnGameModeInit() {
        SQL = mysql_connect("localhost", "root", "zeero", "");
        SetGameModeText("0.1");
        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) {
        TogglePlayerSpectating(playerid, true);
        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 OnPlayerConnect(playerid) {

        incercariParola[playerid] = 0;
        gQuery[0] = EOS;
        mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' LIMIT 1", GetName(playerid));
        mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
        return 1;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
        switch(dialogid) {
            case DIALOG_REGISTER: {
                if(!response)
                    return Kick(playerid);
                    
                if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
                    return  ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te putea inregistra:", "Select", "Cancel");
                    
                gQuery[0] = EOS;
                mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
                mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);

                gString[0] = EOS;
                format(gString, sizeof(gString), "Parola ta contine %d caractere.", strlen(inputtext));
                SCM(playerid, -1, gString);
                
                format(PlayerInfo[playerid][pPassword], 32, inputtext);
                
                ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Seteaza-ti adresa de email:", "Select", "Cancel");
                
            }
            case DIALOG_EMAIL: {
                if(!response)
                    return Kick(playerid);

                if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
                    return  ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Seteaza-ti adresa de email:", "Select", "Cancel");

                gQuery[0] = EOS;
                mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
                mysql_tquery(SQL, gQuery, "", "");

                gString[0] = EOS;
                format(gString, sizeof(gString), "Email setat %s",inputtext);
                SCM(playerid, -1, gString);

                format(PlayerInfo[playerid][pEmail], 32, inputtext);
                
                ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender", "Seteaza-ti sexul:", "Masculin", "Feminin");
            }
            case DIALOG_GENDER: {
                switch(response) {
                    case 0: {
                        PlayerInfo[playerid][pGender] = 1;
                        SCM(playerid, -1, "Sex setat: Feminin");
                    }
                    case 1: {
                        PlayerInfo[playerid][pGender] = 0;
                        SCM(playerid, -1, "Sex setat: Masculin");
                    }
                }
                gQuery[0] = EOS;
                mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='%s' WHERE `ID`='%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
                mysql_tquery(SQL, gQuery, "", "");
                
                SpawnPlayer(playerid);
            }
            case DIALOG_LOGIN: {
                if(!response)
                    return Kick(playerid);
                mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
                mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
                SpawnPlayer(playerid);
            }
        }
        return 1;
    }
    public OnPlayerDisconnect(playerid) {
        return 1;
    }
    function onLogin(playerid) {
        switch(cache_num_rows()) {
            case 0: {
                incercariParola[playerid] ++;
                gString[0] = EOS;
                format(gString, sizeof(gString), "Parola incorecta. (%d/3 incercari ramase)", incercariParola[playerid]);
                SCM(playerid, -1, gString);
                
                if(incercariParola[playerid] == 4) Kick(playerid);
                else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
            }
            case 1: {
                new
                    result[64];
                PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
                PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "ID");

                    
                cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
                cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], MAX_PLAYER_NAME, result);
                cache_get_field_content(0, "Gender", result); format(PlayerInfo[playerid][pGender], MAX_PLAYER_NAME, result);
                
                printf("%s (user: %d) s-a logat. [Gender: %d, Name: %s, Password: %s, Email: %s]", GetName(playerid), PlayerInfo[playerid][pSQLID], PlayerInfo[playerid][pGender], PlayerInfo[playerid][pName], PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pEmail]);
            }
        }
        return 1;
    }
    function insertAccount(playerid) {
        PlayerInfo[playerid][pSQLID] = cache_insert_id();
        printf("%s s-a inregistrat cu SQLID-ul #%d", GetName(playerid), PlayerInfo[playerid][pSQLID]);
        return 1;
    }
    function checkAccount(playerid) {
            switch(cache_num_rows()) {
                case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te putea inregistra:", "Select", "Cancel");
                case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrie parola pentru a te putea loga:", "Select", "Cancel");
            }
    }
    stock GetName(playerid) {
        new playerName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
        return playerName;
    }

    Aceasta este linia de cod, va rog ajutati-ma cu acele 2 erori 

     

    C:\Users\Robert\Desktop\ZEERO\pawno\include\sscanf2.inc(258) : warning 202: number of arguments does not match definition
    C:\Users\Robert\Desktop\ZEERO\pawno\include\sscanf2.inc(271) : error 025: function heading differs from prototype
    Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase


    1 Error.
     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.