Probably MySql connection issues.
#1

Well.. the problem is:
When I connect to server with any username, it'll say that account is already registered & when I go with account that exists, it will always say " Wrong password ".

pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <sscanf2>
#include <a_mysql>
#include <zcmd>
#include <foreach>

#define                 COLOR_WHITE                             0xFFFFFFAA
#define                 THREAD_LOE_ANDMED
#define                 MAX_TIMERS                              (5)
#define                 INTERIOR_WEATHER_ID                     (1)
#define                 MAX_WEATHER_POINTS                      (9)

#define ColorClassTruckDriver       0xFF8000FF // Orange
#define ColorClassBusDriver         0x80FFFFFF // Light blue
#define ColorClassPilot             0x008080FF // Dark blue
#define ColorClassPolice            0x0000FFFF // Blue
#define ColorClassCourier           0xFF0080FF // Pink
#define ColorClassAssistance        0x80FF00FF // Dark green
#define ColorClassRoadWorker        0xFFFF80FF // Light yellow


main(){}

enum playerEnum {
    pPassword,
    pRaha,
    pSkoor,
    pLogged,
    ppiloot,
    ppolitsei,
    pConnectedSeconds,
    pPlayingHours,
    pSeconds,
    pClass,
}

new andmed[MAX_PLAYERS][playerEnum];

new szMessage[128];

new scriptTimers[MAX_TIMERS];
new weatherVariables[2];
new validWeatherIDs[17] = { 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20 };
new gTime[3];

forward                 globalPlayerLoop();
@Get_Player_Time_On_Server(playerid);

public OnGameModeInit()
{
    mysql_debug(true);
    mysql_connect("localhost", "root", "test", "");

    scriptTimers[0] = SetTimer("globalPlayerLoop", 1000, true);

    weatherVariables[0] = validWeatherIDs[random(sizeof(validWeatherIDs))];
    SetWeather(weatherVariables[0]);
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    new
        x;

    while(x < MAX_TIMERS) {
        KillTimer(scriptTimers[x]);
        x++;
    }
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    TogglePlayerSpectating(playerid, true);

    SetPlayerColor(playerid, COLOR_WHITE);
    nulliandmed(playerid);
    new logi[126], Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    mysql_real_escape_string(Name, Name);
    format(logi, sizeof(logi), "SELECT 1 FROM kasutajad WHERE nimi = '%s' LIMIT 1", Name);
    mysql_query(logi);
    mysql_store_result();

    if(mysql_num_rows() != 0)
    {
        SendClientMessage(playerid, -1, "See kasutaja on juba registreeritud");
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Logimine", "Palun logi sisse kasutades enda parooli", "Logi", "Keeldu");
    }
    else
    {
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registreeri", "Palun sisesta parool enda uuele kasutajale", "Registreeri", "Keeldu");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(andmed[playerid][pLogged] == 1) {
        salvestaandmed(playerid);
        andmed[playerid][pLogged] = -1;

    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 0:
        {
            if(response)
            {
                new query[150], pName[MAX_PLAYER_NAME];
                GetPlayerName(playerid, pName, sizeof(pName));
                mysql_real_escape_string(pName, pName);
                mysql_real_escape_string(inputtext, inputtext);
                format(query, sizeof(query), "SELECT * FROM kasutajad WHERE nimi = '%s' AND parool = '%s' LIMIT 1", pName, inputtext);
                mysql_query(query);
                mysql_store_result();
                if(mysql_num_rows() == 1)
                {
                    SendClientMessage(playerid, -1, "Sa oled edukalt sisse logitud!");
                    TogglePlayerSpectating(playerid, false);
                    andmed[playerid][pLogged] = 1;
                    laeandmed(playerid);
                    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Amet", "Pitsapoiss\nKuller\nBussijuht\nRekkamees\nPiloot\nPolitseinik", "Vali", "");

                }
                else
                {
                    SendClientMessage(playerid, -1, "Sa sisestasid vale parooli!");
                    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Logimine", "Palun logi sisse kasutades enda parooli", "Logi", "Keeldu");

                }
                mysql_free_result();
            }
            else
            {
                Kick(playerid);
            }
        }
        case 1:
        {
            if(response)
            {
                new regi[256], pName[MAX_PLAYER_NAME];
                GetPlayerName(playerid, pName, sizeof(pName));

                format(regi, sizeof(regi), "INSERT INTO kasutajad (nimi, parool, registreerus) VALUES('%s', '%s', NOW())", pName, inputtext);
                mysql_query(regi);
                mysql_store_result();

                SendClientMessage(playerid, -1, "Sinu kasutaja on nььd registreeritud!");

                mysql_free_result();

                ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Logimine", "Palun logi sisse kasutades enda parooli", "Logi", "Keeldu");
            }
            else
            {
                Kick(playerid);
            }
        }
        case 2:
        {
            switch(listitem)
            {
                case 0:
                {
                    SendClientMessage(playerid, -1, "Asusid tццle pitsapoisina!");
                    andmed[playerid][pClass] = 1;
                    SetPlayerColor(playerid, ColorClassRoadWorker);
                    SetSpawnInfo(playerid, 1, 293, 192.3013, -218.8836, 1.5781, 321.2913, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
                case 1:
                {
                    SendClientMessage(playerid, -1, "Asusid tццle kullerina!");
                    andmed[playerid][pClass] = 2;
                    SetPlayerColor(playerid, ColorClassCourier);
                    SetSpawnInfo(playerid, 1, 294, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
                case 2:
                {
                    SendClientMessage(playerid, -1, "Asusid tццle bussijuhina!");
                    andmed[playerid][pClass] = 3;
                    SetPlayerColor(playerid, ColorClassBusDriver);
                    SetSpawnInfo(playerid, 1, 295, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
                case 3:
                {
                    SendClientMessage(playerid, -1, "Asusid tццle rekkamehena!");
                    andmed[playerid][pClass] = 4;
                    SetPlayerColor(playerid, ColorClassTruckDriver);
                    SetSpawnInfo(playerid, 1, 295, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0);
                    SpawnPlayer(playerid);
                }
                case 4:
                {
                    if(andmed[playerid][ppiloot] != 1)
                    {
                        SendClientMessage(playerid, -1, "Sul pole veel piloodi litsentsi! Info saamiseks vali mхni teine tцц ja uuri /abi");
                        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Amet", "Pitsapoiss\nKuller\nBussijuht\nRekkamees\nPiloot\nPolitseinik", "Vali", "");
                    }
                    else
                    {
                        SendClientMessage(playerid, -1, "Asusid tццle piloodina!");
                        andmed[playerid][pClass] = 5;
                        SetPlayerColor(playerid, ColorClassPilot);
                        SetSpawnInfo(playerid, 1, 295, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0);
                        SpawnPlayer(playerid);
                    }
                }
                case 5:
                {
                    if(andmed[playerid][ppolitsei] != 1)
                    {
                        SendClientMessage(playerid, -1, "Sul pole veel politsei litsentsi! Info saamiseks vali mхni teine tцц ja uuri /abi");
                        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Amet", "Pitsapoiss\nKuller\nBussijuht\nRekkamees\nPiloot\nPolitseinik", "Vali", "");
                    }
                    else
                    {
                        SendClientMessage(playerid, -1, "Asusid tццle politeinikuna!");
                        andmed[playerid][pClass] = 6;
                        SetPlayerColor(playerid, ColorClassPolice);
                        SetSpawnInfo(playerid, 1, 295, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0);
                        SpawnPlayer(playerid);
                    }
                }
            }
        }
    }

    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

public globalPlayerLoop() {
    gettime(gTime[0], gTime[1], gTime[2]);

    if(gTime[1] >= 59 && gTime[2] >= 59) {

        weatherVariables[1] += random(3) + 1; // Weather changes aren't regular.

        SetWorldTime(gTime[0]); // Set the world time to keep the worldtime variable updated (and ensure it syncs instantly for connecting players).

        if(weatherVariables[1] >= MAX_WEATHER_POINTS) {
            weatherVariables[0] = validWeatherIDs[random(sizeof(validWeatherIDs))];
            foreach(Player, i) {
                if(!GetPlayerInterior(i)) {
                    SetPlayerWeather(i, weatherVariables[0]);
                }
                else SetPlayerWeather(i, INTERIOR_WEATHER_ID);
            }
            weatherVariables[1] = 0;
        }
    }

    /* ------------------------------------------------------ */

    foreach(Player, x) {
        if(gTime[2] >= 59) syncPlayerTime(x);
        if(andmed[x][pLogged] == 1) {
            if(GetPlayerMoney(x) != andmed[x][pRaha]) {
                ResetPlayerMoney(x);
                GivePlayerMoney(x, andmed[x][pRaha]);
            }
        }
    }

    return true;
}

stock unixTimeConvert(timestamp, compare = -1) {
    if(compare == -1)
        compare = gettime();

    new
        n,
        Float:d = (timestamp > compare) ? timestamp - compare : compare - timestamp,
        returnstr[32];

    if (d < 60) {
        format(returnstr, sizeof(returnstr), "< 1 minute");
        return returnstr;
    } else if (d < 3600) { // 3600 = 1 hour
        n = floatround(floatdiv(d, 60.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "minute");
    } else if (d < 86400) { // 86400 = 1 day
        n = floatround(floatdiv(d, 3600.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "hour");
    } else if (d < 2592000) { // 2592000 = 1 month
        n = floatround(floatdiv(d, 86400.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "day");
    } else if (d < 31536000) { // 31536000 = 1 year
        n = floatround(floatdiv(d, 2592000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "month");
    } else {
        n = floatround(floatdiv(d, 31536000.0), floatround_floor);
        format(returnstr, sizeof(returnstr), "year");
    }
    format(returnstr, 32, ((n != 1)?("%d %ss"):("1 %s")), returnstr);  // you can use even their the ternary operator
    return returnstr;
}
@Get_Player_Time_On_Server(playerid){
    new Time = (gettime()-andmed[playerid][pConnectedSeconds]);
    andmed[playerid][pPlayingHours] = (Time/3600);
    andmed[playerid][pSeconds] = Time % 3600;
    return 1;
}
stock nulliandmed(playerid)
{
    new i;
    for(; playerEnum:i < playerEnum; ++i) andmed[playerid][playerEnum:i] = 0;  //this way to reset the variabel in the enum is easyier
    return true;
}

stock laeandmed(playerid)
{
    new query[300];
    mysql_fetch_row_format(query,"|");
    sscanf(query,"p<|>dddddd",andmed[playerid][pRaha],andmed[playerid][pSkoor],andmed[playerid][ppiloot],andmed[playerid][ppolitsei],andmed[playerid][pPlayingHours],andmed[playerid][pSeconds]);
    GivePlayerMoney(playerid, andmed[playerid][pRaha]);
    SetPlayerScore(playerid, andmed[playerid][pSkoor]);
    andmed[playerid][pConnectedSeconds] = gettime()-andmed[playerid][pSeconds];
    return 1;
}
stock salvestaandmed(const playerid)
{
    new saveQuery[400];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    @Get_Player_Time_On_Server(playerid);
    format(saveQuery, sizeof(saveQuery), "UPDATE kasutajad SET raha = '%d', skoor = '%d', playerSeconds = '%d', playerHours = '%d' WHERE nimi = '%s'",
    andmed[playerid][pRaha],
    andmed[playerid][pSkoor],
    andmed[playerid][pSeconds],
    andmed[playerid][pPlayingHours],
    Name);
    mysql_query(saveQuery); //changed you don`t need to clear the memory which is in used by storing results
    return 1;
}

stock syncPlayerTime(const playerid) {
    if(!GetPlayerInterior(playerid)) {
        SetPlayerWeather(playerid, weatherVariables[0]);
    }
    else SetPlayerWeather(playerid, INTERIOR_WEATHER_ID);
    return SetPlayerTime(playerid, gTime[0], gTime[1]);
}

RewardPlayer(playerid, Money, Points)
{
    // Add the given amount of money to the player's account
    andmed[playerid][pRaha] = andmed[playerid][pRaha] + Money;
    // Add the given amount of scorepoints to the player's account
    andmed[playerid][pSkoor] = andmed[playerid][pSkoor] + Points;
}

//============================================================================//
//                                  Player Commands                           //
//============================================================================//

CMD:statistika(playerid, params[])
{
    @Get_Player_Time_On_Server(playerid);
    format(szMessage, sizeof(szMessage), "Litsentsid | Piloot: %d | Politsei: %d\nRaha: %d | Sekundeid: %d | Tunde: %d", andmed[playerid][ppiloot], andmed[playerid][ppolitsei], andmed[playerid][pRaha], andmed[playerid][pSeconds], andmed[playerid][pPlayingHours]);
    SendClientMessage(playerid, -1, szMessage);
    return 1;
}

CMD:raha(playerid, params[])
{
    new Amount, Msg[128];

    if (sscanf(params, "i", Amount)) SendClientMessage(playerid, 0xFF0000AA, "Kasuta: \"/raha <Summa>\"");
    else
    {
        // Check if the player gave himself too much at once
        if (Amount > 1000000)
        {
            // Inform the player and quit the command
            SendClientMessage(playerid, 0xFF0000AA, "Sa ei saa panna endale raha korraga ьle 10m korraga");
            return 1;
        }

        // Reward the player (give cash and points)
        RewardPlayer(playerid, Amount, 0);
        format(Msg, 128, "Sa kandsid endale $%i", Amount);
        SendClientMessage(playerid, 0x00FF00AA, Msg);
    }


    return 1;
}
Also in case full script ( all includes and stuff ) :
http://www.upload.ee/files/3398850/server.rar.html
If someone doesn't understand language or something, I can help out! ( or use translate.******.ee -> Eesti/Estonian )

Been messing with that script a lot, and just don't understand why it wont work
Reply
#2

Still need help
Reply
#3

pawn Код:
format(logi, sizeof(logi), "SELECT 1 FROM kasutajad WHERE nimi = '%s' LIMIT 1", Name);
Maybe there's the problem? You're selecting the column 1 and i don't know is it possible to create column names like this. But maybe write there id or name something like this.

And i'm not sure if mysql_num_rows right there or not. I don't script MySQL since 1 month on Pawn, have forgot a lot of things.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)