Просмотр истории репутации
Здесь пока ничего нет
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От Rayan
Не сохраняется пароль MYSQL в бд.
Вот код:
#include <a_samp> #include <dc_cmd> #include <a_mysql> #include <sscanf2> #include <streamer> #include <crashdetect> #define MYSQL_HOST "127.0.0.1" #define MYSQL_USER "root" #define MYSQL_DATABASE "sa-mp" #define MYSQL_PASSWORD "" //127.0.0.1", "root", "sa-mp", " /*==================[Подсказки]================== %s - строка (привет, игрок_1) %d - целое число (12345) %f - число с точкой (123.123) ===============================================*/ #define MAX_PASSWORD 30 #define COLOR_RED 0xFF0000AA //new MySQL:DBconnectID; new DBconnectID; //new regip[15]; enum e_pInfo{ pID, pName[MAX_PLAYER_NAME], pPassword[MAX_PASSWORD], pMoney, Float:pX, Float:pY, Float:pZ, bool:pAdmin, bool:pInGame, }; new pInfo[MAX_PLAYERS][e_pInfo]; enum{ D_REG, D_LOG, D_SEX, }; main() { print("\n----------------------------------"); print(" Мод успешно запущен! </>"); print("----------------------------------\n"); } public OnGameModeInit() { //DBconnectID = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE); DBconnectID = mysql_connect("127.0.0.1", "root", "sa-mp", ""); switch(mysql_errno()) { case 0: print("Подключение к базе данных - Успешно | </>"); case 1044: print("Подключение к базе данных не удалось [Указано неизвестное имя пользователя]"); case 1045: print("Подключение к базе данных не удалось [Указан неизвестный пароль]"); case 1049: print("Подключение к базе данных не удалось [Указана неизвестная база данных]"); case 2003: print("Подключение к базе данных не удалось [Хостинг с базой данных недоступен]"); case 2005: print("Подключение к базе данных не удалось [Указан неизвестный адрес хостинга]"); default: printf("Подключение к базе данных не удалось [Неизвестная ошибка. Код ошибки: %d]", mysql_errno()); } SetGameModeText("Mode"); AddPlayerClass(0, 1154.1466,-1768.7874,16.5938,356.8533, 0, 0, 0, 0, 0, 0); SetTimer("SecondUpdate", 1000, true); return 1; } public OnGameModeExit() { mysql_close(DBconnectID); return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid,1154.1466, -1768.7874, 16.5938); SetPlayerCameraPos(playerid, 1230.5927,-1529.1538,62.4152); SetPlayerCameraLookAt(playerid, 1230.5927,-1529.1538,62.4152); if(!pInfo[playerid][pInGame]) { SetSpawnInfo(playerid, 0, 2, 1154.1466, -1768.7874, 16.5938, 0, 0, 0, 0, 0, 0, 0); SpawnPlayer(playerid); } return 1; } public OnPlayerConnect(playerid) { //new query[256]; //mysql_format(DBconnectID, query,sizeof(query),"INSERT INTO `players` (`name`, `password`, `regip`, `lastip`) VALUES ('%s','%s','%s','%s')", pInfo[playerid][pName], pInfo[playerid][pPassword], pInfo[playerid][pRegIp], pInfo[playerid][pLastIp]); //mysql_query(DBconnectID, query); SendClientMessage(playerid, COLOR_RED, "Добро пожаловать на Server Builds!"); SaveAcc(playerid); ClearVars(playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { SaveAcc(playerid); ClearVars(playerid); return 1; } public OnPlayerSpawn(playerid) { if(!pInfo[playerid][pInGame]) { GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME); new qString[42 + MAX_PLAYER_NAME]; format(qString, sizeof(qString), "SELECT * FROM `players` WHERE `name` = '%s'", pInfo[playerid][pName]); mysql_function_query(DBconnectID, qString, true, "CheckAcc", "d", playerid); } return 1; } forward CheckAcc(playerid); public CheckAcc(playerid) { new rows, fields; cache_get_data(rows,fields); if(!rows) { ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT, "Регистрация", "Введите новый пароль для регистрации.","Окей",""); } else { ShowPlayerDialog(playerid, D_LOG, DIALOG_STYLE_INPUT, "Авторизация", "Введите свой пароль.","Окей",""); cache_get_field_content(0, "password", pInfo[playerid][pPassword], DBconnectID, MAX_PASSWORD); } 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) { if(IsPlayerConnected(playerid)) GetPlayerPos(playerid, pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ]); if(GetPlayerMoney(playerid) != pInfo[playerid][pMoney]) { ResetPlayerMoney(playerid); GivePlayerMoney(playerid, pInfo[playerid][pMoney]); } 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 D_REG: { //GetPlayerIp(playerid,regip,15); if(!response) return ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT, "Регистрация", "Введите новый пароль для регистрации.","Окей",""); if(strlen(inputtext) < 3 || strlen(inputtext) > 30) return ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT, "Регистрацияя", "Пароль должен состоять от 3 до 30 символов.\nВведите новый пароль для регистрации.","Окей", ""); for(new i; i < strlen(inputtext); i++) { switch(inputtext[i]) { case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue; default: return ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT, "Регистрация", "Пароль может состоть только из латинских символов и символы!(Aa - Zz, 0 - 9).\nВведите новый пароль для регистрации.","Окей", ""); } } CreateAcc(playerid, pInfo[playerid][pPassword]); format(pInfo[playerid][pPassword], MAX_PASSWORD, "%s", inputtext); /*pInfo[playerid][pPassword][0] = EOS; strins(pInfo[playerid][pPassword], inputtext, 0); return ShowPlayerDialog(playerid, D_SEX, DIALOG_STYLE_MSGBOX, "Пол", "Выберите пол персонажа", "Мужской", "Женский");*/ } case D_LOG: { if(!response) return ShowPlayerDialog(playerid, D_LOG, DIALOG_STYLE_INPUT, "Авторизация", "Введите свой пароль.","Окей",""); if(strlen(inputtext) < 3 || strlen(inputtext) > 30) return ShowPlayerDialog(playerid, D_LOG, DIALOG_STYLE_INPUT, "Авторизация", "Длина пароля должна быть от 3 до 30 символов!\nВведите свой пароль.","Окей",""); for(new i; i < strlen(inputtext); i++) { switch(inputtext[i]) { case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue; default: return ShowPlayerDialog(playerid, D_LOG, DIALOG_STYLE_INPUT, "Авторизация", "Пароль должен быть из латинских символов и символы!(Aa - Zz, 0 - 9).\nВведите свой пароль.","Окей", ""); } } if(!strcmp (pInfo[playerid][pPassword], inputtext)) { new qString[42 + MAX_PLAYER_NAME]; format(qString, sizeof(qString), "SELECT * FROM `players` WHERE `name` = '%s'", pInfo[playerid][pName]); mysql_function_query(DBconnectID, qString, true, "LoadAcc", "d", playerid); } else { if(GetPVarInt(playerid, "BadAttemp") >= 3) return Kick(playerid); new string[78]; format(string, sizeof(string), "Вы ввели неверный пароль! У вас осталось %d попытки(а)\nВведите свой пароль.", 3 - GetPVarInt(playerid, "BadAttemp")); ShowPlayerDialog(playerid, D_LOG, DIALOG_STYLE_INPUT, "Авторизация", string,"Окей", ""); SetPVarInt(playerid, "BadAttemp", GetPVarInt(playerid, "BadAttemp") + 1); } } /*case D_SEX: { pInfo[playerid][pSex] = response; return CreateAcc(playerid, pInfo[playerid][pPassword], response); }*/ } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } CMD:givemoney(playerid, params[]) { new dlid, cash; if(sscanf(params, "dd", dlid, cash)) return SendClientMessage(playerid, -1, "Используйте: /givemoney [id] [Кол-во]"); if(!IsPlayerConnected(dlid)) return SendClientMessage(playerid, -1, "Данного игрока нету на сервере."); GivePlayerMoney(dlid,cash); return 1; } CMD:sethp(playerid, params[]) { new Val; if(sscanf(params, "d", Val)) return SendClientMessage(playerid, -1, "/sethp [число]"); new Float:fVal = (Val); SetPlayerHealth(playerid, fVal); return 1; } ALT:sethp:hp; stock ClearVars(playerid) { pInfo[playerid][pID] = 0; pInfo[playerid][pName][0] = EOS; pInfo[playerid][pPassword][0] = EOS; pInfo[playerid][pMoney] = 0; pInfo[playerid][pX] = 0.0; pInfo[playerid][pY] = 0.0; pInfo[playerid][pZ] = 0.0; pInfo[playerid][pAdmin] = false; pInfo[playerid][pInGame] = false; return 1; } stock CreateAcc(playerid, password[]) { new qString[180 + MAX_PLAYER_NAME + MAX_PASSWORD + 11 + 1 + 33]; format(qString, sizeof(qString), "INSERT INTO `players` (`name`, `password`, `money`, `admin`, `posx`, `posy`, `posz`) VALUES ('%s', '%s', %d, %d, %f, %f, %f)", pInfo[playerid][pName], password, pInfo[playerid][pMoney], pInfo[playerid][pAdmin], pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ]); mysql_function_query(DBconnectID, qString, true, "LoadAccID", "d", playerid); SendClientMessage(playerid, -1, "Ваш аккаунт успешно создан!"); pInfo[playerid][pInGame] = true; SpawnPlayer(playerid); return 1; } forward LoadAccID(playerid); public LoadAccID(playerid) return pInfo[playerid][pID] = cache_insert_id(DBconnectID); forward LoadAcc(playerid); public LoadAcc(playerid) { pInfo[playerid][pID] = cache_get_field_content_int(0, "id", DBconnectID); pInfo[playerid][pMoney] = cache_get_field_content_int(0, "money", DBconnectID); pInfo[playerid][pAdmin] = !!cache_get_field_content_int(0, "admin", DBconnectID); pInfo[playerid][pX] = cache_get_field_content_float(0, "posx", DBconnectID); pInfo[playerid][pY] = cache_get_field_content_float(0, "posy", DBconnectID); pInfo[playerid][pZ] = cache_get_field_content_float(0, "posz", DBconnectID); SendClientMessage(playerid, -1, "Вы успешно авторизовались!"); pInfo[playerid][pInGame] = true; SpawnPlayer(playerid); return 1; } stock SaveAcc(playerid){ new qString[165 + MAX_PLAYER_NAME + MAX_PASSWORD + 11 + 1 + 33 + 4]; format(qString, sizeof(qString),"UPDATE `players` SET `name` = %s, `password` = %s,`money` = %d, `Admin` = %d, `posx` = %f, `posy` = %f, `posz` = %f, `level` = %d, `sex` = %d, `regip` = %f, `lastip` = %f WHERE `id` = %d", pInfo[playerid][pName], pInfo[playerid][pPassword], pInfo[playerid][pMoney], pInfo[playerid][pAdmin], pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ], pInfo[playerid][pID]); //format(qString, sizeof(qString), "UPDATE `players` SET `name` = %s, `password` = %s, `money` = %d, `admin` = %d, `posx` = %f, `posy` = %f, `posz` = %f WHERRE `id` = %d", pInfo[playerid][pName], pInfo[playerid][pPassword], pInfo[playerid][pMoney], pInfo[playerid][pAdmin], pInfo[playerid][pX], pInfo[playerid][pY], pInfo[playerid][pZ], pInfo[playerid][pID]); mysql_function_query(DBconnectID, qString, true, "", ""); return 1; /*==================[Подсказки]================== %s - строка (привет, игрок_1) %d - целое число (12345) %f - число с точкой (123.123) ===============================================*/ } /*stock GiveMoney(playerid, money) { pInfo[playerid][pMoney] += money; static const fmt_query[] = "UPDATE `player` SET `money` = "%d" FROM `id` = "%d""; new query[sizeof(fmt_query)+(-2+9)+(-2+8)]; format(query,sizeof(query), fmt_query, pInfo[playerid][pMoney], pInfo[playerid][pID]); mysql_tquery(DBconnectID, query); GivePlayerMoney(playerid, pInfo[playerid][pMoney]); } */
-